こちらでインタラクティブなグラフを操作できます
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))
曜日の変動だけでずっと変わらないと予測しています。