乐趣区

关于数据挖掘:卡尔曼滤波器用R语言中的KFAS建模时间序列附代码数据

原文链接:http://tecdat.cn/?p=6762

最近咱们被客户要求撰写对于卡尔曼滤波器的钻研报告,包含一些图形和统计输入。

工夫序列预测,ARIMA 等传统模型通常是一种风行的抉择

尽管这些模型能够证实具备高度的准确性,但它们有一个次要毛病 – 它们通常不会解释“冲击”或工夫序列的忽然变动。让咱们看看咱们如何应用称为 卡尔曼滤波器 的模型来解决这个问题。

 

工夫序列

咱们以货币市场为例。货币对可能会有整体回升趋势,而后在抛售期间大幅上涨。传统的工夫序列模型不肯定可能立刻解决这个问题,并且在思考到趋势的忽然变动之前可能须要几个期间。

因而,咱们心愿应用一个的确可能解释这种冲击的工夫序列模型。让咱们来看一个称为 卡尔曼滤波器 的模型。

卡尔曼滤波器是一种状态空间模型,能够更快地调整冲击到工夫序列。让咱们看一下例子。

2015 年 1 月,当瑞士国家银行决定勾销瑞士法郎时,货币市场蒙受了历史上最大的冲击之一。后果,瑞士法郎飙升,而其余次要货币则暴涨。

让咱们看看卡尔曼滤波器如何调整这种冲击。

 

卡尔曼滤波器:USD / CHF

首先,让咱们下载 2015 年 1 月的 USD / CHF 数据。


> currency = Quandl("FRED/DEXSZUS", start_date="2010-01-01",end_date="2018-09-29",type="xts")
> currency=data.frame(currency)
> currency=(log(currency$currency))

当初,咱们将尝试应用 KFAS 库应用卡尔曼滤波器对此工夫序列进行建模。

 

绘制工夫序列:

> ts.plot(ts(exp(currency[1232:1274]), exp(out$a[1232:1274]), exp(out$att[1232:1274]), exp(out$alpha[1232:1274])

点击题目查阅往期内容

合成商业周期时间序列:线性滤波器、HP 滤波器、Baxter 滤波器、Beveridge Nelson 合成等去趋势法

左右滑动查看更多

01

02

03

04

 

为了进行比拟,咱们还将计算 10 天挪动平均值,以比拟平滑性能与卡尔曼滤波器的平滑性能。

data.frame(SMA(exp(currency),n=10))

 当初让咱们将下面的内容与咱们的原始序列联合起来,看看咱们失去了什么:
这是生成的数据框:

在某些状况下,高频数据 – 或过滤从噪声信号中提取信息并预测将来状态,是卡尔曼滤波器最合适的用处。另一方面,平滑更依赖于过来的数据,因为在某些状况下,均匀最近的预测可能比应用最近的预测更精确。

这在直觉上是有情理的,因为货币在一个月之前的交易价格为 0.9658。在这方面,平滑预计器容许比应用滤波预计更好地预测信号,滤波预计 a 直到时间段 33 才调整冲击。

例子:英镑 / 美元

因而,咱们曾经看到卡尔曼滤波器如何拟合美元 / 瑞士法郎的忽然变动。咱们再举一个货币冲击的例子。当英国在 2016 年 6 月投票反对“英国退欧”时,咱们看到英镑 / 美元随后暴涨。

如在 USD / CHF 的例子中,咱们从 Quandl 下载咱们的 GBP / USD 数据并运行卡尔曼滤波器:

这是咱们的数据图。同样,咱们看到 alpha 在 t = 22 时的震荡前一天向下调整到 1.438 的程度:

以下是 a,att 和 alpha 统计信息:

同样,咱们看到 10 天 SMA 须要将近 10 天能力齐全调整震荡,再次表明平滑参数 α 在调整货币程度的巨大变化时是不错的。

论断

 

  • 调整工夫序列冲击的重要性
  • 如何在 R 中应用 KFAS 实现卡尔曼滤波器
  • 如何解释卡尔曼滤波器的输入
  • 为什么卡尔曼滤波器是用于建模工夫序列冲击的适合模型

点击文末 “浏览原文”

获取全文残缺代码数据资料。

本文选自《卡尔曼滤波器:用 R 语言中的 KFAS 建模工夫序列》。

点击题目查阅往期内容

R 语言工夫序列合成和异样检测办法利用案例 R 语言矩阵特征值合成 (谱合成) 和奇怪值合成 (SVD) 特征向量剖析有价证券数据 R 语言从经济工夫序列中用 HP 滤波器,小波滤波和教训模态合成等提取周期性成分剖析
R 语言状态空间模型和卡尔曼滤波预测酒精死亡人数工夫序列 matlab 实现扩大卡尔曼滤波 (EKF) 进行故障检测
卡尔曼滤波器:用 R 语言中的 KFAS 建模工夫序列
状态空间模型:卡尔曼滤波器 KFAS 建模工夫序列
R 语言用 LOESS(部分加权回归)节令趋势合成(STL)进行工夫序列异样检测
应用 R 语言随机稳定模型 SV 解决工夫序列中的随机稳定率
PYTHON 用时变马尔可夫区制转换(MRS)自回归模型剖析经济工夫序列
R 语言无限混合模型 (FMM,finite mixture model)EM 算法聚类分析间歇泉喷发工夫
长短期记忆网络 LSTM 在工夫序列预测和文本分类中的利用
Python 随机稳定率 (SV) 模型对标普 500 指数工夫序列波动性预测
R 语言中 ARMA,ARIMA(Box-Jenkins),SARIMA 和 ARIMAX 模型用于预测工夫序列数据
R 语言应用 ARIMAX 预测失业率经济工夫序列数据
R 语言用 ARIMA 模型,ARIMAX 模型预测冰淇淋生产工夫序列数据
R 语言经济学:动静模型均匀 (DMA)、动静模型抉择(DMS) 预测原油工夫序列价格

退出移动版