最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

R語(yǔ)言馬爾可夫區(qū)制轉(zhuǎn)移模型Markov regime switching

2021-03-26 13:32 作者:拓端tecdat  | 我要投稿

原文鏈接:http://tecdat.cn/?p=12280

?

總覽

本文簡(jiǎn)要介紹了一種簡(jiǎn)單的狀態(tài)轉(zhuǎn)移模型,該模型構(gòu)成了隱馬爾可夫模型(HMM)的特例。這些模型擬合時(shí)間序列數(shù)據(jù)中的非平穩(wěn)性。從應(yīng)用的角度來(lái)看,這些模型在評(píng)估經(jīng)濟(jì)/市場(chǎng)狀態(tài)時(shí)非常有用。這里的討論主要圍繞使用這些模型的科學(xué)性。

基本案例

HMM的主要挑戰(zhàn)是預(yù)測(cè)隱藏部分。我們?nèi)绾巫R(shí)別“不可觀察”的事物?HMM的想法是從可觀察的事物來(lái)預(yù)測(cè)潛在的事物。

模擬數(shù)據(jù)

為了演示,我們準(zhǔn)備一些數(shù)據(jù)并嘗試進(jìn)行反向推測(cè)。通過(guò)構(gòu)造,我強(qiáng)加了一些假設(shè)來(lái)創(chuàng)建我們的數(shù)據(jù)。每個(gè)狀態(tài)都具有不同的均值和波動(dòng)率。


  1. theta_v <- data.frame(t(c(2.00,-2.00,1.00,2.00,0.95,0.85)))


  2. kable(theta_v, "html", booktabs = F,escape = F) %>%

  3. kable_styling(position = "center")

如上表所示,狀態(tài)s = 2變成“壞”狀態(tài),其中過(guò)程x_t表現(xiàn)出較高的變化性。 因此,停留在狀態(tài)2的可能比停留在狀態(tài)1的可能性小。

馬爾可夫過(guò)程

為了模擬過(guò)程x_t ,我們從模擬馬爾可夫過(guò)程s_t 開(kāi)始。為了模擬T 期間的過(guò)程,首先,我們需要構(gòu)建給定p_ {11} 和p_ {22} 的轉(zhuǎn)換矩陣。其次,我們需要從給定狀態(tài)s_1 = 1 開(kāi)始。從s_1 = 1 開(kāi)始,我們知道有95%的概率停留在狀態(tài)1,有5%的概率進(jìn)入狀態(tài)2。


  1. P <- matrix(c(p11,1-p22,1-p11,p22),2,2)

  2. P[1,]

## [1] 0.95 0.05

因?yàn)樗惹暗臓顟B(tài),模擬s_t 是遞歸的。因此,我們需要構(gòu)造一個(gè)循環(huán):


  1. for(t in 2:T_end) {

  2. s <- c(s,st(s[t-1]))

  3. }

  4. plot(s, pch = 20,cex = 0.5)

上圖說(shuō)明了過(guò)程s_t的持久性。在大多數(shù)情況下,狀態(tài)1的“實(shí)現(xiàn)”多于狀態(tài)2。實(shí)際上,這可以由穩(wěn)定概率確定,該穩(wěn)定概率由下式表示:

P_stat[1,]## [1] 0.75 0.25

因此,有15%的概率處于1狀態(tài),而有25%的概率處于狀態(tài)2。這應(yīng)該反映在模擬過(guò)程中??s,從而

mean(s==1)## [1] 0.69

由于我們使用的是100個(gè)周期的小樣本,因此我們觀察到穩(wěn)定概率為69%,接近但不完全等于75%。

結(jié)果

給定模擬的馬爾可夫過(guò)程,結(jié)果的模擬非常簡(jiǎn)單。一個(gè)簡(jiǎn)單的技巧是模擬

的T周期和

的 T? 周期。然后,給定 s_t? 的模擬,我們針對(duì)每個(gè)狀態(tài)創(chuàng)建結(jié)果變量 x_t? 。

  1. plot(x~t_index, pch = 20)

  2. points(x[s == 2]~t_index[s==2],col = 2)

