Le modèle avec lequel vous travaillez prend la forme
yje= μ + β1X1 i+ β2X2 i+ ϵje (1)
où est un terme d'erreur supposé provenir d'une distribution normale moyenne nulle.ϵje
Vous avez ajusté le modèle et vous avez obtenu des estimations: , et . β 1 β 2μ^β^1β^2
Maintenant, si vous fixez des valeurs de covariables dans leur plage, disons et , une valeur prédite pour peut être obtenue en calculant x ⋆ 2 i y iX⋆1 iX⋆2 iyje
y⋆je= μ^+ β^1X⋆1 i+ β^2X⋆2 i (2)
Si votre modèle correspond parfaitement à vos données, les valeurs prédites sont des valeurs réelles. Mais, en général, les valeurs ne peuvent pas être obtenues exactement comme une simple combinaison linéaire de valeurs (" Tous les modèles sont faux, mais certains sont utiles "). En d'autres termes, la variance du terme d'erreur dans (1) n'est pas nulle en général. Mais, fondamentalement, le modèle (1) est une bonne approximation si les résidus (ou une version mise à l'échelle de ceux-ci) sont "petits".x y i - y ⋆ iyXyje- y⋆je
Éditer
Dans vos commentaires, vous avez demandé ce qui predict()
se passe réellement. Voici un exemple illustratif simple.
#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
x1
etx2
sont des prédicteurs continus, pas ceux catégoriques. (Pourquoi ne pas désigner l'interception par ?)