建立数据框来预测单变量数据

Establishing a dataframe to forecast univariate data

我正在尝试找出用于预测单变量数据集的 R 代码。我有大约 60 天的数据,并且想要一个包含预测平均值的值的预测,以及至少接下来 30 天的上限和下限。我一直在尝试使用以下代码,但似乎没有成功。

fit <- auto.arima(tsData)
plot(forecast(fit, h=30))
summary(fit)

如果有人可以帮助我使用数据框的正确代码来预测和提取这些值,我将不胜感激!

通过对您 post 的评论,我们确定您的问题与您 没有指定频率 到您的 ts 对象有关。

以下代码回答了您在其中一条评论中提出的最后一个问题。我建议您更新您的问题,以便其他人可能会发现此答案更有用。

下面的代码可以帮助您定义一个由 forecast 对象 .

的上限、下限和预测组成的数据框

library(forecast)

# the chunk of data you left in the comments
tsData <- c(3370697,2991236,4332207,5208166,
            4338202,3906104,2499007,5407081,
            4936893,2489895,3477738,4849286,
            3645099,2286487,4829361,2317651,
            2312448,2947272,2820730,3349846,
            4828345,4320237,5636653,2357571,
            4344268,3147261,2289202,4016317,
            3905877,5042027,4951175,4425748,
            5595234,4297312,4731678,2594187,
            4297152,3148697,3209767,4112872,
            4660192,2441161,3351706,4102640,
            4034730,2572022,4396384,2833348,
            4401217,4996111,4762427,2367626,
            4914486,5035678,3050084,5718706,4778152)

# set up frequency
tsData <- ts(tsData, frequency = 7)

# your code!
fit <- auto.arima(tsData)
fcst <- forecast(fit, h = 30)
plot(fcst)

# get a data.frame with your forecast, lower and upper bounds 
res <- ts.union(lower = fcst$lower, forecast = fcst$mean, upper = fcst$upper)
res <- as.data.frame(res)
res

帮助您理解我在这里做什么:名为 fcst 的对象是 class forecast 的对象。 forecast 基本上是一个列表,它由许多项目组成。您可以通过键入以下内容来查看所有项目的名称:

names(fcst)

如果你输入:

你可以看到所有的
tmp <- fcst
class(tmp) <- "list"
tmp

使用运算符 $ 调用您需要的任何对象,就像您使用任何列表一样。

# for example
fcst$mean
fcst$upper
fcst$lower