预测客户在特定日期的需求

时间:2018-04-09 04:09:53

标签: r

我正在努力预测本月特定日期客户的需求。我有关于客户需求的每日数据,周末与否(0和1),月份的第一天与否(0和1),假期与否(0和1)。我使用Arima模型进行预测,结果在本月的正常日期正常,实际需求与预测需求之间的差异非常小。但是,在每月的第一天,由于每月促销,需求明显高于其他日子。我也尝试建立一个回归模型。使用回归的第一天的预测优于使用arima模型的预测。然而,一般来说,R平方只有0.5,这还不够高。任何人都有任何想法我可以使用哪种方法来最准确地预测月份第一天的需求?非常感谢!

2 个答案:

答案 0 :(得分:0)

听起来你错误地解释了确定系数(R平方)值的测量值。 R平方值为0.5并不一定是坏事。这里的摘录可能会澄清R平方的定义,从J. Scott Armstrong的从水晶球到计算机的长期预测(1978),第323页:

  

R平方为0意味着该模型在解释波动时无用,但并不反映其预测水平的能力;因此,R平方= 0可能不是一个完全不好的预测。同样,R平方为1.0并不代表完美的预测。此外,R平方不仅取决于数据的拟合度,还取决于回归线的陡度,这意味着当变化更大时R平方值会更高。

当然,在回归中添加其他变量会使您的数据过度拟合并增加R平方值,而不必提高模型的准确性。

有许多方法可以衡量模型的预测准确性,哪种方法最好取决于您的具体情况。例如,当误差成本与百分比误差更紧密地关联而不是单位误差时,通过平均绝对百分比误差(MAPE)测量精度是有用的。如果相反的情况属实,那么选择一个基于平均绝对偏差(MAD)较低者的模型会更合适。

如果我的任务是为您的方案选择预测模型,我会忽略低R平方值并确定哪种类型的错误最为谨慎以最小化,然后选择最小化可能的错误测量的模型是

<强>更新

请注意,52%的MPE可能是数据集的基本限制,因为您尝试使用三个二进制变量来预测数值变量(客户需求);这意味着任何模型都不会更好。但是,如果您想尝试其他模型以查看是否会获得更好的结果(您可能会更好),并且您想在R中编写程序,我建议您查看this course website R中的数据分析算法的一些例子。有些模型非常复杂,我意识到它需要经过很多信息,因此从逻辑回归模型开始可能是最容易的(如果你还没有?)已经这样做了)因为它的代码与线性回归模型的代码非常相似。

由于您接受了一些二进制或分类变量,我认为决策树将是您数据集的最佳模型。它易于解释,并且只能用R中的几行进行编码。来自上面链接的同一课程网站的This R markdown file给出了从第72行开始为回归模型编写决策树的示例。

答案 1 :(得分:0)

您是否已尝试过回归树?它有几种实现方式,例如M5P由RWeka包提供?假设数据位于名为myData的数据框和因变量myData$demands中,您可以按如下方式使用此预测变量:

# Load the library with M5-prime.
library(RWeka)

# Create the model.
modelM5P <- M5P(demands ~ ., data = myData)

# Explore the model.
summary(modelM5P)

最后一行将显示模型的摘要。它看起来像这样:

=== Summary ===

Correlation coefficient                 0.9441
Mean absolute error                     16500.5686
Root mean squared error                 26462.9886
Relative absolute error                 28.112  %

然后,您可以在列车数据上测试模型并测量性能。

# Perform prediction on the test data set.
# Exclude the dependent variable (assumable column 4) 
# from the prediction data.
prediction <- predict(modelM5P, myData[, -4])

prediction现在将包含预测的需求。接下来,您可以根据列车数据对其进行研究。