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)))