如何评估prophet开发的时间序列预测模型

如何评估prophet开发的时间序列预测模型,r,facebook,time-series,R,Facebook,Time Series,Facebook发布了预测时间序列的Prophet。虽然get确实概述了如何使用predict()函数进行预测,但它没有说明任何评估prophet所做的时间序列预测的方法,例如残差检查或残差自相关等。。 例如,以下几行将进行预测: library(prophet) library(dplyr) library(lubridate) df <- read.csv('example_wp_peyton_manning.csv') %>% mutate(y = log(y)) d

Facebook发布了预测时间序列的Prophet。虽然get确实概述了如何使用predict()函数进行预测,但它没有说明任何评估prophet所做的时间序列预测的方法,例如残差检查或残差自相关等。。 例如,以下几行将进行预测:

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)
库(prophet)
图书馆(dplyr)
图书馆(lubridate)
df%变异(y=log(y))

df$ds您可以基于均方误差编写自己的求值函数,以便找到模型误差百分比predict(model,future)方法为您提供现有数据和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
真实股价是数据的最后20条记录或100条记录,预测股价是真实股价的预测。
您可以在R

中编写自己的求值函数。此外,由于Prophet适用于回归模型而不是传统的时间序列模型,因此如何获得Prophet模型的R平方和Durbin-Watson自相关度量?谢谢您的回答。实际上,我更感兴趣的是找出残差的自相关。的确,可以编写一个函数来执行所有这些操作,但我想知道是否有一些内置函数或另一个包中的函数可用。好的,也许您应该尝试基于残差创建一个r时间序列对象,并调用r acf函数。在下面的r acf文档中,您可以找到调用acf函数所需的参数及其说明。