7

我在 R 中运行逻辑回归模型。我使用了 Zelig 和 Car 包。但是,我想知道是否有一种简单的方法可以获取模型的模型拟合统计信息。(伪 R 方、卡方、对数似然等)

4

5 回答 5

4

假设glm1你的模型和你的样本大小是n = 100.

以下是一些拟合优度度量:

R2 <- 1 - ((glm1$deviance/-2)/(glm1$null.deviance/-2))
cat("mcFadden R2 = ", R2, "\n")

R2 <- 1 - exp((glm1$deviance - glm1$null.deviance)/2 * n)
cat("Cox-Snell R2 = ", R2, "\n")

R2 <- R2/(1 - exp((-glm1$null.deviance)/n))
cat("Nagelkerke R2 = ", R2, "\n")

AIC <- glm1$deviance + 2 * 2
cat("AIC = ", AIC, "\n")

通过这种方式,您可以大致了解如何计算 GoF 测量值。

于 2013-04-11T13:21:06.720 回答
1

通常这是使用summary()函数完成的。

于 2010-07-26T16:56:28.843 回答
1

虽然我不是专家,但逻辑回归模型的模型拟合统计数据的解释并不像线性回归那样简单。假设您有二元响应,我发现一种有用的方法是按预测的概率区间(0-10%、10%-20%、....90%-100%)对数据进行分组并比较实际概率到预测的。这非常有用,因为您的模型通常会在低端过度预测或在高端预测不足。这也可能导致更好的模型。

于 2010-07-29T19:27:08.630 回答
1

在不知道模型对象是什么的情况下很难回答这个问题。我不确定会Zelig产生什么。

我会看一下names(model)names(summary(model))或者names(anova(model,test = "Chisq"))看看你想要的统计数据是否在那里。我知道对于对数似然,logLik(model)会给你你想要的。

于 2010-07-26T17:49:24.190 回答
0

看看 pscl 包。但是要小心,缺少数据:

library("MASS","pscl")

admit_2 <- admit
admit_2$gre.quant[sample(1:106, 45)] <- NA

m0 <- MASS::polr(score ~ gre.quant + gre.verbal + ap + pt + female,
              Hess=TRUE,
              data=admit_2,
              method="probit")

m1 <- MASS::polr(score ~ gre.quant + gre.verbal + ap + pt + female,
             Hess=TRUE,
             data= na.omit(admit_2),
             method="probit")

pR2(m0)
     llh      llhNull           G2     McFadden         r2ML         r2CU 
 -57.4666891 -151.0299826  187.1265870    0.6195015    0.9534696    0.9602592 

pR2(m1)
    llh     llhNull          G2    McFadden        r2ML        r2CU 
-57.4666891 -83.3891852  51.8449922   0.3108616   0.5725500   0.6123230

另外,看看这里: https ://stats.stackexchange.com/questions/8511/how-to-calculate-pseudo-r2-from-rs-logistic-regression

于 2019-06-24T19:21:23.970 回答