Dlaczego regresja liniowa nie jest w stanie przewidzieć wyniku prostej deterministycznej sekwencji?

9

Mój kolega wysłał mi ten problem, najwyraźniej robiąc obchód w Internecie:

If $3 = 18, 4 = 32, 5 = 50, 6 = 72, 7 = 98$, Then, $10 =$ ?

Odpowiedź wydaje się być 200.

3*6  
4*8  
5*10  
6*12  
7*14  
8*16  
9*18  
10*20=200  

Kiedy wykonam regresję liniową w R:

data     <- data.frame(a=c(3,4,5,6,7), b=c(18,32,50,72,98))  
lm1      <- lm(b~a, data=data)  
new.data <- data.frame(a=c(10,20,30))  
predict  <- predict(lm1, newdata=new.data, interval='prediction')  

Dostaję:

  fit      lwr      upr  
1 154 127.5518 180.4482  
2 354 287.0626 420.9374  
3 554 444.2602 663.7398  

Więc mój model liniowy przewiduje 10=154.

Kiedy kreślę dane, wyglądają liniowo ... ale oczywiście założyłem coś, co jest nieprawidłowe.

Próbuję nauczyć się, jak najlepiej używać modeli liniowych w R. Jaki jest właściwy sposób analizy tej serii? Gdzie popełniłem błąd?

Brett Phinney
źródło
7
Ahem . (i) Wyrażenie problemu jest bezsensowne. Jak 3 = 18? Z pewnością cel jest podobnyfa(3))=18; (ii) jeśli widzisz wystarczająco dużo do pisania18=3)×6, 32=4×8itd., z pewnością możesz zobaczyć wystarczająco dużo, aby podzielić drugi termin na każdy z nich (6=3)×2), 8=4×2)itd.), aby następnie napisać: 18=3)×3)×2), 32=4×4×2), itp., i natychmiast zauważ kwadrat,fa(x)=2)x2). (
Wykonałeś
4
Ponadto, czy problem określał minimalne kryterium zawartości informacji w odpowiedzi? Jeśli dobrze pamiętam moją matematykę, istnieje niezliczona liczba funkcji pasujących do tych punktów, z których każda daje różne odpowiedzifa(10). Zazwyczaj nie jestem pedantyczny, ale e-maile o marnowaniu czasu na to zasługują.
jasna gwiazda
1
@ TrevorAlexander, jeśli uważasz, że to pytanie jest stratą czasu, po co zawracać sobie głowę odpowiedzią? Oczywiście niektórzy ludzie uważają to za interesujące.
jwg
@jwg, ponieważ ktoś się myli w Internecie . ;)
jasna gwiazda

Odpowiedzi:

23

Model regresji, taki jak ten dopasowany przez lm()domyślnie, zakłada, że ​​podstawowy proces generowania danych jest probabilistyczny . Zakładasz, że reguła, którą próbujesz wymodelować, jest deterministyczna . Dlatego istnieje rozbieżność między tym, co próbujesz zrobić, a sposobem, w jaki próbujesz to zrobić.

Istnieją inne programy (tj. Nie R), które zostały wyraźnie zaprojektowane, aby znaleźć / dopasować najprostszą funkcję do danych deterministycznych (przykładem może być Eureqa ). Może być do tego pakiet R (o którym nie wiem), ale R jest przeznaczony do statystycznego modelowania danych probabilistycznych.

