¿Cuáles son las formas de tratar con covariables circulares (por ejemplo, con un GAM)?

8

Estoy construyendo un modelo en el que varias de mis covariables viven en un "círculo", en el sentido de que toman valores en el intervalo [0,1) y 0 = 1. Me pregunto acerca de las técnicas para lidiar con esta situación. Una idea es representar una variable circular theta como un par de variables (sin (theta), cos (theta)). ¿Alguna idea sobre este enfoque o enfoques mejores?

Estoy utilizando específicamente el paquete mgcv GAM. ¿Hay alguna manera de decirle al modelo que ciertas piezas aditivas deben tener los mismos valores en los puntos finales? Otro paquete?

¡Gracias!

DavidR
fuente
2
Solo he visto seno y coseno como usted ha mencionado, aquí hay otra pregunta en el sitio que hace una pregunta similar, Regresión logística con datos direccionales como IV . En esta pregunta sobre SO Iterator tiene un comentario que apunta a un circularpaquete que posiblemente pueda ser de interés. Sin embargo, espero obtener mejores respuestas.
Andy W
2
@Andy senos y cosenos no son la única base, ni siquiera son la única base ortogonal, para las funciones periódicas (integrables al cuadrado). Uno de sus méritos es que a menudo la teoría física los implica en las relaciones con otras variables. Esto sugiere que deberíamos estar muy interesados ​​en la relación hipotética o esperada entre el DV y estas covariables. DavidR, ¿qué nos puedes contar sobre esto?
whuber
Estoy tratando de modelar un proceso temporal periódico. Mis datos originales son la fecha y la hora de los eventos, y me gustaría modelar la tasa de estos eventos con el tiempo. Espero que haya periodicidad con respecto a la hora del día, el día de la semana y la época del año, para empezar. Estas son las variables circulares obvias. Estoy empezando con un Poisson-GAM. Estoy interesado en examinar los efectos de cada uno de estos por separado, así como hacer predicciones de tasas para tiempos futuros.
DavidR

Respuestas:

6

Hay dos formas de tratar con variables circulares, un método hacky sería duplicar manualmente su conjunto de datos a cada lado de las condiciones de contorno, pero la solución más elegante, creo, sería utilizar las funciones de base de spline incorporadas con condiciones de contorno periódicas !

Por ejemplo:

bs="cc"especifica una splines de regresión cúbica cíclica (ver cyclic.cubic.spline). es decir, una splines de regresión cúbica penalizada cuyos extremos coinciden, hasta la segunda derivada.

Splines en la esfera

bs="sos". Estas son splines bidimensionales en una esfera. Los argumentos son latitud y longitud, y son el análogo de las estrías de placas delgadas para la esfera. Útil para los datos muestreados en una gran parte del globo, cuando la isotropía es apropiada. Ver Spherical.Splinepara más detalles.

bs="cp" da una versión cíclica de una P-spline

Markus Loecher
fuente
¡Eso suena perfecto! Intentaré esto Había pensado en el método hacky, pero como tengo múltiples variables circulares, estaba pensando que tendría que hacer una gran cantidad de puntos de datos duplicados para mostrar todas las diferentes simetrías en el problema.
DavidR
@DavidR He tenido buen éxito usando splines cúbicas circulares para fenómenos de baja frecuencia. Necesita lo suficiente para representar la frecuencia más alta que desea modelar. Eso va a descartar los períodos por hora y por día, pero podría funcionar bien para la estacionalidad. Para los dos primeros, la parsimonia sugiere comenzar con una base pequeña como un seno y coseno para cada frecuencia esperada.
whuber
@whuber, creo que entendiste mal el enfoque de modelado de DavidR. David usa variables separadas para la hora, el día de la semana, etc. Así que aplicaría una spline separada para cada una. (
Agradecería
Whuber, estoy de acuerdo con su punto de que, por ejemplo, modelar compras más pesadas en diciembre requeriría una spline de orden alta en meses variables.
seanv507
0

Es posible que desee ver a Gill y Hangartner (2010). Datos circulares en ciencias políticas y cómo manejarlos . Hablan sobre varios modelos de datos circulares / de reloj / estacionales, y Jeff Gill proporciona el código R para el documento en el que puede buscar inspiración. Debería haber una versión de presentación de este material que entrelazaría la metodología y el código R.

StasK
fuente
Gracias por este puntero en la literatura sobre datos circulares. Parece un buen punto de partida. Leí rápidamente este artículo en particular, y parece tratar con respuestas circulares, en lugar de covariables circulares.
DavidR