R: Стандартная ошибка вывода из объекта lm

мы получили объект lm и хотим извлечь стандартную ошибку

lm_aaa<- lm(aaa~x+y+z)

Я знаю сводку функций, имена и коэффициенты. Однако сводка, по-видимому, является единственным способом ручного доступа к стандартной ошибке. Вы знаете, как я могу просто вывести se?

спасибо!

5 ответов


выход из summary функция-это просто R список. Таким образом, вы можете использовать все стандартные операции списка. Например:

#some data (taken from Roland's example)
x = c(1,2,3,4)
y = c(2.1,3.9,6.3,7.8)

#fitting a linear model
fit = lm(y~x)
m = summary(fit)

на m объект или список имеет ряд атрибутов. Вы можете получить к ним доступ, используя скобку или именованный подход:

m$sigma
m[[6]]

удобная функция, чтобы знать о том, str. Эта функция предоставляет сводку атрибутов объектов, т. е.

str(m)

чтобы получить список стандартных ошибок для всех параметров, вы можете использовать

summary(lm_aaa)$coefficients[, 2]

Как уже отмечалось, str(lm_aaa) расскажет вам почти всю информацию, которая может быть извлечена из вашей модели.


#some data
x<-c(1,2,3,4)
y<-c(2.1,3.9,6.3,7.8)

#fitting a linear model
fit<-lm(y~x)

#look at the statistics summary
summary(fit)

#get the standard error of the slope
se_slope<-summary(fit)$coef[[4]] 
#the index depends on the model and which se you want to extract

#get the residual standard error
rse<-summary(fit)$sigma

Если вы не хотите получать стандартную ошибку / отклонение модель, но вместо этого стандартная ошибка / отклонение индивидуальных коэффициентов используйте

# some data (taken from Roland's example)
x = c(1, 2, 3, 4)
y = c(2.1, 3.9, 6.3, 7.8)

# fitting a linear model
fit = lm(y ~ x)

# get vector of all standard errors of the coefficients
coef(summary(fit))[, "Std. Error"] 

дополнительные сведения о стандартной ошибке / отклонении модели см. В разделе здесь. Дополнительные сведения о стандартной ошибке / отклонении коэффициентов см. В разделе здесь.


Я думаю, что следующие строки также может предоставить вам быстрый ответ:

lm_aaa<- lm(aaa~x+y+z)
se <- sqrt(diag(vcov(lm_aaa)))