分解商業(yè)周期時(shí)間序列:線性濾波器、HP濾波器、Baxter濾波器、Beveridge Nelson分解等
原文鏈接:http://tecdat.cn/?p=23000
本文包含各種過(guò)濾器,可用于分解南非GDP的方法。我們做的第一件事是清除當(dāng)前環(huán)境中的所有變量。這可以通過(guò)以下命令進(jìn)行(點(diǎn)擊文末“閱讀原文”獲取完整代碼數(shù)據(jù))。
分解南非GDP數(shù)據(jù)
本文包含各種過(guò)濾器,可用于分解南非GDP的方法。我們做的第一件事是清除當(dāng)前環(huán)境中的所有變量。這可以通過(guò)以下命令進(jìn)行。
rm(list?=?ls())
graphics.off()
載入數(shù)據(jù)
如前所述,南非的GDP數(shù)據(jù)將其作為時(shí)間序列存儲(chǔ)在gdp中,我們執(zhí)行以下命令。
gdp?<-?ts(dat.tmp,?start?=?c(1960,?2),?frequency?=?4)
為了確保這些計(jì)算和提取的結(jié)果是正確的,我們檢查一下數(shù)據(jù)的圖表。
plot(gdp)

線性濾波器_去除數(shù)據(jù)線性趨勢(shì)_
為了估計(jì)一個(gè)線性趨勢(shì),我們可以利用一個(gè)包括時(shí)間趨勢(shì)和常數(shù)的線性回歸模型。為了估計(jì)這樣一個(gè)模型,我們使用lm命令,如下。
lin.mod$fitted.values??#?擬合值與時(shí)間趨勢(shì)有關(guān)
ts(lin.trend,?start?=?c(1960,?1))??#?為趨勢(shì)創(chuàng)建一個(gè)時(shí)間序列變量
gdp?-?linear??#?周期是數(shù)據(jù)和線性趨勢(shì)之間的差異
回歸的擬合值包含與線性趨勢(shì)有關(guān)的信息。這些信息需要從模型對(duì)象lin.mod中提取,在上面的塊中,我們將這些值分配給時(shí)間序列對(duì)象linear。然后從數(shù)據(jù)中剔除趨勢(shì),就得到了周期。
然后我們可以借助下面的命令來(lái)繪制這個(gè)結(jié)果,其中趨勢(shì)和周期被繪制在不同的數(shù)字上。
plot.ts(gdp,?ylab?=?"")??
lines(linear,?col?=?"red")??
legend("topleft",?legend?=?c("data",?"trend")
霍德里克 - 普雷斯科特?(Hodrick-Prescott,HP)?_濾波器_對(duì)數(shù)據(jù)進(jìn)行去趨勢(shì)處理
要用流行的HP濾波法分解這個(gè)數(shù)據(jù)。在這種情況下,我們將lambda的值設(shè)置為1600,這也是對(duì)季度數(shù)據(jù)的建議。
hp(gdp,?freq?=?1600)
plot.ts(gdp,?ylab?=?"")??#?繪制時(shí)間序列
plot.ts(hp.decom$cycle,?ylab?=?"")??#?繪制周期圖
這似乎更準(zhǔn)確地反映了我們對(duì)南非經(jīng)濟(jì)表現(xiàn)的理解。
點(diǎn)擊標(biāo)題查閱往期內(nèi)容
R語(yǔ)言從經(jīng)濟(jì)時(shí)間序列中用HP濾波器,小波濾波和經(jīng)驗(yàn)?zāi)B(tài)分解等提取周期性成分分析
轉(zhuǎn)存失敗重新上傳取消
左右滑動(dòng)查看更多
01
02
03
04
用Baxter-King濾波器去趨勢(shì)數(shù)據(jù)
為了利用Baxter-King 濾波器。在這種情況下,我們需要指定周期的頻帶,其上限被設(shè)定為32,下限被設(shè)定為6。
bk(gdp,?pl?=?6,?pu?=?32)
plot.ts(gdp,?ylab?=?"")
plot.ts(cycle,?ylab?=?"")
這似乎再次為南非經(jīng)濟(jì)活動(dòng)的周期性提供了一個(gè)相當(dāng)準(zhǔn)確的表述。還要注意的是,周期的表示比以前提供的要平滑得多,因?yàn)樵胍舨话ㄔ谥芷谥小?/p>
Christiano-Fitzgerald濾波器去趨勢(shì)數(shù)據(jù)
這個(gè)濾波器的性質(zhì)與上面提供的非常相似。此外,產(chǎn)生與Baxter-King濾波器高度相似的結(jié)果。
plot.ts(gdp,?ylab?=?"")
plot.ts(cfcycle,?ylab?=?"")
用Beveridge-Nelson分解法 "去趨勢(shì) "數(shù)據(jù)?
為了將數(shù)據(jù)分解為隨機(jī)趨勢(shì)和平穩(wěn)周期,我們可以采用Beveridge-Nelson分解法。當(dāng)采用這種技術(shù)時(shí),我們需要指定與平穩(wěn)部分有關(guān)的滯后期的數(shù)量。在我下面的例子中,我假設(shè)有八個(gè)滯后期。
plot.ts(gdp,?ylab?=?"")
lines(bn.trend,?col?=?"red")
plot.ts(bn.cycle,?ylab?=?"")
比較周期的不同衡量標(biāo)準(zhǔn)
然后,我們可以將所有這些結(jié)果結(jié)合在一張圖上,考慮各自的相似性和差異。在這個(gè)例子中,我創(chuàng)建了一個(gè)時(shí)間序列ts.union,但是我也可以先繪制一個(gè)單一的序列,然后再使用lines命令在上面繪制連續(xù)的圖。
?ts.union(lin.cycle,?hp.decom,?bp.decom,?
????cf.decom,?bn.cycle)
plot.ts(comb,?ylab?=?"")
譜分解
在我們考慮使用譜技術(shù)之前,最好先清除當(dāng)前環(huán)境中的所有變量,并關(guān)閉所有的圖。下一步是確保你可以通過(guò)使用library命令來(lái)訪問(wèn)這些包中的程序。
library(tsm)
library(TSA)
library(mFilter)
使用譜技術(shù)進(jìn)行分解。我們可以為三個(gè)時(shí)間序列變量生成數(shù)值,然后將它們組合成一個(gè)單一的變量。
2?*?cos(2?*?pi?*?t?*?w\[1\])?+?3?*?sin(2?*?pi?*?t?*?
????w\[1\])??#?no.obs點(diǎn)上的6個(gè)周期的頻率
4?*?cos(2?*?pi?*?t?*?w\[2\])?+?5?*?sin(2?*?pi?*?t?*?
????w\[2\])??#頻率為10個(gè)周期的觀察點(diǎn)
6?*?cos(2?*?pi?*?t?*?w\[3\])?+?7?*?sin(2?*?pi?*?t?*?
????w\[3\])??#?在沒(méi)有觀測(cè)點(diǎn)的情況下,頻率為40個(gè)周期
y?<-?x1?+?x2?+?x3
為了觀察這些變量,我們可以把它們繪制在一個(gè)單獨(dú)的軸上。
par(mfrow?=?c(2,?2),?mar?=?c(2.2,?2.2,?2,?1),?cex?=?0.8)
plot(x1,?type?=?"l",?main?=?"x1")
plot(x2,?type?=?"l",?main?=?"x2")
plot(x3,?type?=?"l",?main?=?"x3")
plot(y,?type?=?"l",?main?=?"y")
此后,我們可以使用周期圖來(lái)考慮這些時(shí)間序列變量的每一個(gè)屬性。
gram(y,?main?=?"y",?col?=?"red")
當(dāng)然,我們可以利用一個(gè)過(guò)濾器,從總體時(shí)間序列變量中去除一些不需要的成分。為此,我們可以應(yīng)用上下限相對(duì)較窄的Christiano-Fitzgerald濾波器。此后,我們使用應(yīng)用于與周期有關(guān)的信息的周期圖,來(lái)調(diào)查它是否成功地剔除了一些頻率成分。
cf(y0)
gram(cycle)
這個(gè)結(jié)果將表明,濾波器已經(jīng)排除了大部分的高頻率成分。為了看看這個(gè)周期與之前的數(shù)據(jù)有什么關(guān)系,我們把通過(guò)濾波器的周期性信息繪制在分量上。此外,我們還將這個(gè)結(jié)果繪制在綜合周期的變量上。
plot(x1,?type?=?"l",?lty?=?1)
lines(cycle,?lty?=?3,?lwd?=?3)
plot(y,?type?=?"l",?lty?=?1)
lines(cycle,?lty?=?3,?lwd?=?3)
在這兩種情況下,它似乎都對(duì)過(guò)程中的趨勢(shì)做了合理的描述。
南非商業(yè)周期的譜分解法
為了考慮如何在實(shí)踐中使用這些頻譜分解,我們現(xiàn)在可以考慮將這些技術(shù)應(yīng)用于南非商業(yè)周期的各種特征中。
下一步將是運(yùn)行所有的過(guò)濾器,這些過(guò)濾器被應(yīng)用于識(shí)別南非商業(yè)周期的不同方法。
現(xiàn)在,讓我們對(duì)商業(yè)周期的每一個(gè)標(biāo)準(zhǔn)應(yīng)用一個(gè)周期圖。
線性濾波器提供了一個(gè)很差的結(jié)果,因?yàn)橼厔?shì)明顯占主導(dǎo)地位(這不是周期應(yīng)該有的)。這與Hodrick-Prescott濾波器的特征形成對(duì)比,后者的趨勢(shì)信息已經(jīng)被去除。Baxter & King和Christiano & Fitzgerald的帶通濾波器也是這種情況。在這兩種情況下,噪聲也已經(jīng)被去除。最后的結(jié)果與Beveridge-Nelson分解有關(guān),我們注意到周期包括大量的趨勢(shì)和大量的噪聲。
小波分解
為了提供一個(gè)小波分解的例子,我們將把該方法應(yīng)用于南非通貨膨脹的數(shù)據(jù)。這將允許使用在這個(gè)過(guò)程中推導(dǎo)出對(duì)趨勢(shì)的另一種衡量方法,這可以被認(rèn)為是代表核心通貨膨脹。請(qǐng)注意,這種技術(shù)可以應(yīng)用于任何階數(shù)的單整數(shù)據(jù),所以我們不需要首先考慮變量的單整階數(shù)。
然后,我們將利用消費(fèi)者價(jià)格指數(shù)的月度數(shù)據(jù),該數(shù)據(jù)包含在SARB的季度公告中。數(shù)據(jù)可以追溯到2002年。為了計(jì)算通貨膨脹的同比指標(biāo),我們使用diff和lag命令。
diff/cpi\[-1?*?(length?-?11):length\]
為了確保所有這些變量的轉(zhuǎn)換都已正確進(jìn)行,我們對(duì)數(shù)據(jù)進(jìn)行繪圖。
plot(inf.yoy)
由于我們?cè)谶@種情況下主要對(duì)識(shí)別平滑的趨勢(shì)感興趣,我們將使用貝希斯函數(shù)。這樣的函數(shù)是Daubechies 4小波,它應(yīng)用修正的離散小波變換方法。此外,我們還將使用三個(gè)母小波來(lái)處理各自的高頻成分。
wt(yoy,?"d4")
然后我們可以為每個(gè)獨(dú)立的頻率成分繪制結(jié)果,如下所示。
plot.ts(yoy)
for?(i?in?1:4)?plot.ts(d4\[\[i\]\]
如果我們現(xiàn)在想在數(shù)據(jù)上繪制趨勢(shì)(父小波)。
plot.ts(inf,?ylab?=?"inf")
lines(ren)
請(qǐng)注意,由于各自的頻段是相加的,我們可以將其中一個(gè)母頻段加入到趨勢(shì)中,如下所示。
inf.tmp?<-?inf.tren?+?inf.d4$w3
inf.tren2?<-?ts(inf.tmp,?start?=?c(2003,?1),?frequency?=?12)
plot.ts(inf.yoy,?ylab?=?"inf")
lines(inf.tren2,?col?=?"red")
相關(guān)經(jīng)濟(jì)變量的周期性成分之間的相關(guān)性
為了確定周期的特征是否合適,我們可以考慮宏觀經(jīng)濟(jì)總量的一些不同周期性方法之間的相關(guān)性。例如,我們可以考慮產(chǎn)出和生產(chǎn)(或就業(yè))的周期性在不同的滯后期應(yīng)該是相關(guān)的。如果它們不相關(guān),那么該方法可能無(wú)法準(zhǔn)確描述各自變量的周期性成分。
在本文使用的例子中,代碼可能有點(diǎn)難以理解,但我們鼓勵(lì)你自己去研究,以提高你對(duì)這個(gè)編碼環(huán)境的總體理解。?
下一步是讀入數(shù)據(jù)并為數(shù)據(jù)的各種周期性成分創(chuàng)建一些矩陣。
yd?<-?dat\[5:n.obs,?\]?-?dat\[1:(n.obs?-?4),?\]??#?存儲(chǔ)輸出
yc_li?<-?matrix(rep(0,?n.obs?*?n.var),?ncol?=?n.var)
yc_hp?<-?matrix(rep(0,?n.obs?*?n.var),?ncol?=?n.var)
yc_bp?<-?matrix(rep(0,?n.obs?*?n.var),?ncol?=?n.var)
yc_bn?<-?matrix(rep(0,?n.obs?*?n.var),?ncol?=?n.var)
使用上面包含的方法對(duì)數(shù)據(jù)進(jìn)行過(guò)濾。
for?(i?in?1:n)?{
????#?用線性濾波器對(duì)數(shù)據(jù)進(jìn)行去趨勢(shì)處理
????lin.mod?<-?lm(dat\[,?i\]?~?time(dat\[,?i\]))
????#?用HP濾波器去趨勢(shì)數(shù)據(jù)
????yc_hp\[,?i\]?<-?hp.cycle
????#用帶通濾波器去趨勢(shì)數(shù)據(jù)
????yc_bp\[,?i\]?<-?bp.cycle
????#??Beveridge-Nelson分解
????yc_bn\[,?i\]?<-?bn.\[,?2\]
}
計(jì)算不同提前期和滯后期的相關(guān)關(guān)系。
for?(i?in?1:n)?{
????for?(j?in?1:n.var)?{
????????c\_li?<-?leadlag(yc\_li\[,?i\],?yc_li\[,?j\],?maxLeadLag)
????????c\_hp?<-?leadlag(yc\_hp\[,?i\],?yc_hp\[,?j\],?maxLeadLag)
????????c_bp?
????????c_bn
????????c_yd?
????????for?(k?in?1:5)?{
????????????ynamesLong\[(cnt?+?k),?1\]?<-?paste(ynames.tmp)
????????}
????????cnt?<-?cnt?+?5
繪制結(jié)果。
#?線性趨勢(shì)
barplot(corrStylizedFact)
box()
#?hp濾波器
op?<-?par(mfrow?=?c(1,?3))
barplot(corrStyli,?ylim?=?c(-1,?1))
box()
#?beveridge?nelson?分解
barplot(coracts,?ylim?=?c(-1,?1),?col?=?"red")
box()
本文摘選《R語(yǔ)言分解商業(yè)周期時(shí)間序列:線性濾波器、HP濾波器、Baxter濾波器、Beveridge Nelson分解等去趨勢(shì)法》,點(diǎn)擊“閱讀原文”獲取全文完整資料。
點(diǎn)擊標(biāo)題查閱往期內(nèi)容
R語(yǔ)言時(shí)間序列分解和異常檢測(cè)方法應(yīng)用案例
R語(yǔ)言矩陣特征值分解(譜分解)和奇異值分解(SVD)特征向量分析有價(jià)證券數(shù)據(jù)
R語(yǔ)言從經(jīng)濟(jì)時(shí)間序列中用HP濾波器,小波濾波和經(jīng)驗(yàn)?zāi)B(tài)分解等提取周期性成分分析
R語(yǔ)言狀態(tài)空間模型和卡爾曼濾波預(yù)測(cè)酒精死亡人數(shù)時(shí)間序列
matlab實(shí)現(xiàn)擴(kuò)展卡爾曼濾波(EKF)進(jìn)行故障檢測(cè)
卡爾曼濾波器:用R語(yǔ)言中的KFAS建模時(shí)間序列
狀態(tài)空間模型:卡爾曼濾波器KFAS建模時(shí)間序列
R語(yǔ)言用LOESS(局部加權(quán)回歸)季節(jié)趨勢(shì)分解(STL)進(jìn)行時(shí)間序列異常檢測(cè)
使用R語(yǔ)言隨機(jī)波動(dòng)模型SV處理時(shí)間序列中的隨機(jī)波動(dòng)率
PYTHON用時(shí)變馬爾可夫區(qū)制轉(zhuǎn)換(MRS)自回歸模型分析經(jīng)濟(jì)時(shí)間序列
R語(yǔ)言有限混合模型(FMM,finite mixture model)EM算法聚類(lèi)分析間歇泉噴發(fā)時(shí)間
長(zhǎng)短期記憶網(wǎng)絡(luò)LSTM在時(shí)間序列預(yù)測(cè)和文本分類(lèi)中的應(yīng)用
Python隨機(jī)波動(dòng)率(SV)模型對(duì)標(biāo)普500指數(shù)時(shí)間序列波動(dòng)性預(yù)測(cè)
R語(yǔ)言中ARMA,ARIMA(Box-Jenkins),SARIMA和ARIMAX模型用于預(yù)測(cè)時(shí)間序列數(shù)據(jù)
R語(yǔ)言使用ARIMAX預(yù)測(cè)失業(yè)率經(jīng)濟(jì)時(shí)間序列數(shù)據(jù)
R語(yǔ)言用ARIMA模型,ARIMAX模型預(yù)測(cè)冰淇淋消費(fèi)時(shí)間序列數(shù)據(jù)
R語(yǔ)言經(jīng)濟(jì)學(xué):動(dòng)態(tài)模型平均(DMA)、動(dòng)態(tài)模型選擇(DMS)預(yù)測(cè)原油時(shí)間序列價(jià)格