จำลองวัฏจักรธุรกิจจริง


10

โดยทั่วไปฉันต้องทำซ้ำ 'คู่มือผู้ใช้ของ Hartley ในการแก้ไขโมเดลวัฏจักรธุรกิจจริง' ( http://www.econ.ucdavis.edu/faculty/kdsalyer/LECTURES/Ecn235a/Linearization/ugfinal.pdf ) โดยเฉพาะฉันต้องการจำลองระบบพลวัตโดยนัยโดยรูปแบบที่ระบุไว้ดังต่อไปนี้:

ป้อนคำอธิบายรูปภาพที่นี่

เมื่อคือการบริโภค, hคือค่าแรง, kคือทุน, zคือกระบวนการทางเทคโนโลยีอัตโนมัติ, yคือผลลัพธ์และฉันเป็นการลงทุนชั่วโมงkZYผม

ฉันจำลองโดยใช้ตรรกะต่อไปนี้: พูดในเวลาที่ทุกอย่างอยู่ที่ความมั่นคงของรัฐและค่าทั้งหมดเป็น 0 จากการที่เรามีk T + 1 จากนั้นที่t + 1โดยให้อัพระบบผ่านεฉันแก้หาc t + 1และh t + 1 (เนื่องจากฉันมี 'ตกใจ' z t + 1และก่อนหน้านี้ได้รับk t + 1จากนั้น ฉันเสียบสองตัวนั้นเพื่อดึงส่วนที่เหลือนั่นคือ - y t + 1 , iเสื้อkเสื้อ+1เสื้อ+1εเสื้อ+1ชั่วโมงเสื้อ+1Zเสื้อ+1kเสื้อ+1และทำซ้ำกระบวนการyt+1,it+1,kt+2

น่าเสียดายที่ฉันได้รับกระบวนการระเบิดที่ไม่สมเหตุสมผล:

ป้อนคำอธิบายรูปภาพที่นี่

ฉันยังรวมรหัส R ที่ใช้ในการจำลอง:

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

คำถามของฉันง่ายมาก - ระบบที่ระบุในเอกสารนั้นมีความไม่แน่นอนและผลลัพธ์ที่ได้หรือไม่หรือฉันทำผิดพลาดที่ไหนสักแห่ง?

คำตอบ:


6

explosiveness

Q1(c,k,h,z)kh

ct=0.54kt+0.02ht+0.44zเสื้อ

การจำลอง

อันดับแรกเราสามารถแสดงการบริโภคและแรงงานเป็นฟังก์ชันเชิงเส้นของตัวแปรสถานะ (ไม่จำเป็นต้องแก้ไขระบบในแต่ละขั้นตอนของการจำลอง) เงื่อนไขดุลยภาพระหว่างกันและ intratemporal สามารถเขียนเป็น

[1-0.022.781][เสื้อชั่วโมงเสื้อ]=[0.540.4412.78][kเสื้อZเสื้อ]

ดังนั้นหลังจากคูณด้วยอินเวอร์สเราก็จะได้

[เสื้อชั่วโมงเสื้อ]=[0.530.47-0.471.47][kเสื้อZเสื้อ]

ถัดไปสามารถเขียนเปลี่ยนสถานะเป็น

[kเสื้อ+1Zเสื้อ+1]=[-0.070.0600][เสื้อชั่วโมงเสื้อ]+[1.010.100.95][kเสื้อZเสื้อ]+[0εเสื้อ+1]

ซึ่งสามารถลดลงได้โดยการ substuting เพื่อควบคุมตัวแปร

[kเสื้อ+1Zเสื้อ+1]=[0.940.1600.95][kเสื้อZเสื้อ]+[0εเสื้อ+1]

ตอนนี้การจำลองควรน่ารำคาญนี่คือตัวอย่าง Matlab / Octave:

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

การจำลอง

แน่นอนในทางปฏิบัติคุณควรคำนวณโซลูชันทั้งหมดใหม่รวมถึงการสลายตัวของไอเกนค่าเพื่อที่คุณจะสามารถเปลี่ยนพารามิเตอร์ ฯลฯ


(+1) บางทีมันอาจจะเป็นประโยชน์ในการสร้างกราฟเอาท์พุทและการลงทุนซึ่งโดยปกติจะอยู่ในจุดสนใจเช่นกัน
Alecos Papadopoulos

5

ข่าวรอบชิงชนะเลิศ 20 มีนาคม 2558 : ฉันได้รับศ. K. Salyer หนึ่งในผู้แต่งคู่มือผู้ใช้ ในการสื่อสารซ้ำเขายืนยันว่าปัญหาทั้งสอง (ดูคำตอบของฉันด้านล่างเช่นเดียวกับคำตอบ @ivansml) มีอยู่:

a)สมการที่ถูกต้องสำหรับกฎการเคลื่อนที่ของการบริโภคคือ @ivansml แสดงให้เห็น

0.007

0.007


ระยะที่
ฉันตรวจสอบโดยการจำลอง (และใช้ค่าเบี่ยงเบนมาตรฐานที่ถูกต้อง) ที่แบบจำลองนั้นระเบิดแม้ว่ามันจะสูงขึ้นมากกว่าลง จะต้องมีข้อผิดพลาดในการคำนวณในกระดาษซึ่งอย่างไรก็ตามอย่างใดไม่ได้ "ส่ง" เพื่อจำลองของผู้เขียน สำหรับช่วงเวลาที่ฉันไม่สามารถคิดอะไรอย่างอื่นเพราะวิธีการที่เป็นมาตรฐาน ฉันรู้สึกทึ่งและยังคงทำงานต่อไป


0.007

εผม~ยังไม่มีข้อความ(0,σ2=0.007),SD=0.0837ป้อนคำอธิบายรูปภาพที่นี่

หมายเหตุ: ค่าบนแกนแนวตั้ง: พวกเขามีมากขึ้นกว่าช่วงของค่าที่ปรากฏในรูปที่ 1 ในกระดาษเขียนฯ

εผม~ยังไม่มีข้อความ(0,σ2=0.00049),SD=0.007ป้อนคำอธิบายรูปภาพที่นี่

0.0070.0000490.007

ฉันจะพยายามติดต่อผู้เขียนในสองเรื่องนี้


ฉันพยายามที่จะเข้าใจว่ากระบวนการนี้เกิดขึ้นจริงในขณะที่คุณชี้ให้เห็น ฉันทำผิดพลาดเกี่ยวกับความแปรปรวน, บัสตั้งแต่ sd เป็น 0.083 ซึ่งหมายถึงการเปลี่ยนแปลงที่ยิ่งใหญ่กว่าที่ฉันใช้ในตอนแรกและกระบวนการระเบิดเร็วขึ้นมาก สิ่งที่ฉันไม่เข้าใจวิธีที่ผู้เขียนจัดการเพื่อจำลอง (ตามที่เขาเขียน) 3000 ข้อสังเกตและเตรียมพล็อตของชุดเครื่องเขียน (ตอนท้ายของบทความ) ในขณะที่กระบวนการไม่แสดงคุณสมบัตินี้
Sarunas

@Sununas ตรวจสอบรหัสของคุณดังนี้: คำนวณสองสามค่าแรกของกระบวนการต่าง ๆด้วยตนเองโดยใช้แรงกระแทกที่สร้างขึ้นจริงและเปรียบเทียบกับค่าที่เกี่ยวข้องที่รหัสให้คุณ
Alecos Papadopoulos

ฉันทำอย่างนั้น. พยายามดำเนินการด้วยตนเอง สิ่งที่จะเป็นประโยชน์ในการรู้จากนักวิจัยที่มีประสบการณ์มากขึ้นก็คือว่าทำไมกระบวนการทุนจะระเบิด เราไม่ต้องการให้มันอยู่กับที่หรือเปล่า? รัฐมั่นคงอย่างไรจะประสบความสำเร็จ? ฉันตรวจสอบค่าลักษณะเฉพาะของระบบและตามที่คุณชี้ให้เห็นก่อนหน้านี้ - ในความเป็นจริงระบบระเบิดได้ดังนั้นจึงไม่มีอะไรผิดปกติในโค้ด ความผิดพลาดอยู่ในกระดาษหรือฉันไม่เข้าใจตรรกะ
Sarunas

ขอบคุณมัดสำหรับความพยายามของคุณ คุณช่วยนรกออกจากฉัน! อย่างน้อยก็ไม่ได้ผมที่ทำผิดพลาด (พื้นฐาน) :)
Sarunas

1
1/β(kเสื้อ,Zเสื้อ)A,B
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.