こちらでインタラクティブなグラフを操作できます
https://yuta-vet.shinyapps.io/shiny_app_deploy/?_ga=2.106368643.1882585030.1624518165-33520689.1624518165

前回の続きで、東京コロナ患者数を予測します。今回はTBATSを使用します。TBATSとはフーリエ項とETSおよびBox-Cox変換を組み合わせた方法です。データの加工は、前回までにコードを載せていますので今回は省略します。既にデータはデータフレームからtsデータに変換しています。

今回もforecastパッケージを使用します。その中で、TBATSを選択します。60日後まで予測させます。

tbats_fit = tbats(tsdata)
autoplot(tsdata)+
  autolayer(forecast(tbats_fit,h=60))

日付が消えてしまったので、データフレームに戻します。

df_tbats <- as.data.frame(forecast(tbats_fit,h=60))
df_tbats$date <- seq(from=as.Date("2021/6/24"), by=1,length.out=60)
colnames(df_tbats) <- c("PointForecast_tbats","Lo80_tbats","Hi80_tbats","Lo95_tbats","Hi95_tbats","date")

ggplot()+
  geom_line(data=df2 %>% filter(date > "2021/3/1" & date <= "2021/6/23"),
            aes(x=date,y=number))+
  geom_line(data=df_tbats, 
            aes(x=date,y=PointForecast_tbats),color="red")+
  geom_ribbon(data=df_tbats,
              aes(x=date,y=PointForecast_tbats,ymin = Lo80_tbats, ymax = Hi80_tbats), alpha = 0.2)+
  scale_x_date(date_breaks ="7 day")+
  theme(axis.text.x = element_text(angle = 90))+
  ggtitle("TBATS FORECAST")+
  theme(legend.position = "none",
        plot.title = element_text(hjust = 0.5))

曜日の変動だけでずっと変わらないと予測しています。

時系列の解説

Categories:

category