Estou executando um modelo linear generalizado, no qual tenho que especificar uma família diferente da normal.
- Qual é a distribuição esperada de resíduos?
- Por exemplo, os resíduos devem ser distribuídos normalmente?
Estou executando um modelo linear generalizado, no qual tenho que especificar uma família diferente da normal.
What is the expected distribution of residuals?
Isso varia de acordo com o modelo de maneiras que tornam impossível responder em geral.
For example, should the residuals be distributed normally?
Geralmente não, não.
Existe toda uma indústria caseira centrada no design de resíduos para GLMs que são mais simétricos ou até aproximadamente "normais" (por exemplo, Gaussianos), por exemplo, resíduos de Pearson, resíduos de Anscombe, resíduos de desvio (ajustados) etc. Veja, por exemplo, o Capítulo 6 de James W Hardin e Joseph M. Hilbe (2007) "Generalized Linear Models and Extensions" segunda edição. College Station, TX: Stata Press. Se a variável dependente é discreta (uma variável indicadora ou uma contagem), é obviamente muito difícil estabelecer a distribuição esperada dos resíduos exatamente gaussiana.
Uma coisa que você pode fazer é simular repetidamente novos dados sob a suposição de que seu modelo é verdadeiro, estimar seu modelo usando esses dados simulados e calcular os resíduos e comparar seus resíduos reais com os resíduos simulados. No Stata, eu faria assim:
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"))