原文鏈接:http:///?p=19918本文估計(jì)實(shí)際GDP增長(zhǎng)率的兩狀態(tài)Markov區(qū)制轉(zhuǎn)換動(dòng)態(tài)回歸模型 。 創(chuàng)建模型進(jìn)行估計(jì)通過(guò)指定轉(zhuǎn)移矩陣和兩個(gè)區(qū)制的AR(0)(僅常數(shù))子模型的兩狀態(tài)離散時(shí)間馬爾可夫鏈,為樸素估計(jì)量創(chuàng)建馬爾可夫轉(zhuǎn)換動(dòng)態(tài)回歸模型。標(biāo)記狀態(tài)。 mc(NaN(2),'StateNames',["增長(zhǎng)" "衰退"]);
加載和預(yù)處理數(shù)據(jù)加載GDP數(shù)據(jù)集。 Data 包含1947:Q1-2005:Q2期間實(shí)際GDP的季度數(shù)據(jù)。估計(jì)周期 為1947:Q2-2004:Q2。
通過(guò)以下方式將數(shù)據(jù)轉(zhuǎn)換為年度序列: 在估計(jì)期內(nèi)將數(shù)據(jù)轉(zhuǎn)換為季度比率 將季度比率年度化
diff(Data(2:230))./Data(2:229); % 季度比率100*((1 + qrate).^4 - 1); % 年度比率 估計(jì)模型模型擬合Mdl 年利率序列 arate 。 estimate(Mdl,Mdl0,arate); EstMdl 是估計(jì)的(完全指定的)馬爾可夫轉(zhuǎn)換動(dòng)態(tài)回歸模型。 EstMdl.Switch 是估計(jì)的離散時(shí)間馬爾可夫鏈模型(dtmc 對(duì)象), EstMdl.Submodels 是估計(jì)的單變量VAR(0)模型(varm 對(duì)象)的向量。
顯示估計(jì)的特定于狀態(tài)的動(dòng)態(tài)模型。
varm with properties:
Description: "ARIMA(0,0,0) Model (Gaussian Distribution)" SeriesNames: "Y1" NumSeries: 1 P: 0 Constant: 4.90146 AR: {} Trend: 0 Beta: [1×0 matrix] Covariance: 12.087
1-Dimensional VAR(0) Model varm with properties:
Description: "ARIMA(0,0,0) Model (Gaussian Distribution)" SeriesNames: "Y1" NumSeries: 1 P: 0 Constant: 0.0084884 AR: {} Trend: 0 Beta: [1×0 matrix] Covariance: 12.6876
1-Dimensional VAR(0) Model
顯示估計(jì)的狀態(tài)轉(zhuǎn)移矩陣。
2×2
0.9088 0.0912 0.2303 0.7697
估計(jì)后的EM算法
在估計(jì)馬爾可夫轉(zhuǎn)換動(dòng)態(tài)回歸模型中考慮模型和數(shù)據(jù) 。 創(chuàng)建部分指定模型進(jìn)行估計(jì)。 創(chuàng)建完全指定的模型,其中包含估計(jì)過(guò)程的初始參數(shù)值。 加載并預(yù)處理數(shù)據(jù)。
diff(Data(2:230))./Data(2:229); 100*((1 + qrate).^4 - 1);
使模型擬合數(shù)據(jù)。當(dāng)估計(jì)過(guò)程終止時(shí),繪制對(duì)數(shù)似然比與迭代步驟。
Plot(Mdl,Mdl0); 
使模型擬合模擬數(shù)據(jù)使用來(lái)自已知數(shù)據(jù)生成過(guò)程(DGP)的模擬數(shù)據(jù)評(píng)估估計(jì)準(zhǔn)確性。本示例使用任意參數(shù)值。 為DGP創(chuàng)建模型為轉(zhuǎn)換區(qū)制創(chuàng)建一個(gè)完全指定的兩狀態(tài)離散時(shí)間馬爾可夫鏈模型。 P = [0.7 0.3; 0.1 0.9];
對(duì)于每個(gè)狀態(tài),為過(guò)程創(chuàng)建一個(gè)完全指定的AR(1)模型。
% 常數(shù) C1 = 4; C2 = -1;
% 自回歸系數(shù) AR1 = 0.5; AR2 = 0.3;
% 方差 V1 = 3; V2 = 2;
% AR 子模型 arima('Constant',C1,'AR',AR1,'Variance',V1);
為DGP創(chuàng)建完全指定的Markov轉(zhuǎn)換動(dòng)態(tài)回歸模型。
模擬來(lái)自DGP的路徑從DGP生成10條長(zhǎng)度為1000的隨機(jī)路徑。
rng(1); % 重現(xiàn)性 N = 10; n = 1000; simulate(DGP,n,'Numpaths',N);
Data 是模擬的1000 x 10矩陣。
創(chuàng)建估計(jì)模型創(chuàng)建一個(gè)部分指定的馬爾可夫轉(zhuǎn)換動(dòng)態(tài)回歸模型,該模型具有與數(shù)據(jù)生成過(guò)程相同的結(jié)構(gòu),但是指定了未知的轉(zhuǎn)移矩陣和未知的子模型系數(shù)。 創(chuàng)建包含初始值的模型創(chuàng)建一個(gè)完全指定的馬爾可夫轉(zhuǎn)換動(dòng)態(tài)回歸模型,該模型具有與相同的結(jié)構(gòu) Mdl ,但是將所有可估計(jì)的參數(shù)都設(shè)置為初始值。
P0 = 0.5*ones(2); dtmc(P0);
ms(mc0,[mdl01,mdl02]);
估計(jì)模型
使模型擬合每個(gè)模擬路徑。對(duì)于每條路徑,在EM算法的每次迭代中繪制對(duì)數(shù)似然圖。
figure hold on
for i = 1:N
estimate(Data(:,i),'Plot',true);
end
hold off

