¿Cómo agregar un componente periódico al modelo de regresión lineal?

17

Tengo algunos datos de frecuencia acumulativa. Parece que una línea se ajusta muy bien a los datos, pero hay un movimiento cíclico / periódico en la línea. Me gustaría estimar cuándo la frecuencia acumulada alcanzará un cierto valor c . Cuando trazo los residuos frente a los valores ajustados, obtengo un hermoso comportamiento sinusoidal.y=unX+siC

Ahora, para agregar otra complicación, tenga en cuenta que en los gráficos de residuos

texto alternativo

Hay dos ciclos que tienen valores más bajos que los otros, lo que representa un efecto de fin de semana que también debe tenerse en cuenta.

Entonces, ¿a dónde voy desde aquí? ¿Cómo puedo combinar un término coseno, seno o cíclico en un modelo de regresión a aprox. estimar cuándo la frecuencia acumulativa será igual a ?C

Ryan Rosario
fuente

Respuestas:

9

Podrías probar el maravilloso stl()método: se descompone (usando el loess()ajuste iterado ) en tendencia y temporada y resto. Esto puede recoger sus oscilaciones aquí.

Dirk Eddelbuettel
fuente
8

Si conoce la frecuencia de la oscilación, puede incluir dos predictores adicionales, sin (2π wt) y cos (2π wt) - configure w para obtener la longitud de onda deseada - y esto modelará la oscilación. Necesita ambos términos para ajustar la amplitud y el ángulo de fase. Si hay más de una frecuencia, necesitará un término seno y coseno para cada frecuencia.

Si no sabe cuáles son las frecuencias, la forma estándar de aislar múltiples frecuencias es eliminar la tendencia de los datos (obtener los residuos del ajuste lineal, como lo ha hecho) y ejecutar una transformada de Fourier discreta contra los residuos. Una forma rápida y sucia de hacerlo es en MS-Excel, que tiene una herramienta de análisis de Fourier en el complemento de análisis de datos. Ejecute el análisis contra los residuos, tome el valor absoluto de las transformaciones y grafique el resultado. Los picos serán sus principales componentes de frecuencia que desea modelar.

Cuando agregue estos predictores cíclicos, preste mucha atención a sus valores p en su regresión y no sobreajuste. Use solo aquellas frecuencias que sean estadísticamente significativas. Desafortunadamente, esto puede dificultar un poco el ajuste de las frecuencias bajas.

Mike Anderson
fuente
2
Cuando estima las frecuencias de los datos (como con el análisis de Fourier) y luego las incluye como términos sen / cos en la regresión, sus valores p no tendrán sentido.
whuber
4

Comencemos observando que el ajuste de mínimos cuadrados ordinarios para estos datos es probablemente inapropiado. Si se supone que los datos individuales que se están acumulando, como de costumbre, tienen componentes de error aleatorios, entonces el error en los datos acumulativos ( no las frecuencias acumuladas, eso es algo diferente de lo que tiene) es la suma acumulativa de todos los términos de error. Esto hace que los datos acumulativos sean heterocedásticos (se vuelven más y más variables con el tiempo) y están fuertemente correlacionados positivamente. Debido a que estos datos se comportan con tanta regularidad, y hay muchos de ellos, hay pocos problemas con el ajuste obtendrá, pero sus estimaciones de errores, sus predicciones (que es de lo que se trata la pregunta), y especialmente sus errores estándar de predicción pueden estar muy lejos.

Un procedimiento estándar para analizar dichos datos comienza con los valores originales. Tome las diferencias del día a día para eliminar el componente sinusoidal de mayor frecuencia. Tome las diferencias semanales de aquellos para eliminar un posible ciclo de semana a semana. Analiza lo que queda. El modelado ARIMA es un enfoque poderoso y flexible, pero comienza simplemente: grafica esos datos diferenciados para ver qué está sucediendo y luego continúa desde allí. Tenga en cuenta también que con menos de dos semanas de datos, sus estimaciones del ciclo semanal serán pobres y esta incertidumbre dominará la incertidumbre en las predicciones.

whuber
fuente
2

Claramente, la oscilación dominante tiene período un día. Parece que también hay componentes de baja frecuencia relacionados con el día de la semana, por lo tanto, agregue un componente con frecuencia una semana (es decir, un séptimo del día) y sus primeros armónicos. Eso da un modelo de la forma:

mi(y)=C+un0 0cos(2πt)+si0 0pecado(2πt)+un1cos(2πt/ /7 7)+si1pecado(2πt/ /7 7)+un2cos(4 4πt/ /7 7)+si2pecado(4 4πt/ /7 7)+...

- asumiendo tse mide en días aquíyson los datos sin procesar , no su suma acumulativa.

una parada
fuente
-2

¿Por qué no usar una GA para encontrar la amplitud, el período y la fase de una serie de seno (o coseno) secuencialmente y luego combinarla? Optimice lo siguiente: (n (n-1) / ((np-1) ^ 2 (np-2))) RSS

Mark Campbell
fuente
1
No está claro cómo esto responde a la pregunta sobre el cálculo de una función de frecuencia acumulativa inversa. ¿Y qué quieres decir con un "GA"? ¿Algoritmo genético? ¿Algo más?
whuber