R:McFadden& Nagelkerke

时间:2016-12-14 21:49:47

标签: r

我想知道是否有办法根据产生的输出计算Nagelkerke R-square。我知道我可以直接计算McFadden R-square。但是Nagelkerke产生了我们认为更精确的模型强度。 如果这是您的想法,我没有幸运将包添加到我的设置中。

感谢。

1 个答案:

答案 0 :(得分:1)

这个问题未定义,所以我会尽量假设“产生的输出”是一个glm对象。当应用于glm对象时,此函数应生成所需的适当伪R平方。

Nagelkerke <- function(mod) {
  l_full <- exp(logLik(mod))
  l_intercept <- exp(logLik( update(mod, . ~ 1) ))
  N <- length(mod$y)
  r_2 <- (1 - (l_intercept / l_full)^(2/N)) / (1 - l_intercept^(2/N))
  return( as.numeric(r_2) )
}

示例:

model <- glm(formula = vs ~ mpg + disp, family = binomial("logit"), data = mtcars);
Nagelkerke(model);
#[1] 0.6574295