評(píng)估準(zhǔn)確性計(jì)算每個(gè)估計(jì)參數(shù)的蒙特卡洛平均值。 將總體參數(shù)與相應(yīng)的蒙特卡洛估計(jì)進(jìn)行比較。
DGPvsEstimate = 6×2
5.0000 5.0260 -2.0000 -1.9615 4.0000 3.9710 2.0000 1.9903 0.4000 0.4061 0.2000 0.2017
P = 2×2
0.7000 0.3000 0.1000 0.9000
PEstimate = 2×2
0.7065 0.2935 0.1023 0.8977
預(yù)采樣數(shù)據(jù)
考慮 估計(jì)馬爾可夫轉(zhuǎn)換動(dòng)態(tài)回歸模型中的數(shù)據(jù),但假設(shè)關(guān)注期間為1960:Q1–2004:Q2。另外,考慮向每個(gè)子模型添加一個(gè)自回歸項(xiàng)。 創(chuàng)建部分指定的馬爾可夫轉(zhuǎn)換動(dòng)態(tài)回歸模型進(jìn)行估計(jì)。指定AR(1)子模型。
arima(1,0,0); ms(mc,[mdl; mdl]);
由于子模型是AR(1),因此每個(gè)子模型都需要進(jìn)行一次預(yù)采樣觀察以初始化其動(dòng)態(tài)分量以進(jìn)行估計(jì)。
創(chuàng)建包含用于估計(jì)過(guò)程的初始參數(shù)值的模型。
P0 = 0.5*ones(2); mc(P0,'StateNames');
加載數(shù)據(jù)。將整個(gè)集合轉(zhuǎn)換為年化利率序列。
使用與年率序列相關(guān)的日期來(lái)確定預(yù)采樣和估計(jì)采樣周期。由于轉(zhuǎn)換應(yīng)用了一階差分,因此必須從原始樣本中刪除第一個(gè)觀察日期。
dates = datetime(dates(2:end),'ConvertFrom','datenum',... 'Format','yyyy:QQQ','Locale','en_US'); estPrd = datetime(["1960:Q2" "2004:Q2"],'InputFormat','yyyy:QQQ',... 'Format','yyyy:QQQ','Locale','en_US');
使模型擬合估計(jì)樣本數(shù)據(jù)。指定預(yù)采樣觀測(cè)值,并在估計(jì)過(guò)程終止時(shí)在每次迭代時(shí)繪制對(duì)數(shù)似然度。

