这篇文章是关于nnetsauce 中单变量/多变量时间序列的贝叶斯预测。

对于采用的每个统计/机器学习(ML)模型, 都使用默认超参数。当然,进一步调整它们各自的超参数可能会获得更好的预测性能。

本文来自《数据黑客》,登录官网可精彩资讯和文章。

1. 单变量时间序列

Nile数据集用作单变量时间序列。它包含了对1871年至1970年阿斯旺(原名阿苏安)尼罗河年流量的测量,其变化幅度为10 ^ 8 m ^ 3,1898年附近有明显的结构性变异。

library(datasets)
plot(Nile)

将数据集划分为训练/测试集:

X <- matrix(Nile, ncol=1)
index_train <- 1:floor(nrow(X)*0.8)
X_train <- matrix(X[index_train, ], ncol=1)
X_test <- matrix(X[-index_train, ], ncol=1)

nnetsauce的MTS在底层调用了sklearn的BayesianRidge()。实际上,它支持任何具有fitpredict方法的贝叶斯ML模型(MTS类存在无限的可能性)。

obj <- nnetsauce::sklearn$linear_model$BayesianRidge()
print(obj$get_params())

模型拟合和预测:

fit_obj <- nnetsauce::MTS(obj = obj)
fit_obj$fit(X_train)
preds <- fit_obj$predict(h = nrow(X_test), level=95L, return_std=TRUE)

95%置信区间:

n_test <- nrow(X_test)
xx <- c(1:n_test, n_test:1)
yy <- c(preds$lower, rev(preds$upper))
plot(1:n_test, drop(X_test), type='l', main="Nile",ylim = c(500, 1200))
polygon(xx, yy, col = "gray", border = "gray")
points(1:n_test, drop(X_test), pch=19)
lines(1:n_test, drop(X_test))
lines(1:n_test, drop(preds$mean), col="blue", lwd=2)

2. 多元时间序列

usconsumption数据集作为多元时间序列的示例。它包含了1970年至2010年美国季度个人消费支出和个人可支配收入的百分比变化。

library(fpp)
plot(fpp::usconsumption)

将数据集划分为训练/测试集:

X <- as.matrix(fpp::usconsumption)
index_train <- 1:floor(nrow(X)*0.8)
X_train <- X[index_train, ]
X_test <- X[-index_train, ]

拟合模型并预测:

obj <- nnetsauce::sklearn$linear_model$BayesianRidge()
fit_obj2 <- nnetsauce::MTS(obj = obj)fit_obj2$fit(X_train)
preds <- fit_obj2$predict(h = nrow(X_test), level=95L,return_std=TRUE) # standardize output+#plot against X_test

95%置信区间:

n_test <- nrow(X_test)xx <- c(1:n_test, n_test:1)
yy <- c(preds$lower[,1], rev(preds$upper[,1]))
yy2 <- c(preds$lower[,2], rev(preds$upper[,2]))par(mfrow=c(1, 2))
# 95% credible intervals
plot(1:n_test, X_test[,1], type='l', ylim=c(-2.5, 3),main="consumption")
polygon(xx, yy, col = "gray", border = "gray")
points(1:n_test, X_test[,1], pch=19)
lines(1:n_test, X_test[,1])
lines(1:n_test, preds$mean[,1], col="blue", lwd=2)plot(1:n_test, X_test[,2], type='l', ylim=c(-2.5, 3),main="income")
polygon(xx, yy2, col = "gray", border = "gray")
points(1:n_test, X_test[,2], pch=19)
lines(1:n_test, X_test[,2])
lines(1:n_test, preds$mean[,2], col="blue", lwd=2)

来源:R-bloggers
作者: T. Moudiki
翻译校对:数据黑客
原文标题:Bayesian forecasting for uni/multivariate time series

数据黑客:专注金融大数据,聚合全网最好的资讯和教程,提供开源数据接口。

我们聚合全网最优秀的资讯和教程:

  1. 金融大数据
  2. 机器学习/深度学习
  3. 量化交易
  4. 数据工程
  5. 编程语言,Python,R,Julia,Scala,SQL

我们提供开源数据接口:

  1. 下载国内和国外海量金融数据
  2. API接口,将数据整合到您的平台

