Wykonuję uogólniony model liniowy, w którym muszę określić rodzinę inną niż normalna.
- Jaki jest oczekiwany rozkład reszt?
- Na przykład, czy reszty powinny być rozkładane normalnie?
Wykonuję uogólniony model liniowy, w którym muszę określić rodzinę inną niż normalna.
What is the expected distribution of residuals?
Różni się w zależności od modelu w sposób, który uniemożliwia ogólną odpowiedź.
For example, should the residuals be distributed normally?
Nie ogólnie nie.
Cały przemysł chałupowy koncentruje się na projektowaniu resztek dla GLM, które są bardziej symetryczne lub nawet w przybliżeniu „normalne” (tj. Gaussowskie), np. Resztki Pearsona, resztki Anscombe, (skorygowane) resztki odchyleń itp. Patrz na przykład rozdział 6 Jamesa W. Hardin i Joseph M. Hilbe (2007) „Uogólnione modele i rozszerzenia liniowe”, drugie wydanie. College Station, Teksas: Stata Press. Jeśli zmienna zależna jest dyskretna (zmienna wskaźnikowa lub liczba), wówczas bardzo trudno jest ustalić oczekiwany rozkład reszt dokładnie Gaussa.
Jedną z rzeczy, które możesz zrobić, jest wielokrotne symulowanie nowych danych przy założeniu, że Twój model jest prawdziwy, oszacowanie modelu przy użyciu tych danych symulowanych i obliczenie reszt, a następnie porównanie rzeczywistych reszt z symulowanymi resztami. W Stata zrobiłbym to tak:
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"))