Was sind die vorhergesagten Werte, die von der Funktion dict () in R zurückgegeben werden, wenn Originaldaten als Eingabe verwendet werden?


11

Nachdem reg <- lm(y ~ x1 + x2, data=example)ich eine Regression des Formulars für ein Dataset ausgeführt habe, kann ich mithilfe von vorhergesagte Werte abrufen

predict(reg, example, interval="prediction", level=0.95)

Ich frage mich, worauf sich die vorhergesagten Werte tatsächlich beziehen, wenn ich die Regression verwende, um den tatsächlichen Datensatz vorherzusagen. Sollte ich nicht die ursprünglichen Werte erhalten?

Antworten:


18

Das Modell, mit dem Sie arbeiten, hat die Form

yi=μ+β1x1i+β2x2i+ϵi (1)

ϵi

μ^β^1β^2

x1ix2iyi

yi=μ^+β^1x1i+β^2x2i (2)

yxyiyi

Bearbeiten

In Ihren Kommentaren haben Sie gefragt, was predict()tatsächlich funktioniert. Hier ist ein einfaches veranschaulichendes Beispiel.

    #generate a simple illustrative data set
> x <- runif(10)
> y <- 5 + 2.7 * x + rnorm(10, mean=0, sd=sqrt(0.15))
> 
>   #fit the model and store the coefficients
> regLin <- lm(y~x)
> coef <- coef(regLin)
> 
>   #use the predict() function
> y_star2 <- predict(regLin)
>   #use equation (2)
> y_star1 <- coef[1] + coef[2] * x
>   #compare
> cbind(y, y_star1, y_star2) 
          y  y_star1  y_star2
1  7.100217 6.813616 6.813616
2  6.186333 5.785473 5.785473
3  7.141016 7.492979 7.492979
4  5.121265 5.282990 5.282990
5  4.681924 4.849776 4.849776
6  6.102339 6.106751 6.106751
7  7.223215 7.156512 7.156512
8  5.158546 5.253380 5.253380
9  7.160201 7.198074 7.198074
10 5.555289 5.490793 5.490793

1
x1x2β0

@ocram Was genau macht die Vorhersagefunktion dann, wenn ich denselben Datensatz und die entsprechende Regressionsgleichung verwende?
bis

@chl, bedeutet das, dass die Vorhersage nicht auf einem glm- (oder glm.nb-) Modell mit kategorialen Prädiktoren erfolgen sollte? Zum Beispiel: dat <- data.frame (y = as.numeric (c (10,15,12,1,0,2,180,200,188,181,300,288)), p = as.factor (c (rep ("yes", 6), rep ("nein", 6))), t = as.Faktor (c (rep ("tp1", 3), rep ("tp2", 3), rep ("tp1", 3), rep ("tp2") , 3)))) erfordern (MASS) nb_fit <- glm.nb (y ~ p * t, data = dat) pre_fit <- vorhersagen (nb_fit, type = "response")
Arun

μβ0

1
kk1
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.