R时间序列模型之贝叶斯预测相关推荐

  1. 朴素贝叶斯 半朴素贝叶斯_SQL Server中的朴素贝叶斯预测

    朴素贝叶斯 半朴素贝叶斯 In this article, we will walk through Microsoft Naive Bayes algorithm in SQL Server. 在本 ...

  2. 朴素贝叶斯预测是否为垃圾短信

    朴素贝叶斯预测是否为垃圾短信 目的 数据集 源代码 结果 目的 1.利用朴素贝叶斯分类器判断短信(数据集已给)是否为垃圾短信: 2.可参考给定的文本分类代码:不可以直接调用sklearn的方法: 数据 ...

  3. 决策树模型 朴素贝叶斯模型_有关决策树模型的概述

    决策树模型 朴素贝叶斯模型 Decision Trees are one of the highly interpretable models and can perform both classif ...

  4. R语言Copula的贝叶斯非参数估计

    Copula可以完全表征多个变量的依赖性.本文的目的是提供一种贝叶斯非参数方法来估计一个copula,我们通过混合一类参数copula来做到这一点.特别地,我们表明任何双变量copula密度可以通过高 ...

  5. 机器学习之概率图模型(贝叶斯概率,隐马尔科夫模型)

    一.贝叶斯公式 在学习概率图模型之前先要了解贝叶斯公式: 由公式(1),(2)可得: 这便是贝叶斯公式,其中条件概率P(A/B)称为后验概率,概率P(A),P(B)称为先验概率,条件概率P(B/A), ...

  6. 【NLP】经典分类模型朴素贝叶斯解读

    贝叶斯分类器在早期的自然语言处理任务中有着较多实际的应用,例如大部分的垃圾邮件处理都是用的贝叶斯分类器.贝叶斯分类器的理论对于理解后续的NLP模型有很大的进益,感兴趣的小伙伴一定要好好看看,本文会详细 ...

  7. 贝叶斯公式设b_数据分析经典模型——朴素贝叶斯

    编辑导语:做过数据分析的人,想必对贝叶斯模型都不会陌生.贝叶斯预测模型是运用贝叶斯统计进行的一种预测,不同于一般的统计方法,其不仅利用模型信息和数据信息,而且充分利用先验信息.通过实证分析的方法,将贝 ...

  8. PGM:有向图模型:贝叶斯网络

    http://blog.csdn.net/pipisorry/article/details/52489270 为什么用贝叶斯网络 联合分布的显式表示 Note: n个变量的联合分布,每个x对应两个值 ...

  9. 机器学习模型5——贝叶斯分类器

    前置知识 条件概率 贝叶斯公式 (贝叶斯模型还是很好理解的,主要基于高中就学到过的条件概率.) 贝叶斯定理 P(A),P(B)分别是事件A,B发生的概率,而P(A|B)是在事件A在事件B发生的前提下发 ...

最新文章

  1. Linux内核如何装载和启动一个可执行程序
  2. 3 左右_3万左右电动迷你小汽车,3万左右电动迷你小汽车车型推荐
  3. android recovery模式及ROM制作
  4. 分布式与人工智能课程(part10)--图像库的基本使用
  5. springMVC导出 CSV案例
  6. 新DELL服务器在F2设置界面下raid的配置
  7. Archlinux 升级 pacman 时遇到的问题及其解决
  8. 马云的妻子张瑛有多优秀?
  9. 计算机考试桌贴,考试考场桌贴打印
  10. work summary(1)
  11. LayaAir destroy 销毁与 removeChild 移除节点
  12. 云服务器怎么增加d盘_怎么租用美国云服务器比较便宜?
  13. kodi pvr 不能安装_Kodi看电视直播教程 安装PVR IPTV Simple Client播放m3u8直播源
  14. moodle平台安装及环境配置(包括安装过程详细截图)
  15. java excel转pdf有乱码_word,ppt,txt,excel转换pdf 解决中文乱码
  16. bzoj 3772: 精神污染 (主席树+dfs序)
  17. go文件服务器加密,gosignal: 使用 Golang 实现的端对端加密聊天软件 Signal 服务端...
  18. AboutSpace
  19. 初识安全设备-防火墙
  20. BLE-2の蓝牙4.0协议栈のLL层 Scaning 和 initiating状态的区别

热门文章

  1. 设计神经网络的基本原则,神经网络设计原则包括
  2. 分布式主键生成设计策略
  3. kindle 电纸书相关细节
  4. 炫技:拼接列表、破碎二维数组——Python sum()函数隐藏技能花式玩法
  5. c语言经典01背包问题——洛谷P2871
  6. 刷机提示图像和设备不匹配_安卓怎么刷机 安卓手机刷机教程【详解】
  7. 【TARS】TARS-CPP客户端学习二
  8. 二、BLDC矢量控制基础知识:SVPWM原理
  9. 【高通SDM660平台 Android 10.0】(10) --- Camera Sensor lib 与 Kernel Camera Probe 代码分析
  10. java反射实现自定义json转对象方法-忽略字段大小写、字段个数