R - 根据趋势和季节性预测

时间:2014-03-25 19:39:41

标签: r forecasting

我正在编写用于根据趋势和季节性预测销售的功能。我使用虚拟变量来表示趋势的季节性和时间变量。这是代码:

forecast<-function(data, time, fn) {

n <- length(data)
seasonal <- factor(cycle(data))
new_data <- seq(from=cycle(data)[n]+1, length=fn, by=1) 
new_seasonal <- factor(new_data)
trend <- rep(0, n)
new_trend <- rep(0, n)
if (time > 0) {
    trend <- vector()
    new_trend <- vector()

    ttrend <- seq(from=1, to=n, by=1)
    tnew_trend <- seq(from=n+1, length=fn, by=1)

    for(i in 1:time) {
        trend <- cbind(trend, ttrend^i)
        new_trend <- cbind(new_trend, tnew_trend^i)
    }

    model_trend <- lm(data ~ seasonal + trend)
} else {

    model_trend <- lm(data ~ seasonal)
}


df <- data.frame(new_seasonal, new_trend)

    p <- predict(model_trend, df)

}

forecast(data = dane.ts[,"SALES"], time=2, fn=5)

然而我收到警告:

警告讯息: 'newdata'有5行,但找到的变量有104行

似乎这个功能错了。我将不胜感激任何帮助。

0 个答案:

没有答案