Pada dasarnya saya perlu meniru Hartley's 'Panduan Pengguna untuk Memecahkan Model Siklus Bisnis Riil' ( http://www.econ.ucdavis.edu/faculty/kdsalyer/LECTURES/Ecn235a/Linearization/ugfinal.pdf ). Secara khusus, saya ingin mensimulasikan sistem dinamis yang tersirat oleh model yang ditentukan sebagai berikut:
di mana adalah konsumsi, adalah pasokan tenaga kerja, adalah modal, adalah proses teknologi autoregresif, adalah output dan adalah investasi.h k z y i
Saya mensimulasikannya menggunakan logika berikut: katakanlah pada waktu , semuanya berada pada kondisi mapan dan semua nilai adalah 0, dari mana kita memiliki . Kemudian, pada dengan memberikan kejutan ke sistem melalui , saya menyelesaikan untuk dan (karena saya memiliki 'kaget' dan sebelumnya diperoleh Lalu, saya pasang keduanya untuk mengambil sisanya, yaitu - dan ulangi prosesnya.k t + 1 t + 1 ε c t + 1 h t + 1 z t + 1 k t + 1 y t + 1 , i t + 1 , k t + 2
Sayangnya, saya mendapatkan proses peledakan yang tidak masuk akal:
Saya juga menyertakan kode R yang digunakan untuk mensimulasikan ini:
n<-300
data.simulated <- data.table(t = 0, zval = 0, cval = 0, hval = 0, kval = 0, yval = 0, ival = 0)
data.simulated <- rbind(data.simulated, data.table(t = 1, kval = 0), fill = TRUE)
for (ii in 1:n){
##initial shocks
eps <- rnorm(1, mean = 0, sd = 0.007)
zt1 <- data.simulated[t == ii - 1, zval]*0.95 + eps
kt1 <- data.simulated[t == ii, kval]
##solve for ct, ht
lmat <- matrix(c(1, -0.54, 2.78, 1), byrow = T, ncol = 2)
rmat <- matrix(c(0.02 * kt1 + 0.44 * zt1, kt1 + 2.78 * zt1), ncol = 1)
solution <- solve(lmat, rmat)
ct1 <- solution[1, ]
ht1 <- solution[2, ]
##now solve for yt1 and kt2 and it1
yt1 <- zt1 + 0.36 * kt1 + 0.64 * ht1
kt2 <- -0.07 * ct1 + 1.01 * kt1 + 0.06 * ht1 + 0.1 * zt1
it1 <- 3.92 * yt1 - 2.92 * ct1
##add to the data.table the results
data.simulated[t == ii, c("zval", "cval", "hval", "yval", "ival") := list(zt1, ct1, ht1, yt1, it1)]
data.simulated <- rbind(data.simulated, data.table(t = ii + 1, kval = kt2), fill = TRUE)
}
a <- data.simulated[, list(t, cval, ival, yval)]
a <- data.table:::melt.data.table(a, id.vars = "t")
ggplot(data = a, aes(x = t, y = value, col = variable)) + geom_line()
Sy pertanyaan saya sederhana - apakah sistem yang ditentukan dalam makalah secara inheren tidak stabil dan ergo hasilnya, atau apakah saya membuat kesalahan di suatu tempat?
BERITA Terakhir 20 Maret 2015 : Saya telah mengirim email kepada prof. K. Salyer, salah satu penulis Panduan Pengguna. Dalam komunikasi yang berulang, dia memverifikasi bahwa kedua masalah (lihat jawaban saya di bawah, serta jawaban @ivansml), memang ada:
a) Persamaan yang benar untuk hukum gerak konsumsi adalah seperti yang ditunjukkan oleh @ivansml
b) Jumlah adalah salah disebut "varians" (hal. 11) di koran. Pada kenyataannya, ini adalah standar deviasi , dan memang demikian besarnya adalah temuan khas dalam data (prof. Salyer merujuk "hal. 22 bentuk bab.1 dari Cooley dan Prescott's Frontiers of Business Cycle Research).0.007
Kedua kesalahan berhubungan dengan versi cetak dari kertas. Dengan kata lain, simulasi di balik Gambar 1 dari makalah ini benar: mereka menggunakan persamaan yang benar untuk konsumsi, dan mereka menggunakan sebagai standar deviasi dari gangguan dalam proses teknologi. Jadi ini adalah grafik kedua di bawah ini yang valid.0.007
FASE A
Saya diverifikasi dengan simulasi (dan menggunakan deviasi standar yang benar) bahwa model meledak, meskipun itu melakukannya ke atas daripada ke bawah. Pasti ada kesalahan perhitungan di koran, yang bagaimanapun tidak "ditransmisikan" ke simulasi penulis. Untuk saat ini saya tidak dapat memikirkan hal lain, karena metodologi ini standar. Saya tertarik dan masih mengerjakannya.
FASE B0.007
Setelah jawaban @ ivansml, yang mengidentifikasi kesalahan di kertas (yang ternyata tidak dibuat dalam simulasi penulis) , saya pikir saya telah mengidentifikasi kesalahan kedua , kali ini dalam simulasi : dan ini terkait dengan apakah adalah standar deviasi atau nilai varians.
Secara khusus: Menggunakan sistem persamaan yang dikoreksi, dan gangguan acak (yaitu seperti yang ditulis dalam kertas ) saya mendapatkan grafik berikut dari yang terakhir 120 realisasi dari total 3.000:ϵi∼N(0,σ2=0.007),⟹SD=0.0837
Perhatikan nilai pada sumbu vertikal: mereka jauh lebih besar dari rentang nilai yang muncul pada Gambar 1 di makalah penulis.
Tetapi jika saya menghasilkan gangguan menurut , maka saya mendapatkanϵi∼N(0,σ2=0.00049),⟹SD=0.007
Sekarang kisaran nilai cocok dengan yang muncul dalam grafik kertas. Ini mungkin merupakan kasus bahwa Varians yang benar adalah dan penulis salah menggunakannya sebagai StDev. Tetapi juga mungkin bahwa varians yang benar adalah dan SD yang benar adalah . Jadi simulasi itu benar (sesuai dengan perkiraan yang diperoleh), tetapi secara tidak sengaja mereka menyebut di koran "Varians" apa yang harus disebut "Standar Deviasi".0,000049 0,0070.007 0.000049 0.007
Saya akan berusaha menghubungi penulis mengenai dua hal ini.
sumber