訪問(wèn)預(yù)期的平滑狀態(tài)概率和對(duì)數(shù)似然在估計(jì)馬爾可夫轉(zhuǎn)換動(dòng)態(tài)回歸模型中考慮模型和數(shù)據(jù) 。 創(chuàng)建部分指定的模型進(jìn)行估計(jì)。 創(chuàng)建完全指定的模型,其中包含估計(jì)過(guò)程的初始參數(shù)值。 加載并預(yù)處理數(shù)據(jù)。 使模型擬合數(shù)據(jù)。當(dāng)算法終止時(shí),返回預(yù)期的平滑狀態(tài)概率和對(duì)數(shù)似然。 [EstMdl,SS,logL] = estimate(Mdl,Mdl0,arate); SS 是預(yù)期平滑狀態(tài)概率的228 x 2矩陣;行對(duì)應(yīng)于估計(jì)樣本中的周期,列對(duì)應(yīng)于方案。 logL 是最終的對(duì)數(shù)似然。
顯示估計(jì)樣本中最后一個(gè)時(shí)期的預(yù)期平滑狀態(tài)概率,并顯示最終對(duì)數(shù)似然。
ans = 1×2
0.8985 0.1015
logL = -639.4962
執(zhí)行約束估計(jì)
將模擬數(shù)據(jù)擬合到具有VARX子模型的Markov轉(zhuǎn)換動(dòng)態(tài)回歸模型。指定用于估計(jì)的相等約束。 為DGP創(chuàng)建模型為轉(zhuǎn)換區(qū)制創(chuàng)建一個(gè)完全指定的三態(tài)離散時(shí)間馬爾可夫鏈模型。
P = [0.8 0.1 0.1; 0.2 0.6 0.2; 0 0.1 0.9]; mc = dt(P);
對(duì)于每種狀態(tài),為響應(yīng)過(guò)程創(chuàng)建一個(gè)完全指定的VARX(1)模型。為所有子模型指定相同的模型常數(shù)和滯后1 AR系數(shù)矩陣。對(duì)于每個(gè)模型,為一個(gè)外生變量指定不同的回歸系數(shù)。
% 常數(shù) C = [1;-1];
% 自回歸系數(shù) AR = {[0.6 0.1; 0.4 0.2]};
% 回歸系數(shù) Beta1 = [0.2;-0.4];
% VAR 子模型 dgp = varm('Constant',C,'AR',AR,'Covariance',5*eye(2));
為DGP創(chuàng)建完全指定的Markov轉(zhuǎn)換動(dòng)態(tài)回歸模型。
ms(mc,[dgp1; dgp2; dgp3]);
模擬來(lái)自DGP的數(shù)據(jù)
通過(guò)從均值0和方差100的高斯分布中生成1000個(gè)觀測(cè)值來(lái)模擬外生序列的數(shù)據(jù)。
rng(1); % 重現(xiàn)性 X = 10*randn(1000,1);
從DGP生成長(zhǎng)度為1000的隨機(jī)路徑。為子模型回歸指定模擬的外部數(shù)據(jù)。
Data = simulate(DGP,1000,'X',X);
Data 是模擬的1000 x 1向量。
創(chuàng)建估計(jì)模型創(chuàng)建一個(gè)部分指定的馬爾可夫轉(zhuǎn)換動(dòng)態(tài)回歸模型,該模型具有與數(shù)據(jù)生成過(guò)程相同的結(jié)構(gòu),但是指定了未知的轉(zhuǎn)換矩陣和未知的回歸系數(shù)。指定常數(shù)和AR系數(shù)矩陣的真值。 ms(mcEst,[mdl; mdl; mdl]); 由于常數(shù)和AR系數(shù)矩陣的值被指定在 Mdl , estimate 將它們作為用于估計(jì)等式約束。 創(chuàng)建包含初始值的模型創(chuàng)建具有與相同結(jié)構(gòu)的完全指定的馬爾可夫轉(zhuǎn)換動(dòng)態(tài)回歸模型 Mdl ,但將所有可估計(jì)參數(shù)設(shè)置為初始值,并將具有相等約束的參數(shù)設(shè)置為中指定的值 Mdl 。 估計(jì)模型使模型擬合模擬數(shù)據(jù)。指定回歸的外部數(shù)據(jù)。在EM算法的每次迭代中繪制對(duì)數(shù)似然。
figure EstMdl = estimate(Mdl,Mdl0,Data,'X',X,'IterationPlot',true);

評(píng)估準(zhǔn)確性將估計(jì)的回歸系數(shù)向量和轉(zhuǎn)移矩陣與其真實(shí)值進(jìn)行比較。
Beta1 = 2×1
0.2000 -0.4000
Beta1Estimate = 2×1
0.1596 -0.4040
Beta2 = 2×1
0.6000 -1.0000
Beta2Estimate = 2×1
0.5888 -0.9771
Beta3 = 2×1
0.9000 -1.3000
Beta3Estimate = 2×1
0.8987 -1.2991
P = 3×3
0.8000 0.1000 0.1000 0.2000 0.6000 0.2000 0 0.1000 0.9000
PEstimate = 3×3
0.7787 0.0856 0.1357 0.1366 0.6906 0.1727 0.0086 0.0787 0.9127

|