Який очікуваний розподіл залишків у узагальненій лінійній моделі?


12

Я виконую узагальнену лінійну модель, де мені потрібно вказати сім’ю, відмінну від звичайної.

  • Який очікуваний розподіл залишків?
  • Наприклад, чи слід нормально розподіляти залишки?

Відповіді:


3
What is the expected distribution of residuals?

Це змінюється в залежності від моделі способами, які не дають змоги взагалі дати відповідь.

For example, should the residuals be distributed normally?

Як правило, ні.


8

Існує ціла котеджна галузь, орієнтована на проектування залишків для ГЛМ, які є більш симетричними або навіть приблизно "нормальними" (тобто гауссовими), наприклад, залишки Пірсона, залишки Anscombe, (скориговані) залишки відхилень тощо. Див. Наприклад, Глава 6 Джеймса У Гардін та Джозеф М. Хільбе (2007) "Узагальнені лінійні моделі та розширення", друге видання. Коледж Станція, Техас: Stata Press. Якщо залежна змінна є дискретною (індикаторна змінна чи кількість), то очевидно дуже важко зробити очікуваний розподіл залишків саме гауссовим.

Одне, що ви можете зробити, - це багаторазово моделювати нові дані, припускаючи, що ваша модель правдива, оцінити модель за допомогою цих модельованих даних та обчислити залишки, а потім порівняти фактичні залишки з імітованими залишками. У Stata я би зробив це так:

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")) 

введіть тут опис зображення


2
У R ви можете це зробити за допомогою пакета cran.r-project.org/web/packages/DHARMa/index.html .
Флоріан Хартіг
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.