Ich werde meine Beispiele mit R-Aufrufen geben. Zunächst ein einfaches Beispiel einer linearen Regression mit einer abhängigen Variablen 'Lebensdauer' und zwei kontinuierlichen erklärenden Variablen.
data.frame(height=runif(4000,160,200))->human.life
human.life$weight=runif(4000,50,120)
human.life$lifespan=sample(45:90,4000,replace=TRUE)
summary(lm(lifespan~1+height+weight,data=human.life))
Call:
lm(formula = lifespan ~ 1 + height + weight, data = human.life)
Residuals:
Min 1Q Median 3Q Max
-23.0257 -11.9124 -0.0565 11.3755 23.8591
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 63.635709 3.486426 18.252 <2e-16 ***
height 0.007485 0.018665 0.401 0.6884
weight 0.024544 0.010428 2.354 0.0186 *
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 13.41 on 3997 degrees of freedom
Multiple R-squared: 0.001425, Adjusted R-squared: 0.0009257
F-statistic: 2.853 on 2 and 3997 DF, p-value: 0.05781
Um die Schätzung der Lebensdauer zu ermitteln, wenn der Wert für "Gewicht" 1 ist, addiere ich (Intercept) + height = 63.64319
Was ist nun, wenn ich einen ähnlichen Datenrahmen habe, bei dem jedoch eine der erklärenden Variablen kategorisch ist?
data.frame(animal=rep(c("dog","fox","pig","wolf"),1000))->animal.life
animal.life$weight=runif(4000,8,50)
animal.life$lifespan=sample(1:10,replace=TRUE)
summary(lm(lifespan~1+animal+weight,data=animal.life))
Call:
lm(formula = lifespan ~ 1 + animal + weight, data = animal.life)
Residuals:
Min 1Q Median 3Q Max
-4.7677 -2.7796 -0.1025 3.1972 4.3691
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 5.565556 0.145851 38.159 < 2e-16 ***
animalfox 0.806634 0.131198 6.148 8.6e-10 ***
animalpig 0.010635 0.131259 0.081 0.9354
animalwolf 0.806650 0.131198 6.148 8.6e-10 ***
weight 0.007946 0.003815 2.083 0.0373 *
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 2.933 on 3995 degrees of freedom
Multiple R-squared: 0.01933, Adjusted R-squared: 0.01835
F-statistic: 19.69 on 4 and 3995 DF, p-value: 4.625e-16
In diesem Fall sollte ich, um die Schätzung der "Lebensdauer" zu ermitteln, wenn der Wert von "Gewicht" 1 ist, jeden der Koeffizienten für "Tier" zum Achsenabschnitt hinzufügen: (Achsenabschnitt) + Tierfuchs + Tierschwein + Tierwolf? Oder wie geht das richtig?
Danke Sverre
code
, um 4 Leerzeichen einrücken.code
Zeile möchten , verwenden Sie Backticks:this is code with a $ and *
set.seed(1)
(oder eine beliebige Zahl, die Sie mögen) einschließen, bevor Sie die Zufallszahlengenerierung ausführen, sodass jeder genau die gleichen Ergebnisse wie Sie erzielt (in diesem Fall ist dies jedoch nicht sehr wichtig).Antworten:
Nein, Sie sollten nicht alle Koeffizienten addieren. Sie haben im Wesentlichen das Modell
Sie müssen dies für jedes Tier separat tun. Zum Beispiel ist die erwartete Lebensdauer eines Schweins, wenn sein Gewicht 1 beträgt.β0+ β2+ β4
quelle
Am einfachsten ist es, die Vorhersagefunktion für das lm-Objekt zu verwenden. Dann werden viele Details berücksichtigt, z. B. die Konvertierung eines Faktors in die richtigen Werte zum Addieren. Wenn Sie versuchen, die Teile zu verstehen, die in die Vorhersage einfließen, setzen Sie
type='terms'
und es werden die einzelnen Teile angezeigt, die zusammen Ihre Vorhersage ergeben.Beachten Sie auch, dass die Konvertierung eines Faktors in Variablen von einigen Optionen abhängt. Standardmäßig wird eine Basisgruppe ausgewählt, mit der die anderen Gruppen verglichen werden sollen. Sie können sie jedoch auch auf einen Durchschnitt und Unterschiede zu diesem Durchschnitt festlegen (oder andere interessante Vergleiche). .
quelle
Wenn Sie die durchschnittliche Lebensdauer bei einem Gewicht von 1 möchten, können Sie in diesem Aufruf einfach "Tier" herausnehmen:
quelle