R时间序列模型之贝叶斯预测
这篇文章是关于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()
。实际上,它支持任何具有fit
和predict
方法的贝叶斯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
数据黑客:专注金融大数据,聚合全网最好的资讯和教程,提供开源数据接口。
我们聚合全网最优秀的资讯和教程:
- 金融大数据
- 机器学习/深度学习
- 量化交易
- 数据工程
- 编程语言,Python,R,Julia,Scala,SQL
我们提供开源数据接口:
- 下载国内和国外海量金融数据
- API接口,将数据整合到您的平台
R时间序列模型之贝叶斯预测相关推荐
- 朴素贝叶斯 半朴素贝叶斯_SQL Server中的朴素贝叶斯预测
朴素贝叶斯 半朴素贝叶斯 In this article, we will walk through Microsoft Naive Bayes algorithm in SQL Server. 在本 ...
- 朴素贝叶斯预测是否为垃圾短信
朴素贝叶斯预测是否为垃圾短信 目的 数据集 源代码 结果 目的 1.利用朴素贝叶斯分类器判断短信(数据集已给)是否为垃圾短信: 2.可参考给定的文本分类代码:不可以直接调用sklearn的方法: 数据 ...
- 决策树模型 朴素贝叶斯模型_有关决策树模型的概述
决策树模型 朴素贝叶斯模型 Decision Trees are one of the highly interpretable models and can perform both classif ...
- R语言Copula的贝叶斯非参数估计
Copula可以完全表征多个变量的依赖性.本文的目的是提供一种贝叶斯非参数方法来估计一个copula,我们通过混合一类参数copula来做到这一点.特别地,我们表明任何双变量copula密度可以通过高 ...
- 机器学习之概率图模型(贝叶斯概率,隐马尔科夫模型)
一.贝叶斯公式 在学习概率图模型之前先要了解贝叶斯公式: 由公式(1),(2)可得: 这便是贝叶斯公式,其中条件概率P(A/B)称为后验概率,概率P(A),P(B)称为先验概率,条件概率P(B/A), ...
- 【NLP】经典分类模型朴素贝叶斯解读
贝叶斯分类器在早期的自然语言处理任务中有着较多实际的应用,例如大部分的垃圾邮件处理都是用的贝叶斯分类器.贝叶斯分类器的理论对于理解后续的NLP模型有很大的进益,感兴趣的小伙伴一定要好好看看,本文会详细 ...
- 贝叶斯公式设b_数据分析经典模型——朴素贝叶斯
编辑导语:做过数据分析的人,想必对贝叶斯模型都不会陌生.贝叶斯预测模型是运用贝叶斯统计进行的一种预测,不同于一般的统计方法,其不仅利用模型信息和数据信息,而且充分利用先验信息.通过实证分析的方法,将贝 ...
- PGM:有向图模型:贝叶斯网络
http://blog.csdn.net/pipisorry/article/details/52489270 为什么用贝叶斯网络 联合分布的显式表示 Note: n个变量的联合分布,每个x对应两个值 ...
- 机器学习模型5——贝叶斯分类器
前置知识 条件概率 贝叶斯公式 (贝叶斯模型还是很好理解的,主要基于高中就学到过的条件概率.) 贝叶斯定理 P(A),P(B)分别是事件A,B发生的概率,而P(A|B)是在事件A在事件B发生的前提下发 ...
最新文章
- Linux内核如何装载和启动一个可执行程序
- 3 左右_3万左右电动迷你小汽车,3万左右电动迷你小汽车车型推荐
- android recovery模式及ROM制作
- 分布式与人工智能课程(part10)--图像库的基本使用
- springMVC导出 CSV案例
- 新DELL服务器在F2设置界面下raid的配置
- Archlinux 升级 pacman 时遇到的问题及其解决
- 马云的妻子张瑛有多优秀?
- 计算机考试桌贴,考试考场桌贴打印
- work summary(1)
- LayaAir destroy 销毁与 removeChild 移除节点
- 云服务器怎么增加d盘_怎么租用美国云服务器比较便宜?
- kodi pvr 不能安装_Kodi看电视直播教程 安装PVR IPTV Simple Client播放m3u8直播源
- moodle平台安装及环境配置(包括安装过程详细截图)
- java excel转pdf有乱码_word,ppt,txt,excel转换pdf 解决中文乱码
- bzoj 3772: 精神污染 (主席树+dfs序)
- go文件服务器加密,gosignal: 使用 Golang 实现的端对端加密聊天软件 Signal 服务端...
- AboutSpace
- 初识安全设备-防火墙
- BLE-2の蓝牙4.0协议栈のLL层 Scaning 和 initiating状态的区别
热门文章
- 设计神经网络的基本原则,神经网络设计原则包括
- 分布式主键生成设计策略
- kindle 电纸书相关细节
- 炫技:拼接列表、破碎二维数组——Python sum()函数隐藏技能花式玩法
- c语言经典01背包问题——洛谷P2871
- 刷机提示图像和设备不匹配_安卓怎么刷机 安卓手机刷机教程【详解】
- 【TARS】TARS-CPP客户端学习二
- 二、BLDC矢量控制基础知识:SVPWM原理
- 【高通SDM660平台 Android 10.0】(10) --- Camera Sensor lib 与 Kernel Camera Probe 代码分析
- java反射实现自定义json转对象方法-忽略字段大小写、字段个数