Bagaimana cara merujuk kesalahan standar koefisien model regresi? [Tutup]


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

Saya ingin menggunakan Std. Kesalahan rprice2 membuat perhitungan lain. Saya tahu untuk referensi salah satu objek dalam model, saya menggunakan model sintaks $ objek, tapi apa sintaks untuk referensi kesalahan std?


objek model apa ini? Jika objek model Anda (sebut mod) adalah lm atau glm, Anda dapat mengekstrak kesalahan standar dengan ringkasan (mod) $ coef [, 2]
Makro

ini model lm, saya mencoba menghitung statistik-t dengan kode berikut, menggunakan komentar Anda: tstat <-ab (modelcoef/summary(model)coef [2,2]) ... yang sepertinya berfungsi, tapi saya tidak yakin bagaimana mengartikan output dari tstat yaitu: (Intercept) rprice2 19,99568 3,61563
Aaron

1
Perhatikan bahwa atribut koefisien (array 2x4) dari summary()output dapat diekstraksi menggunakan coef()perintah. Jika Anda hanya ingin estimasi kesalahan standar untuk koefisien rprice2, gunakan mis coef(summary(mod))[2,2]. Jika Anda ingin t-statistik yang sesuai, gunakan coef(summary(mod))[2,3].
tamu

Jawaban:


9

Cukup umum Anda menginginkan vcovfungsi yang menyediakan matriks kovarians parameter lengkap. Untuk mendapatkan kesalahan standar asimptotik reguler yang dilaporkan oleh summaryAnda dapat menggunakan

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

tetapi Anda ingin para diagonal vcov(model)untuk mendapatkan efek marginal untuk istilah interaksi: lihat Brambor et al. (2006) .

Perhatikan juga paket-paket seperti sandwich ditujukan untuk membangun berbagai jenis kesalahan standar, misalnya yang 'kuat' untuk berbagai jenis pelanggaran.


4

Untuk mengekstrak tanpa melakukan perhitungan lain, saat menggunakan sintaks objek $ model:

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

3

Untuk mendapatkan matriks dengan hasil regresi linier:

> coef(summary(f))

Untuk mengekstrak nilai tertentu dari matriks:

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

1

Seperti yang saya pahami, Anda ingin melakukan ini di 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))

Memberi:

> 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

Ups, maaf, saya tidak melihat vcovaplikasi Anda yang terletak di tengah kode sebelum saya menulis jawaban saya.
conjugateprior

@ConjugatePrior: Tidak apa-apa. Jelas jawaban saya agak tidak jelas dan komentar Anda tentang masalah tersebut menambahkan lebih banyak jawaban :-)
Max Gordon
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.