13 votos

Cómo analizar la tendencia en las series temporales no periódicas

Supongamos que tengo siguientes series temporales no periódicas. Obviamente la tendencia está disminuyendo y me gustaría probarlo con alguna prueba (con Valor p ). No puedo usar la regresión lineal clásica debido a la fuerte autocorrelación temporal (en serie) entre los valores.

library(forecast)
my.ts <- ts(c(10,11,11.5,10,10.1,9,11,10,8,9,9,
               6,5,5,4,3,3,2,1,2,4,4,2,1,1,0.5,1),
            start = 1, end = 27,frequency = 1)
plot(my.ts, col = "black", type = "p",
     pch = 20, cex = 1.2, ylim = c(0,13))
# line of moving averages 
lines(ma(my.ts,3),col="red", lty = 2, lwd = 2)

enter image description here

¿Cuáles son mis opciones?

4 votos

Creo que el hecho de que la serie no sea periódica ( frequency=1 ) es poco relevante aquí. Una cuestión más relevante podría ser si está dispuesto a especificar una forma funcional para su modelo.

1 votos

Probablemente, algo más de información sobre los datos sería útil para el modelado.

0 votos

Los datos son recuentos de individuos (en miles) de determinadas especies contados cada año en el depósito de agua.

9voto

Dipstick Puntos 4869

Como has dicho, la tendencia de los datos de tu ejemplo es evidente. Si quiere justificar este hecho mediante una prueba de hipótesis, además de utilizar la regresión lineal (la opción paramétrica obvia), puede utilizar la prueba no paramétrica de Mann-Kendall para la tendencia monótona. Esta prueba se utiliza para

