从R中的glm中提取系数

lok*_*art 14 r list

我已经进行了逻辑回归,结果如下:

ssi.logit.single.age["coefficients"]
# $coefficients
#  (Intercept)          age 
# -3.425062382  0.009916508 
Run Code Online (Sandbox Code Playgroud)

我需要拿起系数age,目前我使用以下代码:

ssi.logit.single.age["coefficients"][[1]][2]
Run Code Online (Sandbox Code Playgroud)

它有效,但我不喜欢这里的神秘代码,我可以使用系数的名称(即(Intercept)age)

Jam*_*mes 20

有一个提取函数,coef用于从模型中获取系数:

coef(ssi.logit.single.age)["age"]
Run Code Online (Sandbox Code Playgroud)

  • 请参阅coef(summary(ssi.logit.single.age))以获取包含标准错误的表.您可以使用confint.default(ssi.logit.single.age)获取基于+/- 1.96 SE的置信区间.或者更好的是,MASS :: confint(ssi.logit.single.age)将为您提供配置文件置信区间,这些区间更准确(虽然稍微慢一些). (2认同)

lok*_*art 5

我从这里找到了它

查看summary()生成的数据结构

> names(summary(lm.D9))
  [1] "call"          "terms"         "residuals"     "coefficients"
  [5] "aliased"       "sigma"         "df"            "r.squared"
  [9] "adj.r.squared" "fstatistic"    "cov.unscaled"
Run Code Online (Sandbox Code Playgroud)

现在看一下摘要中系数的数据结构:

> summary(lm.D9)$coefficients
             Estimate Std. Error   t value     Pr(>|t|)
(Intercept)    5.032  0.2202177 22.850117 9.547128e-15
groupTrt      -0.371  0.3114349 -1.191260 2.490232e-01

> class(summary(lm.D9)$coefficients)
[1] "matrix"

> summary(lm.D9)$coefficients[,3]
(Intercept)    groupTrt
   22.850117   -1.191260
Run Code Online (Sandbox Code Playgroud)

  • 不要开始在这样的对象中钻研!使用提取器功能; 在这种情况下`coef()`.例如,查看`$ residuals`组件.您可以通过直接访问`$ residuals`来获取模型残差,但这些是什么?它们肯定不是您可能立即想到的模型残差.在模型上使用`resid()`,您可以选择残差类型. (3认同)