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)))
Другие вопросы по тегам