Каково ожидаемое распределение остатков в обобщенной линейной модели?


12

Я выполняю обобщенную линейную модель, где я должен указать семью, отличную от нормальной.

  • Каково ожидаемое распределение остатков?
  • Например, должны ли остатки распределяться нормально?

Ответы:


3
What is the expected distribution of residuals?

Это зависит от модели так, что на этот вопрос вообще невозможно ответить.

For example, should the residuals be distributed normally?

Нет, вообще нет.


8

Существует целая индустрия коттеджей, сосредоточенная вокруг разработки остатков для GLM, которые являются более симметричными или даже приблизительно "нормальными" (то есть гауссовыми), например, остатки Пирсона, остатки Анскомба, (скорректированные) остатки отклонения и т. Д. См., Например, главу 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.