【R】Rでprophet

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.

Add a Comment

メールアドレスが公開されることはありません。