gpt4 book ai didi

r - 如何评价Prophet开发的时间序列预测模型

转载 作者:行者123 更新时间:2023-12-03 06:01:13 33 4
gpt4 key购买 nike

Facebook 发布了用于预测时间序列的 Prophet。而得到started page确实概述了如何使用 Predict() 函数进行预测,但它没有说明评估预言者做出的时间序列预测的方法,例如残差检查或残差自相关等。例如,以下几行将进行预测:

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)

如果我这样计算“acf”,结果会非常令人沮丧。我说得对吗?

最佳答案

您可以根据均方误差编写自己的评估函数,以找到模型误差百分比。 predict(model, future) 方法为您提供现有数据和 365 个 future 数据点(数据集中没有)的预测。您拥有真实数据及其预测。假设您有 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 条记录或 100 条记录,predicted_stock_price 是 real_stock_price 的预测。您可以在 R 中编写自己的评估函数

关于r - 如何评价Prophet开发的时间序列预测模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42907046/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com