Zrozumienie pasma ufności z regresji wielomianowej

14

Próbuję zrozumieć wynik, który widzę na poniższym wykresie. Zwykle używam Excela i otrzymuję linię regresji liniowej, ale w poniższym przypadku używam R i otrzymuję regresję wielomianową z poleceniem:

ggplot(visual1, aes(ISSUE_DATE,COUNTED)) + geom_point() + geom_smooth()

Więc moje pytania sprowadzają się do tego:

  1. Co to jest szary obszar (strzałka nr 1) wokół niebieskiej linii regresji? Czy jest to odchylenie standardowe regresji wielomianowej?

  2. Czy mogę powiedzieć, że wszystko, co znajduje się poza szarym obszarem (strzałka nr 2), jest „wartością odstającą”, a cokolwiek znajduje się w szarym obszarze (strzałka nr 3), mieści się w standardowym odchyleniu?

wprowadź opis zdjęcia tutaj

adhg
źródło

Odpowiedzi:

14

Szary pasek jest pasmem ufności dla linii regresji. Nie znam się wystarczająco na ggplot2, aby wiedzieć na pewno, czy jest to przedział ufności 1 SE, czy przedział ufności 95%, ale uważam, że jest to pierwszy ( Edytuj: ewidentnie jest to 95% CI ). Pasmo pewności reprezentuje niepewność dotyczącą twojej linii regresji. W pewnym sensie można by pomyśleć, że prawdziwa linia regresji jest tak wysoka jak góra tego pasma, tak niska jak dół lub inaczej porusza się w obrębie pasma. (Należy pamiętać, że to wyjaśnienie ma być intuicyjne i nie jest technicznie poprawne, ale w pełni poprawne wyjaśnienie jest trudne dla większości osób).

Powinieneś użyć pasma pewności, aby pomóc Ci zrozumieć / pomyśleć o linii regresji. Nie należy go używać do myślenia o punktach surowych danych. Pamiętaj, że linia regresji reprezentuje średnią w każdym punkcie X (jeśli musisz to lepiej zrozumieć, może pomóc ci przeczytać moją odpowiedź tutaj: jaka jest intuicja za warunkowymi rozkładami Gaussa? ). Z drugiej strony z pewnością nie oczekujesz, że każdy zaobserwowany punkt danych będzie równy średniej warunkowej. Innymi słowy, nie należy używać przedziału ufności do oceny, czy punkt danych jest wartością odstającą. YX


( Edycja: ta uwaga jest na marginesie głównego pytania, ale ma na celu wyjaśnienie punktu dla PO ).

Regresja wielomianowa nie jest regresją nieliniową, nawet jeśli to, co otrzymujesz, nie wygląda na linię prostą. Termin „liniowy” ma bardzo specyficzne znaczenie w kontekście matematycznym, w szczególności, że parametry, które szacujesz - bety - są współczynnikami. Regresja wielomianowa oznacza po prostu, że zmiennymi towarzyszącymi są , X 2 , X 3XX2X3 itd., To znaczy, że mają one nieliniową zależność od siebie, ale twoje bety są nadal współczynnikami, a zatem jest to nadal model liniowy. Gdyby twoje beta były, powiedzmy, wykładnikami, to miałbyś model nieliniowy.

Podsumowując, to, czy linia wygląda prosto, nie ma nic wspólnego z tym, czy model jest liniowy, czy nie. Kiedy dopasujesz model wielomianowy (powiedzmy za pomocą i X 2 ), model nie „wie”, że np. X 2 jest w rzeczywistości tylko kwadratem X 1 . „Uważa”, że są to tylko dwie zmienne (chociaż może rozpoznać, że istnieje pewna wielokoliniowość). Tak więc w rzeczywistości dopasowuje ona (prostą / płaską) płaszczyznę regresji do przestrzeni trójwymiarowej zamiast (zakrzywionej) linii regresji w przestrzeni dwuwymiarowej. Nie jest to dla nas przydatne, a nawet niezwykle trudne do zobaczenia od X 2XX2X2)X1X2)Jest to doskonała funkcja . W rezultacie nie zastanawiamy się nad tym w ten sposób, a nasze wykresy są w rzeczywistości dwuwymiarowymi rzutami na płaszczyznę ( X , Y ) . Niemniej jednak w odpowiedniej przestrzeni linia jest w pewnym sensie „prosta”. X(X, Y)

Z matematycznego punktu widzenia model jest liniowy, jeśli parametry, które próbujesz oszacować, są współczynnikami. W celu dalszego wyjaśnienia, rozważ porównanie standardowego modelu regresji liniowej (OLS) z prostym modelem regresji logistycznej przedstawionym w dwóch różnych formach:
ln ( π ( Y )

Y=β0+β1X+ε
ln(π(Y)1-π(Y))=β0+β1X
π(Y)=exp(β0+β1X)1+exp(β0+β1X)
βββ uogólnionego modelu liniowego, ponieważ można go przepisać jako model liniowy. Aby uzyskać więcej informacji na ten temat, pomocne może być przeczytanie mojej odpowiedzi tutaj:Różnica między modelami logit i probit ).
gung - Przywróć Monikę
źródło
+1 Przykłady w dokumentacji sugerują mi, że pewność jest dość wysoka, może 95%.
whuber
@gung dzięki za szczegółową odpowiedź (również dostałeś czek!). Przeczytałem twoje pierwsze oświadczenie i jestem trochę zdezorientowany. Czy możesz prosić o więcej informacji na ten temat. Jeśli wynikowa linia nie jest linią prostą (y = mx + b), to co czyni ją liniową? Jeszcze raz dziękuję za odpowiedź.
adhg
Dokumenty na docs.ggplot2.org/0.9.3.1/stat_smooth.html zapewniają, że jest to 95% przedział ufności dla krzywej regresji.
whuber
2
Myślę, że jest tu używana domyślna, bardziej płynna Loess niż regresja wielomianowa?
xan
@ Adhg, myślałem, że gdzieś pokryłem liniowy vs. nieliniowy, ale nie mogłem go znaleźć. Więc dodałem tutaj dodatkowy materiał. HTH
gung - Przywróć Monikę
11

