Wie verweise ich auf die Standardfehler eines Regressionsmodellkoeffizienten? [geschlossen]

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

Ich möchte den Std verwenden. Fehler von rprice2, um andere Berechnungen durchzuführen. Ich weiß, dass ich auf eines der Objekte im Modell verweise. Ich verwende das Syntaxmodell $ object. Wie lautet jedoch die Syntax zum Verweisen auf die Standardfehler?

Aaron
quelle
Was für ein Modellobjekt ist das? Wenn Ihr Modellobjekt (nennen Sie es mod) ein lm oder ein glm ist, können Sie die Standardfehler mit summary (mod) $ coef [, 2]
Macro
Es ist ein lm-Modell, ich versuche, die t-Statistik mit dem folgenden Code unter Verwendung Ihres Kommentars zu berechnen: tstat <-abs (Modell coef [2,2]) ... was zu funktionieren scheint , aber ich bin nicht sicher, wie ich die Ausgabe von tstat interpretieren soll, die ist: (Intercept) rprice2 19.99568 3.61563coef/summary(model)
Aaron
1
Beachten Sie, dass das Koeffizientenattribut (ein 2x4-Array) der summary()Ausgabe mit dem coef()Befehl extrahiert werden kann . Wenn Sie nur den geschätzten Standardfehler für den Koeffizienten von möchten rprice2, verwenden Sie z coef(summary(mod))[2,2]. Wenn Sie die entsprechende t-Statistik wünschen, verwenden Sie coef(summary(mod))[2,3].
Gast

Antworten:

9

Ganz allgemein möchten Sie die vcovFunktion, die die vollständige Parameter-Kovarianzmatrix bereitstellt. Um die von summaryIhnen gemeldeten regulären asymptotischen Standardfehler zu erhalten, können Sie verwenden

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

Übrigens möchten Sie, dass die Off-Diagonalen von vcov(model)marginale Effekte für Interaktionsterme erhalten: siehe Brambor et al. (2006) .

Beachten Sie auch Pakete wie Sandwich, die sich mit der Erstellung verschiedener Arten von Standardfehlern befassen, z. B. solche, die gegenüber verschiedenen Arten von Verstößen "robust" sind.

Konjugatprior
quelle
4

So extrahieren Sie, ohne andere Berechnungen durchzuführen, während Sie die Objektmodellsyntax verwenden:

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

So erhalten Sie eine Matrix mit den Ergebnissen der linearen Regression:

> coef(summary(f))

So extrahieren Sie einen bestimmten Wert aus der Matrix:

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

So wie ich es verstehe, möchten Sie dies in R tun:

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

Gibt:

> 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
quelle
Hoppla, tut mir leid, ich habe Ihre eigene vcovAnwendung in der Mitte des Codes nicht gefunden, bevor ich meine Antwort geschrieben habe.
Conjugateprior
@ ConjugatePrior: Das ist in Ordnung. Offensichtlich war meine Antwort etwas unklar und Ihre Kommentare zu diesem Thema fügten der Antwort mehr Körper hinzu :-)
Max Gordon