LoginSignup
3
1

More than 3 years have passed since last update.

APIを用いたベット分析

Last updated at Posted at 2019-05-24

APIを用いたベット分析

今回の研究の動機は知人にPinnacle Sportsのデータの分析を依頼されたことです。
公式にAPIが提供されているので、それを用いてデータの取得と分析を行います。

Rパッケージ

おそらく最も容易な方法はPinnacleのRパッケージを使うことです。

パッケージ名:Pinnacle.API
https://github.com/marcoblume/pinnacle.API#README

導入手順

まずはRStudioでパッケージをインストールします。

RStudio 2019_05_25 8_10_20.png

RStudioで以下のコードを書くことでAPIが使えるようになります。

library(pinnacle.API)

username <- "ユーザー名"
userpass <- "パスワード"

SetCredentials(username, userpass)
AcceptTermsAndConditions(accepted = TRUE)

ユーザー名、パスワードにはそれぞれPinnacle Sportsで使っているusername, userpassをそれぞれ入力します。

データの取得

実際にデータを取得してみます。

currentDate <- as.POSIXlt(Sys.Date(), tz = "UTC")

dfSum <- NULL

for (i in 1:2) {
  df <- GetBetsList(fromDate = currentDate - i * 30 * 24 * 60 * 60,
                    toDate = currentDate - (i-1) * 30 * 24 * 60 * 60)
  dfSum <- rbind(df, dfSum)
}

dfSum <- dfSum[order(dfSum$bets.betId),]

データを一回に取得できる日時の範囲が上限30日に制限されています。
ループで区切って30日ごとのデータを取得し、rbindで縦につなげています。
今回は4月1日からの2ヶ月間のデータを取得する目的なので、ループは2回しか回していません。
過去1年分など取得したければループの回数を増やせばよいです。
最後にorderを使って、日時の順番(正確にはbetIdの順)に並び替えています。

データの保存

保存したいディレクトリやファイル名を指定して、データフレームをCSVに保存します。

file <- "pin.csv"
write.csv(dfSum, file)

データの解析

データは取得できたので、Rでもpythonでも好きな言語でいろいろ分析できます。
Rでそのままヒストグラムを描いてみます。

score <- c(dfSum$bets.ftTeam1Score, dfSum$bets.ftTeam2Score)
hist(score, breaks = seq(-0.5,15.5,1), col="green")

Rplot.jpeg

まとめ

今回はAPIを使ってRでデータ分析を行う方法を紹介しました。
ご意見などあればコメントお願いします。

3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1