1. 程式人生 > >R中prophet包說明文件(二)

R中prophet包說明文件(二)

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 <
[email protected]
>
----------------------------------------------------------------------------------------------------------
下面是分別介紹包中方法的具體使用,共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
輸出值:
 返回一個數據框,包含預測值、實際值和截斷日期。