遇到 R 的时间序列问题 objects

Having trouble with R's time series objects

我有一列 84 个月的支出,从 1/2004 到 12/2010,在 Excel 中看起来像...

12247815.55
11812697.14
13741176.13
21372260.37
27412419.28
42447077.96
55563235.3
45130678.8
54579583.53
43406197.32
34318334.64
25321371.4
...(74 more entries)

我正在尝试从本系列的预测包中 运行 一个 stl(),因此我加载了数据:

d <- ts(read.csv("deseason_vVectForTS.csv",
header = TRUE),
start=c(2004,1),
end=c(2010,12),
frequency = 12)

(如果我这样做 header=FALSE 它将吸收第一个条目 - 122...- 作为第二列的 header,并将第一列命名为 header 'X')

但是我的环境并没有填充 Time Series Object from 2004 to 2011(如前所述),它只是说 ts[1:84, 1].

可能相关的事实是,

fit <- stl(d) 

投掷

Error in stl(d) : only univariate series are allowed.

尽管

head(d)
[1] 12247816 11812697 13741176 21372260 27412419 42447078

d
          Jan      Feb      Mar      Apr      May      Jun      Jul      Aug      Sep      Oct
2004 12247816 11812697 13741176 21372260 27412419 42447078 55563235 45130679 54579584 43406197
("years 2005-2010 look exactly the same, and all rows have columns for Jan-Dec; it just doesn't fit on here neatly - just trying to show the object has taken the ts labeling structure.")

我做错了什么?据我所知,这与我过去构建时间序列的方式相同 objects...

read.csv 读入一个矩阵。如果它只有一列,它仍然是一个矩阵。要使其成为向量,请使用

d <- ts(read.csv("deseason_vVectForTS.csv",
header = TRUE)[,1],
start=c(2004,1),
end=c(2010,12),
frequency = 12)

此外,请检查您的事实。 stlstats 包中,而不是 forecast 包中。这可以使用 help(stl) 轻松检查。