簡體   English   中英

使用寓言包,預測風扇不會在實際行的末尾開始

[英]Forecast fan does not begin at the end of the actual line using fable package

我已經使用 R 中的fable包構建了以下扇形圖。 我想知道是否有人對為什么我的預測扇的原點不是來自實際線的建議(開頭的外部點離實際線很遠) )? 這是建模錯誤還是我無法避免的數據問題?

這是我的數據集的可重現

structure(list(Date = structure(c(12418, 12509, 12600, 12692, 
12784, 12874, 12965, 13057, 13149, 13239, 13330, 13422, 13514, 
13604, 13695, 13787, 13879, 13970, 14061, 14153, 14245, 14335, 
14426, 14518, 14610, 14700, 14791, 14883, 14975, 15065, 15156, 
15248, 15340, 15431, 15522, 15614, 15706, 15796, 15887, 15979, 
16071, 16161, 16252, 16344, 16436, 16526, 16617, 16709, 16801, 
16892, 16983, 17075, 17167, 17257, 17348, 17440, 17532, 17622, 
17713, 17805), fiscal_start = 1, class = c("yearquarter", "vctrs_vctr"
)), Index = c(99.9820253708305, 100.194245830908, 100.464139353185, 
100.509664967831, 100.0275008635, 100.372695892486, 100.468066533557, 
100.576244163805, 100.623717628381, 100.780442246863, 100.65264776914, 
100.69366042058, 100.909079987983, 101.018619794549, 100.959015810121, 
101.04835942569, 100.681089538573, 100.663660573108, 100.522268447626, 
100.22783149065, 99.4643787364223, 99.4331456182866, 99.5626187912313, 
100.039081681562, 100.418818090577, 100.4652077117, 100.544938523663, 
100.643407515773, 100.44741458842, 100.502455228311, 100.695097023592, 
100.716907300461, 100.555884307168, 100.503742436422, 100.432566888692, 
100.553320081068, 100.32442656222, 100.456727368091, 100.350509427919, 
100.677833560057, 100.362403841025, 100.827860652847, 100.499496900756, 
100.418652455482, 100.234221207155, 100.25208930362, 100.159571677823, 
100.229735300634, 100.369332695161, 100.169972399177, 100.17207717391, 
100.35130514679, 99.9317959389533, 99.8704136030018, 100.052802025981, 
100.176345514426, 100.355049154025, 100.544145324359, 100.549886876118, 
100.5559420697)), row.names = c(NA, -60L), key = structure(list(
    .rows = structure(list(1:60), 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("Date", ordered = TRUE), index2 = "Date", interval = structure(list(
    year = 0, quarter = 1, 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"))

和我的代碼


fit <- afsi %>%
  model(arima = ARIMA(log(Index)))

p <- fit %>%
  forecast(h="2 year") %>%
  autoplot(bind_rows(afsi %>% slice(tail(row_number(), 12)), select(slice(., 1), Date, Index = .mean)), level=seq(10,90,by=10), show_gap = TRUE) +
  geom_line(aes(Date,Index), col = '#75002B', size=1.2) +
  theme_bw() +
  labs(y='Log (AFSI)', title = 'Fanchart - Aggregate Financial Stability Index',
       subtitle = '8 period forecast (2019Q1-2020Q4)') 

  

p$layers[[1]]$aes_params$fill <- "#75002B"

p + theme(legend.position = 'none')

在此處輸入圖片說明

編輯:我正在尋找一種解決方案,使我的不確定性演變中的外帶(預測扇形)在開始時更窄,隨着時間的推移它們會散開,類似於我在下面附上的英格蘭銀行圖

在此處輸入圖片說明

autoplot(<fable>)show_gap選項要求通過autoplot(<fable>, <tsibble>, show_gap = FALSE)提供歷史數據。

library(fable)
library(dplyr)
library(ggplot2)
fit <- afsi %>%
  model(arima = ARIMA(log(Index)))

fit %>%
  forecast(h="2 year") %>%
  autoplot(tail(afsi, 12), level=seq(10,90,by=10), show_gap = FALSE) +
  theme_bw() +
  labs(y='Log (AFSI)', title = 'Fanchart - Aggregate Financial Stability Index',
       subtitle = '8 period forecast (2019Q1-2020Q4)') +
  theme(legend.position = 'none')

reprex 包(v0.3.0) 於 2020 年 9 月 23 日創建

如果您需要生成更自定義的圖形,我建議不要使用autoplot()並使用autoplot()編寫您自己的繪圖。

要將預測以圖形方式連接到數據中,您可以在寓言中添加另一行,這是對數據的最后觀察:

fc <- fit %>% 
  forecast(h = "2 years")

fc_no_gap <- afsi %>% 
  tail(1) %>% 
  # Match structure of fable to combine with
  mutate(.model = "arima", Index = distributional::dist_degenerate(Index), .mean = mean(Index)) %>% 
  as_fable(distribution = Index, response = "Index") %>% 
  bind_rows(fc)
#> Warning: The dimnames of the fable's distribution are missing and have been set
#> to match the response variables.

reprex 包(v0.3.0) 於 2020 年 9 月 23 日創建

從那里您可以使用{ggdist}包來可視化分布,並使用geom_line()添加歷史數據。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM