Analyse des Trends in nichtperiodischen Zeitreihen

12

Angenommen, ich habe folgende nicht periodische Zeitreihen. Offensichtlich nimmt der Trend ab und ich möchte ihn durch einen Test (mit p-Wert ) beweisen . Ich kann die klassische lineare Regression aufgrund der starken zeitlichen (seriellen) Autokorrelation zwischen Werten nicht verwenden.

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)

Geben Sie hier die Bildbeschreibung ein

Was sind meine Optionen?

Ladislav Naďo
quelle
4
Ich denke, dass die Tatsache, dass die Serie nicht periodisch ist ( frequency=1), hier wenig relevant ist. Ein relevanteres Problem könnte sein, ob Sie bereit sind, ein Funktionsformular für Ihr Modell anzugeben.
Richard Hardy
1
Weitere Informationen zu den Daten sind wahrscheinlich für die Modellierung hilfreich.
Bdeonovic
Daten sind Zählungen von Individuen (in Tausenden) bestimmter Arten, die jedes Jahr im Wasserreservoir gezählt werden.
Ladislav Naďo
1
@LadislavNado ist Ihre Serie so kurz wie im Beispiel? Ich frage, weil es in diesem Fall die Anzahl der Methoden reduziert, die aufgrund der Stichprobengröße angewendet werden können.
Tim
1
Die Offensichtlichkeit des abnehmenden Aspekts ist ziemlich maßstabsabhängig, was für mich berücksichtigt werden sollte
Laurent Duval

Antworten:

7

Wie Sie sagten, ist der Trend in Ihren Beispieldaten offensichtlich. Wenn Sie diese Tatsache nur durch einen Hypothesentest rechtfertigen möchten, können Sie neben der linearen Regression (der offensichtlichen parametrischen Wahl) auch den nichtparametrischen Mann-Kendall-Test für den monotonen Trend verwenden. Der Test ist es gewohnt

