Last active
April 30, 2020 12:45
-
-
Save konabuta/bd2c40d27efd2ad4655b2c232af91e46 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
--- | |
title: "AirPassengers" | |
output: html_notebook | |
--- | |
```{r} | |
AirPassengers %>% as_tsibble %>% autoplot | |
``` | |
## 過去データの平均値 | |
```{r} | |
AirPassengers %>% as_tsibble %>% model(MEAN(value)) %>% forecast(h="1 years") -> mean_forecast | |
AirPassengers %>% as_tsibble %>% model(MEAN(value)) %>% fitted -> mean_fitted | |
ggplot() + | |
geom_line(data=as_tsibble(AirPassengers),aes(x=index,y=value),color="black") + | |
geom_line(data=mean_fitted,aes(x=index,y=.fitted),color="blue") + | |
geom_line(data=mean_forecast,aes(x=index,y=value),color="red") | |
``` | |
## 過去データの最終データ点 | |
```{r} | |
AirPassengers %>% as_tsibble %>% model(RW(value)) %>% forecast(h="1 years") -> last_forecast | |
AirPassengers %>% as_tsibble %>% model(RW(value)) %>% fitted -> last_fitted | |
ggplot() + | |
geom_line(data=as_tsibble(AirPassengers),aes(x=index,y=value),color="black") + | |
geom_line(data=last_fitted,aes(x=index,y=.fitted),color="blue") + | |
geom_line(data=last_forecast,aes(x=index,y=value),color="red") | |
``` | |
## 直近N点のデータの平均値 | |
```{r} | |
#直近12点 | |
AirPassengers %>% as_tsibble %>% filter(year(index) > 1959) %>% model(MEAN(value)) %>% forecast(h="1 years") -> ndata_forecast | |
AirPassengers %>% as_tsibble %>% filter(year(index) > 1958 & 1960 > year(index)) %>% model(MEAN(value)) %>% forecast(h="1 years") -> ndata_forecast1 | |
AirPassengers %>% as_tsibble %>% filter(year(index) > 1957 & 1959 > year(index)) %>% model(MEAN(value)) %>% forecast(h="1 years") -> ndata_forecast2 | |
ggplot() + | |
geom_line(data=as_tsibble(AirPassengers),aes(x=index,y=value),color="black") + | |
geom_line(data=ndata_forecast1,aes(x=index,y=value),color="blue") + | |
geom_line(data=ndata_forecast2,aes(x=index,y=value),color="blue") + | |
geom_line(data=ndata_forecast,aes(x=index,y=value),color="red") | |
``` | |
```{r} | |
AirPassengers %>% as_tsibble %>% model(MEAN(value ~ window(12))) %>% forecast(h="1 years") -> win_forecast | |
AirPassengers %>% as_tsibble %>% model(MEAN(value ~ window(12))) %>% fitted -> win_fitted | |
ggplot() + | |
geom_line(data=as_tsibble(AirPassengers),aes(x=index,y=value),color="black") + | |
geom_line(data=win_fitted,aes(x=index,y=.fitted),color="blue") + | |
geom_line(data=win_forecast,aes(x=index,y=value),color="red") | |
``` | |
## 重み付き平均値 | |
```{r} | |
AirPassengers %>% as_tsibble %>% model(ETS(value ~ error("M") + trend("N",alpha=c(0.3)) + season("N"))) %>% forecast(h="1 years") -> ses_forecast | |
AirPassengers %>% as_tsibble %>% model(ETS(value ~ error("M") + trend("N",alpha=c(0.3)) + season("N"))) %>% fitted -> ses_fitted | |
ggplot() + | |
geom_line(data=as_tsibble(AirPassengers),aes(x=index,y=value),color="black") + | |
geom_line(data=ses_fitted,aes(x=index,y=.fitted),color="blue") + | |
geom_line(data=ses_forecast,aes(x=index,y=value),color="red") | |
``` | |
## トレンド | |
```{r} | |
AirPassengers %>% as_tsibble %>% model(ETS(value ~ error("M") + trend("M",alpha=c(0.3)) + season("N"))) %>% forecast(h="1 years") -> trend_forecast | |
AirPassengers %>% as_tsibble %>% model(ETS(value ~ error("M") + trend("M",alpha=c(0.3)) + season("N"))) %>% fitted -> trend_fitted | |
ggplot() + | |
geom_line(data=as_tsibble(AirPassengers),aes(x=index,y=value),color="black") + | |
geom_line(data=trend_fitted,aes(x=index,y=.fitted),color="blue") + | |
geom_line(data=trend_forecast,aes(x=index,y=value),color="red") | |
``` | |
## 季節性 | |
```{r} | |
AirPassengers %>% as_tsibble %>% model(ETS(value ~ error("M") + trend("N",alpha=c(0.3)) + season("M"))) %>% forecast(h="1 years") -> seson_forecast | |
AirPassengers %>% as_tsibble %>% model(ETS(value ~ error("M") + trend("N",alpha=c(0.3)) + season("M"))) %>% fitted -> seson_fitted | |
ggplot() + | |
geom_line(data=as_tsibble(AirPassengers),aes(x=index,y=value),color="black") + | |
geom_line(data=seson_fitted,aes(x=index,y=.fitted),color="blue") + | |
geom_line(data=seson_forecast,aes(x=index,y=value),color="red") | |
``` | |
## トレンド + 季節性 | |
```{r} | |
AirPassengers %>% as_tsibble %>% model(ETS(value ~ error("M") + trend("M",alpha=c(0.3)) + season("M"))) %>% forecast(h="1 years") -> ts_forecast | |
AirPassengers %>% as_tsibble %>% model(ETS(value ~ error("M") + trend("M",alpha=c(0.3)) + season("M"))) %>% fitted -> ts_fitted | |
ggplot() + | |
geom_line(data=as_tsibble(AirPassengers),aes(x=index,y=value),color="black") + | |
geom_line(data=ts_fitted,aes(x=index,y=.fitted),color="blue") + | |
geom_line(data=ts_forecast,aes(x=index,y=value),color="red") | |
``` | |
## STL | |
```{r} | |
AirPassengers %>% as_tsibble %>% model(STL(value)) %>% components %>% autoplot | |
``` | |
## 移動平均 | |
```{r} | |
AirPassengers %>% as_tsibble %>% model(ARIMA(value ~ pdq(p=0,d=0,q=2)+PDQ(0,0,0))) -> model | |
model %>% report | |
``` | |
```{r} | |
AirPassengers %>% as_tsibble %>% model(ARIMA(value ~ pdq(0,0,1)+PDQ(0,0,0))) %>% forecast(h="1 years") -> ma_forecast | |
AirPassengers %>% as_tsibble %>% model(ARIMA(value ~ pdq(0,0,1)+PDQ(0,0,0))) %>% fitted -> ma_fitted | |
ggplot() + | |
geom_line(data=as_tsibble(AirPassengers),aes(x=index,y=value),color="black") + | |
geom_line(data=ma_fitted,aes(x=index,y=.fitted),color="blue") + | |
geom_line(data=ma_forecast,aes(x=index,y=value),color="red") | |
``` | |
## 自己回帰 | |
```{r} | |
AirPassengers %>% as_tsibble %>% model(ARIMA(value ~ pdq(p=0:3,d=0,q=0)+PDQ(0,0,0))) %>% forecast(h="1 years") -> ar_forecast | |
AirPassengers %>% as_tsibble %>% model(ARIMA(value ~ pdq(p=0:3,d=0,q=0)+PDQ(0,0,0))) %>% fitted -> ar_fitted | |
ggplot() + | |
geom_line(data=as_tsibble(AirPassengers),aes(x=index,y=value),color="black") + | |
geom_line(data=ar_fitted,aes(x=index,y=.fitted),color="blue") + | |
geom_line(data=ar_forecast,aes(x=index,y=value),color="red") | |
``` | |
## 自己回帰移動平均 | |
```{r} | |
AirPassengers %>% as_tsibble %>% model(ARIMA(value ~ pdq(p=0:10,d=0,q=0:10)+PDQ(0,0,0))) %>% forecast(h="1 years") -> arma_forecast | |
AirPassengers %>% as_tsibble %>% model(ARIMA(value ~ pdq(p=0:10,d=0,q=0:10)+PDQ(0,0,0))) %>% fitted -> arma_fitted | |
ggplot() + | |
geom_line(data=as_tsibble(AirPassengers),aes(x=index,y=value),color="black") + | |
geom_line(data=arma_fitted,aes(x=index,y=.fitted),color="blue") + | |
geom_line(data=arma_forecast,aes(x=index,y=value),color="red") | |
``` | |
## 自己回帰和分移動平均 | |
```{r} | |
AirPassengers %>% as_tsibble %>% model(ARIMA(value ~ pdq(p=0:10,d=0:10,q=0:10)+PDQ(0,0,0))) %>% forecast(h="1 years") -> arima_forecast | |
AirPassengers %>% as_tsibble %>% model(ARIMA(value ~ pdq(p=0:10,d=0:10,q=0:10)+PDQ(0,0,0))) %>% fitted -> arima_fitted | |
ggplot() + | |
geom_line(data=as_tsibble(AirPassengers),aes(x=index,y=value),color="black") + | |
geom_line(data=arima_fitted,aes(x=index,y=.fitted),color="blue") + | |
geom_line(data=arima_forecast,aes(x=index,y=value),color="red") | |
``` | |
## 季節性自己回帰和分移動平均 | |
```{r} | |
AirPassengers %>% as_tsibble %>% model(ARIMA(value ~ pdq(p=0:10,d=0:10,q=0:10)+PDQ(P=0:2,D=0:2,Q=0:2))) %>% forecast(h="1 years") -> sarima_forecast | |
AirPassengers %>% as_tsibble %>% model(ARIMA(value ~ pdq(p=0:10,d=0:10,q=0:10)+PDQ(P=0:2,D=0:2,Q=0:2))) %>% fitted -> sarima_fitted | |
ggplot() + | |
geom_line(data=as_tsibble(AirPassengers),aes(x=index,y=value),color="black") + | |
geom_line(data=sarima_fitted,aes(x=index,y=.fitted),color="blue") + | |
geom_line(data=sarima_forecast,aes(x=index,y=value),color="red") | |
``` | |
Author
konabuta
commented
Apr 30, 2020
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment