Модель, з якою ви працюєте, приймає форму
yi=μ+β1x1i+β2x2i+ϵi (1)
де - термін помилки, який вважається похідним від нормального нульового розподілу.ϵi
Ви встановили модель і отримали оцінки: , та .μ^β^1β^2
Тепер, якщо ви зафіксуєте значення коваріату в їх діапазоні, скажімо, і , передбачуване значення для можна отримати за допомогою обчислення.x⋆1ix⋆2iyi
y⋆i=μ^+β^1x⋆1i+β^2x⋆2i (2)
Якщо ваша модель ідеально відповідає вашим даним, то передбачувані значення - це фактичні значення. Але, як правило, значення не можуть бути точно отримані як проста лінійна комбінація значень (" Усі моделі неправильні, але деякі корисні "). Іншими словами, дисперсія терміна помилки в (1) взагалі не дорівнює нулю. Але, в основному, модель (1) є хорошим наближенням, якщо залишки (або масштабована їх версія) "малі".yxyi−y⋆i
Редагувати
У своїх коментарях ви запитали, що predict()
насправді робить. Ось простий показовий приклад.
#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
іx2
є безперервними предикторами, а не категорично з них. (Чому б не перехоплення через ?)