evaluar si existe una tendencia monótona al alza o a la baja del variable de interés a lo largo del tiempo. Una tendencia monótona ascendente (descendente) significa que la variable aumenta (disminuye) sistemáticamente a lo largo tiempo, pero la tendencia puede ser lineal o no. ( http://vsp.pnnl.gov/help/Vsample/Design_Trend_Mann_Kendall.htm )

Además, como señala Gilbert (1987), la prueba

es especialmente útil porque se permiten los valores perdidos y los datos no necesitan ajustarse a ninguna distribución en particular

La estadística de la prueba es la diferencia entre el negativo y el positivo $x_j-x_i$ diferencias entre todos los $n(n-1)/2$ pares posibles, es decir

$$ S = \displaystyle\sum_{i=1}^{n-1}\displaystyle\sum_{j=i+1}^{n}\mathrm{sgn}(x_j-x_i) $$

donde $\mathrm{sgn}(\cdot)$ es un función del signo . $S$ se puede utilizar para calcular $\tau$ estadística que es similar a la correlación, ya que oscila entre $-1$ a $+1$ donde el signo sugiere una tendencia negativa o positiva y el valor de $\tau$ es proporcional a la pendiente de la tendencia.

$$ \tau = \frac{S}{n(n-1)/2} $$

Por último, se puede calcular $p$ -valores. Para muestras de tamaño $n \le 10$ puede utilizar tablas de precalculados $p$ -para diferentes valores de $S$ y diferentes tamaños de muestra (véase Gilbert, 1987). Con muestras más grandes, primero hay que calcular la varianza de $S$

$$ \mathrm{var}(S) = \frac{1}{18}\Big[n(n-1)(2n+5) - \displaystyle\sum_{p=1}^{g}t_p(t_p-1)(2t_p+5)\Big] $$

y luego calcular $Z_{MK}$ estadística de la prueba

$$ Z_{MK} = \begin{cases} \frac{S-1}{\mathrm{var}(S)} & \text{if} ~ S > 0 \\ 0 & \text{if} ~ S = 0 \\ \frac{S+1}{\mathrm{var}(S)} & \text{if} ~ S < 0 \end{cases} $$

el valor de $Z_{MK}$ se compara con los valores normales estándar

  • $Z_{MK} \ge Z_{1-\alpha}$ para la tendencia al alza,
  • $Z_{MK} \le -Z_{1-\alpha}$ por la tendencia a la baja,
  • $|Z_{MK}| \ge Z_{1-\alpha/2}$ para la tendencia al alza o a la baja.

En este hilo puede encontrar el código R que implementa esta prueba.

Desde el $S$ se compara con todos los pares de observaciones posibles, entonces, en lugar de utilizar la aproximación normal para $p$ -valor se puede utilizar la prueba de permutación que es obvia para este caso. En primer lugar, se calcula $S$ estadística de sus datos y luego baraja aleatoriamente sus datos varias veces y la calcula para cada una de las muestras. $p$ es simplemente la proporción de casos en los que $S_\text{data} \ge S_\text{permutation}$ para la tendencia al alza o $S_\text{data} \le S_\text{permutation}$ por la tendencia a la baja.


Gilbert, R.O. (1987). Métodos estadísticos para la vigilancia de la contaminación ambiental. Wiley, NY.

Önöz, B., y Bayazit, M. (2003). La potencia de las pruebas estadísticas para la detección de tendencias. Revista turca de ingeniería y ciencias medioambientales, 27 (4), 247-251.

1voto

Owen Fraser-Green Puntos 642

El problema que tienes "no puedo utilizar la regresión lineal clásica debido a la fuerte autocorrelación temporal (serial) entre los valores" es en realidad una oportunidad. Tomé tus 27 valores y utilicé AUTOBOX, un programa informático (que he ayudado a desarrollar) que puede (opcionalmente) determinar automáticamente un posible modelo. Aquí está el gráfico real/de ajuste y de previsión enter image description here . El ACF de los residuos está aquí con el gráfico de residuos aquí enter image description here . El modelo está aquí enter image description here y aquí enter image description here y aquí enter image description here . Dos coeficientes describen acertadamente los datos con una "tendencia" estimada, también conocida como "deriva", es decir, un diferencial entre periodos de -.596. Tenga en cuenta que se trata de un tipo de tendencia en la que su modelo utilizó los números de conteo 1,2,...27 como variable de predicción. Si sus datos sugirieran ese tipo de tendencia, el programa informático lo habría considerado más aplicable. Intentaré encontrar un artículo mío anterior en el que se detallan/contrastan estos dos tipos de tendencias. Aquí Identificación de un modelo de tendencia estocástica y Detectar la tendencia inicial o los valores atípicos

enter image description here

2 votos

La previsión de Autobox pasa por alto todos los puntos interesantes 1996, 1999, 2000, 2009 en los que se rompe la tendencia reciente. Es casi como un cambio de fase de un año. En ese sentido no explica nada.

0 votos

Su recomendación anterior (en tono de broma) de ajustar un polinomio de alto grado a los datos haría justo lo que pedía. Pero no se trata de ajustar, sino de modelar. El gráfico de residuos parece describir adecuadamente un proceso de error debido a algún factor externo/desconocido. Todos los modelos son erróneos pero algunos son útiles. Creo que este es un modelo útil, pero si crees que puedes hacerlo mejor, por favor, publica tus resultados para que todos podamos aprender. No hay explicación de un modelo ARIMA ya que el pasado es sólo un proxy para las variables omitidas.

2 votos

En este caso parece que no hay mucho que hacer con las estadísticas. No es en absoluto una cuestión estadística interesante. Hay una tendencia obvia, y OP debe estudiar la física del fenómeno. Creo que estos ajustes de modelos como los de Autobox simplemente están llevando a OP en la dirección equivocada. No revelan nada de valor más allá de lo que ya es evidente.

1voto

SimpleLikeAnEgg Puntos 503

Puede utilizar OLS porque no hay autocorrelación serial (al menos en la muestra que ha suministrado); observe el estadístico de prueba de Durbin-Watson de 1,966 (≈2).

Así, la estimación del coeficiente significativamente negativo para x1 es todo lo que se necesita para decir algo como

El recuento observado de [ciertas especies] está disminuyendo en alrededor de 1.000 por año.

o

El recuento observado de [ciertas especies] está disminuyendo entre 628 y 1.408 por año (con una confianza del 95%).

Esto supone que la metodología para contar las especies tiene una buena cobertura y es consistente a lo largo de los años en su muestra.

enter image description here

Esto se produjo con este código de Python (lo siento; no tengo R a mano):

import numpy as np
import statsmodels.api as sm

y = [10,12,10,11,8,9,6,4,2,4]
x = np.arange(len(y))
x = sm.add_constant(x)

mod = sm.OLS(y, x)
result = mod.fit()
print(result.summary())

1voto

Dharma Leonardi Puntos 101

Puede utilizar Coeficiente de correlación de rango de Spearman para determinar el grado de monotonía de sus datos. Devuelve valores positivos para datos monótonos crecientes y valores negativos para datos monótonos decrecientes (entre -1 y +1). Siguiendo el enlace anterior, también hay una sección que trata de las pruebas de significación, aunque estoy seguro de que la mayoría de los paquetes de software tendrán un valor p hecho para usted cuando se calculan los coeficientes de correlación (por ejemplo, en Matlab: [RHO,PVAL] = corr(...) en R: cor.test(x,...) )

0voto

lambruscoAcido Puntos 114

Conocer la fuente de datos sería muy útil, y también la información si los valores de my.ts podría ser negativo o no.

Sin embargo, echando un vistazo rápido al gráfico, en lugar de ver una constante lineal tendencia , más bien sugiero que la serie temporal no es estacionaria, por lo tanto integrado . Como ejemplo, precios de las acciones también están integrados, pero rendimientos de las acciones ya no (fluctúan cerca de 0).

Esta hipótesis también puede comprobarse mediante la prueba de Dickey Fuller aumentada:

require(tseries)
adf.test(my.ts)

Augmented Dickey-Fuller Test
Dickey-Fuller = -2.9557, Lag order = 2, p-value = 0.7727
alternative hypothesis: stationary

Dado que el valor p no es inferior a 0,05, no hay pruebas de que el proceso sea estacionario.

Para obtener los datos estacionarios, hay que diferenciarlos:

diff.ts <- diff(my.ts)
plot(diff.ts)

enter image description here

Ahora los datos no muestran tendencia y lo único que encontrará es un término autorregresivo de orden 2 (utilizando acf(diff.ts) ).

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