甲子園の実況しながら勝率も計算するbotを作りました
甲子園速報bot
ついでに, メジャーリーグの過去試合結果(約80年分)を利用して, 勝率も計算してみました.
こんな感じです.
2回裏 0アウト ランナー無し
星稜 1-1 鹿屋中
星稜の勝率: 42.7%
鹿屋中の勝率: 57.3%
— 甲子園速報bot (@kousienSokuhou) 2014, 8月 18
コメント
データ元
Yahoo!の甲子園速報からデータを抜いています. 怒られるかもしれません. たまに失敗します.
メジャーリーグのデータは, retrosheetから取ってきています.
勝率
勝率は目安です. 本当は高校野球の試合結果から勝率を集計するべきです.
また, 現状はイニングとランナー状況と点差しか考えていません.
9回表満塁で3点負けてるときの勝率, みたいな感じです.
もっと精密にやるべきなのでしょうが, 面倒です.
まだ完成ではありませんが, とりあえずやりたいことはできました.
次にやること
次は巨人の試合で同じことをします.
まず, 野球に関する一切の情報を遮断します.
次に, 勝率が80%を超えたらbotが僕に通知を出すので, そのときにテレビを見始めます.
これにより, 僕が認識する世界で巨人の勝率が80%になって, 幸せです.
GitHub Pagesを使う
GitHub Pagesを使う
htmlファイルをGitHubで公開できたら楽なのに, と思いました.
探したら, そういうサービスがGitHubにありました.
GitHub Pagesです. 早速, 使ってみました.
使い方
github.ioというレポジトリを作って, 他の自分のレポジトリで gh-pagesという名前のブランチを作るだけでした.
使用例
300億円超ほしい 300億円超ほしい by gghatano
pixicで人気のカップリングを可視化実験 http://gghatano.github.io/LoveLive/pixiv/couple.html
MCMCと野球データで遊ぶ. http://gghatano.github.io/analyze_mlbdata_with_R/rstan/BugsStanSemi/BugsStanSlide.html
発展
jekyll bootstrap? でもっとカッコ良い感じなるみたいですが, よく分かっていません.
参考文献
Github Pages について整理しておきます http://blog.eiel.info/blog/2013/02/17/github-pages/
脅威のアニオタ社会復帰への道 pixivのタグ頻度から考えるラブライブのカップリング - 驚異のアニヲタ社会復帰への道
YoするためにYoボタンつけた
Yoとは
新時代のコミュニケーションツールです.
不思議なソーシャルアプリYoのユーザーが100万人突破、Googleが保険に進出?―US記事ピックアップ – Techcrunch
Yoボタン
YOボタンをこのブログにつけました.
サイドバーにあります. プロフィールの下にあるボタンです.
押すとメッセージが出ます. 内容に従いましょう.
Yoを起動して, HATAMUにYoしてください.
すると, このブログが更新された時にYoが飛びます.
更新してなくても, たまにYoが飛びます.
Yo
Yoしましょう. 以上です.
Yoボタンの付け方
YoのAPIを取得します. リンク先のサイトで, 色々入力します.
yoapi.justyo.co
少し経つと, メールでAPIキーが送られてきます.
僕の場合は3日かかりました.
curl --data "api_token=送られてきたAPIキー" http://api.justyo.co/yoall/
とすると, 登録したアカウントから全員にYOできます.
応用
適当なタイミングでコマンドを実行することで, Yoが飛ばせます.
サーバーでの計算が終わったらYoするようにすれば, 研究が捗るかもしれません,
朝5時になったら多数回Yoすることで, 早起きできるでしょう.
巨人が点を取ったらYoするスクリプトも書けそうです.
RmdからRコードを抜き出す
メモ用です.
RmdファイルからRコードを抜き出す.
Rのいいところは, Rstudioを使いながら, knitrで文芸的プログラミングができるところです.
計算だけなら, 別にRでなくてもいいと思います.
knitrを使うためにRを使うレベルで, knitrが便利だと思っています.
...しかし, .Rmdファイルから.Rファイルを生成したいときはあります.
サーバー上で計算を実行させたいときなどです.
コマンドラインからRに読ませますから, Rmdファイルではダメです.
Rmdファイルから.Rファイルを作るスクリプト. 自分で書いてもいいですよね.
Rmdファイルの形式を眺めれば,
```{r} # ここを抜き出す. print("hoge") ```
すぐにできそうです.
しかし, knitrに便利関数がありました. purlです.
> library(knitr) > purl("hoge.Rmd") processing file: hoge.Rmd |.................................................................| 100% output file: hoge.R [1] "hoge.R"
やられたらやり返す?
点を取られた後の攻撃
味方が点を取られたあとに, 奮起して点を取ってくれたりするかどうかを調べました.
2013年メジャーリーグ試合結果データを利用.
点を取られた後の攻撃と, そうでない場合で, 平均点を比較します.
平均に差があるかどうかを, 検定します.
データとコード
データはretrosheetから引っ張ってきます.
詳細はこちら.
RPubs - 取られたら取り返す
コードはこちら
analyze_mlbdata_with_R/batting_data/game_analysis/baigaesi at master · gghatano/analyze_mlbdata_with_R · GitHub
結果
点を取られた直後だと, 平均得点は0.448点.
点を取られていないと, 平均得点は0.453点.
はい.
差がない, という帰無仮説をウィルコックスの順位和検定にかけましたが,
P値は0.41で棄却できず.
結論
野球の攻撃と守備は, あまり影響し合いません.
以上です.
三者凡退でリズムを作りました
三者凡退と援護
なんJ PRIDE : 実況「三者凡退でリズムを作りました!」
分かります.
三者凡退に抑えると, 味方が点を取ってくれるという風潮. ありますね.
適当な事を言う解説者は絶対に許しません. しっかり確認しましょう.
2013年メジャーリーグ全試合結果データを利用.
三者凡退に抑えた直後の攻撃と, それ以外の攻撃.
取ってくれた得点に, 差が出るのかどうかを確認します.
データとコード
集計の詳細は, ここに書いてあります.
RPubs - 三者凡退の後の援護
ソースコードはこちら.
analyze_mlbdata_with_R/batting_data/game_analysis/sanbon at master · gghatano/analyze_mlbdata_with_R · GitHub
投手が3人連続でアウトをとってチェンジになった直後の攻撃で, 何点取ったかを確認.
平均を調べて, 三者凡退後とそうでない場合で比較しました.
結果
三者凡退の直後の平均得点は, 0.447点でした.
三凡以外の場合の平均得点は, 0.454点でした.
...変わりませんね.
意味はありませんけど, 得点の分布を載せます.
右側が三者凡退直後, 左側がそうでない場合です.
よく分かりません.
結論
投手はとにかく抑えればいいのです. 三者凡退にこだわる必要一切なし.
今後も, 適当な事を言う野球解説者をやっつけていきます.
以上です.