R-ohjelmointi.org

Tilastotieteellistä ohjelmointia R-kielellä

Logistisen regression selitysaste

Tein erääseen julkaisuun logistisia regressiomalleja, ja käsikirjoituksen vertaisarvioija halusi nähdä mallien max rescaled R squared [sic] -arvon. Onneksi on Google, joka tiesi kertoa, että se on SAS:n logistiselle regressiolle ilmoittama pseudo-selitysaste, mutta sen laskeminen R:ssä olikin toinen juttu. Laajennuspaketista pscl löytyi nopeasti komento pR2(), joka laskee erilaisia pseudo-selitysasteita:

n <- 100
x <- c(rnorm(n), 1+rnorm(n))
y <- c(rep(0,n), rep(1,n))
fit <- glm(y~x, family=binomial)
library(pscl)
pR2(fit)
#          llh      llhNull           G2     McFadden         r2ML         r2CU 
# -121.2974283 -138.6294361   34.6640157    0.1250240    0.1591316    0.2121754

Mutta mikä pR2():n raportoimista arvoista on sama kuin SAS:n Max-rescaled Rsquared? Puoli päivää asiaa tutkittuani sain viimein selvitettyä, että yllä olevassa tulosteessa r2ML on Cox-Snell:in selitysaste, joka vastaa SAS:ssa R Squared -arvoa. Arvo r2CU on Cragg-Uhlerin selitysaste, jota myös Nagelkerken selitysasteeksi kutsutaan, ja joka vastaa tuota etsimääni SAS:n max-rescaled selitysastetta. Mainittakoon täydellisyyden vuoksi, että tuo arvo McFadden on McFaddenin selitysaste, jota toisinaan kutsutaan myös nimellä deviance pseudo-R squared.

Olisin väittänyt referee:lle vastaan koko selitysasteen käytöstä yleistettyjen lineaaristen mallien tapauksessa, mutta palautteessa oli niin monta muutakin taistelua vaativaa seikkaa, että jossain piti antaa periksikin.