Hitung kesalahan standar Newey-West tanpa objek lm di R

13

Saya menanyakan pertanyaan ini kemarin di StackOverflow, dan mendapat jawaban, tetapi kami sepakat bahwa itu agak sedikit meretas dan mungkin ada cara yang lebih baik untuk melihatnya.

Pertanyaannya: Saya ingin menghitung kesalahan standar Newey-West (HAC) untuk vektor (dalam hal ini vektor pengembalian saham). Fungsi NeweyWest()dalam sandwichpaket melakukan ini, tetapi mengambil lmobjek sebagai input. Solusi yang ditawarkan Joris Meys adalah memproyeksikan vektor ke 1, yang mengubah vektor saya menjadi residu untuk dimasukkan NeweyWest(). Itu adalah:

as.numeric(NeweyWest(lm(rnorm(100) ~ 1)))

untuk varian mean.

Haruskah saya melakukannya seperti ini? Atau ada cara untuk lebih langsung melakukan apa yang saya inginkan? Terima kasih!

Richard Herron
sumber
1
Pertanyaan tidak jelas. Apa yang Anda maksud dengan "standard error for a vector"? Biasanya kami menginginkan kesalahan standar estimasi parameter. Parameter apa yang Anda perkirakan? Kode yang Anda berikan menghasilkan estimasi Newey West dari kesalahan standar kuadrat dari rata-rata. Itukah yang kamu inginkan?
Cyrus S
@Cyrus - Dengan "vektor" Maksud saya bukan lmobjek. Saya sering memiliki vektor (katakanlah serangkaian pengembalian saham) yang saya tidak ingin terlibat dalam regresi (karena saya tidak peduli tentang proyeksi itu, selain pada 1), tetapi saya masih menginginkan HAC kesalahan standar. Dalam hal ini estimasi parameter adalah return saham. Jawaban di atas melakukan itu, tetapi membutuhkan penghitungan lmobjek, yang saya benar-benar tidak perlu. Jadi saya bertanya-tanya apakah ada rutin di R yang melakukan ini tanpa membuat lmobjek.
Richard Herron
Maaf, masih belum jelas: "Dalam hal ini estimasi parameter adalah pengembalian saham." Maksud Anda, "rata-rata pengembalian saham dalam seri"? Jika ya, maka apa yang Anda miliki baik-baik saja.
Cyrus S
@Cyrus - Saya tahu apa yang saya punya, tapi saya berharap ada cara untuk menghitung UK tanpa melewati lmobjek untuk kasus satu vektor. Saya rasa tidak. Terima kasih telah membantu saya menjelaskan pertanyaan saya!
Richard Herron

Jawaban:

15

Misalkan kita memiliki regresi

y=Xβ+kamu

Kemudian OLS memperkirakan β adalah β - β = ( X ' X ) - 1 X ' u dan dengan asumsi bahwa β adalah berisi perkiraan kita memiliki V sebuah r ( β ) = E [ ( X ' X ) - 1 X ' u u X ( X X ) - 1 ]β^

β^-β=(XX)-1Xkamu
β^
VSebuahr(β^)=E[(XX)-1XkamukamuX(XX)-1]

Asumsi OLS yang biasa adalah bahwa dan E ( u u | X ) =E(kamu|X)=0 yang memberi kita V sebuah r ( β ) = σ 2 E ( X ' X ) - 1 ini matriks kovarians biasanya dilaporkan dalam paket statistik.E(kamukamu|X)=σ2sayan

VSebuahr(β^)=σ2E(XX)-1

Jika adalah heteroscedastic dan (atau) autocorellated, maka E ( u u | X ) σ 2 I n dan output yang biasa memberikan hasil yang menyesatkan. Untuk mendapatkan hasil yang benar, kesalahan standar HAC dihitung. Semua metode untuk kesalahan HAC menghitung d i a g ( E ( X X ) - 1 X u u X ( X X ) - 1 ) .kamusayaE(kamukamu|X)σ2sayan

dsayaSebuahg(E(XX)-1XkamukamuX(XX)-1).
Mereka berbeda pada asumsi mereka seperti apa .E(kamukamu|X)

Jadi wajar kalau fungsi itu NeweyWestmeminta model linier. Metode Newey-West menghitung kesalahan standar yang benar dari penduga model linier. Jadi solusi Anda adalah sempurna benar jika Anda menganggap bahwa return saham Anda mengikuti model dan Anda ingin memperkirakan V sebuah r ( μ ) menjaga terhadap penyimpangan dalam u t .

rt=μ+kamut
VSebuahr(μ)kamut

VSebuahr(rt)

rt=σtεt
εtσtVSebuahr(rt)=VSebuahr(σt) dan Anda memiliki perkiraan "benar" dari varians Anda, menjaga terhadap kekhasan pengembalian saham biasa seperti pengelompokan volatilitas, kemiringan dan lain-lain.
mpiktas
sumber
Terima kasih! Mungkin tidak ada cara yang lebih efisien bagi saya untuk kode ini daripada membentuk lmobjek.
Richard Herron
Saya kira lmobjeknya adalah cara untuk pergi! Terima kasih untuk ringkasan yang bagus ... kadang-kadang dalam aplikasi saya terlalu jauh dari teori.
Richard Herron