Respuestas:
What is the expected distribution of residuals?
Varía con el modelo en formas que hacen que esto sea imposible de responder en general.
For example, should the residuals be distributed normally?
Generalmente no, no.
Existe toda una industria artesanal centrada en el diseño de residuos para GLM que son más simétricos o incluso aproximadamente "normales" (es decir, gaussianos), por ejemplo, residuos de Pearson, residuos de Anscombe, residuos de desviación (ajustados), etc. Véase, por ejemplo, el Capítulo 6 de James W Hardin y Joseph M. Hilbe (2007) "Edición y modelos lineales generalizados" segunda edición. College Station, TX: Stata Press. Si la variable dependiente es discreta (una variable indicadora o un recuento), obviamente es muy difícil hacer que la distribución esperada de los residuos sea exactamente gaussiana.
Una cosa que puede hacer es simular repetidamente nuevos datos bajo el supuesto de que su modelo es verdadero, estimar su modelo utilizando esos datos simulados y calcular los residuales, y luego comparar sus residuales reales con sus residuales simulados. En Stata, haría esto así:
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"))