300億円欲しい

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

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

よく分かりません.

結論

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

以上です.

打者1巡目は良い投手

打者1巡目はちゃんと抑えてくれる投手. いますね.
今回は, 打者1巡目と2巡目以降で成績が大きく変わる投手をピックアップしたいです.

いわゆる, 立ち上がりの悪さ...みたいなものを, 客観的に評価したいです.

MLBの試合結果に関するデータがあるので, さっそくチェックしてみます.
投手の成績を, 打順1巡目とそれ以降に分けて集計, 確認してみます.

打者1巡目とそれ以降の被打率比較

とりあえず投手全体の成績を見てみます.
100イニング以上投げた先発投手を抽出.
1巡目の被打率と2巡目以降の被打率を集計しました.

onecycle hit atbat average
1 TRUE 7844 31712 0.2474
2 FALSE 15557 60325 0.2579

打順1巡目の場合, 被打率は.2474,
打順2巡目以降は, 被打率は.2579.

打者1巡すると, 被打率は1分くらい悪化しています.

要因はいろいろあるでしょうから, 特にコメントしません.

全体の成績の様子を見てみます.

打者1巡目とそれ以降の被打率比較

$x$軸が打者1巡目の被打率,
$y$軸が打者2巡目以降の被打率です.
100イニング以上投げた先発投手について, 被打率をプロットしました.

f:id:gg_hatano:20140508223024p:plain

$y = x$ の線を引いています.
点が線より上側にいれば, 2巡目以降の方が打たれる, ということです.
線よりも上にいる投手のほうが多いですね.
2巡目以降の方が打たれる, ということでしょう.

次に, 個別の成績を確認します.

打者1巡すると, 被打率が悪くなる投手ランキング.

name not_first first diff
1 Charlie Morton 0.30 0.20 -0.10
2 A.J. Griffin 0.26 0.17 -0.09
3 Jake Peavy 0.27 0.18 -0.09
4 Zach McAllister 0.29 0.20 -0.08
5 Matt Garza 0.28 0.20 -0.08

打者1巡すると, 被打率が良くなる投手ランキング

name not_first first diff
1 Martin Perez 0.24 0.32 0.08
2 Gerrit Cole 0.23 0.30 0.07
3 Chris Tillman 0.22 0.29 0.07
4 Kevin Correia 0.27 0.34 0.06
5 Jacob Turner 0.24 0.30 0.06


被打率. よく分かりません.

打者1巡目とそれ以降のK/BB比較

K/BBを見ればいい気がしました.
三振数/四球数で得られる指標です.
立ち上がりの悪さ, みたいなものが見えるかもしれません.
本場メジャーを唸らせた、田中将大投手の「K/BB」とは - NAVER まとめ

また集計してグラフにしました.
$x$軸が打者1巡目のK/BB,
$y$軸が打者1順目以降のK/BBです.
100イニング以上投げた先発投手について, K/BBをプロットしました.

f:id:gg_hatano:20140508230943p:plain
$y = x$ の線を引いています.
点が線より上側にいれば, 2巡目以降の方がK/BBが悪くなる, ということです.
線よりも下にいる投手のほうが多いです.
打者1巡目の方が, 安定した投球ができる選手が多い, ということでしょう.

少し意外な結果です. 立ち上がりが悪い投手がもっと多いと思ってました.

次に, 個別の成績を確認します.

打者1巡すると, K/BBが悪くなる投手ランキング.

name not_first first diff
1 Matt Harvey 4.22 9.62 5.40
2 Joe Blanton 2.16 6.50 4.34
3 Randall Delgado 2.42 6.60 4.18
4 Bruce Chen 1.65 4.40 2.75
5 Travis Wood 1.42 4.00 2.58

打者1巡すると, K/BBが良くなる投手ランキング

name not_first first diff
1 Chris Tillman 3.29 1.64 -1.65
2 Cliff Lee 6.77 5.21 -1.56
3 Corey Kluber 4.13 2.73 -1.40
4 Stephen Strasburg 3.51 2.12 -1.39
5 Anibal Sanchez 4.06 2.86 -1.20

ストラスバーグの立ち上がりが悪い, というのは, なんとなく分かる気がします.

感想

よく分からん.
日本の投手のデータを使って集計してみたい