Como faço para referenciar os erros padrão do coeficiente de um modelo de regressão? [fechadas]

8
            Estimate Std. Error t value Pr(>|t|)    
(Intercept)  10.2758     0.5185  19.817  < 2e-16 ***
rprice2      -1.8581     0.5139  -3.616 0.000696 ***

Eu gostaria de usar o Std. Erro do rprice2 para fazer outros cálculos. Eu sei fazer referência a qualquer um dos objetos no modelo, eu uso a sintaxe model $ object, mas qual é a sintaxe para referenciar os erros std?

Aaron
fonte
que tipo de objeto de modelo é esse? Se o seu objeto de modelo (chamado mod) for um lm ou um glm, você poderá extrair os erros padrão com o resumo (mod) $ coef [, 2]
Macro
coef/svocêmmumary(modeeu)
1
Observe que o atributo de coeficientes (uma matriz 2x4) da summary()saída pode ser extraído usando o coef()comando Se você deseja apenas o erro padrão estimado para o coeficiente de rprice2, use, por exemplo coef(summary(mod))[2,2]. Se você deseja a estatística t correspondente, use coef(summary(mod))[2,3].
guest

Respostas:

9

Geralmente, você deseja a vcovfunção que fornece a matriz de covariância completa dos parâmetros. Para obter os erros padrão assintóticos regulares relatados por summaryvocê, use

se <- sqrt(diag(vcov(model)))

Aliás, você gostaria que as diagonais externas obtivessemvcov(model) efeitos marginais para os termos de interação: veja Brambor et al. (2006) .

Observe também pacotes como o sanduíche dedicado à construção de diferentes tipos de erros padrão, por exemplo, 'robustos' a vários tipos de violações.

conjugateprior
fonte
4

Para extrair sem executar outros cálculos, enquanto usa a sintaxe do objeto $ model:

summary(model)$coefficients["rprice2","Std. Error"]
darokun
fonte
3

Para obter uma matriz com os resultados da regressão linear:

> coef(summary(f))

Para extrair um valor específico da matriz:

> coef(summary(f))["rprice2","Std. Error"]
[1] 0.5139 
Contango
fonte
1

Pelo que entendi, você quer fazer isso no R:

f <- lm(speed~dist, data=cars)
coef(f)
confint(f)
sd = sqrt(diag(vcov(f)))
cbind("2.5 %"=-sd*1.96+coef(f),"97.5 %"=sd*1.96+coef(f))

Dá:

> coef(f)
(Intercept)        dist 
  8.2839056   0.1655676 
> confint(f)
                2.5 %     97.5 %
(Intercept) 6.5258378 10.0419735
dist        0.1303926  0.2007426
> cbind("2.5 %"=-sd*1.96+coef(f),"97.5 %"=sd*1.96+coef(f))
                2.5 %    97.5 %
(Intercept) 6.5701120 9.9976992
dist        0.1312784 0.1998568
Max Gordon
fonte
Ops, desculpe, eu não vi seu próprio vcovaplicativo aninhado no meio do código antes de escrever minha resposta.
conjugateprior
@ConjugatePrior: Tudo bem. Obviamente, minha resposta foi um pouco obscura e seus comentários sobre o assunto acrescentaram mais corpo à resposta :-) #
Max Gordon Max