beurteilen, ob es einen monotonen Auf- oder Abwärtstrend der interessierenden Variablen im Zeitverlauf gibt. Ein monotoner Aufwärtstrend (Abwärtstrend) bedeutet, dass die Variable im Laufe der Zeit stetig zunimmt (abnimmt), der Trend jedoch linear sein kann oder nicht. ( http://vsp.pnnl.gov/help/Vsample/Design_Trend_Mann_Kendall.htm )

darüber hinaus, wie von Gilbert (1987) festgestellt, der Test

Dies ist besonders nützlich, da fehlende Werte zulässig sind und die Daten keiner bestimmten Verteilung entsprechen müssen

Die Teststatistik ist die Differenz zwischen negativen und positiven Unterschieden zwischen allen n ( n - 1 ) / 2 möglichen Paaren, dhxj- -xichn(n- -1)/.2

S.=ich=1n- -1j=ich+1nsGn(xj- -xich)

Dabei ist eine Vorzeichenfunktion . S kann verwendet werden , zu berechnen τ Statistiken , die auf Korrelation ähnlich ist , wie es aus Bereichen - 1 bis + 1 , in dem das Vorzeichen negativ vermuten läßt, oder positive Entwicklung und den Wert von τ zu Steigung des Trends proportional ist.sgn()S τ1+1τ

τ=Sn(n1)/2

Schließlich können Sie Werte berechnen . Für Stichproben der Größe n 10 können Sie Tabellen mit vorberechneten p- Werten für unterschiedliche Werte von S und unterschiedliche Stichprobengrößen verwenden (siehe Gilbert, 1987). Bei größeren Stichproben müssen Sie zuerst die Varianz von S berechnenpn10pSS

var(S)=118[n(n1)(2n+5)p=1gtp(tp1)(2tp+5)]

und dann berechnen , PrüfgrößeZMK

ZMK={S1var(S)if S>00if S=0S+1var(S)if S<0

ZMK

  • ZMKZ1α
  • ZMKZ1α for downward trend,
  • |ZMK|Z1α/2 for upward or downward trend.

In this thread you can find R code implementing this test.

Since the S statistic is compared to all possible pairs of observations then, instead of using normal approximation for p-value you can use permutation test that is obvious for this case. First, you compute S statistic from your data and then you randomly shuffle your data multiple times and compute it for each of the samples. p is simply the proportion of cases when SdataSpermutation for upward trend or SdataSpermutation for downward trend.


Gilbert, R.O. (1987). Statistical Methods for Environmental Pollution Monitoring. Wiley, NY.

Önöz, B., & Bayazit, M. (2003). The power of statistical tests for trend detection. Turkish Journal of Engineering and Environmental Sciences, 27(4), 247-251.

Tim
quelle
1

Das Problem, das Sie haben "Ich kann die klassische lineare Regression aufgrund einer starken zeitlichen (seriellen) Autokorrelation zwischen Werten nicht verwenden." ist in Wirklichkeit eine Chance. Ich habe Ihre 27 Werte genommen und mit AUTOBOX eine Software (die ich mitentwickelt habe) verwendet, die (optional) automatisch ein mögliches Modell ermitteln kann. Hier ist das Diagramm für Ist / Anpassung und Prognose Geben Sie hier die Bildbeschreibung ein. Der ACF der Residuen ist hier mit Residuendiagramm hier Geben Sie hier die Bildbeschreibung ein. Das Modell ist hier Geben Sie hier die Bildbeschreibung einund hier Geben Sie hier die Bildbeschreibung einund hierGeben Sie hier die Bildbeschreibung ein. Zwei Koeffizienten beschreiben die Daten treffend mit einem geschätzten "Trend", auch bekannt als "Drift", dh einer Differenz von Periode zu Periode von -.596. Beachten Sie, dass dies eine Art von Trend ist, bei dem Ihr Modell die Zählzahlen 1,2, ... 27 als Prädiktorvariable verwendet hat. Wenn Ihre Daten auf diesen Trend hindeuten, hätte die Software festgestellt, dass er besser anwendbar ist. Ich werde versuchen, einen früheren Beitrag von mir zu finden, der diese beiden Arten von Trends vollständig detailliert / kontrastiert. Hier Identifizieren eines stochastischen Trendmodells und Erkennen des anfänglichen Trends oder der Ausreißer

Geben Sie hier die Bildbeschreibung ein

IrishStat
quelle
2
Die Autobox-Prognose verfehlt jeden interessanten Punkt 1996, 1999, 2000, 2009, an dem der jüngste Trend gebrochen ist. Es ist fast wie eine Phasenverschiebung um ein Jahr. Insofern erklärt es nichts.
Aksakal
Ihre vorherige Empfehlung (Zunge in der Wange), ein hochgradiges Polynom an Daten anzupassen, würde genau das tun, wonach Sie gefragt haben. Aber es geht uns nicht um Anpassung, sondern um Modellierung. Das Restdiagramm scheint einen Fehlerprozess aufgrund eines externen / unbekannten Faktors angemessen zu beschreiben. Alle Modelle sind falsch, aber einige sind nützlich. Ich glaube, dies ist ein nützliches Modell, aber wenn Sie glauben, dass Sie es besser machen können, veröffentlichen Sie bitte Ihre Ergebnisse, damit wir alle lernen können. Es gibt keine Erklärung für ein ARIMA-Modell, da die Vergangenheit nur ein Proxy für ausgelassene Variablen ist.
IrishStat
2
In diesem Fall scheint es nicht viel mit Statistiken zu tun zu haben. Es ist überhaupt keine interessante Statistikfrage. Es gibt einen offensichtlichen Trend, und OP muss die Physik des Phänomens untersuchen. Ich denke, diese Modellanpassungen wie von Autobox führen OP einfach in die falsche Richtung. Sie enthüllen nichts Wertvolles, was über das bereits Offensichtliche hinausgeht.
Aksakal
Die Frage ist, ob die Analytik das menschliche Auge ersetzen kann oder nicht ... Die Analyse zeigt, was das Auge unterstützt. Deshalb üben wir Statistiken, um möglicherweise mehr zu tun, als sofort sichtbar ist. Die AUTOBOX-Lösung führt das OP in die richtige Richtung, dh nach unten. Ihre Kommentare sind meiner Meinung nach überhaupt nicht produktiv, ABER wie ich zuvor (höflich) gefragt habe, geben Sie bitte eine auf Statistiken basierende Alternative an. Meiner Meinung nach ist dies eine sehr interessante statistische Frage und erfordert eine Antwort. Bitte geben Sie eine an, wenn Sie können.
IrishStat
1

Sie können den Rangkorrelationskoeffizienten von Spearman verwenden, um zu bestimmen, inwieweit Ihre Daten monoton sind. Es werden positive Werte für monoton ansteigende Daten und negative Werte für monoton abnehmende Daten (zwischen -1 und +1) zurückgegeben. Im Anschluss an den obigen Link, gibt es auch einen Abschnitt über Signifikanztests, obwohl ich bin sicher , die meisten Software - Pakete wird ein p-Wert für Sie getan haben , wenn Korrelationskoeffizienten der Berechnung (zB in Matlab: [RHO,PVAL] = corr(...); in R: cor.test(x,...))

Alexander F.
quelle
0

Sie können OLS verwenden, da keine serielle Autokorrelation vorliegt (zumindest in dem von Ihnen angegebenen Beispiel). Beachten Sie die Durbin-Watson-Teststatistik von 1,966 (≈2).

Die signifikant negative Koeffizientenschätzung für x1 ist also alles, was Sie brauchen, um so etwas zu sagen

Die beobachtete Anzahl [bestimmter Arten] nimmt um etwa 1.000 pro Jahr ab.

oder

Die beobachtete Anzahl [bestimmter Arten] sinkt um 628 bis 1.408 pro Jahr (bei 95% igem Vertrauen).

Dies setzt voraus, dass die Methode zur Zählung der Arten eine gute Abdeckung aufweist und über die Jahre in Ihrer Stichprobe konsistent ist.

Geben Sie hier die Bildbeschreibung ein

Dies wurde mit diesem Python-Code erstellt (sorry, ich habe kein R zur Hand):

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())
Amerika
quelle
0

Die Datenquelle zu kennen wäre sehr hilfreich, und auch die Information, ob die Werte von my.tsnegativ werden könnten oder nicht.

Wenn ich jedoch einen kurzen Blick auf die Handlung werfen möchte, anstatt einen konstanten linearen Trend zu sehen , schlage ich eher vor, dass die Zeitreihen nicht stationär und daher integriert sind . Beispielsweise werden auch Aktienkurse integriert, aber die Aktienrenditen nicht mehr (sie schwanken nahe 0).

Diese Hypothese kann auch mit dem Augmented Dickey Fuller Test getestet werden:

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

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

Da der p-Wert nicht niedriger als 0,05 ist, gibt es keinen Hinweis darauf, dass der Prozess stationär ist.

Um die Daten stationär zu machen, müssen Sie sie unterscheiden:

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

Geben Sie hier die Bildbeschreibung ein

Jetzt zeigen die Daten keinen Trend mehr und das einzige, was Sie finden, ist ein autoregressiver Term der Ordnung 2 (unter Verwendung acf(diff.ts)).

lambruscoAcido
quelle