您好,欢迎访问三七文档
该方法采用对称的数据移动平均的方法原理,设计了一个滤波器,将变化不定的时间序列数据中具有一定趋势变化的平滑序列分离出来。于是时间序列数据就被分为两部分:周期性波动数据和趋势要素数据。设有序列Y={y1,y2……yT},趋势要素为G={g1,g2……gT},周期要素为C={c1,c2……cT}且Y=G+C,,,,t=1234………..T即损失函数为M。G被定义为M最小化时的解(即当一系列的g值的取值使得M的值最小的时候,这个G就是我们所求的)。min(M)=min{∑(𝑦𝑡−𝑔𝑡)2𝑇𝑡=1+λ∑[(𝑔𝑡−𝑔𝑡−1)−(𝑔𝑡−1−𝑔𝑡−2)]2𝑇𝑡=3}𝐌=(𝒚𝟏−𝒈𝟏)𝟐+(𝒚𝟐−𝒈𝟐)𝟐+⋯+(𝒚𝑻−𝒈𝑻)𝟐+[(𝒈𝟑−𝒈𝟐)−(𝒈𝟐−𝒈𝟏)]𝟐+[(𝒈𝟒−𝒈𝟑)−(𝒈𝟑−𝒈𝟐)]𝟐+⋯+[(𝒈𝑻−𝒈𝑻−𝟏)−(𝒈𝑻−𝟏−𝒈𝑻−𝟐)]𝟐其中λ被称为平滑参数,如果λ=0,则HP滤波退化为最小二乘法。此时欲要M取得最小值,只有𝑦𝑡=𝑔𝑡,即𝑔𝑡序列就是𝑔𝑡本身。λ越大,则T越平滑。当λ趋于无穷的时候,估计的趋势将接近线性函数。这是因为:此时欲要M取得最小值既要后半部分趋于0,即𝑔𝑡和𝑔𝑡−1,𝑔𝑡−1和𝑔𝑡−2之间应该足够接近(作差接近于0),既然要足够接近,那就应该分布在一条直线上。其中∑(𝑦𝑡−𝑔𝑡)2𝑇𝑡=1刻画了趋势成分T对Y原序列的跟踪程度∑[(𝑔𝑡−𝑔𝑡−1)−(𝑔𝑡−1−𝑔𝑡−2)]2𝑇𝑡=3刻画了所求趋势Y的光滑程度。后半部分可以看做𝑔𝑡的一个二阶差分方程,所以也可以使用滞后算子表示。(也许使用滞后算子表示,能解方程更方便,但我未有尝试)为求极值,则需对M分别求g1,g2……gT的一阶导数:𝛛𝐌𝛛𝒈𝟏=𝟎则有−𝟐(𝒚𝟏−𝒈𝟏)+𝟐𝛌(𝒈𝟑−𝟐𝒈𝟐+𝒈𝟏)=𝟎𝛛𝐌𝛛𝒈𝟐=𝟎则有−𝟐(𝒚𝟐−𝒈𝟐)+𝟐𝛌(𝒈𝟒−𝟐𝒈𝟑+𝒈𝟐)−𝟒𝛌(𝒈𝟑−𝟐𝒈𝟐+𝒈𝟏)=𝟎………………..𝛛𝐌𝛛𝒈𝑻=𝟎则有−𝟐(𝒚𝑻−𝒈𝑻)+𝟐𝛌(𝒈𝑻−𝟐𝒈𝑻−𝟏+𝒈𝑻−𝟐)=𝟎,,,,,,,,其余以此类推,,,,,,,,最终得到:,,,,,,,,ۏێێێێۍ𝑰+𝜆ۉۈۈۇ1−21…00−24+1−2−2…001−2−21+4+1…00………………000…1+4−2000…−21یۋۋۊےۑۑۑۑېۉۈۈۇ𝑔1𝑔2𝑔3…𝑔𝑇−1𝑔Tیۋۋۊ=ۉۈۈۇy1y2y3…y𝑇−1y𝑇یۋۋۊ,,,,,,,,其中I是单位阵,,,,,,,,如我们将将F记作,F=ۉۈۈۇ1−21…00−24+1−2−2…001−2−21+4+1…00………………000…1+4−2000…−21یۋۋۊ,,,,,,,,则有Y=[𝑰+λF]G或者C=λFG,F矩阵中的每一列的和都是是0,,,,,,,,由于权衡选择,λ的最优选择应为λ=𝜎T2𝜎C2那么,当给定λ时,由于Y已知,则可解得G,于是C亦得解。,,,,,,,,
本文标题:HP滤波
链接地址:https://www.777doc.com/doc-6344854 .html