时间序列分析的适用性?
我有一个这样的示例数据帧(日期列格式是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