如何计算glm(R)的拟合优度


21

我从运行glm函数得到以下结果。

我如何解释以下值:

  • 零偏差
  • 残余偏差
  • AIC

他们和健康的好处有关吗?我可以根据这些结果(例如R平方或其他任何度量)来计算拟合优度吗?

Call:
glm(formula = tmpData$Y ~ tmpData$X1 + tmpData$X2 + tmpData$X3 + 
    as.numeric(tmpData$X4) + tmpData$X5 + tmpData$X6 + tmpData$X7)

Deviance Residuals: 
     Min        1Q    Median        3Q       Max  
-0.52628  -0.24781  -0.02916   0.25581   0.48509  

Coefficients:
                     Estimate Std. Error  t value Pr(>|t|)    
(Intercept         -1.305e-01  1.391e-01   -0.938   0.3482    
tmpData$X1         -9.999e-01  1.059e-03 -944.580   <2e-16 ***
tmpData$X2         -1.001e+00  1.104e-03 -906.787   <2e-16 ***
tmpData$X3         -5.500e-03  3.220e-03   -1.708   0.0877 .  
tmpData$X4         -1.825e-05  2.716e-05   -0.672   0.5017    
tmpData$X5          1.000e+00  5.904e-03  169.423   <2e-16 ***
tmpData$X6          1.002e+00  1.452e-03  690.211   <2e-16 ***
tmpData$X7          6.128e-04  3.035e-04    2.019   0.0436 *  
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1   1 

(Dispersion parameter for gaussian family taken to be 0.08496843)

    Null deviance: 109217.71  on 3006  degrees of freedom
Residual deviance:    254.82  on 2999  degrees of freedom
  (4970 observations deleted due to missingness)
AIC: 1129.8

Number of Fisher Scoring iterations: 2

我意识到这是从SO迁移而来的,因此通常不会在这些统计术语上查找信息。您在这里拥有大量资源!例如,查看通过搜索某些术语(例如AIC)可以学到的知识。花一点时间进行此操作应该可以完全回答您的问题,或者至少可以指导您提出更具体的问题。
ub

与高斯glms无关,但是如果您将bernoulli glm拟合到二进制数据,则不能使用残差来评估模型拟合,因为事实证明数据已在偏离公式中被抵消。现在,您可以使用差异残留deviances在这种情况下,比较两个型号,但没有残留的越轨行为本身。
FisherDisinformation 2016年

Answers:


15

glmR2glmR2R2

RGLM2=1(idi,model2)2/N(idi,null2)2/N        .=.        1SSE/n[model]SST/n[total]=ROLS2

关于如何解释LHS的这种措施存在一些争论,但是只有当模型偏离了较简单的高斯/ OLS情况时,才有争议。但是在GLM中,链接功能可能不是此处的“身份”,并且“平方误差”可能没有相同的清晰解释,因此也报告了Akaike信息准则,因为它似乎更通用。GLM GOF抽奖活动还有其他竞争者,没有明确的获胜者。

R2


7
上面输出中的“ Nagelkerke-pseudo-” R2”到底在哪里?
汤姆

1
我在回应汤姆的问题。Nagelkerke-pseudo-“ R2”在输出中的哪里,或者如何找到它?我不是在寻找有关该值的更多信息,而是在R的输出中可以找到它的位置。在我的问题示例输出中,没有什么比[0-1]范围内的拟合值好,所以我很困惑。
凯文-恢复莫妮卡2015年

请参阅stats.stackexchange.com/questions/8511/…stackoverflow.com/questions/6242818/………我在glm对象或摘要输出中均未看到任何R ^ 2。我可能一直在思考rms摘要函数的通常输出,因为那是我最喜欢的建模环境。
DWin 2015年

9

使用零偏差和残差,特别是:

1 - (Residual Deviance/Null Deviance)

如果考虑一下,您将尝试测量模型中的偏差与零值的比率。您的模型(残差)比截距(零偏差)好多少。如果该比例很小,那么您将“解释”零位中的大部分偏差;1减即可获得R平方。

在您的实例中,您将获得.998。

如果仅调用线性模型(lm)而不是glm,它将在摘要中显式提供R平方,您可以看到它是相同的数字。


5

如果您正在运行二进制逻辑模型,则还可以在glm()模型上运行Hosmer Lemeshow拟合优度测试。使用ResourceSelection库。

library(ResourceSelection)

model <- glm(tmpData$Y ~ tmpData$X1 + tmpData$X2 + tmpData$X3 + 
           as.numeric(tmpData$X4) + tmpData$X5 + tmpData$X6 + tmpData$X7, family = binomial)

summary(model)
hoslem.test(model$y, model$fitted)

但请注意,这是只适用于二元因变量模型(例如,如果OP已经建立family = "binomialOP的例子是线性回归。
马修

@Matthew这是真的,很抱歉我错过了。我最近一直在使用二进制逻辑回归,所以我的大脑刚到hoslem.test()
dylanjm 2016年

可以理解:)我建议对您的帖子进行编辑,但也忘记更新R代码。为了清楚起见,您可能需要更改它。
马修
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.