雖然總體而言時(shí)間序列看起來(lái)是平穩(wěn)的,但我們觀察到一些周期(以紅色突出顯示)顯示出較高的波動(dòng)。有人可能會(huì)建議說(shuō),數(shù)據(jù)存在結(jié)構(gòu)性中斷,或者區(qū)制發(fā)生了變化,過(guò)程 x_t 變得越來(lái)越大,帶有更多的負(fù)值。雖然如此,事后解釋總是比較容易的。主要的挑戰(zhàn)是識(shí)別這種情況。

估計(jì)參數(shù)

在本節(jié)中,我將使用R軟件手動(dòng)(從頭開(kāi)始)和非手動(dòng)進(jìn)行統(tǒng)計(jì)分解。在前者中,我將演示如何構(gòu)造似然函數(shù),然后使用約束優(yōu)化問(wèn)題來(lái)估計(jì)參數(shù)。

似然函數(shù)-數(shù)值部分

首先,我們需要?jiǎng)?chuàng)建一個(gè)以? Theta 向量為主要輸入的函數(shù)。其次,我們需要設(shè)置一個(gè)MLE的優(yōu)化問(wèn)題。

在優(yōu)化似然函數(shù)之前。讓我們看一下工作原理。假設(shè)我們知道參數(shù) Theta 的向量,并且我們有興趣使用 x_t? 上的數(shù)據(jù)評(píng)估隨時(shí)間變化的隱藏狀態(tài)。

顯然,這兩種狀態(tài)的每次過(guò)濾器的總和應(yīng)為1??雌饋?lái),我們可以處于狀態(tài)1或狀態(tài)2。

all(round(apply(Filter[,-1],1,sum),9) == 1)## [1] TRUE

由于我們?cè)O(shè)計(jì)了此數(shù)據(jù),因此我們知道狀態(tài)2的時(shí)期。

  1. plot(Filter[,3]~t_index, type = "l", ylab = expression(xi[2]))

  2. points(Filter[s==2,3]~t_index[s==2],pch = 20, col = 2)

?

過(guò)濾器背后的優(yōu)點(diǎn)是僅使用 x_t? 上的信息來(lái)識(shí)別潛在狀態(tài)。我們觀察到,狀態(tài)2的過(guò)濾器主要在狀態(tài)2發(fā)生時(shí)增加。這可以通過(guò)發(fā)出紅點(diǎn)的概率增加來(lái)證明,紅點(diǎn)表示狀態(tài)2發(fā)生的時(shí)間段。盡管如此,上述還是存在一些大問(wèn)題。首先,它假定我們知道參數(shù) Theta ,而實(shí)際上我們需要對(duì)此進(jìn)行估計(jì),然后在此基礎(chǔ)上進(jìn)行推斷。其次,所有這些都是在樣本中構(gòu)造的。從實(shí)際的角度來(lái)看,決策者對(duì)預(yù)測(cè)的概率及其對(duì)未來(lái)投資的影響感興趣。

手動(dòng)估算

為了優(yōu)化上面定義的??HMM_Lik?函數(shù),我將需要執(zhí)行兩個(gè)附加步驟。首先是建立一個(gè)初始估計(jì)值,作為搜索算法的起點(diǎn)。其次,我們需要設(shè)置約束條件以驗(yàn)證估計(jì)的參數(shù)是否一致,即非負(fù)波動(dòng)性和介于0和1之間的概率值。

第一步,我使用樣本創(chuàng)建初始參數(shù)向量Theta_0?

在第二步中,我為估算設(shè)置了約束

請(qǐng)注意,參數(shù)的初始向量應(yīng)滿足約束條件

all(A%*%theta0 >= B)## [1] TRUE

