Các giá trị dự đoán được trả về bởi hàm dự đoán () trong R khi sử dụng dữ liệu gốc làm đầu vào là gì?


11

Sau khi chạy hồi quy của biểu mẫu reg <- lm(y ~ x1 + x2, data=example)trên tập dữ liệu, tôi có thể nhận các giá trị dự đoán bằng cách sử dụng

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

Tôi đang tự hỏi những giá trị dự đoán thực sự đề cập đến khi tôi sử dụng hồi quy để dự đoán tập dữ liệu thực tế. Tôi không nên có được các giá trị ban đầu?

Câu trả lời:


18

Mô hình bạn đang làm việc có dạng

yi=μ+β1x1i+β2x2i+ϵ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.ϵ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 ix1ix2iyi

yi=μ^+β^1x1i+β^2x2i (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 iyxyiyi

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

1
x1x2β0

@ocram thì chính xác thì hàm dự đoán sẽ làm gì khi tôi sử dụng cùng một tập dữ liệu và phương trình hồi quy tương ứng?
upabove

@chl, điều đó có nghĩa là dự đoán không nên có trên mô hình glm (hoặc glm.nb) với các dự đoán phân loại? Ví dụ: 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 ("không", 6))), t = as.factor (c (rep ("tp1", 3), rep ("tp2", 3), rep ("tp1", 3), rep ("tp2" , 3)))) yêu cầu (MASS) nb_fit <- glm.nb (y ~ p * t, data = dat) pre_fit <- dự đoán (nb_fit, gõ = "hồi đáp")
Arun

μβ0

1
kk1
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.