【R】Rでprophet
2020年4月25日
prophet_R
R でprophet
Facebookが提供する時系列データ解析ライブラリであるprophetをRで使ってみます。 以前は、次のように一発でパッケージのインストールができたのですが、CRANレポジトリーから削除されたようで、できなくなっていました。
>install.packages('prophet', type="source")
そこで、ここから旧バージョンをとってきてインストールしました。 最新版のprophet_0.6.tar.gzをダウンロードして、下記をコンソールから実行し、ダウンロードしたファイルを選択してインストールしました。
>install.packages(file.choose(), repos=NULL)
さて、続いてprophetを使ってみます。 東京電力が過去の電力使用実績データを公開しています。 ここからデータを持ってきて、解析してみました。
# 東京電力のホームぺーからデータ取得->prophet用に処理
e_dat<-data.frame(ds=c(), y=c())
dat_2020<-read.csv("https://www.tepco.co.jp/forecast/html/images/juyo-2020.csv", header = FALSE)
dat_tmp<-dat_2020[c(-1:-3),]
e_dat<-rbind(e_dat, dat_tmp)
dat_2019<-read.csv("https://www.tepco.co.jp/forecast/html/images/juyo-2019.csv", header = FALSE)
dat_tmp<-dat_2019[c(-1:-3),]
e_dat<-rbind(e_dat, dat_tmp)
dat_2018<-read.csv("https://www.tepco.co.jp/forecast/html/images/juyo-2018.csv", header = FALSE)
dat_tmp<-dat_2018[c(-1:-3),]
e_dat<-rbind(e_dat, dat_tmp)
dat_2017<-read.csv("https://www.tepco.co.jp/forecast/html/images/juyo-2017.csv", header = FALSE)
dat_tmp<-dat_2017[c(-1:-3),]
e_dat<-rbind(e_dat, dat_tmp)
dat_time<-e_dat[e_dat$V2=="10:00",] # 毎日10:00時点のデータのみ抽出
de_dat<-dat_time[,-2] # 時間の情報は削除
df<-data.frame(ds=gsub("/", "-", de_dat$V1), de_dat$V3) # 日付のフォーマットを変更
colnames(df)=c("ds","y") # 列名をprophetで利用できる形に変更
library(prophet)
## Loading required package: Rcpp
## Loading required package: rlang
model<-prophet(df)
## Disabling daily seasonality. Run prophet with daily.seasonality=TRUE to override this.
future<-make_future_dataframe(model,12)
fore<-predict(model,future)
layout(matrix(3:1, 3, 1))
plot(fore$ds, fore$trend)
plot(fore$ds, fore$weekly)
plot(fore$ds, fore$yearly)
いろいろできそうで面白そうです。
Note that the echo = FALSE
parameter was added to the code chunk to prevent printing of the R code that generated the plot.