आर

2014-07-23 4 views
5

में एमएसडब्लूएम पैकेज का उपयोग करके हैमिल्टन के मार्कोव स्विचिंग मॉडल के उदाहरण को दोहराते हुए मैं हैमिल्टन (1 9 8 9) के मूल मार्कोव स्विचिंग मॉडल का अनुमान लगाने की कोशिश कर रहा हूं क्योंकि E-views webpage में पोस्ट है। यह मॉडल स्वयं आरएटीएस में मौजूद मौजूदा सटीक प्रतिकृति है।आर

यह उदाहरण के समय श्रृंखलाएं हैं:

gnp <- 
structure(c(2.59316410021381, 2.20217123302681, 0.458275619103479, 
0.968743815568942, -0.241307564718414, 0.896474791426144, 2.05393216767198, 
1.73353647046698, 0.938712869506845, -0.464778333117193, -0.809834082445603, 
-1.39763692441103, -0.398860927649558, 1.1918415768741, 1.4562004729396, 
2.1180822079447, 1.08957867423914, 1.32390272784813, 0.87296368144358, 
-0.197732729861307, 0.45420214345009, 0.0722187603196887, 1.10303634435563, 
0.820974907499614, -0.0579579499110212, 0.584477722838197, -1.56192668045796, 
-2.05041027007508, 0.536371845140342, 2.3367684244086, 2.34014568267516, 
1.23392627573662, 1.88696478737248, -0.459207909351867, 0.84940472194713, 
1.70139850766727, -0.287563102546191, 0.095946277449187, -0.860802907461483, 
1.03447124467041, 1.23685943797014, 1.42004498680119, 2.22410642769683, 
1.3021017302965, 1.0351769691057, 0.925342521818, -0.165599507925585, 
1.3444381723048, 1.37500136316918, 1.73222186043569, 0.716056342342333, 
2.21032138350616, 0.853330335823775, 1.00238777849592, 0.427254413549543, 
2.14368353713136, 1.4378918561536, 1.5795993028646, 2.27469837381376, 
1.95962653201067, 0.2599239932111, 1.01946919515563, 0.490163994319276, 
0.563633789161385, 0.595954621290765, 1.43082852218349, 0.562301244017229, 
1.15388388887095, 1.68722847001462, 0.774382052478202, -0.0964704476805431, 
1.39600141863966, 0.136467982223878, 0.552237133917267, -0.399448716111952, 
-0.61671104590512, -0.0872256083215416, 1.21018349098461, -0.907297546921259, 
2.64916154469762, -0.00806939681695959, 0.511118931407946, -0.00401437145032572, 
2.1682142321342, 1.92586729194597, 1.03504719187207, 1.85897218652101, 
2.32004929969819, 0.255707901889092, -0.0985527428151145, 0.890736834018326, 
-0.55896483237131, 0.283502534230679, -1.31155410054958, -0.882787789285689, 
-1.97454945511993, 1.01275266533046, 1.68264718400186, 1.38271278970291, 
1.86073641586006, 0.444737715592073, 0.414490009766608, 0.992022769383933, 
1.36283572253682, 1.59970527327726, 1.98845814838348, -0.256842316681229, 
0.877869502339381, 3.10956544706826, 0.853244770655281, 1.23337321374495, 
0.0031430232743432, -0.0943336967005583, 0.898833191548979, -0.190366278407953, 
0.997723787687709, -2.39120056095144, 0.0664967330277127, 1.26136016443398, 
1.91637832265846, -0.334802886728505, 0.44207108280265, -1.40664914211265, 
-1.52129894225829, 0.299198686266393, -0.801974492802505, 0.152047924379708, 
0.985850281223592, 2.1303461510993, 1.34397927090998, 1.61550521216825, 
2.70930096486278, 1.24461416484445, 0.508354657516633, 0.148021660957899 
), .Tsp = c(1951.25, 1984.75, 4), class = "ts") 

मैं mswm पैकेज का उपयोग करना चाहते, तो मैं निम्नलिखित कोड लिखा है:

