¿Cómo hago referencia a los errores estándar del coeficiente de un modelo de regresión? [cerrado]


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

Me gustaría usar el estándar. Error de rprice2 al hacer otros cálculos. Sé hacer referencia a cualquiera de los objetos en el modelo, uso el modelo de sintaxis $ object, pero ¿cuál es la sintaxis para hacer referencia a los errores estándar?


¿Qué tipo de objeto modelo es este? Si su objeto modelo (llámelo mod) es un lm o un glm, puede extraer los errores estándar con el resumen (mod) $ coef [, 2]
Macro

es un modelo lm, estoy tratando de calcular la estadística t con el siguiente código, usando su comentario: tstat <-abs ( modelo coef [2,2]) ... que parece funcionar , pero no estoy seguro de cómo interpretar la salida de tstat que es: (Intercepción) rprice2 19.99568 3.61563coef/summary(model)
Aaron

1
Tenga en cuenta que el atributo de coeficientes (una matriz de 2x4) de la summary()salida se puede extraer con el coef()comando Si solo desea el error estándar estimado para el coeficiente de rprice2, use eg coef(summary(mod))[2,2]. Si desea la estadística t correspondiente, use coef(summary(mod))[2,3].
invitado

Respuestas:


9

En general, desea la vcovfunción que proporciona la matriz de covarianza de parámetros completa. Para obtener los errores estándar asintóticos regulares informados por summaryusted, puede usar

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

por cierto, desearía que las diagonales fuera de vcov(model)obtener efectos marginales para los términos de interacción: ver Brambor et al. (2006) .

Tenga en cuenta también paquetes como sandwich dedicados a la construcción de diferentes tipos de errores estándar, por ejemplo, 'robustos' a varios tipos de violaciones.


4

Para extraer sin realizar ningún otro cálculo, mientras usa la sintaxis del modelo $ del objeto:

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

3

Para obtener una matriz con los resultados de la regresión lineal:

> coef(summary(f))

Para extraer un valor específico de la matriz:

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

1

Según tengo entendido, quieres hacer esto en 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))

Da:

> 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

Vaya, lo siento, no vi tu propia vcovaplicación en medio del código antes de escribir mi respuesta.
conjugateprior

@ConjugatePrior: Eso está bien. Obviamente mi respuesta fue un poco confusa y sus comentarios sobre el tema agregaron más cuerpo a la respuesta :-)
Max Gordon
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.