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