Ein Kollege von mir hat mir dieses Problem geschickt und anscheinend im Internet die Runde gemacht:
If $3 = 18, 4 = 32, 5 = 50, 6 = 72, 7 = 98$, Then, $10 =$ ?
Die Antwort scheint 200 zu sein.
3*6
4*8
5*10
6*12
7*14
8*16
9*18
10*20=200
Wenn ich eine lineare Regression in R mache:
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')
Ich bekomme:
fit lwr upr
1 154 127.5518 180.4482
2 354 287.0626 420.9374
3 554 444.2602 663.7398
Mein lineares Modell sagt also voraus .
Wenn ich die Daten zeichne, sehen sie linear aus ... aber offensichtlich habe ich etwas angenommen, das nicht korrekt ist.
Ich versuche zu lernen, wie man lineare Modelle in R am besten verwendet. Wie kann man diese Reihe richtig analysieren? Was habe ich falsch gemacht?
r
regression
lm
Brett Phinney
quelle
quelle
Antworten:
Ein Regressionsmodell, wie dasjenige, das
lm()
implizit angepasst wird, geht davon aus, dass der zugrunde liegende Datenerzeugungsprozess probabilistisch ist . Sie gehen davon aus, dass die Regel, die Sie modellieren möchten, deterministisch ist . Daher besteht ein Missverhältnis zwischen dem, was Sie versuchen, und der Art und Weise, wie Sie es versuchen.Es gibt andere Software (dh nicht R), die explizit entwickelt wurde, um die einfachste Funktion für deterministische Daten zu finden / anzupassen (ein Beispiel wäre Eureqa ). Möglicherweise gibt es dafür ein R-Paket (von dem ich nichts weiß), aber R ist für die statistische Modellierung probabilistischer Daten vorgesehen.
Die Antwort,
lm()
die Sie erhalten haben, sieht vernünftig aus und könnte richtig sein. Ich verstehe jedoch, dass der Kontext, in dem dieses Problem dargestellt wurde, stark impliziert, dass es als deterministisch verstanden werden sollte. Wenn dies nicht der Fall gewesen wäre und Sie sich gefragt hätten, ob die Anpassung angemessen war, könnten Sie feststellen, dass sich die beiden extremen Datenpunkte über der Regressionslinie befinden, während sich die mittleren Daten alle darunter befinden. Dies deutet auf eine falsch spezifizierte Funktionsform hin. Dies ist auch im Residuum vs. angepassten Plot (plot(lm1, which=1
) zu sehen:Das Modell von @AlexWilliams sieht viel besser aus:
quelle
Der Trend ist quadratisch und nicht linear. Versuchen:
Update: Hier ist der Code.
Und Ausgabe:
quelle
Ich zögere, die hervorragenden Antworten von Alex Williams und Gung zu ergänzen, aber es gibt noch einen weiteren Punkt, den ich für angebracht halten sollte. Die Frage verwendet die Ausdrücke "lineare Regression" und "lineares Modell", was möglicherweise darauf hindeutet, dass sie dasselbe bedeuten. Die übliche Bedeutung von "linearer Regression" bezieht sich jedoch auf das klassische lineare Regressionsmodell (CLRM), bei dem "linear" "linear in den Parametern" bedeutet. Dies ist eine Bedingung für die Parameter, nicht für die unabhängigen Variablen. Ein quadratisches Modell wie:
quelle