library(MSwM) #Load the package 
# Create the model with only an intercept (that after will be switching) 
mod=lm(gnp~1) 
# Estimate the Markov Switching Model with only an intercept switching, 
# four lags and two regimes as in Hamilton. 
mod.mswm=msmFit(mod,k=2,p=4,sw=c(T,F,F,F,F,F), control=list(parallel=F)) 
summary(mod.mswm) 

मैं एक परिणाम है कि बहुत अलग है मिल Eviews या चूहों में प्राप्त करने के लिए:

Coefficients: 
Regime 1 
--------- 
       Estimate Std. Error t value Pr(>|t|)  
(Intercept)(S) 0.5747  1.0044 0.5722 0.5671865  
gnp_1   0.3097  0.0903 3.4297 0.0006042 *** 
gnp_2   0.1273  0.0900 1.4144 0.1572445  
gnp_3   -0.1213  0.0867 -1.3991 0.1617830  
gnp_4   -0.0892  1.6918 -0.0527 0.9579709  
--- 
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 

Residual standard error: 0.98316 
Multiple R-squared: 0.1437 

Standardized Residuals: 
     Min   Q1   Med   Q3   Max 
-1.86974671 -0.37107376 0.03466299 0.39090950 1.67876663 

Regime 2 
--------- 
       Estimate Std. Error t value Pr(>|t|)  
(Intercept)(S) 0.5461  1.0044 0.5437 0.5866479  
gnp_1   0.3097  0.0903 3.4297 0.0006042 *** 
gnp_2   0.1273  0.0900 1.4144 0.1572445  
gnp_3   -0.1213  0.0867 -1.3991 0.1617830  
gnp_4   -0.0892  1.6918 -0.0527 0.9579709  
--- 
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 

Residual standard error: 0.98316 
Multiple R-squared: 0.1431 

Standardized Residuals: 
     Min   Q1   Med   Q3   Max 
-2.51219057 -0.46185366 0.06749067 0.52368275 2.11071358 

Transition probabilities: 
      Regime 1 Regime 2 
Regime 1 0.3879799 0.3651762 
Regime 2 0.6120201 0.6348238 

मुख्य अंतर यह है अवरोधन में प्राप्त किया जाता है, क्योंकि दोनों में फिर से gimes एक सकारात्मक मूल्य Eviews या RATS में मूल्यों के बजाय प्राप्त किया जाता है। यह अंतर अधिकतमकरण algortihm (एमएसडब्ल्यूएम में ईएम) के कारण है? या मैंने अपने आर-कोड में कुछ गलती की है?

बहुत बहुत धन्यवाद।

+0

कृपया 'dput (gnp)' के आउटपुट को पोस्ट करें ताकि हम आपके उदाहरण को दोहरा सकें। – javlacalle

+0

आउटपुट डेटा वाली फ़ाइल इस वेब पेज http://www.eviews.com/EViews8/ev8ecswitch_n.html (जीएनपी हैमिल्टन.WF1) में है। विश्लेषण करने के लिए श्रृंखला "जी" है। हालांकि डेटासेट है: – JosePerles

+0

कृपया, https://www.researchgate.net/publication/264161903_gnp_hamilton2?ev=prf_pub से डेटासेट डाउनलोड करें एक सीएसवी फ़ाइल है। धन्यवाद – JosePerles

उत्तर

4

जो अंतर मैं देखता हूं वह यह है कि जिस मॉडल को आप परिभाषित कर रहे हैं वह एक स्विचिंग अवरोध है, जबकि हैमिल्टन (1 9 8 9) का मॉडल इसके बजाय स्विचिंग माध्य निर्दिष्ट करता है। जो है, अपने मॉडल है:

equation 1

और हैमिल्टन के (1989) मॉडल के रूप में परिभाषित किया गया है:

equation 2

एक ए.आर. मॉडल मापदंडों alpha और mu सामान्य रूप में, ले जाएगा में, विभिन्न मूल्य यह आर में कुछ भ्रमित हो सकता है जैसा कि here पर चर्चा की गई है।