最后,回想一下,通過(guò)構(gòu)建大多數(shù)優(yōu)化算法都可以搜索最小點(diǎn)。因此,我們需要將似然函數(shù)的輸出更改為負(fù)值。

  1. ## $par

  2. ## [1] ?1.7119528 -1.9981224 ?0.8345350 ?2.2183230 ?0.9365507 ?0.8487511

  3. ##

  4. ## $value

  5. ## [1] 174.7445

  6. ##

  7. ## $counts

  8. ## function gradient

  9. ## ? ? 1002 ? ? ? NA

  10. ##

  11. ## $convergence

  12. ## [1] 0

  13. ##

  14. ## $message

  15. ## NULL

  16. ##

  17. ## $outer.iterations

  18. ## [1] 3

  19. ##

  20. ## $barrier.value

  21. ## [1] 6.538295e-05

為了檢查MLE值是否與真實(shí)參數(shù)一致,我們繪制估計(jì)值與真實(shí)值的關(guān)系圖:

  1. plot(opt$par ~ theta_known,pch = 20,cex=2,ylab="MLE",xlab = "True")

  2. abline(a=0,b=1,lty=2)

?

?

總體而言,我們觀察到估計(jì)值非常一致。

估算?

我將在下面演示如何使用r軟件復(fù)制人工估算的結(jié)果? 。

如果我們要忽略過(guò)程中的任何區(qū)制轉(zhuǎn)換,我們可以簡(jiǎn)單地將參數(shù) mu 和 sigma 估計(jì)為

  1. kable(mod_est, "html", booktabs = F,escape = F) %>%

  2. kable_styling(position = "center")

平均而言,我們應(yīng)該期望過(guò)程平均值約為1,即

。這是由期望定律得出的,其中我們知道

?

  1. EX <- 0.75*2 + 0.25*-2

  2. EX

## [1] 1

對(duì)于波動(dòng)率,適用相同的邏輯。

## [1] 2.179449

我們注意到,回歸估計(jì)值與波動(dòng)率的一致性高于均值。

上面的觀點(diǎn)是,估計(jì)值并未涵蓋數(shù)據(jù)的真實(shí)性質(zhì)。如果我們假設(shè)數(shù)據(jù)是穩(wěn)定的,那么我們錯(cuò)誤地估計(jì)過(guò)程的平均值為62%。但是,與此同時(shí),我們通過(guò)構(gòu)造知道該過(guò)程表現(xiàn)出兩個(gè)平均結(jié)果-一個(gè)正面和一個(gè)負(fù)面。波動(dòng)性也是如此。

為了揭示這些模式,我們?cè)谙旅嫜菔救绾问褂蒙厦娴木€性模型建立區(qū)制轉(zhuǎn)移模型:

主要輸入是擬合模型,??mod我們將其歸納為擬合轉(zhuǎn)移狀態(tài)。第二個(gè)??k是區(qū)制的數(shù)量。由于我們知道我們要處理兩個(gè)狀態(tài),因此將其設(shè)置為2。但是,實(shí)際上,需要參考一種信息標(biāo)準(zhǔn)來(lái)確定最佳狀態(tài)數(shù)。根據(jù)定義,我們有兩個(gè)參數(shù),均值 mu_s 和波動(dòng)率 sigma_s 。因此,我們添加一個(gè)true / false向量來(lái)指示正在轉(zhuǎn)移的參數(shù)。在上面的命令中,我們?cè)试S兩個(gè)參數(shù)都轉(zhuǎn)移。最后,我們可以指定估計(jì)過(guò)程是否正在使用并行計(jì)算進(jìn)行。

要了解模型的輸出,讓我們看一下

  1. ## Markov Switching Model

  2. ##

  3. ##

  4. ## ? ? ? ?AIC ? ? BIC ? ?logLik

  5. ## ? 352.2843 366.705 -174.1422

  6. ##

  7. ## Coefficients:

  8. ## ? ? ? ? (Intercept)(S) ? ?Std(S)

  9. ## Model 1 ? ? ? 1.711693 0.8346013

  10. ## Model 2 ? ? ?-2.004137 2.2155742

  11. ##

  12. ## Transition probabilities:

  13. ## ? ? ? ? ? ?Regime 1 ?Regime 2

  14. ## Regime 1 0.93767719 0.1510052

  15. ## Regime 2 0.06232281 0.8489948

