18

我做了一个glm,我只想提取每个系数的标准误差。我在互联网上看到了这个功能se.coef(),但它不起作用,它返回"Error: could not find function "se.coef""

4

3 回答 3

38

您需要的信息存储coefficientssummary(). 您可以这样提取它:summary(glm.D93)$coefficients[, 2]

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

#coefficients has the data of interest
> summary(glm.D93)$coefficients
                 Estimate Std. Error       z value     Pr(>|z|)
(Intercept)  3.044522e+00  0.1708987  1.781478e+01 5.426767e-71
outcome2    -4.542553e-01  0.2021708 -2.246889e+00 2.464711e-02
outcome3    -2.929871e-01  0.1927423 -1.520097e+00 1.284865e-01
treatment2   1.337909e-15  0.2000000  6.689547e-15 1.000000e+00
treatment3   1.421085e-15  0.2000000  7.105427e-15 1.000000e+00

#So extract the second column
> summary(glm.D93)$coefficients[, 2]
(Intercept)    outcome2    outcome3  treatment2  treatment3 
  0.1708987   0.2021708   0.1927423   0.2000000   0.2000000 

names(summary(glm.D93))快速查看返回的所有内容。如果您想查看正在进行的特定计算,可以通过检查找到更多详细信息summary.glm,尽管可能并非每次都需要该级别的详细信息,除非您 <3 个统计数据。

于 2011-12-13T21:11:41.683 回答
29

另一种方式:

sqrt(diag(vcov(glm.D93)))
于 2011-12-13T21:24:13.067 回答
6

se.coef() 实际上确实有效。但它不在基本包中:它在 {arm} 包中:http: //www.inside-r.org/packages/cran/arm/docs/se.ranef

于 2014-04-17T19:14:20.130 回答