【发布时间】:2021-12-08 11:58:00
【问题描述】:
我正在使用以下库来尝试处理时间序列数据。
首先我安装 fpp3,因为它有 aus_airpassengers 数据集。这是该数据集的 dput,否则您可以从包中获取它。它只有两列,一列用于年份,一列用于乘客。
library(fpp3)
structure(list(Year = c(1970, 1971, 1972, 1973, 1974, 1975, 1976,
1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987,
1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009,
2010, 2011), Passengers = c(7.3187, 7.3266, 7.7956, 9.3846, 10.6647,
11.0551, 10.8643, 11.3065, 12.1223, 13.0225, 13.6488, 13.2195,
13.1879, 12.6015, 13.2368, 14.4121, 15.4973, 16.8802, 18.8163,
15.1143, 17.5534, 21.8601, 23.8866, 26.9293, 26.8885, 28.8314,
30.0751, 30.9535, 30.1857, 31.5797, 32.577569, 33.477398, 39.021581,
41.386432, 41.596552, 44.657324, 46.951775, 48.728837, 51.488427,
50.026967, 60.640913, 63.3603103378)), row.names = c(NA, -42L
), key = structure(list(.rows = structure(list(1:42), ptype = integer(0), class = c("vctrs_list_of",
"vctrs_vctr", "list"))), row.names = c(NA, -1L), class = c("tbl_df",
"tbl", "data.frame")), index = structure("Year", ordered = TRUE), index2 = "Year", interval = structure(list(
year = 1, quarter = 0, month = 0, week = 0, day = 0, hour = 0,
minute = 0, second = 0, millisecond = 0, microsecond = 0,
nanosecond = 0, unit = 0), .regular = TRUE, class = c("interval",
"vctrs_rcrd", "vctrs_vctr")), class = c("tbl_ts", "tbl_df", "tbl",
"data.frame"))
aus_airpassengers <- aus_airpassengers
aus_airpassengers <- aus_airpassengers %>%
filter(Year >= 1970) %>%
filter(Year <= 2011)
我使用我认为来自 ggplot2 包的 autoplot 来查看这 42 年来乘客的变化。
autoplot(aus_airpassengers) +
labs(title="Air Passengers from 1970 to 2011") +
labs(x ="Date") +
labs(y = "Passenger numbers (1000's)")
现在我正在尝试使用预测包中的 ggtsdisplay 函数来绘制时间序列以及 ACF 和 PACF 图。
library(forecast)
ggtsdisplay(aus_airpassengers)
但它给了我这个错误:
Error in ggtsdisplay(aus_airpassengers) :
ggtsdisplay is only for univariate time series
我在网上查找了这个错误的含义,我发现一些帖子告诉我,我可能同时拥有多个值。但这里不是这样。我们可以看到这两个测试的评估结果都是 42,这意味着每一年都是数据集中唯一的年份(另外我可以查看数据集以查看每一年都是唯一的。)
length(unique(aus_airpassengers$Year))
nrow(aus_airpassengers)
我也很困惑,因为如果我使用 feasts 库来绘制 ACF 和 PACF 图,它工作得很好。
library(feasts)
aus_airpassengers %>%
ACF(Passengers) %>%
autoplot()
aus_airpassengers %>%
PACF(Passengers) %>%
autoplot()
有人知道 ggtsdisplay 是怎么回事吗?
【问题讨论】:
标签: r time-series