主要内容

小波Changepoint检测

这个例子展示了如何使用小波检测过程的方差的变化。方差的变化很重要,因为他们经常表明了某种根本性的变化的数据生成机制。

第一个例子小波changepoint检测适用于一个非常古老的时间序列——尼罗河最小值数据为622年至1281年的广告。河流水位的最小值在开罗附近又计测量。测量在米。

数据加载和阴谋。

负载nileriverminima年= 622:1284;图绘制(年,nileriverminima)标题(“尼罗河最低水平”甘氨胆酸)AX =;斧子。XTick = 622:100:1222;网格包含(“年”)ylabel (“米”)

开始建设新的测量装置在公元715年左右。检查数据之前和之后大约公元722年,似乎有改变数据的可变性。您可以使用小波研究假设的变化测量已引入新的测量装置的影响。

获得一个多分辨率分析(MRA)的数据使用Haar小波。

wt = modwt (nileriverminima“哈雾”4);mra = modwtmra (wt,“哈雾”);

情节MRA和集中在一级和二级的细节。

图次要情节(2,1,1)情节(年,mra(1:))标题(“一级细节”次要情节(2,1,2)情节(年,mra(2:))标题(“二级细节”甘氨胆酸)AX =;斧子。XTick = 622:100:1222;包含(“年”)

一个总体方差变化测试应用到小波系数。

JJ = 1:5 pts_Opt = wvarchg (wt (JJ:), 2);changepoints {JJ} = pts_Opt;结束cellfun (@ (x) ~ isempty (x) changepoints,“大学”,0)
ans = 1 x5单元阵列{[1]}{[0]}{[0]}{[0]}{[0]}

今年确定相应方差的变化检测。

年(cell2mat (changepoints))
ans = 721

把数据分成两段。第一部分包括622年至721年,当精细小波系数表示方差的变化。第二部分包含了722年至1284年。得到小波方差的无偏估计。

tspre = nileriverminima (1:10 0);tspost = nileriverminima(101:结束);wpre = modwt (tspre,“哈雾”4);wpost = modwt (tspost,“哈雾”4);wvarpre = modwtvar (wpre,“哈雾”,0.95,“表”)wvarpost = modwtvar (wpost,“哈雾”,0.95,“表”)
wvarpre = 5 x4表NJ低方差上__说____ D1 99 0.25199 0.36053 0.55846 97 93 0.056137 0.11014 0.30622 0.15367 0.25149 0.48477 D3 D2 D4 85 85 0.017875 0.0449 0.25044 0.018881 0.047427 0.26453 S4 wvarpost = 5 x4表NJ低方差上___ ____说D1 562 0.11394 0.13354 0.15869 560 556 0.0693 0.094168 0.13539 0.085288 0.10639 0.13648 D3 D2 D4 548 548 0.24608 0.37558 0.64329 0.053644 0.081877 0.14024 S4

比较结果。

Vpre = table2array (wvarpre);Vpost = table2array (wvarpost);Vpre = Vpre (1: end-1, 2:结束);Vpost = Vpost (1: end-1, 2:结束);Vpre (: 1) = Vpre (:, 2) -Vpre (: 1);Vpre (:, 3) = Vpre (:, 3) -Vpre (:, 2);Vpost (: 1) = Vpost (:, 2) -Vpost (: 1);Vpost (:, 3) = Vpost (:, 3) -Vpost (:, 2);图errorbar (1:4, Vpre (:, 2), Vpre (: 1), Vpre (:, 3),“柯”,“MarkerFaceColor”,0 0 0)errorbar (1.5:4.5 Vpost (:, 2), Vpost (: 1), Vpost (:, 3),“b ^”,“MarkerFaceColor”甘氨胆酸,[0 0 1])集(,“xtick”甘氨胆酸,1.25:4.25)集(,“xticklabel”,{“2年”,“4年”,“八年”,16年的,32年的})网格ylabel (“方差”)标题(小波方差622 - 721和722 - 1284规模的,“字形大小”14)传说(622 - 721年的,722 - 1284年的,“位置”,“东北”)

小波之间的方差表示显著改变622 - 721和722 - 1284年的数据/ 2和4年的尺度。

上面的例子使用了Haar小波滤波器只有两个系数,因为担忧边界效应相对较小的时间序列(100 622 - 721)的样本。如果您的数据是大约一或二阶差分平稳,可以替代使用“反射”边界偏差估计。这允许您使用更长的小波滤波器而不用担心边界系数。重复使用默认的“sym4”小波分析。

wpre = modwt (tspre 4“反射”);wpost = modwt (tspost 4“反射”);wvarpre = modwtvar (wpre, [] [],“EstimatorType”,“有偏见的”,“边界”,“反射”,“表”);wvarpost = modwtvar (wpost, [] [],“EstimatorType”,“有偏见的”,“边界”,“反射”,“表”);

策划的结果。

Vpre = table2array (wvarpre);Vpost = table2array (wvarpost);Vpre = Vpre (1: end-1, 2:结束);Vpost = Vpost (1: end-1, 2:结束);Vpre (: 1) = Vpre (:, 2) -Vpre (: 1);Vpre (:, 3) = Vpre (:, 3) -Vpre (:, 2);Vpost (: 1) = Vpost (:, 2) -Vpost (: 1);Vpost (:, 3) = Vpost (:, 3) -Vpost (:, 2);图errorbar (1:4, Vpre (:, 2), Vpre (: 1), Vpre (:, 3),“柯”,“MarkerFaceColor”,0 0 0)errorbar (1.5:4.5 Vpost (:, 2), Vpost (: 1), Vpost (:, 3),“b ^”,“MarkerFaceColor”甘氨胆酸,[0 0 1])集(,“xtick”甘氨胆酸,1.25:4.25)集(,“xticklabel”,{“2年”,“4年”,“八年”,16年的,32年的})网格ylabel (“方差”)标题({小波方差622 - 721和722 - 1284规模的;“偏差估计——反射边界”},“字形大小”14)传说(“622 - 721”,“722 - 1284”,“位置”,“东北”)举行

结论加强。有显著差异的方差数据2和4年的尺度,但不是在时间尺度。可以得出结论,有些事情已经改变了对过程方差。

在金融时间序列,可以使用小波检测的变化波动。为了说明这一点,考虑到季度chain-weighted美国1974年第一季度到2012年第四季度实际国内生产总值数据。这些数据被转换,首先取自然对数,然后计算同比差异。获得小波变换(MODWT)的实际GDP数据到级别6与db2的小波。检查数据和比较的方差,方差的规模获得MODWT。

负载GDPcomponentsrealgdpwt = modwt (realgdp,“db2”6“反射”);gdpmra = modwtmra (realgdpwt,“db2”,“反射”);vardata = var (realgdp, 1);varwt = var (realgdpwt(: 1:元素个数(realgdp)), 1, 2);

vardata你总GDP时间序列的方差。在varwt你有MODWT方差的规模。有七个元素varwt因为你获得了MODWT水平6个导致6个小波系数方差和一个比例系数方差。和规模的差异,方差是保留。情节的小波变化规模忽略了比例系数方差。

totalMODWTvar =总和(varwt);栏(varwt (1: end-1,:)) AX = gca;斧子。XTickLabels = {“[2 4)”,“[4 8)”,“[8 16)”,“[16个32)”,“64年(32)”,“[64 128)”};包含(“季度”)ylabel (“方差”)标题(“小波变化的尺度”)

因为这个季度数据,第一个规模捕获两个和四个季度之间的变化,第二规模4 - 8、8和16之间的第三,等等。

MODWT和一个简单的酒吧的阴谋,你会发现周期8 - 32之间数据季度最大的方差占国内生产总值(GDP)数据。如果你考虑在这些尺度小波差异,他们占57%的GDP数据的可变性。这意味着国内生产总值(GDP)在一段时间内的振荡2至8年占大多数的变化时间序列。

总公司一级情节细节,D1。这些细节捕捉振荡之间的数据两个和四个季度的持续时间。

:helperFinancialDataExample1 (gdpmra(1),年,“美国GDP同比实际- D1”)

检查一级细节,似乎有一个减少方差从1980年代开始。

测试重要的一级小波系数方差changepoints。

pts_Opt = wvarchg (realgdpwt(1,1:元素个数(realgdp)), 2);年(pts_Opt)
ans = 1982

在1982年有一个方差changepoint确认。这个例子不正确的db2引入的延迟在一级小波。然而,延迟是只有两个样品所以不结果有较大的影响。

评估波动性的变化1982年GDP数据前后,将原始数据分为预处理和post-changepoint系列。获得小波变换前后的数据集。在这种情况下,这个系列是相对较短的使用Haar小波边界系数的数量降到最低。计算小波方差的无偏估计的规模和阴谋的结果。

tspre = realgdp (1: pts_Opt);tspost = realgdp (pts_Opt + 1:结束);wtpre = modwt (tspre,“哈雾”5);wtpost = modwt (tspost,“哈雾”5);prevar = modwtvar (wtpre,“哈雾”,“表”);postvar = modwtvar (wtpost,“哈雾”,“表”);xlab = {“[2 q, 4 q)”,“[4 q, 8 q)”,“[8 q, 16 q)”,“[16 q, 32 q)”,“[32 q 64 q)”};helperFinancialDataExampleVariancePlot (prevar postvar,“表”xlab)标题(“小波变化的尺度”)传说(“1982年第二季度之前”,“1982后Q2”,“位置”,“西北”)

从前面的情节,似乎之间有显著差异pre - 1982 q2和post - 1982 q2方差之间尺度2和16个季度。

因为时间序列太短在这个例子中,它可能是有用的使用有偏见的估计方差。有偏见的估计不移除边界系数。使用db2的小波滤波器四个系数。

wtpre = modwt (tspre,“db2”5,“反射”);wtpost = modwt (tspost,“db2”5,“反射”);prevar = modwtvar (wtpre,“db2”,0.95,“EstimatorType”,“有偏见的”,“表”);postvar = modwtvar (wtpost,“db2”,0.95,“EstimatorType”,“有偏见的”,“表”);xlab = {“[2 q, 4 q)”,“[4 q, 8 q)”,“[8 q, 16 q)”,“[16 q, 32 q)”,“[32 q 64 q)”};图helperFinancialDataExampleVariancePlot (prevar postvar,“表”xlab)标题(“小波变化的尺度”)传说(“1982年第二季度之前”,“1982后Q2”,“位置”,“西北”)

结果证实了我们最初的发现有一个减少在波动范围从2到16个季度。

使用小波变换允许你专注于尺度波动的变化是局部的。看到这,检查原始数据的情节以及总公司一级小波细节。

次要情节(2,1,1)helperFinancialDataExample1 (realgdp,年,年真正的美国国内生产总值(GDP),原始数据次要情节(2,1,2)helperFinancialDataExample1 (gdpmra(1:),年,年真正的美国国内生产总值(GDP)——小波1级细节”)

阴影区域被称为“大缓和”标志着一段时间的下降在美国宏观经济波动在1980年代中期开始。

检查汇总数据,目前尚不清楚,实际上是减少波动。然而,小波一级发现细节的变化波动。