Ich führe ein verallgemeinertes lineares Modell durch, bei dem ich eine andere als die normale Familie angeben muss.
- Wie ist die erwartete Verteilung der Residuen?
- Sollen die Residuen beispielsweise normal verteilt werden?
Ich führe ein verallgemeinertes lineares Modell durch, bei dem ich eine andere als die normale Familie angeben muss.
What is the expected distribution of residuals?
Es variiert mit dem Modell in einer Weise, die eine generelle Beantwortung unmöglich macht.
For example, should the residuals be distributed normally?
Nicht generell, nein.
Es gibt eine ganze Heimindustrie, die sich darauf konzentriert, Residuen für symmetrischere oder sogar "normale" (dh Gaußsche) GLM zu entwerfen, z. B. Pearson-Residuen, Anscombe-Residuen, (bereinigte) Abweichungs-Residuen usw. Siehe z. B. Kapitel 6 von James W Hardin und Joseph M. Hilbe (2007) "Generalized Linear Models and Extensions", zweite Auflage. College Station, TX: Stata Press. Wenn die abhängige Variable diskret ist (eine Indikatorvariable oder eine Zählung), ist es offensichtlich sehr schwierig, die erwartete Verteilung der Residuen exakt nach Gauß zu bestimmen.
Sie können wiederholt neue Daten unter der Annahme simulieren, dass Ihr Modell wahr ist, Ihr Modell anhand dieser simulierten Daten schätzen und die Residuen berechnen und dann Ihre tatsächlichen Residuen mit Ihren simulierten Residuen vergleichen. In Stata würde ich das so machen:
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"))