वास्तविक व्यापार चक्र का अनुकरण


10

मूल रूप से मुझे हार्टले के 'ए यूजर गाइड टू सोलिंग रियल बिजनेस साइकिल मॉडल्स' ( http://www.econ.ucdavis.edu/facademy/kdsalyer/LECTURES/Ecn235a.Linearization/ugfinal.pdf ) को दोहराने की जरूरत है । विशेष रूप से, मैं मॉडल द्वारा निहित गतिशील प्रणाली को अनुकरण करना चाहता हूं जो निम्नानुसार निर्दिष्ट है:

यहाँ छवि विवरण दर्ज करें

जहाँ खपत है, श्रम की आपूर्ति है, पूँजी है, ऑटोर्रिजिव तकनीकी प्रक्रिया है, आउटपुट है और निवेश करता हूँ।h k z y ichkzyi

मैं निम्नलिखित तर्क का उपयोग करके इसका अनुकरण करता हूं: समय पर कहें , सब कुछ स्थिर स्थिति में है और सभी मान 0 हैं, जिसमें से हमारे पास । फिर, पर माध्यम से सिस्टम को एक झटका देकर , मैं और लिए हल करता हूं (जैसा कि मैंने 'हैरान' और पहले प्राप्त किया है । फिर, मैं बाकी को पुनः प्राप्त करने के लिए उन दोनों को प्लग करता हूं, जैसे - और प्रक्रिया को दोहराते हैं।कश्मीर टी + 1 टी + 1 ε सी टी + 1 घंटा टी + 1 z टी + 1 कश्मीर टी + 1 y टी + 1 , मैं टी + 1 , कश्मीर टी + 2tkt+1t+1εct+1ht+1zt+1kt+1yt+1,it+1,kt+2

दुर्भाग्य से, मुझे एक विस्फोटक प्रक्रिया मिलती है जिसका कोई मतलब नहीं है:

यहाँ छवि विवरण दर्ज करें

इसमें आर कोड भी शामिल है, जो इसका अनुकरण करने के लिए उपयोग किया जाता है:

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 मेरा प्रश्न सरल है - क्या कागज में निर्दिष्ट प्रणाली स्वाभाविक रूप से अस्थिर है और परिणामों को मिटा देती है, या मैंने कहीं गलती की है?

जवाबों:


6

स्फोटकता

कागज में एक त्रुटि होती है, जो आपके सिमुलेशन में विस्फोटक गतिशीलता का कारण बनती है (हालांकि संभवतः कागज में अंतर्निहित गणना सही थी)। Eigenvalue अपघटन से उत्पन्न संतुलन की स्थिति मैट्रिक्स की तीसरी पंक्ति में कागज के पृष्ठ 12 पर निहित है , चर के रूप में (मैं टिल्डा छोड़ दूंगा, इसलिए सभी) लोअरकेस चर को लॉग-विचलन के रूप में समझा जाना चाहिए)। Eqn के साथ तुलना। (16) पी पर। 13, हम देखते हैं कि और लिए गुणांक स्विच किए जाते हैं, और इसलिए सही स्थिति हैQ1(c,k,h,z)kh

ct=0.54kt+0.02ht+0.44zt

सिमुलेशन

सबसे पहले, हम उपभोग और श्रम को राज्य चर के रैखिक कार्य के रूप में व्यक्त कर सकते हैं (सिमुलेशन के प्रत्येक चरण में सिस्टम को हल करने की कोई आवश्यकता नहीं है)। इंटरटेम्पोरल और इंट्रेटोम्पोरल संतुलन शर्तों के रूप में लिखा जा सकता है

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

इसलिए एक व्युत्क्रम से गुणा करने पर हमें प्राप्त होता है

[ctht]=[0.530.470.471.47][ktzt]

अगला, राज्यों के लिए संक्रमण के रूप में लिखा जा सकता है

[टी+1zटी+1]=[-0.070.0600][सीटीटी]+[1.010.100.95][टीzटी]+[0εटी+1]

जिसे नियंत्रण चर के लिए स्थानापन्न करके कम किया जा सकता है

[टी+1zटी+1]=[0.940.1600.95][टीzटी]+[0εटी+1]

अब सिमुलेशन को तुच्छ होना चाहिए, यहाँ एक माटलब / ऑक्टेव उदाहरण है:

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)। शायद यह आउटपुट और निवेश को ग्राफ करने में मददगार होगा, जो आमतौर पर ब्याज के फोकस में होता है (और मॉडल को मान्य करने में योगदान देता है, जब निवेश श्रृंखला आउटपुट श्रृंखला की तुलना में बड़ी परिवर्तनशीलता प्रदर्शित करती है)।
एलेकोस पापाडोपोलोस

