我现在正在使用 R 运行逻辑回归,但我似乎无法获得许多有用的模型拟合统计数据。我正在寻找类似于 SAS 的指标:
http://www.ats.ucla.edu/stat/sas/output/sas_logit_output.htm
有谁知道我可以如何(或哪些软件包)来提取这些统计信息?
谢谢
我现在正在使用 R 运行逻辑回归,但我似乎无法获得许多有用的模型拟合统计数据。我正在寻找类似于 SAS 的指标:
http://www.ats.ucla.edu/stat/sas/output/sas_logit_output.htm
有谁知道我可以如何(或哪些软件包)来提取这些统计信息?
谢谢
这是一个泊松回归示例:
## 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 上的点表示] 重新拟合模型”
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
编辑:
anova(glm.D93,test="Chisq")
给出包含 df、偏差(=-2 对数似然)、残差 df、残差和似然比检验(卡方检验)p值的偏差表的顺序分析.drop1(glm.D93)
给出一个表,其中包含每个单项删除的 AIC 值(df、偏差等);drop1(glm.D93,test="Chisq")
另外给出 LRT 检验p值。当然glm
,使用 family="binomial" 参数是逻辑回归最常用的函数。因子对比的默认处理是不同的。R 使用处理对比,而 SAS(我认为)使用总和对比。您可以在 R-help 上查看这些技术问题。在过去的十多年里,它们已经被讨论了很多很多次。
lrm
我看到“rms”中提到了 Greg Snow 。它的优点是受到“rms”方法套件中的几个其他功能的支持。我也会使用它,但是学习 rms 包可能需要一些额外的时间。我没有看到可以创建类似 SAS 的输出的选项。
如果您想比较类似问题的软件包,UCLA StatComputing 页面还有另一个资源: http: //www.ats.ucla.edu/stat/r/dae/default.htm,其中大量方法在 SPSS 中举例说明、SAS、Stata 和 R。
使用包lrm
中的函数rms
可能会为您提供所需的输出。