Mô hình bạn đang làm việc có dạng
yTôi= Μ + β1x1 tôi+ β2x2 tôi+ εTôi (1)
trong đó là một thuật ngữ lỗi được cho là xuất phát từ phân phối bình thường có nghĩa là không.εTôi
Bạn đã trang bị mô hình và bạn đã thu được các ước tính: , và . β 1 β 2μ^β^1β^2
Bây giờ, nếu bạn sửa các giá trị đồng biến trong phạm vi của chúng, giả sử và , có thể lấy giá trị dự đoán cho bằng máy tính x ⋆ 2 i y ix⋆1 tôix⋆2 tôiyTôi
y⋆Tôi= μ^+ β^1x⋆1 tôi+ β^2x⋆2 tôi (2)
Nếu mô hình của bạn phù hợp hoàn hảo với dữ liệu của bạn, thì giá trị dự đoán là giá trị thực. Nhưng, nói chung, các giá trị không thể có được chính xác như một tổ hợp tuyến tính đơn giản của các giá trị (" Tất cả các mô hình đều sai, nhưng một số là hữu ích "). Nói cách khác, phương sai của thuật ngữ lỗi trong (1) nói chung không bằng không. Nhưng, về cơ bản, mô hình (1) là một xấp xỉ tốt nếu phần dư (hoặc phiên bản thu nhỏ của những cái này) là "nhỏ".x y i - y ⋆ iyxyTôi- y⋆Tôi
Biên tập
Trong ý kiến của bạn, bạn hỏi những gì predict()
thực sự làm. Dưới đây là một ví dụ minh họa đơn giản.
#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