5

अंतिम समाचार 20 मार्च, 2015 : मेरे पास ई-मेल प्रोफेड है। के। सालियर, उपयोगकर्ता गाइड के लेखकों में से एक। बार-बार संचार में, उन्होंने सत्यापित किया कि दोनों मुद्दे (नीचे मेरा जवाब और साथ ही @ivansml उत्तर देखें), मौजूद हैं:

a) खपत की गति के नियम के लिए सही समीकरण @ivansml से पता चलता है

ख) संख्या है गलत तरीके से "विचरण" समाचार पत्र में (पृ। 11) कहा जाता है। वास्तव में, यह मानक विचलन है , और वास्तव में ऐसा परिमाण डेटा में एक विशिष्ट खोज है।0.007

दोनों गलतियाँ कागज के मुद्रित संस्करण से संबंधित हैं। दूसरे शब्दों में, कागज के चित्र 1 के पीछे सिमुलेशन सही हैं: वे खपत के लिए सही समीकरण का उपयोग करते हैं, और वे प्रौद्योगिकी प्रक्रिया में गड़बड़ी के मानक विचलन के रूप में उपयोग करते हैं । तो यह नीचे दिया गया दूसरा ग्राफ है कि यह मान्य है।0.007


कृपया ध्यान दें कि
मैं सिमुलेशन द्वारा सत्यापित किया गया (और सही मानक विचलन का उपयोग करके) कि मॉडल फट गया, हालांकि यह नीचे की बजाय ऊपर की तरफ होता है। कागज में एक गणना करने वाली गलती होनी चाहिए, जो तब भी लेखकों के सिमुलेशन के लिए "संचारित" नहीं थी। फिलहाल मैं कुछ और नहीं सोच सकता, क्योंकि कार्यप्रणाली मानक है। मैं अंतर्मुखी हूं और इसलिए अभी भी इस पर काम कर रहा हूं।

PHASE B
@ ivansml के उत्तर के बाद, जिसने पेपर में एक गलती की पहचान की (जो कि जाहिर तौर पर लेखकों के सिमुलेशन में नहीं बनाई गई थी) , मुझे लगता है कि मैंने एक दूसरी गलती की पहचान की है , इस बार के सिमुलेशन में : और यह संबंधित है कि क्या एक मानक विचलन या एक विचरण मूल्य है। 0.007

विशेष रूप से: समीकरणों की सही प्रणाली का उपयोग करना, और एक यादृच्छिक गड़बड़ी (जैसा कि कागज में लिखा गया है, मुझे पिछले के निम्नलिखित ग्राफ प्राप्त हैं) कुल 3,000 की 120 प्राप्ति: εमैं~एन(0,σ2=0.007),एसडी=0.0837यहाँ छवि विवरण दर्ज करें

ऊर्ध्वाधर अक्ष पर मूल्यों पर ध्यान दें: वे लेखकों के पेपर में चित्र 1 में दिखाई देने वाले मानों की सीमा से बहुत अधिक हैं ।

