时间序列分析的适用性?

我有一个这样的示例数据帧(日期列格式是mm-dd-YYYY):时间序列分析的适用性?

date   count  grp 

01-09-2009 54 1

01-09-2009 100 2

01-09-2009 546 3

01-10-2009 67 4

01-11-2009 80 5

01-11-2009 45 6

欲使用ts()该数据帧到时间序列进行转换,但问题是:当前数据帧有多个值同一天。我们可以在这种情况下应用时间序列吗?

  • 我可以将数据帧转换为时间序列,并建立一个模型(ARIMA),它可以每天预测计数值吗?

  • 或者我应该根据grp预测计数值,但是在这种情况下,我只能选择grp和count数据帧的列。那么在那种情况下,我必须跳过日期栏,并且不可能每日预测计数值?

  • 假设我想每天累计计数值。我尝试使用聚合函数,但是我们必须指定日期值,但是我有一个非常大的数据集? r中有其他选项吗?

有人可以建议是否有更好的方法可以遵循吗?我的假设是时间序列预测仅适用于二元数据?这个假设是正确的吗?

回答:

好像有你的问题的两个方面:

我想利用这个ts()数据帧到时间序列进行转换,但 问题是 - 具有相同 多个值当前数据帧日期。我们可以在这种情况下应用时间序列吗?

如果你很高兴利用了xts包的,你可以尝试:

dta2$date <- as.Date(dta2$date, "%d-%m-%Y") 

dtaXTS <- xts::as.xts(dta2[,2:3], dta2$date)

这将导致:

>> head(dtaXTS) 

count grp

2009-09-01 54 1

2009-09-01 100 2

2009-09-01 546 3

2009-10-01 67 4

2009-11-01 80 5

2009-11-01 45 6

以下类的

>> class(dtaXTS) 

[1] "xts" "zoo"

然后,你可以使用你的时间eries对象作为单变量的时间序列,并且是指所选择的变量或者作为多元时间序列,使用PerformanceAnalytics软件包例如:

PerformanceAnalytics::chart.TimeSeries(dtaXTS) 

边点

关于第二个问题:

有人可以告诉我什么是更好的方法,我的 假设是时间序列forcast仅适用于二元数据?是 这个假设也对吗?

恕我直言,这是相当广泛的。我建议您使用已创建的xts对象并详细说明要使用的模型,以及为什么,如果它是关于时间序列分析本质的概念性问题,那么您可能更愿意在CrossValidated上发布后续问题。使用所提供的示例dta2 <- read.delim(pipe("pbpaste"), sep = ""):经由


数据来源。

回答:

由于需要每日预测,我们需要汇总为每日。使用最后Note中的DF,使用read.zoo和参数aggregate=sum将前两列数据读入动物园系列z。我们可以选择将其转换为"ts"系列(tser <- as.ts(z)),但对于许多预测功能来说这不是必需的。特别是,检查auto.arima的源代码,我们看到它在进一步处理之前在其输入上运行x <- as.ts(x)。最后运行auto.arima,forecast或其他预测功能。

library(forecast) 

library(zoo)

z <- read.zoo(DF[1:2], format = "%m-%d-%Y", aggregate = sum)

auto.arima(z)

forecast(z)

注:DF给出重复性这里:

Lines <- "date   count  grp 

01-09-2009 54 1

01-09-2009 100 2

01-09-2009 546 3

01-10-2009 67 4

01-11-2009 80 5

01-11-2009 45 6"

DF <- read.table(text = Lines, header = TRUE)

更新:重读问题后的修订。

以上是 时间序列分析的适用性? 的全部内容, 来源链接: utcz.com/qa/258260.html

回到顶部