建立数据框来预测单变量数据
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
我正在尝试找出用于预测单变量数据集的 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