5 votos

Incluyendo la hora del día en un modelo de regresión lineal

El título puede ser completamente inapropiado para esta pregunta: eso depende de si estoy en el camino correcto. Estoy desarrollando un modelo estadístico para evaluar la temperatura de las flores basado en la temperatura del aire. No soy muy bueno en estadísticas, pero soy decente en programación en Python, así que estaba pensando en construir una regresión lineal allí.

Sin embargo, tengo dificultades para descubrir cómo construir mi regresión y si incluso una regresión lineal es una buena elección en absoluto.

El siguiente gráfico muestra cómo varían los datos de temperatura y flores con el tiempo (Día del mes hora).

La línea negra = Temperatura del aire.

Las líneas de colores = varias flores cuyas temperaturas fueron medidas.

Tal vez importante, pero no puedo entender cómo usarlas: las flechas en la parte superior muestran el viento y la dirección, mientras que la línea azul muestra la radiación solar incidente.

El eje y muestra la temperatura (en grados Celsius) mientras que el eje x muestra el tiempo.

ingrese aquí la descripción de la imagen

Si tuviera que calcular una regresión lineal, tendría que ser válida para cualquier hora del día, por lo tanto, no puedo simplemente evaluar cómo varía la temperatura de la flor con la temperatura del aire, porque una temperatura del aire de 20 grados a la 1 pm no dará la misma temperatura de la flor que una temperatura del aire de 20 grados a la 1 am. Intenté separar la noche y el día (el día varía entre las 6 am-7 pm), pero incluso así, los resultados fueron demasiado caóticos.

Después de leer este post: ¿Es la hora del día (predictor en la regresión) una variable categórica o una variable continua?, pensé que tal vez usar un enfoque categórico funcionaría, pero lo que entiendo de esto es que tendría 24 ecuaciones diferentes para cada hora del día, lo cual parece un poco excesivo. Supongo que estoy preparado para intentar ese enfoque, pero esperaba obtener algún consejo antes de continuar.

¿Quizás debería simplemente usar la radiación solar en lugar del tiempo? ¡Pero aún así, la forma es periódica y no tengo idea de cómo integrar un componente periódico dentro de una regresión lineal!

2 votos

Publicación bien redactada. La solución no se encontrará en algún truco dentro de la regresión lineal, sino en una familia completamente diferente de modelos. Deberás familiarizarte con los modelos de series temporales, estacionalidad, autocorrelación y correlación cruzada. Algunos autores para investigar: Rob Hyndman y Mark Pickup. ¡Buena suerte!

0 votos

¿Cuántos datos tienes? Si tienes muchos, digamos varias cientos de observaciones, tienes más opciones disponibles que si estás más limitado.

0 votos

@jbowman, lo que estoy mostrando ahora mismo es una matriz de 2200x5 y abarca 6 días (el período de floración dura aproximadamente 2 semanas). También tengo alrededor de 200-300 observaciones que se extienden a lo largo de 3 años, pero tenía la intención de usarlas como una forma de verificar la regresión.

3voto

Isabella Ghement Puntos 457

Creo que un marco de modelado parcialmente lineal puede ser adecuado para tu problema. Si te centras en una flor a la vez, ten en cuenta que tanto los datos de las flores como los datos de la temperatura del aire exhiben fuertes ciclos temporales que alcanzan su punto máximo aproximadamente al mismo tiempo. Entonces, el modelo parcialmente lineal más simple que podrías considerar para una flor se vería así:

FT_h = beta0 + beta1*AT_h + m(h) + epsilon_h, 

donde FT_h es la temperatura de la flor para la flor elegida en la hora h, AT_h es la temperatura del aire en la hora h, m() es una función suave, desconocida destinada a capturar los ciclos temporales que ves en los datos de temperatura y epsilon_h es un término de error desconocido. Aquí, h = 1, 2, 3, ..., H es un índice que cuenta cuántas horas has representado en total en tus datos de flores. En otras palabras, este índice cuenta tus horas desde la primera hasta la última. Si, por ejemplo, tienes 9,000 horas representadas en tus datos, entonces H = 9,000. En este modelo, beta1 representa el efecto horario de la temperatura del aire sobre la temperatura de la flor, después de controlar los efectos temporales.

