Я выполняю обобщенную линейную модель, где я должен указать семью, отличную от нормальной.
- Каково ожидаемое распределение остатков?
- Например, должны ли остатки распределяться нормально?
Я выполняю обобщенную линейную модель, где я должен указать семью, отличную от нормальной.
What is the expected distribution of residuals?
Это зависит от модели так, что на этот вопрос вообще невозможно ответить.
For example, should the residuals be distributed normally?
Нет, вообще нет.
Существует целая индустрия коттеджей, сосредоточенная вокруг разработки остатков для 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"))