Phân phối dự kiến ​​của phần dư trong một mô hình tuyến tính tổng quát là gì?


12

Tôi đang thực hiện một mô hình tuyến tính tổng quát, trong đó tôi phải chỉ định một gia đình khác với mô hình bình thường.

  • Phân phối dự kiến ​​của phần dư là gì?
  • Ví dụ, phần dư có nên được phân phối bình thường không?

Câu trả lời:


3
What is the expected distribution of residuals?

Nó thay đổi theo mô hình theo những cách làm cho điều này không thể trả lời chung.

For example, should the residuals be distributed normally?

Không nói chung, không.


8

Có cả một ngành công nghiệp tiểu thủ tập trung vào việc thiết kế phần dư cho GLM đối xứng hơn hoặc thậm chí xấp xỉ "bình thường" (ví dụ Gaussian), ví dụ phần dư Pearson, phần dư Anscombe, phần dư lệch (điều chỉnh), v.v. Xem ví dụ Chương 6 của James W Hardin và Joseph M. Hilbe (2007) "Các mô hình tuyến tính tổng quát và mở rộng" phiên bản thứ hai. Trạm đại học, TX: Nhà xuất bản Stata. Nếu biến phụ thuộc là rời rạc (biến chỉ thị hoặc số đếm) thì rõ ràng rất khó để phân phối dự kiến ​​của phần dư chính xác là Gaussian.

Một điều bạn có thể làm là liên tục mô phỏng dữ liệu mới với giả định rằng mô hình của bạn là đúng, ước tính mô hình của bạn bằng cách sử dụng dữ liệu mô phỏng đó và tính toán phần dư, sau đó so sánh phần dư thực tế của bạn với phần dư được mô phỏng. Ở Stata tôi sẽ làm như vậy:

sysuse nlsw88, clear
glm wage i.union grade c.ttl_exp##c.ttl_exp, link(log) family(poisson)

// collect which observations were used in estimation and the predicted mean
gen byte touse = e(sample)
predict double mu if touse

// predict residuals
predict resid if touse, anscombe

// prepare variables for plotting a cumulative distribution function
cumul resid, gen(c)

// collect the graph command in the local macro `graph'
local graph "twoway"

// create 19 simulations:
gen ysim = .
forvalues i = 1/19 {
    replace ysim = rpoisson(mu) if touse
    glm ysim i.union grade c.ttl_exp##c.ttl_exp, link(log) family(poisson)
    predict resid`i' if touse, anscombe
    cumul resid`i', gen(c`i')
    local graph "`graph' line c`i' resid`i', sort lpattern(solid) lcolor(gs8) ||"
}
local graph "`graph' line c resid, sort lpattern(solid) lcolor(black) "

// display the graph
`graph' legend(order(20 "actual residuals" 1 "simulations")) 

nhập mô tả hình ảnh ở đây


2
Trong R, bạn có thể thực hiện việc này với gói cran.r-project.org/web/packages/DHARMa/index.html .
Florian Hartig
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.