लेकिन अगर मैं अनुसार गड़बड़ी उत्पन्न करता हूं , तो , तो मुझे प्राप्त होगा εमैं~एन(0,σ2=.००,०४९),एसडी=0.007यहाँ छवि विवरण दर्ज करें

अब मानों की श्रेणी पेपर के ग्राफ में प्रदर्शित होने वालों से मेल खाती है। यह मामला हो सकता है कि सही वेरिएंस और लेखकों ने इसे गलत तरीके से StDev के रूप में उपयोग किया है। लेकिन यह भी मामला हो सकता है कि सही विचरण और सही SD । इसलिए सिमुलेशन सही था (प्राप्त अनुमान के अनुरूप), लेकिन गलती से उन्होंने कागज में "वेरिएंस" कहा जिसे "मानक विचलन" कहा जाना चाहिए।0.000049 0.0070.0070.0000490.007

मैं इन दो मामलों पर लेखकों से संपर्क करने का प्रयास करूंगा।


मैं यह पता लगाने में कामयाब रहा कि प्रक्रिया वास्तव में विस्फोटक है जैसा कि आपने बताया। मैंने विचरण के बारे में गलती की, sd के बाद से बस 0.083 है, जिसका अर्थ है कि जितना मैंने शुरू में इस्तेमाल किया था उससे भी अधिक भिन्नता और प्रक्रिया बहुत तेजी से विस्फोट करती है। मुझे क्या नहीं मिलता है कि लेखक कैसे ३००० टिप्पणियों का अनुकरण करने में कामयाब रहा है (स्टेशनरी पेपर के कथानक पर) (कागज के अंत में) जबकि यह संपत्ति इस संपत्ति को प्रदर्शित नहीं करती है।
सरुनास

@ सरुन अपने कोड की जाँच इस प्रकार करते हैं: वास्तव में उत्पन्न झटके का उपयोग करके, विभिन्न प्रक्रियाओं के पहले दो-तीन मानों की मैन्युअल रूप से गणना करें, और संबंधित मानों की तुलना करें जो कोड आपको देता है।
एलेकोस पापाडोपोलोस

मैंने वह किया। मैन्युअल रूप से चलने की कोशिश की। अधिक अनुभवी शोधकर्ताओं से जानना उपयोगी होगा कि पूंजी प्रक्रिया विस्फोटक क्यों होगी? क्या हम नहीं चाहेंगे कि यह स्थिर हो? अन्यथा स्थिर अवस्था कैसे प्राप्त की जा सकती है? मैंने सिस्टम के eigenvalues ​​की जाँच की और जैसा कि आपने पहले बताया - सिस्टम वास्तव में विस्फोटक है इसलिए कोड में कुछ भी गलत नहीं है। या तो गलतियाँ कागज में हैं या मुझे तर्क समझ में नहीं आते हैं।
सरुनास

आपके प्रयास के लिए एक गुच्छा धन्यवाद। तुम मुझे बाहर नरक मदद की! कम से कम, यह मैं नहीं था जिसने गलती की थी (मूल रूप से) :)
सरुनास

1
@AlecosPapadopoulos मुझे लगता है कि रैखिक संसाधन की कमी में पूंजी पर गुणांक एक से अधिक हो सकता है (वास्तव में यह इस मॉडल में बराबर होना चाहिए ) - सभी संतुलन संबंधों को प्रतिस्थापित करने के बाद प्रक्रिया की स्थिरता क्या मायने रखती है। , अगर मैं पेपर से ले और पॉल क्लेन के सॉल्वर सॉल्वर में प्लग करता हूं, तो मुझे एक स्थिर समाधान मिलता है, इसलिए मैं कहूंगा कि कागज में सिर्फ कुछ संख्यात्मक टाइपो है। (यदि आप इसे स्वयं करते हैं, तो क्लेन के कोड में अलग-अलग संकेतन और परिवर्तनशील क्रम से सावधान रहें)( कश्मीर टी , जेड टी ) एक , बी1/β(टी,zटी),बी
ivansml
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.