トップ 差分 一覧 Farm ソース 検索 ヘルプ PDF RSS ログイン

glm()とlmer()で尤度比検定

[統計解析ソフト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秒