【问题标题】:Only implemented on univariate time series仅在单变量时间序列上实现
【发布时间】:2019-09-11 02:33:44
【问题描述】:

我正在尝试对我的数据集进行时间序列分析。最初我的数据集具有以下属性。

[1] "Customer"        "Customer.No"     "Shop"            "Invoice"        
[5] "Quantity"        "Sales"           "Cash.Amt"      "Credit.Card.Amt"
[9] "Net.Sales"       "Mens.Wear"       "Womens.Wear"     "Kids.Wear"      
[13] "Foot.Wear"       "Fragrant"        "Class"           "Date"           
[17] "Year"            "Month"

但我在数据集中只使用了 Year & Sales 来实现时间序列。 当我尝试运行 arima 函数时,它会给出此错误“仅针对单变量时间序列实现”

data.ts<- as.ts(myData) 
is.ts(data.ts) 
class(data.ts) 
plot(data.ts) 
frequency(data.ts) 
plot(log(data.ts)) 
plot(diff(log(data.ts))) 
acf(data.ts) 
acf(diff(log(data.ts))) 
#p=0 
pacf(diff(log(AirPassengers)))
#q=0
fit <- arima(log(data.ts), c(0, 1, 0), seasonal = list(order = c(0, 1, 0), period = 1))

谁能告诉我我是否采用了正确的属性来实现时间序列?另外,为什么会出现这个错误?我该如何解决这个问题?

这是我的数据集的前 6 个观察结果。

   Sales  Year
[1,]   707  2016
[2,]   306  2016
[3,]   394  2016
[4,]   306  2016
[5,]   491  2016
[6,]   306  2016

分别是 2016、2017 和 2018 年,其中的销售额值不同。

【问题讨论】:

  • 请贴出你用来运行arima函数的代码。
  • 这是我的代码!!!! data.ts
  • edit您的问题。不要将代码放在 cmets 中,它是不可读的。

标签: r time-series arima


【解决方案1】:

您收到错误是因为您将数据帧传递给 arima() 函数,而它需要一个单变量时间序列。您可以通过正确定义时间序列来消除错误,如下所示:

data.ts <- as.ts(myData$Sales) 

然后您可以调用您的arima() 函数。

fit <- arima(log(data.ts), c(0, 1, 0), seasonal = list(order = c(0, 1, 0), period = 1))

但是,我不确定这是否正是您想要的结果。您的数据中有多个 2016 年的值,并且根据数据集中的列名,您可以获得月度数据。如果是这种情况,我怀疑设置 period = 1 会导致不良结果,因为当您有月度数据时,您表示周期 1,而周期 1 通常表示年度数据。您可以查看?ts 了解更多信息,但如果您有月度数据,您可能希望以这种方式定义时间序列:

data.ts <- ts(myData$Sales, frequency = 12, start = c(2016,1))

这表明您拥有从 2016 年第一个月 (start = c(2016,1)) 开始的月度数据 (frequency = 12)。再举一个例子,如果您有从 2016 年 4 月开始的月度数据,您将设置 frequency = 12start = c(2016,4)

【讨论】:

  • 好的。我可以再问你一个问题吗?我的数据集实际上有两列,如上所示。一个是年份(2016,2017,2018),另一个是销售额。当我在 R Studio 中导入数据集并运行此命令时 class(mydata) 。它表明我的数据集是data.frame。我多么希望它是“ts”。我知道我可以使用您提到的上述命令将其转换为 ts 。但是我希望我的数据在导入数据时已经在 ts 中。我应该如何安排或排序我的数据,以便它已经在 ts 中?
  • 据我所知,没有办法做到这一点。读取数据时所采用的格式取决于您使用的读取功能,我不知道有什么可以将它直接带到ts 类。
  • 好的。谢谢您的帮助。 :)
猜你喜欢
  • 2012-05-16
  • 2019-11-05
  • 2021-10-04
  • 2014-11-12
  • 1970-01-01
  • 1970-01-01
  • 2016-06-20
  • 1970-01-01
  • 2015-08-08
相关资源
最近更新 更多