Câu trả lời:
Nó sẽ phụ thuộc vào bản chất của tính không đồng nhất. Nếu bạn muốn có một khoảng dự đoán, bạn thường cần một đặc tả tham số như:
tức làthường được phân phối với trung bình, và độ lệch chuẩn, trong đó độ lệch chuẩn là một số hàm đã biết củahoặc có lẽ một số bộ biến khác, theo cách đó bạn có thể ước tính độ lệch chuẩn cho mỗiquan sát.
Ví dụ về các chức năng có thể bao gồm; (Nghiên cứu về lợi nhuận của công ty, một ví dụ từ "Phân tích kinh tế lượng" của Greene phiên bản thứ 7 CH 9), trong đó là các quan sát của biến phụ thuộc, hoặc, nếu làm việc với dữ liệu chuỗi thời gian, GARCH và / hoặc thông số kỹ thuật biến động ngẫu nhiên.
Bạn có thể sử dụng các ước tính làm các lỗi tiêu chuẩn cho các khoảng dự đoán của bạn nếu bạn muốn. Tôi sẽ từ bỏ cách xử lý chính thức ở đây vì việc tính toán các lỗi ước tính trong có thể phức tạp nhưng với một mẫu đủ lớn, bỏ qua lỗi ước tính không ảnh hưởng khoảng dự đoán đó nhiều. Nói tóm lại, không cần thiết phải mở những con giun ở đây. Để được giải thích chi tiết hơn về tất cả những điều này và nhiều ví dụ khác, hãy xem cuốn sách "Kinh tế lượng giới thiệu: Phương pháp hiện đại" của Wooldridge , Ch 8.
Vấn đề là khi mọi người đề cập đến hồi quy heteroskedastic hoặc "mạnh", họ thường đề cập đến tình huống trong đó tính chất chính xác của heteroskedasticity (hàm ) không được biết, trong trường hợp đó, một công cụ ước tính Trắng hoặc hai bước được sử dụng. Chúng cung cấp các ước tính phù hợp cho nhưng không phải cho và do đó bạn không có cách nào để ước tính các khoảng dự đoán một cách tự nhiên. v một r ( β ) σ i Tôi sẽ lập luận rằng các khoảng dự đoán không có ý nghĩa trong bối cảnh này. Ý tưởng đằng sau các công cụ ước tính loại sandwich này là ước tính nhất quán lỗi tiêu chuẩn của các hệ số,β, không có gánh nặng đưa ra các khoảng dự đoán chính xác cho từng quan sát riêng lẻ, do đó làm cho các ước tính trở nên "mạnh mẽ" hơn.
Chỉ cần rõ ràng, ở trên chỉ xem xét hồi quy bình phương tối thiểu. Các hình thức hồi quy không tham số khác, chẳng hạn như hồi quy lượng tử, có thể cung cấp các phương tiện để có được một khoảng dự đoán mà không có đặc điểm kỹ thuật của lỗi tiêu chuẩn còn lại.
Hồi quy lượng tử không định lượng đưa ra một cách tiếp cận rất chung cho phép cả hai tính không đồng nhất và phi tuyến. Xem phần 9: http://www.econ.uiuc.edu/~roger/research/rq/vig.pdf
CẬP NHẬT: Một xấp xỉ hợp lý cho khoảng dự đoán 90% là khoảng cách giữa đường hồi quy 5 phần trăm và đường hồi quy 95 phần trăm. (Tùy thuộc vào chi tiết của kỹ thuật ước tính đường cong và độ thưa thớt của dữ liệu, bạn có thể muốn sử dụng một cái gì đó giống như phần trăm thứ 4 và 96 để "bảo thủ"). Trực giác cho loại khoảng dự đoán không theo tỷ lệ này có ở đây trên wikipedia .
Câu trả lời này chỉ là một điểm khởi đầu. Một lượng đáng kể công việc đã được thực hiện trên các khoảng dự đoán hồi quy lượng tử . Hoặc chỉ thực hiện các khoảng dự đoán hồi quy không đối xứng .
Nếu hồi quy phản hồi của bạn trên biến giải thích của bạn là một đường thẳng và phương sai của bạn tăng theo biến giải thích, thì mô hình hồi quy có trọng số là cần thiết với hoặc (nếu phương sai không quan trọng của bạn là cực đoan hơn) vì trọng lượng của bạn. Điều này cân nhắc phương sai của bạn theo giá trị x của bạn, do đó có mối quan hệ tỷ lệ thuận.
Đây là mã với các trọng số được bao gồm trong mô hình và dự đoán. Lưu ý rằng bạn cần thêm trọng số cho cả tập dữ liệu gốc và tập dữ liệu mới của bạn.
Cảm ơn @PopcornKing cho mã ban đầu của anh ấy từ Tính toán các khoảng dự đoán từ dữ liệu không đồng nhất .
library(ggplot2)
dummySamples <- function(n, slope, intercept, slopeVar){
x = runif(n)
y = slope*x+intercept+rnorm(n, mean=0, sd=slopeVar*x)
return(data.frame(x=x,y=y))
}
myDF <- dummySamples(20000,3,0,5)
plot(myDF$x, myDF$y)
w = 1/myDF$x**2
t = lm(y~x, data=myDF, weights=w)
summary(t)
newdata = data.frame(x=seq(0,1,0.01))
w = 1/newdata$x**2
p1 = predict.lm(t, newdata, interval = 'prediction', weights=w)
a <- ggplot()
a <- a + geom_point(data=myDF, aes(x=x,y=y), shape=1)
a <- a + geom_abline(intercept=t$coefficients[1], slope=t$coefficients[2])
a <- a + geom_abline(intercept=t$coefficients[1], slope=t$coefficients[2], color='blue')
a <- ggplot()
a <- a + geom_point(data=myDF, aes(x=x,y=y), shape=1)
a <- a + geom_abline(intercept=t$coefficients[1], slope=t$coefficients[2], color='blue')
newdata$lwr = p1[,c("lwr")]
newdata$upr = p1[,c("upr")]
a <- a + geom_ribbon(data=newdata, aes(x=x,ymin=lwr, ymax=upr), fill='yellow', alpha=0.3)
a