Saya saat ini bekerja dengan versi uji Pesaran & Timmermann dari tahun 2009. Karena saya tidak dapat menemukan paket R yang berisi fungsi untuk menghitungnya ( rugarch
memiliki versi 1992 DACTest
). Saya baru-baru ini memposting utas lintas divalidasi dengan pertanyaan serupa di mana mlofton pengguna yang baik menyarankan saya untuk melihat daftar ini. Karena lintas-posting bukan praktik yang dapat diterima setelah lebih dari seminggu penelitian keras saya berhasil mengembangkan kode R untuk newPT_test
. Tampaknya benar, tetapi karena saya memiliki banyak keraguan, mungkin seseorang akan mengklarifikasi kekhawatiran saya.
Berikut ini rumus yang saya gunakan (Pönkä 2017):
"... dan Y = ( y 2 , . . . , y T ) , , Y = ( y 1 , . dan adalah sebagai vektor yang ..." Dari sumber lain saya belajar bahwa adalah matriks identitas.
Masalah utama saya adalah notasi. Saya mengerti bahwa mewakili satu dan nol tergantung pada apakah perubahan antara nilai aktual dan observasi yang terakhir adalah positif ( ) atau negatif ( )? Sama untuk perkiraan y t . Saya tidak yakin bagaimana memahami vektor: Y = ( y 2 , . . . , Y t ) ' dan Y ' di S elemen. saya tahu itu Pada akhir artinya adalah vektor kolom, sehingga menunjukkan bahwa sekarang vektor barisnya sekarang ?. Juga dimulai dari yang berarti saya menghapus observasi pertama dari seri biner sementara di saya menghapus lalu? Itu membuat a matriks benar?
Ini kode R:
nwPT_test=function(actual,forecast){
yt=actual #assign actual to yt to make code shorter
xt=forecast #assign forecast to xt...
delta_yt=as.matrix(cbind(ifelse(yt-lag(yt)>0,1,0)[-1])) #calc change of yt (delta)
delta_xt=as.matrix(cbind(ifelse(xt-lag(xt)>0,1,0)[-1])) #calc change of xt(delta)
nT=length(delta_yt) #number of Time periods
Yt=cbind(delta_yt[-1]) #Yt=(y2,...,yT)
Xt=cbind(delta_xt[-1]) #Xt=(x2,...,xT)
Yt2=as.vector(rbind(delta_yt[-nT])) #Yt2=(y1,...,yT-1)
Xt2=as.vector(rbind(delta_xt[-nT])) #Xt2=(x1,...,xT-1)
teta=rep(1,nT-1) #T-1 vector of ones
I=diag(nT-1) #Identity matrix
W=cbind(teta,Yt2,Xt2) #W matrix as in formula
Mw=I-(W%*%((t(W)%*%W)^(-1))%*%t(W))#calcualting Mw as in formula
#calculating elements S as in formula
Syy.w=((nT-1)^(-1))*t(Yt)%*%Mw%*%Yt
Sxx.w=((nT-1)^(-1))*t(Xt)%*%Mw%*%Xt
Sxy.w=((nT-1)^(-1))*t(Xt)%*%Mw%*%Yt
Syx.w=((nT-1)^(-1))*t(Yt)%*%Mw%*%Xt
PT=(nT-1)*(Syy.w^(-1)*Syx.w*Sxx.w^(-1)*Sxy.w)#finally calculating PT
p.value=1-pchisq(PT,df=1)#calculating p-value
#some code to make it looks nicer
summary=c(PT,p.value)
names(summary)=c("PT statistic","p.value")
summary
}
Saya berhasil memecahkan sebagian besar masalah dari utas saya sebelumnya. Berikut ini tautannya :: https://stats.stackexchange.com/questions/372776/confusions-about-pesaran-timmermann-test-2009-version?noredirect=1#comment701286_372776 Mungkin membantu memahami cara saya mendekatinya. Sejauh ini kode saya tampaknya memberikan hasil yang benar.
Harap jawab hanya pertanyaan dari utas saat ini. Semoga saya memperbarui pertanyaan saya cukup untuk tidak diperlakukan sebagai pos ganda ... Dan terima kasih lagi kepada mlofton untuk memberi tahu saya tentang subsite SE yang hebat ini.
sumber