Gerçek İş Döngüsünü Simüle Etme


10

Temel olarak Hartley'in 'Gerçek İş Döngüsü Modellerini Çözmek için Bir Kullanım Kılavuzu' nu ( http://www.econ.ucdavis.edu/faculty/kdsalyer/LECTURES/Ecn235a/Linearization/ugfinal.pdf ) çoğaltmam gerekiyor . Özellikle, aşağıdaki gibi belirtilen modelin ima ettiği dinamik sistemi simüle etmek istiyorum:

resim açıklamasını buraya girin

burada tüketim, h işgücü arzı, k sermaye, z otoregresif teknolojik süreç, y çıktı ve i yatırımdır.chkzyi

Ben aşağıdaki mantığı kullanarak simüle ediyorum: diyelim ki, zamanında , her şey sabit durumda ve tüm değerler 0, ki burada k t + 1 var . Daha sonra, en t + 1 üzerinden sisteme bir şok vererek £ değerinin , i çözmek C t + 1 ve h t + 1 (I 'şok' si z t + 1 ve daha önce elde edilen k t + 1 . Daha sonra, Geri kalanını almak için bu ikisini takarım, yani - y t + 1 , itkt+1t+1εct+1ht+1zt+1kt+1 ve işlemi tekrarlayın.yt+1,it+1,kt+2

Ne yazık ki, mantıklı olmayan patlayıcı bir süreç elde ediyorum:

resim açıklamasını buraya girin

Ayrıca bunu simüle etmek için kullanılan R kodu içerir:

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

Benim sorum basit - kağıtta belirtilen sistem doğası gereği dengesiz ve sonuçları ergo ya da bir yerde bir hata mı yaptım?

Yanıtlar:


6

Patlatma

Q1(c,k,h,z)kh

ct=0.54kt+0.02ht+0.44zt

Simülasyon

İlk olarak, tüketim ve emeği durum değişkenlerinin doğrusal fonksiyonu olarak ifade edebiliriz (simülasyonun her adımında sistemi çözmeye gerek yoktur). Zamanlararası ve zamanlararası denge koşulları şu şekilde yazılabilir:

[10.022.781][ctht]=[0.540.4412.78][ktzt]

yani bir ters ile çarptıktan sonra

[ctht]=[0.530.470.471.47][ktzt]

Daha sonra, durumlar için geçiş şu şekilde yazılabilir:

[kt+1zt+1]=[0.070.0600][ctht]+[1.010.100.95][ktzt]+[0ϵt+1]

kontrol değişkenleri

[kt+1zt+1]=[0.940.1600.95][ktzt]+[0ϵt+1]

Simülasyon önemsiz olmalı, işte bir Matlab / Octave örneği:

T = 200;
X = zeros(2,T);
for i=2:T
    X(:,i) = [0.94 0.16; 0 0.95] * X(:,i-1) + [0; 0.007*randn()];
end
Y = [0.53 0.47; -0.47 1.47] * X;
figure
plot(1:T, [X; Y])
legend('k','z','c','h')

Simülasyon

Tabii ki pratikte, özdeğer ayrışması da dahil olmak üzere tüm çözümü muhtemelen yeniden hesaplamanız gerekir, böylece parametreleri değiştirebilir, vb.


(1). Belki de genellikle ilgi odağı olan (ve yatırım serileri çıktı serilerinden daha fazla değişkenlik gösterdiğinde modelin doğrulanmasına katkıda bulunan) çıktı ve yatırımın grafiğini çizmek faydalı olabilir.
Alecos Papadopoulos

5

Son HABERLER 20 Mart 2015 : E-posta gönderdim prof. Kullanıcı Kılavuzunun yazarlarından biri olan K. Salyer. Tekrarlanan bir iletişimde, her iki sorunun da (aşağıdaki cevabımın yanı sıra @ivansml cevabına bakın) var olduğunu doğruladı:

a) Tüketimin hareket yasası için doğru denklem, @ivansml'in gösterdiği gibidir.

0.007

0.007


FAZ A
Modelin patladığı simülasyonla (ve doğru standart sapmayı kullanarak) aşağıya değil yukarı doğru yapmasına rağmen doğruladım . Makalede, yine de bir şekilde yazarların simülasyonlarına "aktarılmayan" bir hesaplama hatası olmalıdır. Şu an için başka bir şey düşünemiyorum, çünkü metodoloji standart. İlgileniyorum ve hala üzerinde çalışıyorum.


0.007

ϵiN(0,σ2=0.007),SD=0.0837resim açıklamasını buraya girin

Dikey eksendeki değerleri not edin: bunlar , yazarların makalesinde Şekil 1'de görünen değer aralığından çok daha büyüktür.

ϵiN(0,σ2=0.00049),SD=0.007resim açıklamasını buraya girin

0.0070.0000490.007

Bu iki konuda yazarlarla iletişim kurmaya çalışacağım.


Belirttiğiniz gibi sürecin aslında patlayıcı olduğunu anladım. sd başlangıçta kullandığımdan daha da büyük bir varyasyon anlamına gelir ve süreç çok daha hızlı patlar anlamına gelir çünkü otobüs varyans hakkında hata yaptım. Yazar 3000 gözlemi simüle etmeyi ve süreç bu özelliği sergilemediğinde (kağıdın sonunda) sabit serilerin grafiğini nasıl sağlamayı başardı.
Sarunas

@Sarunas Kodunuzu aşağıdaki gibi kontrol edin: gerçekte üretilen şokları kullanarak çeşitli işlemlerin ilk iki-üç değerini manuel olarak hesaplayın ve kodun size karşılık gelen değerleriyle karşılaştırın.
Alecos Papadopoulos

Ben bunu yaptım. manuel olarak devam etmeyi denedi. daha deneyimli araştırmacılardan bilmek faydalı olan şey, sermaye sürecinin neden patlayıcı olabileceğidir? sabit olmasını istemez miydik? aksi halde kararlı duruma nasıl ulaşılabilir? Sistemin özdeğerlerini kontrol ettim ve daha önce işaret ettiğiniz gibi - sistem aslında patlayıcı olduğundan kodun kendisinde yanlış bir şey yok. Ya hatalar kağıtta ya da mantığı anlamıyorum.
Sarunas

çabalarınız için çok teşekkürler. benden cehenneme yardım ettin! en azından, hatayı yapan ben değildim (temelde) :)
Sarunas

1
1/β(kt,zt)A,B
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.