Jaki jest oczekiwany rozkład reszt w uogólnionym modelu liniowym?

12

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?
Gio
źródło

Odpowiedzi:

3
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.

Glen_b - Przywróć Monikę
źródło
8

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")) 

wprowadź opis zdjęcia tutaj

Maarten Buis
źródło
2
W R możesz to zrobić za pomocą pakietu cran.r-project.org/web/packages/DHARMa/index.html .
Florian Hartig