2017-03-20 4 views
2

Facebookは、時系列予測のための預言者をリリースしました。 started pageはpredict()関数を使用して予測を行う方法を概説していますが、残余の検査や残差の自己相関などの預言者の時系列予測を評価する方法については何も言及していません。 たとえば、次の数行は、予測を行います:私はこの方法「ACF」を計算した場合預言者によって開発された時系列予測モデルを評価する方法

library(prophet)  
library(dplyr) 
library(lubridate) 
df <- read.csv('example_wp_peyton_manning.csv') %>% mutate(y = log(y)) 
df$ds <-ymd(df$ds)  # ds is now a Date type 
model <- prophet(df)  # Create forecasting model 
# Make data-frame with future dates for forecasting. 
future <- make_future_dataframe(model, periods = 365) 
# Make forecasts of these future periods 
forecast <- predict(model, future) 
# Calculate residuals for common dates 
df1<-inner_join(forecast,df, by="ds") 
df1$residuals<-df1$y - df1$yhat 
# And calculate ACF 
acf(df1$residuals,lag.max = 10) 

、結果は非常に落胆です。私は正しいですか?

+1

それに加えて、Prophetは従来の時系列モデルの代わりに回帰モデルに適合しているので、ProphetモデルのR二乗とDurbin-Watson自己相関測定をどのように取得しますか? –

答えて

1

モデル誤差の割合を求めるために、平均2乗誤差に基づいて独自の評価関数を書くことができます。 予測(モデル、未来)メソッドは、既存のデータと365の将来のデータポイント(あなたのデータセットにはない)の予測を提供します。あなたは実際のデータと予測を持っています。 1000レコードとその予測があると仮定して、過去20レコードまたは100レコードのデータとその予測を使用して、エラー率を見つけることができます。例として、あなたは、Pythonで書かれた私自身の機能を見てみることができます:

from sklearn.metrics import mean_squared_error 
import numpy as np 

def get_error_percentage(real_stock_price, predicted_stock_price): 
    print("get_error_percentage() method was called.") 
    rmse = math.sqrt(mean_squared_error(real_stock_price, 
    predicted_stock_price)) 
    # 800: avg of real_stock_price (test set) 
    error_percentage = rmse/np.average(real_stock_price) 
    return error_percentage 

real_stock_priceは、最後の20を記録したり、データやpredicted_stock_priceの100のレコードですreal_stock_priceの予測です。 R

+0

お返事ありがとうございます。実際、残差の自己相関を調べることにもっと興味がありました。これらをすべて実行する関数を書くことは可能ですが、いくつかの組み込み関数または別のパッケージの関数が利用可能かどうかは疑問でした。 – user3282777

+0

申し訳ありませんが、おそらく、あなたの残差に基づいてr時系列オブジェクトを作成し、r acf関数を呼び出そうとする必要があります。以下のr acfのドキュメントでは、acf関数を呼び出すために必要なパラメータとその説明を見つけることができます。 https://stat.ethz.ch/R-manual/R-devel/library/stats/html/acf.html –

関連する問題