Nous avons obtenu un objet lm et voulons extraire l'erreur standard
lm_aaa<- lm(aaa~x+y+z)
Je connais le résumé des fonctions, les noms et les coefficients. Cependant, le résumé semble être le seul moyen d'accéder manuellement à l'erreur standard. Avez-vous une idée de la façon dont je peux simplement sortir en soi?
merci!
La sortie de la fonction summary
est juste un R liste. Vous pouvez donc utiliser toutes les opérations de liste standard. Par exemple:
#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)
L'objet ou la liste m
possède un certain nombre d'attributs. Vous pouvez y accéder en utilisant le support ou l'approche nommée:
m$sigma
m[[6]]
Une fonction pratique à connaître est, str
. Cette fonction fournit un résumé des attributs des objets, c'est-à-dire.
str(m)
Pour obtenir une liste des erreurs standard pour tous les paramètres, vous pouvez utiliser
summary(lm_aaa)$coefficients[, 2]
Comme d'autres l'ont souligné, str(lm_aaa)
vous dira à peu près toutes les informations qui peuvent être extraites de votre modèle.
#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
Si vous ne souhaitez pas obtenir l'erreur/l'écart-type du modèle , mais plutôt l'erreur/l'écart-type du coefficients individuels , utilisez
# 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"]
Pour plus d'informations sur l'erreur standard/l'écart du modèle, voir ici . Pour plus d'informations sur l'erreur standard/l'écart des coefficients, voir ici .
Je pense que les lignes suivantes peuvent également vous fournir une réponse rapide:
lm_aaa<- lm(aaa~x+y+z)
se <- sqrt(diag(vcov(lm_aaa)))