我正在使用一堆不同的文件集,这些数据是每月的,但它们都是不同的月份。其中一些包括过去 2 年的月度数据,其中一些具有几个月的月度数据。
我喜欢使用这些数据来创建预测图。如果所有数据都是一致的,那将是直截了当的。但是数据是每月的,每个文件都有不同的开始和结束时间。
z 输出:
Month Value
1 2010-01-01 100
2 2010-02-01 200
3 2010-03-01 600
4 2010-04-01 400
5 2010-05-01 300
6 2010-06-01 700
我试图这样做以将 start 设置为 s 对象,但不工作
s <- head(z,1)$Month
s <- sub("-", "," s)
t.ser <- ts(z$Value, start=s,freq=12)
由于我使用的数据各不相同,我不知道开始日期。
这可行,但是,由于我不知道我的数据集的开始日期,我可以在开始时放置一个变量吗?
t.ser <- ts(z$Value, start=c(2010,1),freq=12)
t.ets <- ets(t.ser)
t.fc <- forecast(t.ets,h=12)
plot(t.fc, xaxt="n")
我想格式化 x 轴以显示实际数据的日期和预测值的日期。因为我不知道开始日期,我也不能这样做。无论数据如何,我都想预测 12 个月。
如果我知道开始时间,这将有效。
a = seq(as.Date("2011-01-01"), by="month", length=36)
axis(1, at = decimal_date(a), labels = format(a, "%Y %b %d"), cex.axis=0.6)
当我这样做时:
t.ser <- ts(z$Value/1000000, start(z[1,1]),freq=12)
我明白了
t.ser
Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
1 45 51 56 56 59 60 60 60 64 65 75 73
2 74 80 87 91 92 96 109 108 123 129 133 143
3 127 127 123 121 130
但是当我这样做时:
t.ser <- ts(z$Value/1000000, start=c(2010,1),freq=12)
我得到了这个,这是我在开始时使用变量而不是明确输入日期时想要的结果。任何人都有任何想法,我将如何做到这一点?
t.ser
Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
2010 45 51 56 56 59 60 60 60 64 65 75 73
2011 74 80 87 91 92 96 109 108 123 129 133 143
2012 127 127 123 121 130