使用R的逻辑回归

时间:2011-09-01 16:54:26

标签: r statistics logistics

我现在正在使用R运行逻辑回归,但我似乎无法获得许多有用的模型拟合统计信息。我正在寻找类似于SASS的指标:

http://www.ats.ucla.edu/stat/sas/output/sas_logit_output.htm

有谁知道我可以用什么(或用什么包)来提取这些统计数据?

由于

3 个答案:

答案 0 :(得分:5)

当然,带有family =“binomial”参数的glm是最常用于逻辑回归的函数。对比因素的默认处理是不同的。 R使用治疗对比,SAS(我认为)使用总和对比。您可以在R-help上查看这些技术问题。在过去的十多年里,他们已经多次讨论过。

我看到Greg Snow在'rms'中提到了lrm。它的优势在于“rms”方法套件中的其他几个函数的支持。我也会使用它,但学习rms包可能需要一些额外的时间。我没有看到可以创建类似SAS的输出的选项。

如果您想比较类似问题的包,那么UCLA StatComputing页面有另一个资源:http://www.ats.ucla.edu/stat/r/dae/default.htm,其中SPSS,SAS,Stata和R中有大量方法。

答案 1 :(得分:5)

这是一个泊松回归的例子:

## from ?glm:
d.AD <- data.frame(counts=c(18,17,15,20,10,20,25,13,12),
      outcome=gl(3,1,9),
      treatment=gl(3,3))
glm.D93 <- glm(counts ~ outcome + treatment,data = d.AD, family=poisson())

现在定义一个函数以使具有相同响应,族等的仅拦截模型适合,计算汇总统计信息,并将它们组合成表(矩阵)。下面.~1命令中的公式update表示“使用相同的响应变量[由波浪号的LHS上的点表示]重新构建模型,但只有一个截距项[由{{表示] 1}}关于代字号的RHS]“

1

现在应用函数:

glmsumfun <- function(model) {
   glm0 <- update(model,.~1)  ## refit with intercept only
   ## apply built-in logLik (log-likelihood), AIC,
   ##  BIC (Bayesian/Schwarz Information Criterion) functions
   ## to models with and without intercept ('model' and 'glm0');
   ## combine the results in a two-column matrix with appropriate
   ## row and column names
   matrix(c(logLik(glm.D93),BIC(glm.D93),AIC(glm.D93),
           logLik(glm0),BIC(glm0),AIC(glm0)),ncol=2,
     dimnames=list(c("logLik","SC","AIC"),c("full","intercept_only")))
}

结果:

glmsumfun(glm.D93)

编辑

  • full intercept_only logLik -23.38066 -26.10681 SC 57.74744 54.41085 AIC 56.76132 54.21362 给出了包含df,偏差(= -2对数似然),残差df,残差偏差和似然比检验(卡方检验)的偏差表的顺序分析) p -value。
  • anova(glm.D93,test="Chisq")给出一个表格,其中包含每个单项删除的AIC值(df,deviances等); drop1(glm.D93)另外提供LRT测试 p 值。

答案 2 :(得分:2)

使用lrm包中的rms函数可以为您提供所需的输出。