Jak analizować trend w nieokresowych szeregach czasowych

12

Załóżmy, że mam następujące nieokresowe szeregi czasowe. Oczywiście trend maleje i chciałbym to udowodnić jakimś testem (z wartością p ). Nie jestem w stanie zastosować klasycznej regresji liniowej ze względu na silną czasową (szeregową) autokorelację między wartościami.

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)

wprowadź opis zdjęcia tutaj

Jakie są moje opcje?

Ladislav Naďo
źródło
4
Myślę, że fakt, że seria nie jest okresowa ( frequency=1), jest tutaj mało istotny. Bardziej istotnym problemem może być to, czy chcesz określić funkcjonalną formę dla swojego modelu.
Richard Hardy,
1
Więcej informacji o tym, czym są dane, prawdopodobnie przydałoby się w modelowaniu.
bdeonovic
Dane to liczba osobników (w tysiącach) niektórych gatunków liczona każdego roku w zbiorniku wodnym.
Ladislav Naďo
1
@LadislavNado czy Twoja seria jest tak krótka, jak w podanym przykładzie? Pytam, ponieważ jeśli tak, to zmniejsza liczbę metod, które można zastosować ze względu na wielkość próby.
Tim
1
Oczywistość malejącego aspektu jest dość zależna od skali, co, moim zdaniem, należy wziąć pod uwagę
Laurent Duval

Odpowiedzi:

7

Jak powiedziałeś, trend w przykładowych danych jest oczywisty. Jeśli chcesz tylko uzasadnić ten fakt testem hipotez, niż oprócz regresji liniowej (oczywisty wybór parametryczny), możesz zastosować nieparametryczny test Manna-Kendalla dla trendu monotonicznego. Test służy do

