0

我正在使用粮农组织价格指数月度数据集和预测包,使用时间序列绘图来确定今年 12 月粮农组织股票的价格。例如,这是我到目前为止开发的图表。

在此处输入图像描述

这是我用来生成此图表的数据片段。从 1990-01-01 到 2006-08-01

dataslice = structure(list(ï..FAO.Monthly.Food.Price.Index = structure(c(7305, 
7336, 7364, 7395, 7425, 7456, 7486, 7517, 7548, 7578, 7609, 7639, 
7670, 7701, 7729, 7760, 7790, 7821, 7851, 7882, 7913, 7943, 7974, 
8004, 8035, 8066, 8095, 8126, 8156, 8187, 8217, 8248, 8279, 8309, 
8340, 8370, 8401, 8432, 8460, 8491, 8521, 8552, 8582, 8613, 8644, 
8674, 8705, 8735, 8766, 8797, 8825, 8856, 8886, 8917, 8947, 8978, 
9009, 9039, 9070, 9100, 9131, 9162, 9190, 9221, 9251, 9282, 9312, 
9343, 9374, 9404, 9435, 9465, 9496, 9527, 9556, 9587, 9617, 9648, 
9678, 9709, 9740, 9770, 9801, 9831, 9862, 9893, 9921, 9952, 9982, 
10013, 10043, 10074, 10105, 10135, 10166, 10196, 10227, 10258, 
10286, 10317, 10347, 10378, 10408, 10439, 10470, 10500, 10531, 
10561, 10592, 10623, 10651, 10682, 10712, 10743, 10773, 10804, 
10835, 10865, 10896, 10926, 10957, 10988, 11017, 11048, 11078, 
11109, 11139, 11170, 11201, 11231, 11262, 11292, 11323, 11354, 
11382, 11413, 11443, 11474, 11504, 11535, 11566, 11596, 11627, 
11657, 11688, 11719, 11747, 11778, 11808, 11839, 11869, 11900, 
11931, 11961, 11992, 12022, 12053, 12084, 12112, 12143, 12173, 
12204, 12234, 12265, 12296, 12326, 12357, 12387, 12418, 12449, 
12478, 12509, 12539, 12570, 12600, 12631, 12662, 12692, 12723, 
12753, 12784, 12815, 12843, 12874, 12904, 12935, 12965, 12996, 
13027, 13057, 13088, 13118, 13149, 13180, 13208, 13239, 13269, 
13300, 13330, 13361), class = "Date"), X = c(64.1, 64.4, 63.8, 
65.8, 64.4, 63.7, 62.5, 61.5, 61, 61.1, 61.9, 61.9, 60.8, 61.5, 
62, 60.7, 60.6, 61, 61.8, 61.4, 62.1, 64.3, 64.4, 64, 64.8, 65.7, 
66.1, 64.5, 64.8, 65.6, 64.4, 62.8, 63.5, 61.5, 62.4, 61, 61.3, 
61.2, 62.9, 62.5, 62, 61.5, 61.9, 60.5, 60.9, 61.2, 63, 64.3, 
64.5, 64.1, 64.5, 63.7, 65.6, 65.2, 63.9, 66.2, 69.3, 69.9, 73.2, 
73.1, 72.9, 74.4, 75.1, 74, 74, 75.1, 79.5, 78, 78.3, 80.4, 79.8, 
78, 77, 77.5, 78.6, 80.8, 82.4, 80.5, 80.2, 79.9, 76.9, 74.1, 
72.5, 71.4, 70.9, 71, 72.8, 73.4, 72.8, 70.2, 68.4, 69.8, 70, 
69.7, 70.3, 68, 67.4, 67.6, 67.4, 66.8, 66.4, 64.2, 64.3, 62.4, 
61.9, 62.7, 62.6, 62.1, 61, 58.4, 57, 55.8, 55.4, 54.6, 52.6, 
54.4, 54.6, 53.2, 53.2, 51.9, 52.6, 52.3, 52.8, 53.4, 53.6, 53.8, 
54, 53.2, 52.6, 53.4, 53.8, 54.4, 53.8, 54.2, 55.1, 54.6, 55.4, 
54.8, 56.5, 56.6, 55.4, 54.2, 54.7, 54.3, 53.5, 51.7, 52, 51, 
50.5, 51.3, 52, 53.4, 54.9, 55.2, 56.3, 55.6, 55.9, 56.5, 55.5, 
55.6, 56.3, 56, 56.7, 57.6, 58.7, 60.3, 61.8, 62.4, 64.3, 65, 
66.7, 67.2, 66.3, 66.1, 65.6, 64.5, 65.2, 64.7, 65.4, 65.6, 65.4, 
65.9, 67.1, 65.6, 66.3, 67.2, 67.4, 67.5, 68.4, 69.4, 68.8, 69.5, 
69.4, 70.4, 69.4, 69.7, 71, 71.1, 72.9, 72.9), X.1 = c("73.4", 
"76.0", "77.8", "80.4", "81.0", "83.1", "83.4", "83.7", "84.5", 
"85.4", "86.2", "83.7", "79.8", "81.7", "80.7", "79.5", "81.2", 
"80.4", "82.6", "79.4", "79.8", "82.3", "81.9", "78.3", "79.3", 
"80.9", "81.4", "77.4", "78.2", "78.0", "78.6", "77.5", "77.1", 
"73.5", "75.5", "72.8", "72.6", "72.1", "75.7", "74.8", "74.9", 
"77.6", "77.0", "73.8", "74.3", "73.5", "72.4", "70.1", "69.5", 
"70.9", "72.5", "72.9", "76.1", "74.4", "75.0", "76.6", "77.9", 
"78.1", "81.9", "78.2", "78.6", "83.1", "84.1", "84.9", "83.8", 
"81.0", "87.4", "87.1", "88.4", "88.8", "87.2", "81.2", "79.8", 
"79.9", "82.9", "80.8", "83.1", "83.5", "86.1", "88.8", "88.7", 
"85.9", "84.9", "81.0", "78.8", "78.7", "82.4", "83.5", "83.5", 
"80.0", "79.1", "80.1", "79.7", "75.5", "75.5", "69.5", "67.3", 
"68.3", "67.8", "67.8", "66.2", "66.2", "66.7", "64.2", "64.6", 
"64.1", "62.7", "63.3", "62.1", "62.8", "62.8", "61.1", "61.7", 
"62.1", "62.3", "64.0", "62.6", "60.0", "60.9", "58.9", "59.9", 
"60.2", "61.9", "61.3", "62.4", "61.7", "61.5", "59.2", "58.4", 
"58.6", "59.3", "59.3", "57.3", "60.9", "63.6", "64.1", "64.5", 
"62.5", "62.9", "63.0", "62.9", "61.3", "59.5", "58.2", "58.4", 
"56.6", "59.1", "56.3", "55.2", "55.4", "55.1", "55.0", "54.4", 
"52.6", "52.8", "51.1", "53.1", "54.1", "54.5", "55.7", "56.3", 
"56.2", "60.5", "60.7", "63.0", "62.7", "62.2", "61.2", "65.9", 
"63.8", "66.3", "66.3", "65.8", "68.8", "70.7", "68.9", "69.6", 
"67.7", "68.3", "68.6", "68.6", "70.0", "70.6", "69.3", "71.8", 
"73.0", "71.9", "72.3", "73.2", "73.3", "73.5", "73.6", "70.0", 
"67.7", "66.8", "66.2", "68.0", "70.4", "71.8", "74.2"), X.2 = c("53.5", 
"52.2", "41.4", "48.4", "39.2", "39.2", "39.2", "36.8", "38.1", 
"38.9", "39.4", "45.1", "46.9", "46.7", "45.8", "42.8", "42.1", 
"43.4", "40.4", "41.7", "45.4", "48.8", "50.8", "50.8", "52.9", 
"52.9", "52.4", "52.4", "54.6", "57.7", "58.1", "56.6", "58.1", 
"54.9", "53.8", "53.2", "53.3", "54.0", "53.3", "52.4", "51.7", 
"51.8", "49.7", "48.0", "45.1", "41.0", "41.2", "41.8", "45.5", 
"45.4", "46.0", "42.3", "42.3", "45.1", "45.6", "46.6", "49.9", 
"52.0", "53.2", "55.0", "58.9", "61.1", "61.8", "61.1", "61.2", 
"61.2", "64.6", "64.3", "64.3", "64.8", "64.8", "64.4", "64.3", 
"64.2", "63.0", "62.7", "61.0", "61.1", "61.3", "60.7", "60.1", 
"61.0", "59.9", "60.2", "60.3", "59.5", "59.3", "59.1", "58.8", 
"58.6", "58.1", "57.8", "59.0", "60.8", "61.0", "61.0", "60.9", 
"59.7", "57.8", "57.6", "56.5", "55.6", "55.3", "55.4", "53.9", 
"52.1", "52.1", "52.3", "52.4", "51.5", "50.7", "48.0", "47.4", 
"47.1", "46.4", "46.4", "46.8", "47.0", "47.5", "48.5", "50.2", 
"50.4", "50.1", "50.4", "50.9", "53.8", "55.6", "56.0", "57.4", 
"59.1", "59.6", "60.1", "59.7", "59.5", "59.7", "59.5", "62.0", 
"62.4", "62.9", "62.5", "62.1", "62.8", "60.6", "56.9", "53.0", 
"52.8", "50.7", "48.9", "44.8", "42.9", "40.6", "40.1", "41.6", 
"42.9", "45.5", "49.3", "51.3", "53.1", "53.7", "52.7", "52.6", 
"52.6", "53.2", "53.6", "55.2", "57.6", "58.6", "59.7", "60.9", 
"64.3", "65.2", "65.8", "67.8", "70.7", "72.6", "72.7", "73.3", 
"73.8", "75.1", "75.8", "76.2", "76.7", "77.0", "76.2", "76.5", 
"76.4", "77.1", "78.3", "78.7", "78.5", "78.0", "76.9", "74.3", 
"74.5", "73.1", "71.6", "71.3", "71.0", "71.3", "70.3"), X.3 = c("64.1", 
"62.2", "61.3", "62.8", "62.0", "60.7", "57.9", "55.7", "52.5", 
"52.8", "52.4", "52.6", "53.7", "55.2", "57.3", "57.6", "57.2", 
"56.5", "55.7", "58.3", "58.8", "60.6", "60.8", "62.7", "63.9", 
"66.5", "65.9", "63.0", "62.0", "61.8", "58.5", "56.1", "58.3", 
"58.2", "58.8", "58.5", "59.1", "58.1", "57.8", "57.3", "55.4", 
"52.8", "55.8", "56.6", "58.4", "61.4", "66.7", "68.9", "68.6", 
"66.8", "64.1", "62.4", "62.0", "60.1", "56.0", "57.5", "60.2", 
"61.7", "61.1", "62.7", "62.9", "62.5", "62.2", "62.7", "64.9", 
"69.1", "74.0", "72.6", "75.9", "80.2", "80.5", "82.7", "83.3", 
"85.7", "86.9", "95.3", "100.0", "94.3", "91.1", "85.8", "75.3", 
"71.1", "67.4", "67.6", "68.1", "68.4", "70.6", "70.8", "68.8", 
"65.2", "62.4", "65.7", "65.1", "65.6", "64.2", "63.4", "62.7", 
"62.7", "63.2", "60.8", "60.2", "59.0", "57.5", "54.1", "53.9", 
"57.7", "58.2", "56.8", "57.1", "54.9", "55.2", "53.7", "52.8", 
"53.6", "51.4", "53.0", "52.6", "51.5", "51.3", "50.4", "52.1", 
"52.2", "51.7", "51.8", "52.8", "51.4", "49.8", "48.6", "49.4", 
"51.2", "52.1", "53.7", "53.9", "53.0", "52.2", "51.0", "51.7", 
"51.0", "51.7", "51.6", "51.2", "51.0", "51.9", "52.0", "51.7", 
"50.4", "49.6", "49.3", "50.2", "52.0", "54.6", "58.1", "63.8", 
"64.4", "63.0", "59.8", "58.0", "57.8", "56.5", "56.4", "58.2", 
"57.7", "56.5", "59.9", "60.5", "60.6", "64.8", "65.7", "66.9", 
"67.5", "68.5", "70.2", "68.8", "66.4", "60.7", "59.1", "60.0", 
"59.3", "60.0", "60.5", "60.5", "60.3", "61.5", "59.5", "59.4", 
"60.2", "61.2", "60.9", "61.5", "62.1", "60.6", "61.5", "62.7", 
"64.8", "63.9", "65.1", "67.8", "67.8", "69.9", "69.6"), X.4 = c("44.6", 
"44.5", "45.7", "44.0", "45.5", "43.8", "43.7", "45.3", "44.8", 
"45.7", "48.3", "49.6", "49.4", "48.4", "48.7", "47.0", "46.5", 
"46.7", "48.2", "48.8", "48.6", "51.1", "51.8", "52.6", "52.8", 
"51.9", "54.1", "53.9", "54.0", "54.8", "51.9", "51.0", "52.2", 
"52.2", "53.8", "53.0", "53.9", "54.2", "53.0", "52.8", "51.9", 
"51.2", "53.2", "52.6", "52.5", "52.1", "56.2", "63.5", "63.8", 
"60.4", "61.3", "63.6", "67.7", "68.4", "67.1", "73.3", "80.5", 
"79.0", "88.3", "88.6", "82.6", "82.6", "84.4", "77.9", "76.8", 
"80.3", "83.9", "79.9", "76.3", "79.9", "79.0", "75.5", "70.7", 
"68.6", "68.1", "73.5", "73.3", "68.8", "66.0", "69.1", "71.4", 
"69.0", "70.0", "70.1", "70.7", "71.5", "70.3", "71.1", "71.6", 
"68.9", "65.5", "65.4", "67.9", "72.8", "76.7", "75.5", "79.2", 
"81.8", "84.6", "86.0", "89.9", "82.7", "83.5", "83.1", "84.5", 
"84.4", "84.3", "82.0", "77.3", "68.4", "62.3", "64.9", "62.2", 
"54.8", "48.6", "52.3", "54.0", "52.9", "51.3", "49.5", "48.6", 
"46.3", "47.8", "49.5", "44.5", "42.9", "42.6", "41.7", "38.4", 
"36.4", "37.7", "38.1", "37.3", "35.8", "38.2", "38.0", "36.5", 
"38.8", "47.4", "50.0", "45.4", "43.3", "48.2", "50.6", "49.2", 
"47.8", "47.6", "48.9", "51.6", "55.8", "56.1", "59.6", "56.7", 
"58.7", "63.9", "65.5", "64.3", "62.3", "59.2", "59.5", "61.0", 
"61.9", "58.8", "57.1", "59.3", "67.3", "68.8", "71.5", "71.2", 
"76.0", "76.7", "76.4", "73.5", "66.0", "64.8", "65.4", "66.2", 
"65.8", "66.9", "66.0", "63.1", "62.2", "66.7", "65.0", "64.2", 
"64.6", "64.4", "62.5", "64.0", "66.8", "65.4", "63.5", "63.6", 
"65.0", "65.1", "66.7", "68.3", "67.9", "70.4", "73.5"), X.5 = c("87.9", 
"90.7", "95.1", "94.3", "90.4", "80.3", "74.2", "67.6", "68.5", 
"60.8", "62.3", "60.3", "54.5", "52.7", "56.6", "52.7", "46.9", 
"56.9", "63.8", "58.5", "57.5", "56.4", "53.6", "55.7", "51.5", 
"48.5", "50.9", "58.5", "59.3", "64.1", "63.8", "60.8", "57.6", 
"53.9", "53.0", "50.4", "51.0", "53.0", "65.7", "69.0", "73.2", 
"64.3", "59.9", "57.8", "59.0", "63.7", "62.6", "65.1", "63.7", 
"67.0", "72.7", "68.1", "71.7", "74.6", "72.8", "74.9", "77.9", 
"78.9", "86.3", "90.8", "91.3", "89.2", "90.3", "84.8", "83.7", 
"86.8", "84.1", "80.3", "72.3", "73.3", "74.1", "76.2", "77.5", 
"79.3", "79.9", "74.1", "70.5", "75.3", "79.3", "76.6", "73.8", 
"68.8", "66.3", "66.5", "66.2", "66.9", "68.8", "69.9", "68.9", 
"70.7", "69.4", "72.4", "70.1", "70.6", "74.3", "76.3", "71.5", 
"66.3", "60.9", "60.0", "57.1", "50.1", "53.5", "52.5", "44.7", 
"46.2", "49.9", "50.0", "50.2", "42.2", "37.3", "33.5", "35.6", 
"37.3", "33.3", "35.6", "41.3", "41.9", "40.2", "37.2", "34.7", 
"32.7", "31.8", "37.3", "42.8", "51.8", "59.6", "64.6", "62.1", 
"66.5", "61.5", "62.0", "63.9", "61.1", "57.4", "54.1", "59.3", 
"56.0", "54.4", "50.2", "47.3", "42.0", "47.5", "48.5", "48.2", 
"40.5", "41.4", "42.6", "37.6", "35.6", "39.5", "39.0", "43.1", 
"46.5", "48.5", "49.2", "50.7", "55.7", "50.9", "48.0", "44.4", 
"41.6", "42.3", "42.3", "37.0", "36.9", "37.6", "38.9", "35.9", 
"36.2", "40.0", "40.7", "39.2", "42.9", "49.0", "46.9", "47.6", 
"52.3", "50.5", "51.0", "54.0", "56.3", "55.0", "53.2", "53.1", 
"56.0", "59.7", "61.5", "63.8", "68.8", "70.4", "82.6", "97.5", 
"111.1", "106.7", "108.2", "104.1", "95.3", "99.3", "83.2")), row.names = 4:203, class = "data.frame")