Aby dodać do już istniejących odpowiedzi, przedział reprezentuje przedział ufności średniej, ale na podstawie pytania wyraźnie szukasz przedziału prognozy . Interwały przewidywania to zakres, który, jeśli narysujesz jeden nowy punkt, teoretycznie byłby zawarty w zakresie X% czasu (w którym możesz ustawić poziom X).

library(ggplot2)
set.seed(5)
x <- rnorm(100)
y <- 0.5*x + rt(100,1)
MyD <- data.frame(cbind(x,y))

Możemy wygenerować ten sam wykres, który pokazałeś w swoim początkowym pytaniu, z przedziałem ufności wokół średniej wygładzonej linii regresji lessowej (domyślnie 95% przedział ufności).

ConfiMean <- ggplot(data = MyD, aes(x,y)) + geom_point() + geom_smooth()
ConfiMean

wprowadź opis zdjęcia tutaj

Dla szybkiego i brudnego przykładu przedziałów predykcji tutaj generuję przedział predykcji za pomocą regresji liniowej z wygładzającymi splajnami (więc niekoniecznie jest to linia prosta). Z przykładowymi danymi robi to całkiem nieźle, dla 100 punktów tylko 4 są poza zakresem (i określiłem 90% przedział dla funkcji przewidywania).

#Now getting prediction intervals from lm using smoothing splines
library(splines)
MyMod <- lm(y ~ ns(x,4), MyD)
MyPreds <- data.frame(predict(MyMod, interval="predict", level = 0.90))
PredInt <- ggplot(data = MyD, aes(x,y)) + geom_point() + 
           geom_ribbon(data=MyPreds, aes(x=fit,ymin=lwr, ymax=upr), alpha=0.5)
PredInt

wprowadź opis zdjęcia tutaj

Teraz jeszcze kilka notatek. Zgadzam się z Ladislavem, że powinieneś rozważyć metody prognozowania szeregów czasowych, ponieważ masz regularne serie od jakiegoś czasu w 2007 roku i z twojego fabuły jasno wynika, że ​​jeśli spojrzysz mocno na sezonowość (połączenie punktów sprawi, że będzie to wyraźniejsze). Do tego proponuję sprawdzić na forecast.stl funkcji w pakiecie prognozy gdzie można wybrać sezonowy okna i zapewnia solidną rozkład sezonowości i trendu z wykorzystaniem lessu. Wspominam o solidnych metodach, ponieważ twoje dane mają kilka zauważalnych skoków.

Mówiąc bardziej ogólnie dla danych z szeregów innych niż czasowe, rozważę inne solidne metody, jeśli masz dane z okazjonalnymi wartościami odstającymi. Nie wiem, jak generować interwały predykcyjne przy użyciu Loess bezpośrednio, ale możesz rozważyć regresję kwantylową (w zależności od tego, jak ekstremalne muszą być interwały predykcyjne). W przeciwnym razie, jeśli chcesz po prostu dopasować, aby być potencjalnie nieliniowym, możesz rozważyć splajny, aby umożliwić zmianę funkcji w funkcji x.

Andy W.
źródło
4

Niebieska linia to gładka regresja lokalna . Możesz kontrolować poruszenie linii za pomocą spanparametru (od 0 do 1). Ale twój przykład to „szereg czasowy”, więc spróbuj poszukać bardziej odpowiednich metod analizy niż dopasować tylko gładką krzywą (która powinna służyć jedynie do ujawnienia możliwej tendencji).

Zgodnie z dokumentacją do ggplot2(i książki w komentarzu poniżej): stat_smooth jest przedział ufności z gładkie kolorem szarym. Jeśli chcesz wyłączyć przedział ufności, użyj se = FALSE.

Ladislav Naďo
źródło
1
(1) Nie widzę w twoim odnośniku, gdzie twierdzi, że szary obszar jest punktowym przedziałem ufności. Z przykładów wydaje się całkiem jasne, że szary obszar jest natomiast przedziałem ufności dla krzywej . (2) Nikt rozsądnie nie określiłby znacznej części punktów poza szarą strefą jako „wartości odstające”; jest ich po prostu za dużo.
whuber
(1) mój błąd, tutaj dodaję książkę, która odnosi się do „punktowego przedziału ufności”: Wickham H (2009) ggplot2 Elegant Graphics for Data Analysis. Media 212. (strona 14). (2) Zgadzam się.
Ladislav Naďo
Czy którykolwiek z twoich odniesień określa, jaki jest domyślny poziom ufności?
whuber
Nie, nie mogę znaleźć odniesienia do ustawień domyślnych.
Ladislav Naďo
Znalazłem domyślny na pierwszej stronie twojego źródła: „(domyślnie 0.95)”. Oznacza to, że albo ta wygładzająca ma poważne błędy, albo twoja interpretacja odniesienia jest błędna: ponieważ tak duża część punktów danych zwykle leży poza szarym obszarem i przy założeniu poprawności kodu, szary obszar musi być obszarem pewności dla prognozy (dopasowana krzywa), a nie dla obszaru ufności dla punktów.
whuber