ocenić, czy istnieje monotoniczny trend wzrostowy lub spadkowy zmiennej procentowej w czasie. Monotoniczny trend wzrostowy (spadkowy) oznacza, że ​​zmienna stale rośnie (maleje) w czasie, ale trend może być liniowy lub nie. ( http://vsp.pnnl.gov/help/Vsample/Design_Trend_Mann_Kendall.htm )

ponadto, jak zauważył Gilbert (1987), test

jest szczególnie przydatny, ponieważ dozwolone są brakujące wartości, a dane nie muszą być zgodne z żadnym konkretnym rozkładem

Statystyka testowa jest różnicą między różnicami ujemnymi i dodatnimi pomiędzy wszystkimi możliwymi parami n ( n - 1 ) / 2 , tj.xjxin(n1)/2

S=i=1n1j=i+1nsgn(xjxi)

sgn()S τ1+1τ

τ=Sn(n1)/2

pn10pSS

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

ZMK

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

ZMK

  • ZMKZ1α
  • ZMKZ1α
  • |ZMK|Z1α/2

W tym wątku można znaleźć kod R implementujący ten test.

SpSpSdataSpermutationSdataSpermutation


Gilbert, RO (1987). Metody statystyczne monitorowania zanieczyszczenia środowiska. Wiley, NY.

Önöz, B., i Bayazit, M. (2003). Moc testów statystycznych do wykrywania trendów. Turkish Journal of Engineering and Environmental Sciences, 27 (4), 247-251.

Tim
źródło
1

Problem, który masz: „Nie mogę użyć klasycznej regresji liniowej z powodu silnej czasowej (szeregowej) autokorelacji między wartościami”. jest w rzeczywistości okazją. Wziąłem twoje 27 wartości i użyłem AUTOBOX oprogramowania (które pomogłem opracować), które może (opcjonalnie) automatycznie określić możliwy model. Oto rzeczywisty / dopasowany i prognozowany wykres wprowadź opis zdjęcia tutaj. ACF resztek jest tutaj z resztkową działką tutaj wprowadź opis zdjęcia tutaj. Model jest tu wprowadź opis zdjęcia tutaji tu wprowadź opis zdjęcia tutaji tutajwprowadź opis zdjęcia tutaj. Dwa współczynniki trafnie opisują dane z szacowanym „trendem”, czyli „dryfowaniem”, tj. Różnicą między okresami wynoszącą -596. Zauważ, że jest to jeden z trendów, w którym twój model używał liczb zliczających 1,2, ... 27 jako zmiennej predykcyjnej. Jeśli twoje dane sugerują ten rodzaj trendu, oprogramowanie uznałoby go za bardziej odpowiedni. Spróbuję znaleźć mój wcześniejszy post, który w pełni opisał / przeciwstawił te dwa rodzaje trendów. Tutaj Identyfikacja stochastycznego modelu trendu i Wykrywanie początkowego trendu lub wartości odstających

wprowadź opis zdjęcia tutaj

IrishStat
źródło
2
W prognozie Autobox brakuje każdego interesującego punktu 1996, 1999, 2000, 2009, w którym najnowszy trend jest przełamany. To prawie jak przesunięcie fazowe o jeden rok. Pod tym względem nic nie wyjaśnia.
Aksakal
Twoje poprzednie zalecenie (język w policzek), aby dopasować wielomian wysokiego stopnia do danych, zrobiłoby to, o co prosiłeś. Ale nie chodzi o dopasowanie, chodzi o modelowanie. Wykres resztkowy wydaje się odpowiednio opisywać proces błędu z powodu jakiegoś zewnętrznego / nieznanego czynnika. Wszystkie modele są błędne, ale niektóre są przydatne. Uważam to za przydatny model, ale jeśli uważasz, że możesz to zrobić lepiej, opublikuj swoje wyniki, abyśmy wszyscy mogli się uczyć. Nie ma żadnego wyjaśnienia z modelu ARIMA, ponieważ przeszłość jest jedynie proxy dla pominiętych zmiennych.
IrishStat
2
W tym przypadku wydaje się, że nie ma wiele wspólnego ze statystykami. To nie jest en interesujące pytanie o statystyki. Istnieje oczywisty trend, a OP musi badać fizykę tego zjawiska. Myślę, że te modele pasujące do Autobox po prostu prowadzą OP w złym kierunku. Nie ujawniają niczego wartościowego poza tym, co już jest widoczne.
Aksakal
Pytanie brzmi, czy analiza może zastąpić ludzkie oko ... Analiza pokazuje, co oko obsługuje, dlatego ćwiczymy statystyki, aby zrobić więcej, niż jest to natychmiast widoczne. Rozwiązanie AUTOBOX prowadzi OP we właściwym kierunku, tj. W dół. Wasze komentarze wcale nie są produktywne, ale, jak już wcześniej prosiłem (uprzejmie), proszę podać realną alternatywę opartą na statystykach. Moim zdaniem jest to bardzo interesujące pytanie statystyczne i wymaga odpowiedzi. Podaj jeden, jeśli możesz.
IrishStat
1

Możesz użyć współczynnika korelacji rang Spearmana, aby określić stopień, w jakim dane są monotoniczne. Zwraca dodatnie wartości dla monotonicznych danych rosnących i ujemne wartości dla monotonicznych danych malejących (od -1 do +1). W związku z linku powyżej, istnieje również testowanie istotności części dotyczącej, chociaż jestem pewien, że większość pakietów oprogramowania będzie miał wartość p dla ciebie zrobić przy obliczaniu współczynników korelacji (np Matlab: [RHO,PVAL] = corr(...); w R: cor.test(x,...))

Alexander F.
źródło
0

Możesz użyć OLS, ponieważ nie ma seryjnej autokorelacji (przynajmniej w podanej próbce); zwróć uwagę na statystykę testową Durbina-Watsona wynoszącą 1,966 (≈2).

Zatem znacząco ujemny szacunek współczynnika dla x1 jest wszystkim, co musisz powiedzieć

Obserwowana liczba [niektórych gatunków] zmniejsza się o około 1000 rocznie.

lub

Obserwowana liczba [niektórych gatunków] maleje o od 628 do 1 408 rocznie (przy 95% poziomie ufności).

Zakłada się, że metodyka liczenia gatunków ma dobry zasięg i jest spójna przez lata w twojej próbie.

wprowadź opis zdjęcia tutaj

Zostało to utworzone przy użyciu tego kodu w języku Python (przepraszam; nie mam pod ręką R.):

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())
Ameryka
źródło
0

Bardzo pomocne byłoby poznanie źródła danych, a także informacji, czy wartości my.tsmogą być ujemne, czy nie.

Jednak, patrząc na fabułę, zamiast dostrzec stały trend liniowy , sugeruję raczej, że szeregi czasowe nie są nieruchome, a więc zintegrowane . Na przykład ceny akcji są również zintegrowane, ale zapasy już nie zwracają (wahają się w pobliżu 0).

Tę hipotezę można również przetestować przy użyciu testu Augmented Dickey Fuller:

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

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

Biorąc pod uwagę, że wartość p nie jest niższa niż 0,05, nie ma dowodów na to, że proces jest stacjonarny.

Aby dane były nieruchome, musisz je rozróżnić:

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

wprowadź opis zdjęcia tutaj

Teraz dane nie wykazują już żadnego trendu , a jedyne, co znajdziesz, to autoregresyjny warunek rzędu 2 (użycie acf(diff.ts)).

lambruscoAcido
źródło