Model regresji, którego zmienną odpowiedzi jest dzień w roku, w którym zdarzenie roczne (zwykle) ma miejsce

13

W tym konkretnym przypadku mam na myśli dzień, w którym jezioro zamarza. Ta data „zalania” występuje tylko raz w roku, ale czasami wcale nie występuje (jeśli zima jest ciepła). Tak więc w ciągu jednego roku jezioro może zamarznąć w dniu 20 (20 stycznia), a w innym roku może wcale nie zamarznąć.

Celem jest ustalenie kierowców, którzy planują datę przyjazdu.

Prognozami byłyby na przykład temperatura powietrza na jesień / zimę każdego roku. Rok może być predyktorem długoterminowego trendu liniowego.

1) Czy liczba całkowita „dzień roku” jest rozsądną zmienną odpowiedzi (jeśli nie, co to jest?)?

2) Jak sobie radzić z latami, kiedy jezioro nigdy nie zamarzło?

Edytować:

Nie wiem, jaka jest etykieta, ale pomyślałem, że opublikuję wynik otrzymanych sugestii. Oto gazeta, otwarty dostęp . Otrzymałem dobre opinie na temat zastosowanego podejścia, dzięki @pedrofigueira i @cboettig. Oczywiście błędy są moje.

rbatt
źródło
jaki masz zestaw danych? Środki przez wszystkie dni w roku?
Donbeo
@Donbeo, zalodzenie występuje raz w roku, więc zmienna odpowiedzi ma roczną rozdzielczość. Inne dane przychodzą również z częstotliwością roczną, ale w niektórych przypadkach można je przekształcić w dane o wyższej częstotliwości.
rbatt
W jakim celu chcesz wziąć pod uwagę datę zalania? Proszę o to, ponieważ modelowanie statystyczne nigdy nie jest prawdziwe ani fałszywe, ale przydatne lub bezużyteczne. Zatem zastosowanie wyników statystycznych ma znaczenie, a także wgląd, czy zmienna docelowa jest w ogóle użyteczna. Np. Co się stanie, jeśli jezioro zamarznie z cienką lodową osłoną już w październiku, ale topi się w tym samym tygodniu i nigdy więcej nie zamarza tej zimy? Może wykonujesz swoją analizę, aby przewidzieć, kiedy zacząć używać opon zimowych? To może podpowiedzieć przydatną odpowiedź na drugie pytanie.
Horst Grünbusch
Dziękuję za twoje przemyślenia, @ HorstGrünbusch. Chcę wiedzieć, w jaki sposób zmiany klimatu wpłynęły na lód, ponieważ nałożenie pokrywy na system wodny wpływa na wiele rzeczy (wymiana gazowa, światło itp.). Jedynymi dostępnymi danymi na temat lodu są te daty nałożenia lodu (nie grubość itp.).
rbatt

Odpowiedzi:

4

Myślę, że można uznać „dzień roku” za zmienną odpowiedzi na regresję wielowymiarową. Aby poradzić sobie z latami, w których jezioro nigdy nie zamarzło, po prostu uważam, że dzień zamarzania jest dłuższy niż zauważalna dolna granica, która odpowiada, na przykład, dniu, w którym zawartość lodu zaczyna się topić (lub całkowicie się topi, jeśli chcesz bądź bardzo konserwatywny). Teoretycznie powinno się potem zamrozić lub może potem zamrozić, ale nie wiemy. W ten sposób możesz wykorzystać zgromadzone dane dotyczące różnych parametrów, aby zrozumieć, jak zależy od nich dzień zamrożenia, jeśli pozwolono, by było ono późniejsze niż ostatni możliwy do zaobserwowania termin. Następnie możesz użyć modelu Tobitdo obsługi jednocześnie dni zamrożenia (odpowiadających „normalnym” punktom danych) i dolnym limitom (odpowiadającym limitom, a zatem regresji ocenzurowanej).

