R中prophet包說明文檔(一)



名稱:自動預測過程

版本:0.2.1

日期:2017-11-08

描述:實現了一個時間序列的預測過程,基於能夠擬合年度、周等週期以及假期等因素的非線性趨勢的加法模型。模型要求至少一年以上的週期性歷史數據。prophet模型對於缺失值、趨勢突變以及大量離羣點的數據有較好的魯棒性。

平臺:R3.2.3以上版本),Rcpp0.12.0以上版本)

載入包: dplyr, extraDistr, ggplot2, grid,rstan, scales stats tidyr

作者: Sean Taylor [cre, aut] , BenLetham[aut]

主要聯繫人:Sean Taylor<[email protected]>

---------------------------------------------------------------------------------------------------------

下面是分別介紹包中方法的具體使用,共12個方法:

(一)prophet —— prophet預測器

描述:

預測器,模型生成器

用法:

prophet( df = NULL, growth ="linear", changepoints = NULL, n.changepoints = 25,

  yearly.seasonality ="auto", weekly.seasonality = "auto", daily.seasonality ="auto",

  holidays = NULL,seasonality.prior.scale = 10, holidays.prior.scale = 10,

  changepoint.prior.scale = 0.05,mcmc.samples = 0, interval.width = 0.8,

  uncertainty.samples = 1000, fit= TRUE, ... )

參數說明:

df                                       (選擇項)歷史數據框,必須包含列:dsdate型)、y(時間序列),當邏輯增長時,必須包含cap列指明每一個dscapacity。不提供此參數時,模型會被實例化但是不會被擬合,可以使用fit.prophet(m,df)來擬合模型。

growth                                  字符串‘linear’‘logistic’,表示線性或者邏輯增長趨勢。

changepoints                       日期型向量,表示潛在的拐點,不指定時系統自動選擇。

n.changepoints                    拐點數量,當changepoints有輸入時不用指定,默認情況選擇df$ds的前80%。

yearly.seasonality                 擬合年度季節性,可以爲‘auto’TRUEFALSE,或者是一些傅里葉成分來生成。

weekly.seasonality                擬合周度季節性,可以爲‘auto’TRUEFALSE,或者是一些傅里葉成分來生成。

daily.seasonality                   擬合日的季節性,可以爲‘auto’TRUEFALSE,或者是一些傅里葉成分來生成。

holidays                              數據框包含holiday列(字符型)和ds列(日期型),以及可選列lower_windowupper_window表示節假日所跨度的時間段。例如lower_window=-2表示從節假日當天往前延長兩天,還可以有一列可選列prior_scale指明每個節假日的現有規模。

 seasonality.prior.scale           參數用於調節季節模型的強度,較大的值允許模型適應較大的季節波動,較小的值則會抑制季節變動。可以使用add_seasonality來指定個別季節性。

holidays.prior.scale                參數用於調節節假日成分模型的強度,除非在節假日輸入中被重寫。

changepoint.prior.scale         參數調節自動改變點選擇的靈活性,較大的值會產生較多的改變點,較小的值則產生較少的轉折點。

mcmc.samples                       整型,大於0將用指定的MCMC樣本進行完全貝葉斯推理,爲0時則進行MAP估計(最大後驗概率估計)。

interval.width                         數值型,預測的不確定性區間的寬度。

uncertainty.samples               用於估計不確定區間的模擬繪圖的數量

fit                                            布爾型,FALSE時表示模型被初始化但是不進行擬合。

輸出值

prophet預測模型

(二)make_future_dataframe —— 新建一個數據框包含將來需要預測的日期

描述:

新建一個數據框,指明需要預測到將來多長時間

用法:

make_future_dataframe (m, period,freq = ’day’, include_history = TRUE)

參數說明:

m                                           Prophet對象

periods                                  將來要預測時間範圍,整型

freq                                    ‘day’‘week’‘month’,‘quarter’‘year’1 (1 sec)60 ( 1 minute ) or 3600 ( 1 hour )

include_history                     布爾值,是否包含歷史日期

輸出值

數據框,從m$history結束處延伸至需要預測時間點的週期數

(三)predict.prophet —— 使用prophet模型進行預測

描述:

使用prophet模型進行預測

用法:

## S3 method for class‘prophet’

predict (object, df = NULL, …)

參數說明:

object                                                     Prophet對象

df                                      包含預測日期(column ds),邏輯增長時需要容量(column cap),如果不指定則在歷史數據基礎上預測 【make_future_dataframe()返回的數據框】

輸出值

預測結果數據框

(四)plot.prophet ——繪製prophet預測結果圖

描述:

繪製prophet預測結果圖

用法:

## S3 method for class‘prophet’

plot (x, fcst, uncertainty =True, plot_cap = TRUE, xlabel = “ds”, ylabel = “y”, …)

參數說明:

x                                           Prophet對象

fcst                                       predict(m, df)返回的數據框

uncertainty                          布爾值,指明是否畫出yhat的預測區間,fcst中必須有yhat_loweryhat_upper字段

plot_cap                              布爾值,指明是否畫出capacity

xlabel                                  x軸的標籤

ylabel                                  y軸的標籤

輸出值

ggplot2

(五)plot_forecast_component —— 繪製prophet預測結果的分量圖

描述:

繪製prophet預測結果分量圖,包含總體趨勢、節假日以及周度、年度季節因素

用法:

plot_forecast_component (fcst,name, uncertainty = True, plot_cap = TRUE)

參數說明:

fcst                                       predict(m, df)返回的數據框

name                                   字符串,fcst列的名字

uncertainty                          布爾值,指明是否畫出yhat的預測區間,fcst中必須有yhat_loweryhat_upper字段

plot_cap                              布爾值,指明是否畫出capacity

輸出值

ggplot2

(六)prophet_plot_components —— 繪製預測結果的各個成分圖

描述:
 繪製預測結果的各個成分圖,輸出一個ggplot2圖像包括趨勢、周度、年度季節以及節假日因子的圖形面板。
用法:
 prophet_plot_components(m, fcst, uncertainty = TRUE, plot_cap = TRUE, weekly_start = 0, 
       yearly_start = 0)
參數說明:

m                                                   Prophet模型對象
fsct predict(m, df)返回的數據框
uncertainty 布爾型,指定是否趨勢的不確定區間,即fcst數據框中的trend_lower和trend_upper列
plot_cap 布爾值,指明是否畫出capacity
weekly_start 整型,指明周季節圖中起始的天,0(默認)表示一週從週六開始。
yearly_start 整型,指明年度季節圖中開始的天,0(默認)表示從1月1日開始。

輸出值:
返回一個列表,包含繪製ggplot圖像的參數。

















發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章