Rでロジスティック回帰を行った際のresidual devianceを取得したいと考えています。
glm.fit関数を用いたところ、以下のような完全分離の警告が出ました。
R
1glm.fit: fitted probabilities numerically 0 or 1 occurred
そこで、こちらを参考にlogistf関数を利用してみました。
R
1cont <- logistf.control(maxit=1000,maxstep = 100) 2plcont <- logistpl.control(maxit=1000) 3res <- logistf(y ~ x,firth = TRUE, control = cont,plcontrol = plcont)
summary(res)の中身は以下のとおりです。
R
1> summary(res) 2logistf(formula = dat[, j] ~ Dat_res[, i], control = cont, plcontrol = plcont, firth = TRUE) 3 4Model fitted by Penalized ML 5Coefficients: 6 coef se(coef) lower 0.95 upper 0.95 Chisq p 7(Intercept) 0.1375199 0.11492692 -0.08696857 0.3642894 1.439322 0.230249 8Dat_res[, i] -0.7204668 0.05044381 -0.82565105 -0.6269034 Inf 0.000000 9 method 10(Intercept) 2 11Dat_res[, i] 2 12 13Method: 1-Wald, 2-Profile penalized log-likelihood, 3-None 14 15Likelihood ratio test=895.6586 on 1 df, p=0, n=1000 16Wald test = 203.9916 on 1 df, p = 0
この結果から、こちらのサイトでも説明されているdeviance残差(residual deviance)を計算しようと考えていますが、導出する方法がよく分かっていません。
理解不足で申し訳ありませんが、ご教授よろしくお願いします。
あなたの回答
tips
プレビュー