Jeśli chodzi o lm()udzieloną odpowiedź, wygląda rozsądnie i może mieć rację. Jednak kontekst, w którym ten problem został przedstawiony, silnie sugeruje, że należy go rozumieć jako deterministyczny. Jeśli tak nie było, a zastanawiałeś się, czy dopasowanie jest rozsądne, jedną rzeczą, którą możesz zauważyć, jest to, że dwa skrajne punkty danych znajdują się powyżej linii regresji, podczas gdy wszystkie dane środkowe znajdują się poniżej niej. Sugeruje to źle określoną formę funkcjonalną. Można to również zobaczyć na wykresie resztek vs. dopasowany ( plot(lm1, which=1):

wprowadź opis zdjęcia tutaj

Jeśli chodzi o model dopasowany przez @AlexWilliams, wygląda znacznie lepiej:

wprowadź opis zdjęcia tutaj

gung - Przywróć Monikę
źródło
17
+1 Resztkowa fabuła opowiada historię w taki sposób, że nie można jej przegapić. Rzeczywiście pokazuje to, dlaczego OP „wygląda liniowo” często wprowadza w błąd - wiele zakrzywionych funkcji może wyglądać „prawie prosto”, jeśli spojrzymy tylko na kilka punktów, które nie są bliskie punktu zwrotnego. Jeśli uważasz, że jest liniowy, wyjmij tę linię i zobacz, co zostało!
Glen_b
1
Niezwykle przydatne informacje! Dziękuję, naprawdę to doceniam
Brett Phinney
1
Nie ma to absolutnie nic wspólnego z rozróżnieniem między danymi probabilistycznymi a deterministycznymi. Regresja liniowa pasowałaby i ekstrapolowała dane deterministyczne, gdyby były liniowe. Nie byłby w stanie dobrze przewidzieć danych probabilistycznych, gdyby podstawowy model był kwadratowy.
jwg
3
@jwg: Ma z tym wiele wspólnego. Czy zawsze pasowałbyś do sekwencjin obserwacje z (n-1)wielomian stopnia, kiedy żaden wielomian niższego stopnia nie zapewnia idealnego dopasowania?
Scortchi - Przywróć Monikę
Nie sądzę, żeby szukał idealnego dopasowania. Próbuje zrozumieć, dlaczego ekstrapolowana wartość jest tak odległa.
jwg
22

Trend jest kwadratowy, a nie liniowy. Próbować:

lm1 <- lm(b~I(a^2), data=data)

Aktualizacja: oto kod.

data <- data.frame(a=c(3,4,5,6,7),b=c(18,32,50,72,98))
lm1 <- lm(b~I(a^2), data=data)
new.data <- data.frame(a=c(10,20,30))
predict(lm1, newdata = new.data, interval='prediction')

I wyjście:

   fit  lwr  upr
1  200  200  200
2  800  800  800
3 1800 1800 1800
Alex Williams
źródło
Ta odpowiedź wydaje mi się trochę okrągła: cały problem polega na rozpoznaniu zachowania kwadratowego. Prawidłowo wskazujesz, że po określeniu zachowania kwadratowego regresja liniowa może znaleźć współczynniki. Ale w efekcie zrobiłeś już kluczową analizę , zanim zapisałeś pierwszą linię tej odpowiedzi.
whuber
5
@whuber - Pytanie brzmi, dlaczego model liniowy zawodzi. Zawodzi, ponieważ forma funkcjonalna nie jest liniowa, jest kwadratowa. Chciałem udzielić prostej i konkretnej odpowiedzi. Odpowiedź Gunga dobrze sprawdza się w szczegółach i pokazuje, jak wykorzystać resztkowe wykresy, aby wymyślić lepszy model. (Zrobiłem to tylko na papierze i długopisie). Zgadzam się, że jego odpowiedź jest bardziej szczegółowa i kompletna, i głosowałem za nią.
Alex Williams
13

Waham się dodać do doskonałych odpowiedzi udzielonych przez Alexa Williamsa i Gunga, ale jest jeszcze jedna kwestia, którą powinienem pomyśleć. W pytaniu zastosowano wyrażenia „regresja liniowa” i „model liniowy”, co może sugerować, że mają to samo znaczenie. Jednak zwykłe znaczenie „regresji liniowej” odnosi się do klasycznego modelu regresji liniowej (CLRM), w którym „liniowy” oznacza „liniowy w parametrach”. Jest to warunek dotyczący parametrów, a nie zmiennych niezależnych. Tak więc model kwadratowy, taki jak:

Yja=β1+β2)Xja2)

jest nadal liniowy w sensie CLRM, ponieważ jest liniowy w parametrach β1 i β2). Natomiast model:

Yja=β1+β2)Xja

ma parametry liniowe, a także liniowe Xja. Zamiast nazwać go modelem liniowym, bardziej precyzyjnym stwierdzeniem jest to, że ma parametry liniowe i ma liniową formę funkcjonalną. Można więc powiedzieć, że szereg może być analizowany przez model, który ma liniowe parametry, pod warunkiem, że ma kwadratową formę funkcjonalną (jak pokazał Alex Williams), ale nie przez model mający liniową formę funkcjonalną.

Adam Bailey
źródło
1
Zawsze trudno mi to zapamiętać. To świetny dodatek do innych odpowiedzi.
naught101