如何在R中获得x点的预测结果?
How to get x-points of forecast results in R?
我用 r 得到了一些预测结果。
library(forecast)
fc<-forecast(fit.ets)
fc
我得到了这样的结果
Points Forecast Lo 80 Hi 80 Lo 95 Hi 95
19.5, 1.8895 xxx xxx xxx xxx
20.0 xxxx xxx xxx xxx xxx
...
我想获取 Points
列来绘制我的数据,如何获取此列?
您没有正确复制和粘贴。输出是这样的:
Point Forecast Lo 80 Hi 80 Lo 95 Hi 95
19.5 1.8895 xxx xxx xxx xxx
20.0 xxxx xxx xxx xxx xxx
...
左手栏给出了时间段。第二列给出了 "Point Forecast"——即每个未来观测值的估计均值或中值。
如果您只想要未来的时间,可以使用 time()
函数获取它们:
time(fc$mean)
与您在评论中所说的相反,ets()
不会改变 x 轴刻度,它只是适合模型。当您将该模型传递给 forecast.ets()
时,生成的时间是您提供的数据的时间段序列的延续。
例如:
> USAccDeaths
Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
1973 9007 8106 8928 9137 10017 10826 11317 10744 9713 9938 9161 8927
1974 7750 6981 8038 8422 8714 9512 10120 9823 8743 9129 8710 8680
1975 8162 7306 8124 7870 9387 9556 10093 9620 8285 8466 8160 8034
1976 7717 7461 7767 7925 8623 8945 10078 9179 8037 8488 7874 8647
1977 7792 6957 7726 8106 8890 9299 10625 9302 8314 8850 8265 8796
1978 7836 6892 7791 8192 9115 9434 10484 9827 9110 9070 8633 9240
> library(forecast)
> ets.fit <- ets(USAccDeaths)
> fc <- forecast(ets.fit)
> fc
Point Forecast Lo 80 Hi 80 Lo 95 Hi 95
Jan 1979 8252.1 7945.0 8559.2 7782.4 8721.8
Feb 1979 7473.7 7162.8 7784.6 6998.3 7949.2
Mar 1979 8281.0 7903.8 8658.3 7704.0 8858.0
Apr 1979 8527.1 8107.5 8946.6 7885.4 9168.7
....
Nov 1980 8794.6 7960.6 9628.6 7519.1 10070.1
Dec 1980 9072.3 8195.5 9949.0 7731.4 10413.2
> time(fc$mean)
Jan Feb Mar Apr May Jun Jul Aug Sep
1979 1979.0 1979.1 1979.2 1979.3 1979.3 1979.4 1979.5 1979.6 1979.7
1980 1980.0 1980.1 1980.2 1980.3 1980.3 1980.4 1980.5 1980.6 1980.7
Oct Nov Dec
1979 1979.8 1979.8 1979.9
1980 1980.8 1980.8 1980.9
我用 r 得到了一些预测结果。
library(forecast)
fc<-forecast(fit.ets)
fc
我得到了这样的结果
Points Forecast Lo 80 Hi 80 Lo 95 Hi 95
19.5, 1.8895 xxx xxx xxx xxx
20.0 xxxx xxx xxx xxx xxx
...
我想获取 Points
列来绘制我的数据,如何获取此列?
您没有正确复制和粘贴。输出是这样的:
Point Forecast Lo 80 Hi 80 Lo 95 Hi 95
19.5 1.8895 xxx xxx xxx xxx
20.0 xxxx xxx xxx xxx xxx
...
左手栏给出了时间段。第二列给出了 "Point Forecast"——即每个未来观测值的估计均值或中值。
如果您只想要未来的时间,可以使用 time()
函数获取它们:
time(fc$mean)
与您在评论中所说的相反,ets()
不会改变 x 轴刻度,它只是适合模型。当您将该模型传递给 forecast.ets()
时,生成的时间是您提供的数据的时间段序列的延续。
例如:
> USAccDeaths
Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
1973 9007 8106 8928 9137 10017 10826 11317 10744 9713 9938 9161 8927
1974 7750 6981 8038 8422 8714 9512 10120 9823 8743 9129 8710 8680
1975 8162 7306 8124 7870 9387 9556 10093 9620 8285 8466 8160 8034
1976 7717 7461 7767 7925 8623 8945 10078 9179 8037 8488 7874 8647
1977 7792 6957 7726 8106 8890 9299 10625 9302 8314 8850 8265 8796
1978 7836 6892 7791 8192 9115 9434 10484 9827 9110 9070 8633 9240
> library(forecast)
> ets.fit <- ets(USAccDeaths)
> fc <- forecast(ets.fit)
> fc
Point Forecast Lo 80 Hi 80 Lo 95 Hi 95
Jan 1979 8252.1 7945.0 8559.2 7782.4 8721.8
Feb 1979 7473.7 7162.8 7784.6 6998.3 7949.2
Mar 1979 8281.0 7903.8 8658.3 7704.0 8858.0
Apr 1979 8527.1 8107.5 8946.6 7885.4 9168.7
....
Nov 1980 8794.6 7960.6 9628.6 7519.1 10070.1
Dec 1980 9072.3 8195.5 9949.0 7731.4 10413.2
> time(fc$mean)
Jan Feb Mar Apr May Jun Jul Aug Sep
1979 1979.0 1979.1 1979.2 1979.3 1979.3 1979.4 1979.5 1979.6 1979.7
1980 1980.0 1980.1 1980.2 1980.3 1980.3 1980.4 1980.5 1980.6 1980.7
Oct Nov Dec
1979 1979.8 1979.8 1979.9
1980 1980.8 1980.8 1980.9