अपने मॉडल में उम्मीदों लेने (और सादगी के लिए छोड़ते हुए स्विचिंग अवधि S_t) करके हम निम्नलिखित संबंध के लिए आते है:

equation 3

इस रिश्ते पर, हम ठीक करने के लिए सक्षम होने के लिए उम्मीद कर सकता है मतलब है। हालांकि, इस मामले में स्विचिंग इंटरसेप्ट्स हैमिल्टन (1 9 8 9) में पाए जाने वाले स्विचिंग साधनों का कारण नहीं बनता है।

0.5747/(1 - sum(c(0.3097, 0.1273, -0.1213, -0.0892))) 
#[1] 0.7429864 
0.5461/(1 - sum(c(0.3097, 0.1273, -0.1213, -0.0892))) 
#[1] 0.7060116 

यह मानचित्रण आमतौर पर उदाहरण के लिए लागू किया जा सकता है, एक ए आर (4) मॉडल के साथ:

fit <- lm(gnp[5:135] ~ 1 + gnp[4:134] + gnp[3:133] + gnp[2:132] + gnp[1:131]) 
fit 
# Coefficients: 
# (Intercept) gnp[4:134] gnp[3:133] gnp[2:132] gnp[1:131] 
#  0.55679  0.30974  0.12726  -0.12126  -0.08923 
# 
# the mapping from the intercept to mean leads to a value close to the sample mean 
coef(fit)[1]/(1 - sum(coef(fit)[-1])) 
# 0.7198458 
mean(gnp) 
# 0.7445979 
# or close to the mean in an AR(4) model, (labelled as intercept) 
arima(gnp, order = c(4,0,0), include.mean = TRUE) 
# Coefficients: 
#   ar1  ar2  ar3  ar4 intercept 
#  0.3188 0.1226 -0.1191 -0.0895  0.7441 
# s.e. 0.0860 0.0900 0.0898 0.0872  0.1108 

ऐसा लगता है कि इस मामले में मॉडल क्रम में मतलब के रूप में परिभाषित किया जाना चाहिए संदर्भ पत्र में रिपोर्ट किए गए लोगों के करीब स्विचिंग पैरामीटर के अनुमान प्राप्त करने के लिए।

समारोह msmFit इनपुट परिणाम arima द्वारा वापस रूप में अनुमति दी है, तो यह इस प्रकार के रूप में इस्तेमाल किया जा सकता है:

fit <- arima(gnp, order = c(4,0,0), include.mean = TRUE) 
msmFit(fit, k = 2, p = 0, sw = c(T,F,F,F,F,F)) 

मैं lm का उपयोग कर मतलब के साथ एक ए आर मॉडल को परिभाषित करने के लिए एक सरल तरीके से पता नहीं है, जो आउटपुट msmFit का उपयोग करने के लिए आवश्यक है।

मुझे लगता है कि मॉडल के पैरामीटरकरण में यह अंतर ईएम एल्गोरिदम के उपयोग के बजाय परिणामों में अंतर की व्याख्या करने की अधिक संभावना है।

+0

मुझे आपका बिंदु दिखाई देता है, लेकिन मुझे लगता है कि और भी प्रश्न हैं। वास्तव में, मुझे लगता है कि इस विनिर्देश के साथ एमएसडब्लूएम कोई पुनरावृत्ति नहीं कर रहा है। यह केवल ओएलएस द्वारा अनुमानित एआर (4) मॉडल के लिए प्रारंभिक मान दे रहा है। – JosePerles

+1

कॉल: ar.ols (x = जीएनपी, AIC = एफ, order.max = 4, पहुंचाना = एफ, अवरोधन = टी) गुणांकों: 0,3097 0,1273 -0,1213 -0,0892 अवरोधन: 0.5568 (0.1267) – JosePerles

+0

मैंने यह नहीं देखा कि यह एक ही एआर गुणांक 'ar.ols' के रूप में देता है। पैकेज का उपयोग करने का सही तरीका देखने के लिए इसे दस्तावेज़ और स्रोत कोड के करीब देखने की आवश्यकता होगी। – javlacalle