Prophet
名称:自动预测过程
版本:0.2.1
日期:2017-11-08
描述:实现了一个时间序列的预测过程,基于能够拟合年度、周等周期以及假期等因素的非线性趋势的加法模型。模型要求至少一年以上的周期性历史数据。prophet模型对于缺失值、趋势突变以及大量离群点的数据有较好的鲁棒性。
平台:R(3.2.3以上版本),Rcpp(0.12.0以上版本)
载入包: dplyr, extraDistr, ggplot2, grid, rstan, scales, stats, tidyr
作者: Sean Taylor [cre, aut] , Ben Letham[aut]
主要联系人:Sean Taylor
----------------------------------------------------------------------------------------------------------
下面是分别介绍包中方法的具体使用,共12个方法:
(七)add_regressor —— 在原数据框中增加一列解释变量用于拟合和预测
方法描述:
原数据框中会增加一列作为解释变量,当参数standardize='auto'时,这个解释变量将会被标准化(除非它是二进制),给定浮动比例参数时回归系数也就确定了,降低浮动比例会产生较大的调整,当不指定浮动比例时,默认为holidays.prior.scale的值。
用法:
add_regressor ( m, name, prior.scale = NULL, standardize = 'auto' )
参数说明:
m
Prophet预测对象
name
解释变量的名字,字符串
prior.scale 对历史数据的浮动比例,不指定时默认选择holidays.prior.scale的值
standardize
布尔值,指明拟合之前是否需要标准化,‘auto’,True,False
输出值:
增加解释变量的prophet模型
(八)add_seasonality —— 在原数据框中增加一个特定时间段季节因素
方法描述:
增加傅里叶成分的数量会使季节性的变化更快(有过拟合的风险),默认情况下,年和周的季节性参数值分别取10和3.
用法:
add_seasonality ( m, name, period, fourier.order, prior.scale = NULL )
参数说明:
m
Prophet预测对象
name 季节成分名称,字符串
Period 一个时间段中的天数
fourier.order
傅里叶成分的个数
prior.scale
对历史数据的浮动比例
,增大浮动比例参数的值将会使得季节因素更有弹性,不指定参数值时,使用seasonality.prior.scale的值(默认为10)
输出值:
增加季节因素的prophet模型
(九)cross_validation —— 时间序列的交叉验证
描述:
将原始数据集分成若干个部分,计算预测值进行交叉验证
用法:
cross_validation ( model, horizon, units, period = NULL, initial = NULL )
参数说明:
model
拟合的Prophet模型
horizon 范围,整数大小
units 单位,字符串,如‘days’,‘secs’
period 各个集的大小,若不指定,值默认选择0.5*horizon
输出值:
数据框,包含预测值、实际值、划分点
(十)fit.prophet —— 拟合prophet模型
描述:
这个方法设置prophet模型中的m$params特征包含拟合的参数,参数列表包括以下元素:k (M数组):M个初始斜率的后验样本;m(M数组):初始截距;delta(M*N矩阵):在每N个变点处斜率发生变化;beta(M*K矩阵):K个季节特征的系数;sigma_obs(M数组):噪声水平。注意,最大后验概率(MAP)估计时,M=1
用法:
fit.prophet ( m, df , … )
参数说明:
m
Prophet对象
df 数据框
units 单位,字符串,如‘days’,‘secs’
period
各个集的大小,若不指定,值默认选择0.5*horizon
输出值:
数据框,包含预测值、实际值、划分点
(十一)predictive_samples —— 后验预测样本
描述:
后验预测样本
用法:
predictive_samples ( m, df )
参数说明:
m
Prophet模型对象
df 包含预测日期(column ds),逻辑增长时需要容量(column cap),如果不指定则在历史数据基础上预测 【make_future_dataframe()返回的数据框】
输出值:
返回一个列表,项目有‘trend’、‘seasonal’和‘yhat’,后验预测样本产生的结果,‘seasonal’是所有季节效应的叠加、节假日、其他解释变量。
(十二)simulated_historical_forecasts —— 模拟历史预测
描述:
从k个历史截断点进行预测,后向预测(从最后开始)以每个截断点间的距离为跨度。
用法:
simulated_historical_forecasts (model, horizon, units, k, period = NULL)
参数说明:
model
拟合的Prophet预测模型
horizon
整型,时间范围
units 字符串,时间范围的单位,如“day”,“secs”
k 整型,预测点数
period
时间段,截断日期之间的时间跨度,单位同上,默认选择0.5*horizon
输出值:
返回一个数据框,包含预测值、实际值和截断日期。