[統計解析ソフトR]
glm()とlmer()で尤度比検定
glm()およびlmer()でGLMやGLMMを当てはめた結果を用いて尤度比検定を行う関数。R-help archiveにある過去ログの内容を参考にした。というかそのままである。もちろんGLMどうしやGLMMどうしでの比較も可能。
関数のコード
lrt <- function (obj1, obj2) { L0 <- logLik(obj1) L1 <- logLik(obj2) L01 <- as.vector(- 2 * (L0 - L1)) df <- attr(L1, "df") - attr(L0, "df") list(L01 = L01, df = df, "p-value" = pchisq(L01, df, lower.tail = FALSE)) }
使い方
library(lme4) gm0 <- glm(cbind(incidence, size - incidence) ~ period, family = binomial, data = cbpp) gm1 <- glmer(cbind(incidence, size - incidence) ~ period + (1 | herd), family = binomial, data = cbpp) lrt(gm0, gm1)
なお、gm0の方が尤度が低くパラメータ数も少ないモデルである必要がある。
最終更新時間:2008年11月26日 23時52分30秒