然后我使用下面的代码制作了图表。

tsall = ts(dataslice$X,frequency = 12/length(dataslice$X))

autoplot(tsall)+autolayer(meanf(tsall, h=120),series = "Mean", PI=FALSE)+
  autolayer(naive(tsall, h=120),
            series="Naïve", PI=FALSE) +
  autolayer(snaive(tsall, h=120),
            series="Seasonal naïve", PI=FALSE) +
  autolayer(rwf(tsall, drift=TRUE, h=120),
            series="Drift", PI=FALSE) +
  ggtitle("Forecasts for FAO Price Index December 2021")+
  xlab("Days")+
  ylab("Price Index")+
  guides(colour=guide_legend(title="Forecast"))

问题是我正在尝试使用 monthdays() 函数来平滑这些数据以进行日历调整,因为每个月的天数不同,并查看数据和我在预测中的示例数据:原则与实践,3.2,我怀疑这会使建模更容易。

tsall = (tsall/monthdays(tsall))

Error in monthdays(tsall) : Not monthly or quarterly data

非常感谢您对此错误代码的任何帮助!

4

1 回答 1

0

您的数据是每月的,从 1990 年 1 月开始,因此您的 ts 应该相应地设置:

tsall = ts(dataslice$X, frequency = 12, start = c(1990,1))

现在这tsall = (tsall/monthdays(stall))部分工作得很好。

当您设置frequency = 12/length(dataslice$X) = 0.06时,该monthdays函数将不起作用,因为您的数据不是每月或每季度的数据,正如函数描述所暗示的那样:“返回观察时间段的每个月或季度的天数。”

对于季节性时段,请参阅

于 2021-09-07T10:24:09.800 回答