300億円欲しい

メジャーリーグのデータ解析します

巨人の勝率を上げてくれるbot作りました

巨人の勝率を上げる

僕は, 巨人が勝つところが見たいのです. 勝つところだけ見たいです.

巨人の勝率を上げるためには, どうすればいいでしょうか.

考えました.

負け試合を見なければいいのです.

負け試合を認識しないことによって, 僕の世界で巨人の勝率が上がります.

そんな手助けをしてくれるbotを作りました.

巨人が勝ちそうになったら通知してくれるbotです.

ジャイアンツ試合実況bot

こんな感じです.

利用法

まず, 野球に関する情報を遮断します.

携帯は持っておきます. Twitterで野球のことをつぶやく人はブロックします.

さきほどのbotは, 巨人の勝率が80%を超えたら通知を出してくれます.

そのタイミングでテレビをつければ, 巨人の勝率が80%になりますね!

やってみた

8月19日の, 巨人vsヤクルトの試合で, 実際にやってみました.

8割を超えたので, 通知がきました. テレビをつけました.

以上です

おまけ

sed 's/giants/hawks/g'とすれば...

全球団のbotが作れますね

甲子園の実況しながら勝率も計算するbotを作りました

甲子園速報bot

高校野球の速報をするTwitterbotを作りました.

ついでに, メジャーリーグの過去試合結果(約80年分)を利用して, 勝率も計算してみました.

こんな感じです.

コメント

データ元

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ボタンをこのブログにつけました.
サイドバーにあります. プロフィールの下にあるボタンです.
押すとメッセージが出ます. 内容に従いましょう.
Yoを起動して, HATAMUにYoしてください.

すると, このブログが更新された時にYoが飛びます.
更新してなくても, たまにYoが飛びます.

Yo

Yoしましょう. 以上です.

Yoボタンの付け方

YoのAPIを取得します. リンク先のサイトで, 色々入力します.
yoapi.justyo.co

少し経つと, メールでAPIキーが送られてきます.
僕の場合は3日かかりました.

APIキーを取得できたら, コマンドライン

curl --data "api_token=送られてきたAPIキー" http://api.justyo.co/yoall/

とすると, 登録したアカウントから全員にYOできます.

応用

適当なタイミングでコマンドを実行することで, Yoが飛ばせます.
サーバーでの計算が終わったらYoするようにすれば, 研究が捗るかもしれません,
朝5時になったら多数回Yoすることで, 早起きできるでしょう.
巨人が点を取ったらYoするスクリプトも書けそうです.

RmdからRコードを抜き出す

メモ用です.

RmdファイルからRコードを抜き出す.

Rのいいところは, Rstudioを使いながら, knitrで文芸的プログラミングができるところです.

Rで文芸的プログラミングがしたい - 300億円欲しい


計算だけなら, 別に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"

purl("ファイル.Rmd")とするだけです.
hoge.Rmdからhoge.Rができました.

追記

変換して実行まで一度にやってしまえばいいんですね.
Rmd2Rというスクリプト


RmdファイルからRコードを抜き出して実行までやってみる

こんな感じにすれば,

./Rmd2R hoge.Rmd
とすることで, Rmdをコマンドラインから簡単に使えますね

やられたらやり返す?

導入

昨日の記事
三者凡退でリズムを作りました - 300億円欲しい
のコメントで,
f:id:gg_hatano:20140612191838p:plain
とありました. ありがとうございます.

気になります. 集計してみました.

点を取られた後の攻撃

味方が点を取られたあとに, 奮起して点を取ってくれたりするかどうかを調べました.

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点でした.

...変わりませんね.

意味はありませんけど, 得点の分布を載せます.
右側が三者凡退直後, 左側がそうでない場合です.
f:id:gg_hatano:20140611161803p:plain

よく分かりません.

結論

投手はとにかく抑えればいいのです. 三者凡退にこだわる必要一切なし.
今後も, 適当な事を言う野球解説者をやっつけていきます.

以上です.