上面的輸出主要報(bào)告我們嘗試手動(dòng)估算的六個(gè)估算參數(shù)。首先,系數(shù)表報(bào)告了每個(gè)狀態(tài)的均值和波動(dòng)。模型1的平均值為1.71,波動(dòng)率接近1。模型2的平均值為-2,波動(dòng)率約為2。顯然,該模型針對(duì)數(shù)據(jù)確定了兩種具有不同均值和波動(dòng)率的不同狀態(tài)。其次,在輸出的底部,擬合的模型報(bào)告了轉(zhuǎn)移概率。

有趣的是,就每種狀態(tài)的過(guò)濾器而言,我們將從包中檢索到的狀態(tài)與手動(dòng)提取的狀態(tài)進(jìn)行比較。根據(jù)定義,可以使用圖函數(shù)? 來(lái)了解平滑概率以及確定的方案。

par(mar = 2*c(1,1,1,1),mfrow = c(2,1))

?

?

頂部的圖表示隨時(shí)間變化的過(guò)程 x_t ,其中灰色陰影區(qū)域表示

的時(shí)間段。換句話說(shuō),灰色區(qū)域表示狀態(tài)1占優(yōu)勢(shì)的時(shí)間段。

plot(x~t_index,type ="l",col = 0,xlim=c(1,100))

?

?

過(guò)濾器會(huì)在一個(gè)周期內(nèi)檢測(cè)到第二種狀態(tài)。發(fā)生這種情況是因?yàn)樵谶@種情況下,返回的是平滑概率,即在實(shí)現(xiàn)整個(gè)樣本 T? 后處于每種狀態(tài)的概率,即

。另一方面,來(lái)自手動(dòng)估計(jì)的推斷概率

。

無(wú)論如何,由于我們知道狀態(tài)的真實(shí)值,因此可以確定我們是否處于真實(shí)狀態(tài)。我們?cè)谏厦娴膱D中使用黑點(diǎn)突出顯示狀態(tài)2。總的來(lái)說(shuō),我們觀察到模型在檢測(cè)數(shù)據(jù)狀態(tài)方面表現(xiàn)非常好。唯一的例外是第60天,其中推斷概率大于50%。要查看推斷概率多長(zhǎng)時(shí)間正確一次,我們運(yùn)行以下命令

mean(Filter$Regime_1 == (s==1)*1)## [1] 0.96

結(jié)束語(yǔ)

在實(shí)際數(shù)據(jù)實(shí)現(xiàn)方面仍然存在許多挑戰(zhàn)。首先,我們不具備有關(guān)數(shù)據(jù)生成過(guò)程的知識(shí)。其次,狀態(tài)不一定實(shí)現(xiàn)。因此,這兩個(gè)問(wèn)題可能會(huì)破壞區(qū)制轉(zhuǎn)移模型的可靠性。在應(yīng)用方面,通常部署此類(lèi)模型來(lái)評(píng)估經(jīng)濟(jì)或市場(chǎng)狀況。從決策上來(lái)說(shuō),這也可以為策略分配提供有趣的建議。


R語(yǔ)言馬爾可夫區(qū)制轉(zhuǎn)移模型Markov regime switching的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
敦煌市| 汝州市| 偏关县| 关岭| 安塞县| 祁门县| 普安县| 上犹县| 兴国县| 东山县| 兴和县| 吉水县| 庆城县| 永仁县| 海淀区| 古交市| 闵行区| 西丰县| 玛沁县| 陇西县| 什邡市| 白城市| 共和县| 岗巴县| 分宜县| 东阳市| 伊金霍洛旗| 应城市| 日照市| 寻乌县| 上饶县| 锡林郭勒盟| 上蔡县| 温州市| 海伦市| 台湾省| 合川市| 台中市| 米脂县| 沿河| 叶城县|