Tengo una serie temporal que tiene una tendencia muy fuerte al alza durante la primera mitad, luego muy fuerte a la baja durante la segunda mitad y termina más o menos donde empezó. ¿Debo dividir los datos en dos para el análisis, o puedo seguir teniendo en cuenta una tendencia que es neutra en términos netos?
Respuestas
¿Demasiados anuncios?Creo que en realidad se puede ajustar un modelo que puede capturar tanto las tendencias al alza como a la baja y no hay necesidad de dividir los datos (innecesario) dando lugar a dos modelos. En los siguientes códigos he creado un modelo ARIMA (línea roja) y una regresión plynomial de grado 2 (línea azul). He ajustado estos modelos sólo como ejemplo. A veces es necesario dividir los datos (véase el comentario de Nick).
> x=0:40
> y=-(x-20)^2+rnorm(length(x),0,15)
> plot(x,y)
> library(forecast)
> f=auto.arima(y)
> summary(f)
Series: y
ARIMA(0,2,2)
Coefficients:
ma1 ma2
-1.4522 0.7282
s.e. 0.1240 0.1156
sigma^2 estimated as 451.2: log likelihood=-175.89
AIC=357.78 AICc=358.46 BIC=362.77
Training set error measures:
ME RMSE MAE MPE MAPE MASE
Training set -6.162264 20.71692 16.32124 30.21502 52.33051 0.1559912
> lines(fitted(f),col="red")
> f2=lm(y~x+I(x^2))
> summary(f2)
Call:
lm(formula = y ~ x + I(x^2))
Residuals:
Min 1Q Median 3Q Max
-40.465 -8.068 2.406 9.482 23.517
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -401.88742 6.64150 -60.51 <2e-16 ***
x 39.38738 0.76813 51.28 <2e-16 ***
I(x^2) -0.97488 0.01857 -52.51 <2e-16 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 14.87 on 38 degrees of freedom
Multiple R-squared: 0.9864, Adjusted R-squared: 0.9857
F-statistic: 1381 on 2 and 38 DF, p-value: < 2.2e-16
> lines(fitted(f2),col="blue")
>
Estas series temporales suelen ser difíciles de modelar mediante ARIMA. Pero le sugiero que trace el ACf y el PACF de la serie y vea. Puede que sea necesario diferenciarlas. También puedes probar si la varianza es constante; si no lo es, transformas. Una vez que los datos son estacionarios puedes darle sentido.
Como ha dicho Nick, la división de la serie generará dos procesos diferentes y se necesita más información.
La serie puede parecer oscilante: si ese es el caso, lo mejor es probar el análisis espectral.
He tenido un éxito significativo en la identificación empírica de los cambios de tendencia utilizando AUTOBOX http://www.autobox.com/cms un software comercial que he ayudado a desarrollar. Puede que quiera ver tendencia/estacionalidad estocástica frente a la determinista en la previsión de series temporales para un interesante debate.
Un modelo de tendencia temporal (de forma determinista) es el siguiente y(t)=a+bx1+cx2
etc donde x1=1,2,3,4....t y x2=0,0,0,0,1,2,3,4 por lo tanto una tendencia se aplica a las observaciones 1-t y una segunda tendencia se aplica a las observaciones 6 a t.
Los procedimientos empíricos automáticos de AUTOBOX han tenido mucho éxito PERO, como toda "nueva ciencia" o "procedimiento innovador avanzado", necesita ser cuestionado constantemente de forma agresiva. Pruebe todo, pero manténgase firme en lo que sabe que es verdad. Por favor, publique sus datos o envíemelos en privado y utilizaré los datos e informaré de los resultados al grupo. Si te da miedo publicar los datos, simplemente codifícalos sumando/restando una constante. Los procedimientos utilizados para identificar el número de tendencias y la longitud de cada tendencia se basan parcialmente en el trabajo de Tsay http://www.unc.edu/~jbhill/tsay.pdf . Todos estos procedimientos avanzados no están disponibles actualmente en el mercado de software libre.