我试图预测收盘前剩余几天的销售情况。我正在使用线性回归来基于prior_week_average(除其他因素外)预测每一天,这是数据集中最近7天的平均值。但是,当剩下的唯一一天是休息日时,那么我想使用其他函数来预测该天。我可以手动执行此操作,但我希望找到一种通过循环执行此操作的方法。
我们将使用两个函数来预测数据集中的剩余数据点:close_day_lm和常规_day_lm •close_day_lm:用于预测Day0,Day0〜Total_Not_Ininclude_Close销售+ Close_Day_of_Week +月 •normal_day_lm:用于预测除Day0外的所有Day“ X”。天“ X”〜Prior_week_average + Close_Day_of_Week + Month
循环将需要继续处理每个值,因此对于第一个NA值(2016年11月26日为Day0),它将使用close_day_lm预测2016年11月26日的Day0。然后它将需要将此数据点添加到数据集中,因此我们可以在以后的迭代中继续使用它。
然后,循环将需要使用normal_day_lm填写2016年11月28日的Day2。 Prior_week_average必须将所有行调整为第3天–每行的第9天的平均值,我们将用来预测2016年11月28日的第2天。使用normal_lm和新的Prior_week_average,我们将预测Day2的值为11/28/2016。然后,我们将此数据点添加到数据集中。
接下来,我们将预测2016年11月28日的Day1,我们将使用相同的normal_day_lm函数来执行此操作,但是必须更改Prior_week_average以获取Day1之前7个数据点的平均值。因此,Prior_week_average现在将是所有行的第2天-第8天的平均值。现在,我们将使用normal_day_lm预测Day1 11/28/2016并将其添加到数据集中。
接下来,我们将使用close_day_lm函数预测2016年11月28日的Day0。该函数将使用变量total_not_includes_close_sales,该变量是除day0以外所有天数的总和。我们将从2018年11月26日开始使用Day0数据点。然后将预测值添加到数据集。 接下来,我们将在2016年12月2日执行相同的过程,直到所有剩余的“左侧” NA都填满为止。
我将尝试在此处用简单的英文写循环的内容:
所有天数= NA,第0天除外, 每天预测(non_close_day_sales) 将此新预测添加到数据集中 重新配置before_week_average以包括新的预测+最近6天 但是如果day = day0,则 预测(close_day_sales) 将此预测添加到数据集中 继续,直到所有NA /空白都填满
这里要注意的另一个关键问题是,我只想预测非NA值左侧的NA值。例如,我不想预测2016年11月26日的Day76,因为该产品尚未开始销售。
感谢您的帮助,如果有什么可以补充的地方,请告诉我。我已经添加了指向以下数据集的链接。