ProphetはR言語で時系列データ予測を行います.


リンク:http://tecdat.cn/?p=7327
[](http://tecdat.cn/?p=7327) 
どのようにProphet(Rの中で)を使って一般的な問題を解決しますか?会社の来年の毎日の注文を予測します. 
 
データ準備と探索
預言者は毎日の定期データと少なくとも一年の歴史データに最適です.毎日予測するデータをSQLを使って処理します. `**select**``date,**value****from**modeanalytics.daily_orders**order****by**date` 今、私たちは毎日データを持っています.SQLクエリの結果集をパイプを通してRノートのRデータフレームのオブジェクトに渡すことができます.まず、SQLクエリをDaily Ordersと名前を変えます.そして、Rにおいて、クエリーの結果集をデータフレームdfに渡すために以下の文を使ってもいいです.**df**データボックスにいくつの観測値が含まれていますか?# Retreive dimension of object**dim**(df)Prophetは、常にDataFrameに2つの列を入力したいと考えています.dsには、それぞれ日付と数値が含まれています.  y,この例では、いくつかの手動クラスの変換が必要です.# Inspect variables**str**(df)データボックスの列が正しいクラスであることを確認すると、# Parse date column**df**はデータボックスに新しい列を作成することができ、列はdate列の正確なコピーであり、新しい列dsはvalue列の正確なコピーである.y次に、df 列の用途をデータボックスとして再調整することができます.
Prophetと一緒に使うデータを用意しておきました.データをProphetに入力する前に、作成してデータの外観を確認するのは良い習慣です. 
Prophet在R语言中进行时间序列数据预测_第1张图片
 
  • 2017年5月ごろ、トレンド軌跡が著しく変化しました.デフォルトでは、Prophetが自動的にこのようなことを検出しました.  トレンド変化点 ”,傾向を適切に調整することができます.預言者はまた、これらのトレンド変化点の識別をより細かい粒度に制御することができます.
  • は、毎週と毎年のはっきりした季節性を持っています.時間系列が2つ以上あるなら、預言者は自動を毎週と毎年の季節に適応します.
  • 私たちの観測結果の平均値と分散は時間とともに増加した. 
  • Box-Cox変換
    通常の予測では、データに適用してノイズを除去し、予測モデルにデータを入力しますが、対数変換や平方根変換など、特定のタイプのべき乗変換を明確に選択します. 
    Box−Cox変換は、Lamband係数のセットを評価するためのデータ変換である.λ)そして最適な正規近似が可能な値を選択します.
     
    新しい変換されたデータを未変換のデータと一緒にプロットすると、Box−Cox変換は時間変化とともに観測される多くの増加した分散を除去することができることがわかる.
    Prophet在R语言中进行时间序列数据预测_第2张图片
    予測する
    Prophetを用いてBox−Cox変換のデータセットをモデルに当てはめた後,これからの日付の予測を開始することができる.  次に、date関数を用いて、未来のデータフレームの各行を予測することができる.predict()このとき、Prophetは、予測変数に割り当てられた新しいデータボックスを作成し、列の下の将来の日付という予測値**forecast**と、不確実性間隔と予測の構成部分を含む.yhat私たちの例では、私たちの予測は以下の通りです.
    Prophet在R语言中进行时间序列数据预测_第3张图片
    各予測コンポーネントを可視化する場合、Prophetの内蔵plot(m, forecast)機能を使用することができる.plot_componentsは、私たちの例示的なデータ上で動作すると、次のコンポーネントの可視化のセットに戻る.
    Prophet在R语言中进行时间序列数据预测_第4张图片
    Prophet在R语言中进行时间序列数据预测_第5张图片
    予測およびコンポーネントの可視化は、Prophetがデータ中の潜在的傾向を正確にモデル化することができ、毎週および毎年の季節性(例えば週末および祝日の注文量が低い)も正確にモデル化できることを示している.
    逆Box-Cox変換
    Box−Cox変換後のデータのために預言者が使用するため、予測値を元の単位に戻す必要があります.新しい予測値を元の単位に戻すには、Box−Cox逆変換を行う必要があります.
    現在、予測値を元の単位に戻しました.予測値は履歴値とともに可視化できます.
    Prophet在R语言中进行时间序列数据预测_第6张图片