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 .
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?
r
regression
lm
Brett Phinney
źródło
źródło
Odpowiedzi:
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
):Jeśli chodzi o model dopasowany przez @AlexWilliams, wygląda znacznie lepiej:
źródło
Trend jest kwadratowy, a nie liniowy. Próbować:
Aktualizacja: oto kod.
I wyjście:
źródło
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:
jest nadal liniowy w sensie CLRM, ponieważ jest liniowy w parametrachβ1 i β2) . Natomiast model:
ma parametry liniowe, a także linioweXja . 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ą.
źródło