Aby poprawnie uwzględnić zmierzone dolne granice w analizie, można użyć modelu regresji ocenzurowanej, w którym zmienna zależna ma wartość odcięcia na wartości dolnej granicy. Wyżej wymieniony model Tobit jest odpowiedni dla tego przypadku; zakłada istnienie nieobserwowalnej (ukrytej) zmiennej zależnej która w naszym przypadku odpowiada dacie zamarzania, jeśli zima przedłuży się na czas nieokreślony. Zauważalny zmienna zależna Y I (to jest mierzone niższe ograniczenie datę zamrażania) Następnie przyjmuje się jako równą utajonego zmiennej w nieobecności Dolna granica L ı i równej dolnej granicy inaczejyjayjaL.ja

yja={yjajafa¯L.ja(to znaczyyja<L.ja)L.jajafayjaL.ja

Zastosowanie modelu Tobit do obsługi cenzury obserwacja po obserwacji skutkuje funkcją logarytmu wiarygodności formularza

L.=jayja<L.jaln[ϕ(yja-Xjajotβjotσ)/σ]+jayjaL.jaln[Φ(L.ja-Xjajotβjotσ)]

gdzie i Φ ( . ) oznaczają odpowiednio funkcje prawdopodobieństwa i gęstości skumulowanej standardowego rozkładu normalnego. Indeks i działa na podstawie obserwacji, a j na zmiennych niezależnych. Roztwór do analizy regresji liniowej jest zestaw parametrów p j (w tym z osią) maksymalizuje funkcję log-likelihood.ϕ(.)Φ(.)jajotβjot

pedrofigueira
źródło
3
1365011365
1
Argumentowałbym, że pojęcie dolnego limitu zachowuje swoje znaczenie, jeśli każdy rok można uznać za niezależny eksperyment, tj. Jeśli eksperyment nie ma pamięci, a datę zamrożenia w ciągu jednego roku można uznać za całkowicie niezależną od daty w Poprzednia; to powinno zależeć tylko od parametrów danego roku. Jeśli tak jest, to według mojej najlepszej wiedzy zmienna nie jest okrągła.
pedrofigueira
1
Tak, w niektórych okolicznościach takie techniki ad hoc mogą działać. Gdy (a) wydarzenie zawsze ma miejsce każdego roku i (b) wydarzenia są ściśle rozproszone wokół przewidywalnej daty, nic ci nie będzie, wybierając odpowiednio pochodzenie roku. Ale przy większej dyspersji (co jest prawdopodobne w tym przypadku) - lub w najbardziej drastycznych przypadkach, gdy zdarzenie może być całkowicie nieobecne - naprawdę musisz zastosować metody statystyki cyklicznej („kierunkowej”). BTW, szeregowa korelacja lub niezależność to odrębny problem.
whuber
2
Myślę, że górna granica powinna być określona tak precyzyjnie, jak to możliwe; jeśli można to zrobić, analiza Tobiasza staje się bardziej wnikliwa. Sugerowałbym jako dolną granicę (zamrażanie mogło zdarzyć się wcześniej, ale nie było obserwowane / obserwowalne) DoY, powyżej którego uważasz, że nie można już wykryć topnienia. Być może można to zrobić, patrząc na (P, T) wymagany do zamrożenia wody i zakładając stałe ciśnienie, wybierz ostatnie lokalne minima roku lub podobne. Wierzę, że pytanie w tym momencie staje się bardziej pytaniem fizycznym niż statystycznym (ale i tak bardzo interesującym).
pedrofigueira
2
@rbatt Myślę, że ta odpowiedź jest rozsądna. Data rozpoczęcia jest dowolna, możesz zacząć od innej daty lub użyć liczb ujemnych; Nie widzę problemu. Cykliczność rozwiązuje problem, numerując według dnia w roku.
cboettig
1

Dzień roku jest jedną sensowną zmienną predykcyjną, dlatego myślę, że rozsądnie jest traktować ją jak sugeruje @pedrofigueira.

W przypadku innych zmiennych predykcyjnych może być konieczne zachowanie ostrożności podczas reprezentowania czasu. Wyobraź sobie na przykład, że masz temperatury powietrza w dzień - jak modelowałbyś temperaturę powietrza jako predyktor lodu w dzień? Nie sądzę, aby porównywanie próbek z tego samego roku było wystarczające.

W każdej takiej analizie myślę, że pomaga spisać, co twoim zdaniem może być wiarygodnym modelem (lub modelami) generowania danych (gdzie pewna fizyka może być dostępna jako przewodnik). Na przykład rozsądnym modelem może być całkowanie liczby dni poniżej zamarzania, a kiedy ta całka przekroczy próg (np. Związany z masą termiczną jeziora), następuje zalodzenie. Z takiego modelu można następnie zapytać, co jest rozsądnym przybliżeniem, a co nie.

Na przykład dzień w roku jako predyktor ma znaczenie dla tego modelu tylko w takim stopniu, w jakim dzień w roku jest dobrym predyktorem temperatury. Znając w ten sposób tylko dzień roku, wystarczyłby przeciętny dzień w roku odpowiadający progowi zalodzenia, być może z pewnym rozkładem normalnym wynikającym z wahań temperatury w ciągu roku, a zatem szukającym trendu w ciągu dnia roku jest całkowicie uzasadnione.

Ale jeśli znasz inne zmienne, takie jak temperatura powietrza w ciągu dnia, prawdopodobnie masz do czynienia z nieco bardziej skomplikowanym modelem w bardziej bezpośredni sposób. Jeśli po prostu używasz rocznych wartości (minimum? Oznacza?) Niż zmienna jako predyktor lodowego dnia, wydaje się również rozsądne (na podstawie tego samego argumentu jak powyżej).

cboettig
źródło
+1 za wskazanie na fizykę. Jeśli nie możesz wyjaśnić wyniku statystycznego według przyczyny, może on być fałszywy, nawet jeśli okazał się znaczący.
Horst Grünbusch
Żeby było jasne, dzień roku na zalanie jest zmienną odpowiedzi ... to jest to, co próbuję „przewidzieć” (w twojej odpowiedzi nazywasz ją „predyktorem” w kilku miejscach). Czy masz jakieś sugestie, jak radzić sobie z latami bez zamrażania (inne sugestie Tobit poniżej)?
rbatt
1
@rbatt, przepraszam za zamieszanie. Najprostszym modelem jest 1D, wykorzystując dzień roku, w którym występowanie lodu występowało w przeszłości jako predyktor. Ale jeśli chcesz wykryć trendy w lodzie, masz pełną DATĘ, a nie Dzień Roku, jako rzecz, którą chcesz przewidzieć, ponieważ prognozy, powiedzmy, na 2020 r. Mogą się wtedy różnić od
prognoz
0

W przypadku tego problemu potrzebujesz dwóch zmiennych odpowiedzi. Jedna odpowiedź boolowska, która wskazuje, czy jezioro zamarzło, czy nie, i jedna odpowiedź całkowita, podająca dzień roku, pod warunkiem, że wskaźnik jest prawdziwy. W latach, gdy jezioro zamarzło, obserwuje się zarówno wartość logiczną, jak i całkowitą. W latach, gdy jezioro nie zamarzło, wartość logiczna jest obserwowana, a liczba całkowita nie. Możesz użyć regresji logistycznej dla wartości logicznej. Regresja dla dnia roku może być zwykłą regresją liniową.

Okrągły charakter dnia w roku nie powinien stanowić problemu, pod warunkiem, że można liczyć kolejne możliwe dni zamrożenia w danym okresie. Jeśli zastanawiasz się, od czego zacząć numerowanie, sugerowałbym dzień, w którym dokonano pomiaru predyktorów. Jeśli chcesz, aby model reprezentował skutki przyczynowe, musi być tak, że wszystkie predyktory zostały zmierzone przed jakimkolwiek możliwym zamrożeniem.

Aby obsłużyć liczbę całkowitą i ograniczony charakter dnia w roku, można zastosować model dyskretyzacji. Oznacza to, że istnieje prawdziwa wartość ukryta, która generuje obserwację w następujący sposób: jeśli wartość mieści się w granicach, wówczas obserwacja jest równa wartości ukrytej zaokrąglonej do najbliższej liczby całkowitej, w przeciwnym razie wartość zostanie obcięta do granic. Sama wartość ukryta może być następnie zamodelowana jako funkcja liniowa predyktorów plus szum.

Tom Minka
źródło
Rozumiem założenia tego podejścia, ale nie jestem pewien, jak je wdrożyć. Jak mam uporządkować dane i oszacować wpływ potencjalnych kandydatów na wartość logiczną / datę? Pracuję w R.
rbatt
Umieść dane w ramce danych, w której jedna kolumna to wartość logiczna, a druga to data. Następnie użyj: fit1 = glm (zamrożony ~ x, ramka, rodzina = „dwumianowy”) fit2 = lm (data ~ x, ramka)
Tom Minka
Przepraszam, czy mogę zrozumieć „fit2 = lm (data ~ x, ramka, podzbiór = wartość logiczna == PRAWDA)”?
Sergio
Byłyby to dwa osobne modele. W modelu, w którym „data” jest odpowiedzią, co zrobić z latami, kiedy woda nigdy nie zamarzła? Jeśli po prostu usunę te lata, to poprawiam wyniki (lub poważnie ograniczam obserwowany zakres odpowiedzi), ponieważ wybiórczo usuwam najbardziej ekstremalne obserwacje odpowiedzi (tj. Nigdy nie zamrażanie jest najbardziej ekstremalną datą zamrożenia). Tak więc lata, w których woda nigdy nie marznie, powinny nam powiedzieć coś o wpływie tych kierowców na lód. Wydaje się, że informacje w obu modelach należy połączyć.
rbatt
Nie podoba mi się traktowanie zamrażania jako zmiennej boolowskiej, ponieważ proces leżący u jego podstaw jest bez wątpienia bardziej ciągły.
cboettig
0

To, co masz, to dane czasu do zdarzenia, które są również nazywane analizą przeżycia. To nie jest tak naprawdę moja dziedzina, więc nie udzielam tutaj szczegółowej odpowiedzi. Googling w poszukiwaniu „danych dotyczących czasu zdarzenia” lub „analizy przeżycia” da ci wiele trafień!

Dobrym punktem wyjścia może być rozdział (13) na temat analizy przeżycia w Venables / Ripley: MASS lub klasyczny „The Statistics Analysis of Failure Time Data, Second Edition” John D. Kalbfleisch, Ross L. Prentice (autor)

EDYCJA, ROZSZERZONA ODPOWIEDŹ

Alternatywą dla analizy przeżycia może być aproksymacja regresji logistycznej porządkowej. Przykładowo, w twoim przypadku pierwszego dnia zamrożenia, zdefiniuj niektóre daty, dla których podajesz stan „były zamrożone przed lub przed”, 0 (bez zamrażania), 1 (zamrażanie). To ładnie dostosowuje się do lat bez zamrażania, po prostu masz wektor odpowiedzi zero. Jeśli wybranymi datami są, powiedzmy,

1:08   15:08 1:09 15:09 1:10 15:10 1:11 15:11 1:12  15:12  1:01  15:01
and the actual date of first freezing was  17:11, then your observed vector will be
0       0    0    0     0    0     0    0      1     1     1      1

i ogólnie wszystkie wektory odpowiedzi będą miały początkowy blok zer, a następnie blok jedności. Następnie możesz użyć tego z reginalną regresją logistyczną, uzyskując oszacowane prawdopodobieństwo zamrożenia dla każdej daty. Wykreślenie tej krzywej da przybliżenie krzywej przeżycia (w tym kontekście przeżycie staje się „jeszcze nie zamrożone”).

EDIT

Można również zobaczyć twoje dane jako powtarzające się zdarzenia, ponieważ rzeka zawiesza się (prawie) każdego roku. Zobacz moją odpowiedź tutaj: Znalezienie znaczących predyktorów readmisji psychiatrycznych

kjetil b halvorsen
źródło