El modelo se puede ampliar agregando un efecto lineal para la radiación solar incidente (ISR):

FT_h = beta0 + beta1*AT_h + m(h) + beta2*ISR_h + epsilon_h. 

Si también quisieras incluir la dirección del viento, podrías codificar esta variable tomando los valores Norte, Sur, Este, Oeste (o agregar variaciones como Noreste, Noroeste, etc.) e incluirla en tu modelo usando variables dummy. Por ejemplo, si solo codificas esta variable tomando los valores Norte, Sur, Este u Oeste, el modelo específico de la flor podría expresarse como:

FT_h = beta0 + beta1*AT_h + m(h) + beta2*ISR_h +
       beta3*NorthDummy_h + beta3*EastDummy_h + beta4*WestDummy_h +       
       epsilon_h,

donde Sur se trata como la dirección de referencia frente a la cual se compararán todas las demás y NorthDummy_h se establece en 1 si la dirección del viento fue Norte en la hora h y 0 de lo contrario, EastDummy_h se establece en 1 si la dirección del viento fue Este en la hora h y 0 de lo contrario y WestDummy_h se establece en 1 si la dirección del viento fue Oeste en la hora h y 0 de lo contrario.

Los aspectos desafiantes de estos modelos son:

  1. La necesidad de estimar cuidadosamente (desconocido) el grado de suavidad del efecto temporal (desconocido) m(), dado que este es solo un efecto molesto y el interés real está en la estimación de beta1;

  2. La posibilidad de que los términos de error epsilon_h puedan estar correlacionados temporalmente, lo que a su vez puede afectar cómo se aborda el punto 1. anteriormente.

Hace muchos años, realicé investigaciones sobre este tema en particular, consulta, por ejemplo - http://www.ghement.ca/217.pdf. Sin embargo, no he estado al tanto del tema, por lo que es posible que haya habido varios avances en formas de manejar el punto 1.

Intuitivamente, la señal temporal vista en los datos es realmente fuerte mientras que la señal de la temperatura del aire es probablemente minúscula en comparación. Por lo tanto, debes encontrar el equilibrio adecuado al determinar el grado de suavidad del efecto temporal, para no tirar al bebé con el agua sucia.

Si estás interesado en comparar los efectos de la temperatura del aire entre las flores, puedes ampliar aún más el modelo. Pero comenzaría de manera pequeña para asegurarme de comprender primero los modelos más simples y específicos de las flores.

1 votos

¡Guau! ¡No esperaba recibir una respuesta tan bien desarrollada! Muchas gracias por compartir conmigo este conocimiento sobre modelos lineales parciales con coeficientes de error. El tema parece bastante complejo, pero parece muy orientado hacia el álgebra lineal, que es un dominio con el que me siento mucho más cómodo que con las estadísticas en general (¡a pesar de que ambos están bastante relacionados!). Espero sacarle el máximo provecho y, aunque no sea muy pertinente, si funciona, entonces volveré para marcar esto como la respuesta aceptable. ¡Saludos!

1 votos

Buena suerte, @MorningGlory - puede ser más fácil cambiar a R para este análisis, ya que tiene las herramientas adecuadas para lo que necesitas a través del paquete mgcv y su función gam() o gamm().

1 votos

Por cierto, si sospechas que la temperatura del aire (AT) tiene efectos diferentes en la temperatura de la flor (FT) en la primera mitad del día en comparación con la segunda mitad, simplemente puedes incluir un efecto principal para HD y una interacción entre HD y AT en tu modelo, donde HD = 1 si una hora específica h en tus datos cae en la primera mitad del día y 0 si cae en la segunda mitad del día.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X