R Studio - 如何逐行预测,并在下一个预测中使用前一个预测--线性模型。

问题描述 投票:0回答:1

如果不清楚的话,抱歉,在标题上有问题。

基本上,我有一个预测销售额的线性模型,其中一个因素是前10天的销售额。因此,当预测下个月时,我需要一个 "前10天的销售额 "在这个月的每一天的估计数字。

我想用模型来生成这些数字--所以,对于我试图预测的第一天,我有过去10天销售的实际数字。对于之后的一天,我有9天的真实数据,加上生成的一个预测数字。之后的一天,有8天的真实数据,加上生成的两个,等等。

不太清楚如何实现,希望能得到帮助。非常感谢。

r loops linear-regression lm predict
1个回答
1
投票

首先想到的是使用预测数据的移动平均线。这变得很难辩护,虽然一旦你只预测数据的平均值,但它的地方开始。

moving.average = 0

test.dat = rnorm(100, 10,2)

for(i in 1:30){
  moving.average[i] = mean(test.dat[i:i+10])
}

希望这对你有帮助


0
投票

凯西,把你的前10个数据点... ...从任何地方弄来。 用它来做预测的种子。

initialization <- c(9.463, 9.704, 10.475, 8.076, 8.221, 8.509, 
            10.083, 9.572, 8.447, 10.081)

prediction = initialization

这是一个愚蠢的预测函数,使用最后10个值。

predFn <- function(vec10){
  stopifnot(length(vec10) == 10)
  round(mean(vec10) + 1 , 3)
}

虽然我通常喜欢使用 map 家,这个好像是想成为一个。loop

for(i in 11:20){
  lo = i - 10
  hi = i - 1
  prediction[i] <- predFn(prediction[lo:hi])
}

我们得到了什么?

prediction
#  [1]  9.463  9.704 10.475  8.076  8.221  8.509 10.083  9.572  8.447 10.081 10.263 10.343 10.407 10.400 10.633 10.874 11.110 11.213
# [19] 11.377 11.670
© www.soinside.com 2019 - 2024. All rights reserved.