<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Pitch単位 on Solving Baseball Blog</title><link>https://ghl-ball.github.io/solving-baseball/categories/pitch%E5%8D%98%E4%BD%8D/</link><description>Recent content in Pitch単位 on Solving Baseball Blog</description><generator>Hugo -- gohugo.io</generator><language>ja</language><lastBuildDate>Tue, 11 Nov 2025 00:00:00 +0000</lastBuildDate><atom:link href="https://ghl-ball.github.io/solving-baseball/categories/pitch%E5%8D%98%E4%BD%8D/index.xml" rel="self" type="application/rss+xml"/><item><title>コマンド力の推定</title><link>https://ghl-ball.github.io/solving-baseball/memo/memo_01/</link><pubDate>Tue, 11 Nov 2025 00:00:00 +0000</pubDate><guid>https://ghl-ball.github.io/solving-baseball/memo/memo_01/</guid><description>&lt;p&gt;コマンド力の推定を捕手の構えという情報なしで行います。&lt;/p&gt;
&lt;p&gt;コマンド力を「目標とした座標に投げられる能力」と定義すると、それの推定に必要なのは投手が当該投球において目標とした座標の推定です。
目標とした座標は捕手の構えと一致することが多いですが、投手も捕手も考えなしに目標座標は決めていないはずです。
ピッチカウント、打者、球種、その投手の特性、点差や塁状況などがそれを決定する要素となっているでしょう。&lt;/p&gt;
&lt;p&gt;本格的なモデルを組まずともこれらの考え方を活かした簡素なコマンド指標を作ることはできます。&lt;/p&gt;
&lt;p&gt;今回実行するにあたり条件とした要素は「ピッチカウント」「球種」「打席の左右」です。
それらの条件を揃えたデータセット内での投球座標の散らばりを見ることでコマンド力の推定を行います。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt; 1
&lt;/span&gt;&lt;span class="lnt"&gt; 2
&lt;/span&gt;&lt;span class="lnt"&gt; 3
&lt;/span&gt;&lt;span class="lnt"&gt; 4
&lt;/span&gt;&lt;span class="lnt"&gt; 5
&lt;/span&gt;&lt;span class="lnt"&gt; 6
&lt;/span&gt;&lt;span class="lnt"&gt; 7
&lt;/span&gt;&lt;span class="lnt"&gt; 8
&lt;/span&gt;&lt;span class="lnt"&gt; 9
&lt;/span&gt;&lt;span class="lnt"&gt;10
&lt;/span&gt;&lt;span class="lnt"&gt;11
&lt;/span&gt;&lt;span class="lnt"&gt;12
&lt;/span&gt;&lt;span class="lnt"&gt;13
&lt;/span&gt;&lt;span class="lnt"&gt;14
&lt;/span&gt;&lt;span class="lnt"&gt;15
&lt;/span&gt;&lt;span class="lnt"&gt;16
&lt;/span&gt;&lt;span class="lnt"&gt;17
&lt;/span&gt;&lt;span class="lnt"&gt;18
&lt;/span&gt;&lt;span class="lnt"&gt;19
&lt;/span&gt;&lt;span class="lnt"&gt;20
&lt;/span&gt;&lt;span class="lnt"&gt;21
&lt;/span&gt;&lt;span class="lnt"&gt;22
&lt;/span&gt;&lt;span class="lnt"&gt;23
&lt;/span&gt;&lt;span class="lnt"&gt;24
&lt;/span&gt;&lt;span class="lnt"&gt;25
&lt;/span&gt;&lt;span class="lnt"&gt;26
&lt;/span&gt;&lt;span class="lnt"&gt;27
&lt;/span&gt;&lt;span class="lnt"&gt;28
&lt;/span&gt;&lt;span class="lnt"&gt;29
&lt;/span&gt;&lt;span class="lnt"&gt;30
&lt;/span&gt;&lt;span class="lnt"&gt;31
&lt;/span&gt;&lt;span class="lnt"&gt;32
&lt;/span&gt;&lt;span class="lnt"&gt;33
&lt;/span&gt;&lt;span class="lnt"&gt;34
&lt;/span&gt;&lt;span class="lnt"&gt;35
&lt;/span&gt;&lt;span class="lnt"&gt;36
&lt;/span&gt;&lt;span class="lnt"&gt;37
&lt;/span&gt;&lt;span class="lnt"&gt;38
&lt;/span&gt;&lt;span class="lnt"&gt;39
&lt;/span&gt;&lt;span class="lnt"&gt;40
&lt;/span&gt;&lt;span class="lnt"&gt;41
&lt;/span&gt;&lt;span class="lnt"&gt;42
&lt;/span&gt;&lt;span class="lnt"&gt;43
&lt;/span&gt;&lt;span class="lnt"&gt;44
&lt;/span&gt;&lt;span class="lnt"&gt;45
&lt;/span&gt;&lt;span class="lnt"&gt;46
&lt;/span&gt;&lt;span class="lnt"&gt;47
&lt;/span&gt;&lt;span class="lnt"&gt;48
&lt;/span&gt;&lt;span class="lnt"&gt;49
&lt;/span&gt;&lt;span class="lnt"&gt;50
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-r" data-lang="r"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nf"&gt;library&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;tidyverse&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;years&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;-&lt;/span&gt; &lt;span class="m"&gt;2021&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="m"&gt;2025&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;Name&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;-&lt;/span&gt; &lt;span class="nf"&gt;read_csv&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;name.csv&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;%&amp;gt;%&lt;/span&gt; &lt;span class="nf"&gt;select&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;Name&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;MLBAMID&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;df&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;-&lt;/span&gt; &lt;span class="nf"&gt;map_dfr&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;years&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="o"&gt;~&lt;/span&gt;&lt;span class="nf"&gt;read_csv&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;paste0&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;.x&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;&amp;#34;.csv&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt; &lt;span class="o"&gt;%&amp;gt;%&lt;/span&gt; &lt;span class="nf"&gt;mutate&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;year&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;.x&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 新しい列を作成&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;df&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;-&lt;/span&gt; &lt;span class="n"&gt;df&lt;/span&gt; &lt;span class="o"&gt;%&amp;gt;%&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nf"&gt;mutate&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;# 打者ごとに正規化する&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;relative_x&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;plate_x&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="m"&gt;0.833&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;relative_z&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;plate_z&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="n"&gt;strike_zone_bottom&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;strike_zone_top&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="n"&gt;strike_zone_bottom&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;pitch_count&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;paste0&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;balls&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;&amp;#34;-&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;strikes&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;%&amp;gt;%&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nf"&gt;select&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;year&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;pitcher_id&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;bat_side&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;pitch_count&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;plate_x&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;plate_z&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;relative_x&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;relative_z&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;pitch_type&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;arm_angle&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# ユークリッド距離的散らばりを計算&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;df_dist&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;-&lt;/span&gt; &lt;span class="n"&gt;df&lt;/span&gt; &lt;span class="o"&gt;%&amp;gt;%&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nf"&gt;group_by&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;pitcher_id&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;pitch_count&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;pitch_type&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;bat_side&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;year&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;%&amp;gt;%&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nf"&gt;mutate&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;mean_x&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;mean&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;plate_x&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;na.rm&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;TRUE&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;mean_z&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;mean&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;plate_z&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;na.rm&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;TRUE&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;distance&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;sqrt&lt;/span&gt;&lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="n"&gt;plate_x&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="n"&gt;mean_x&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="n"&gt;^2&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;plate_z&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="n"&gt;mean_z&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="n"&gt;^2&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;%&amp;gt;%&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nf"&gt;select&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;year&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;pitcher_id&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;bat_side&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;pitch_count&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;pitch_type&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;arm_angle&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;distance&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;%&amp;gt;%&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nf"&gt;ungroup&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 投手ごとのサマリー&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;df_dist_summary&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;-&lt;/span&gt; &lt;span class="n"&gt;df_dist&lt;/span&gt; &lt;span class="o"&gt;%&amp;gt;%&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nf"&gt;group_by&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;year&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;pitcher_id&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;%&amp;gt;%&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nf"&gt;summarize&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;mean_distance&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;mean&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;distance&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;na.rm&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;TRUE&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;sd_distance&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;sd&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;distance&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;na.rm&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;TRUE&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;min_distance&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;min&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;distance&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;na.rm&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;TRUE&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;max_distance&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;max&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;distance&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;na.rm&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;TRUE&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;IQR_distance&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;IQR&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;distance&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;na.rm&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;TRUE&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;p25_distance&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;quantile&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;distance&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="m"&gt;0.25&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;na.rm&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;TRUE&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;p75_distance&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;quantile&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;distance&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="m"&gt;0.75&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;na.rm&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;TRUE&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;pitches&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;n&lt;/span&gt;&lt;span class="p"&gt;(),&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;.groups&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;&amp;#39;drop&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;%&amp;gt;%&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nf"&gt;group_by&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;year&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;%&amp;gt;%&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nf"&gt;mutate&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;pitches_rank&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;percent_rank&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;pitches&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt; &lt;span class="o"&gt;%&amp;gt;%&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nf"&gt;filter&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;pitches_rank&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;=&lt;/span&gt; &lt;span class="m"&gt;0.5&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;%&amp;gt;%&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nf"&gt;ungroup&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;%&amp;gt;%&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nf"&gt;left_join&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;Name&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;by&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;c&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;pitcher_id&amp;#34;&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;&amp;#34;MLBAMID&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;かなり簡単な考え方と計算ですが理論的にはBB%のようなコマンド力を語る際に登場しやすい指標よりもコマンド力を推定するにおいてはノイズは小さくなります。
コマンド関係の指標との相関や2025年の上位下位20投手を以下に示します。&lt;/p&gt;</description></item><item><title>MLB誤審率推移</title><link>https://ghl-ball.github.io/solving-baseball/memo/memo_03/</link><pubDate>Sat, 04 Oct 2025 00:00:00 +0000</pubDate><guid>https://ghl-ball.github.io/solving-baseball/memo/memo_03/</guid><description>&lt;p&gt;フレーミングという捕手の技術と言いますか貢献と言いますか、現代までの野球において決して無視のできない要素があります。&lt;/p&gt;
&lt;p&gt;フレーミングという貢献はストライク・ボール判定が投球座標のみで決まらず、かつその誤差が各要素に分配できる一貫した誤差であることによって存在しています。
当然ではありますが、この貢献は第一にストライク・ボール判定が完全に投球座標で決まるようになれば存在しなくなりますし、第二に一貫した誤差が各要素で観測されないことでも存在しなくなります。&lt;/p&gt;
&lt;p&gt;第一の不存在事由は周知の通り審判の判定精度の上昇とABSの部分的導入で成立に近づいてはいる状態です。
第二については、フレーミング貢献が再認識、定量化された黎明期以降、特にその多くを担っている捕手はフレーミングの鍛錬の質も量も増しているでしょうし、フレーミングが苦手な捕手の出場機会も減っているでしょう。
これは捕手という集団におけるフレーミング貢献の分散の抑制が期待されます。実際にMLBでもNPBでも捕手のフレーミング貢献の分散は縮小傾向にはありそうです。&lt;/p&gt;
&lt;p&gt;という状況を誤審率推移とともに確認してメモ書きとしておきます。&lt;/p&gt;
&lt;p&gt;-&lt;img src="https://ghl-ball.github.io/solving-baseball/images/40.png"
loading="lazy"
alt="誤審率推移"
&gt;&lt;/p&gt;</description></item><item><title>ストライクゾーン改定の影響を受ける打者</title><link>https://ghl-ball.github.io/solving-baseball/memo/memo_04/</link><pubDate>Wed, 24 Sep 2025 00:00:00 +0000</pubDate><guid>https://ghl-ball.github.io/solving-baseball/memo/memo_04/</guid><description>&lt;p&gt;かなり雑ではありますがメモにはこのレベルの雑なものも置いておきます。&lt;/p&gt;
&lt;p&gt;MLBは2026年からABSの導入が決定し、それに伴いストライクゾーンの刷新も行われます。
野球規則に則った現状のストライクゾーンはあくまでも打撃姿勢におけるストライクゾーンですが、いろいろ事情はあるでしょう、2026年以降は身長によってストライクゾーンが定められることが決定しました。
これにより打撃フォームだと、しゃがみ系の打者より突っ立ち系の打者の方がストライクゾーンが小さくなります。
身体的特徴だと、膝下が長い打者より短い選手が、腰位置が低い打者より高い打者が、顔が長い打者より顔が短い打者の方がストライクゾーンが小さくなります。&lt;/p&gt;
&lt;p&gt;そんな感じでストライクゾーン小さくなる打者の上位下位を出してみたという話です。&lt;/p&gt;
&lt;p&gt;-&lt;img src="https://ghl-ball.github.io/solving-baseball/images/41.png"
loading="lazy"
alt="ストライクゾーン改定01"
&gt;
-&lt;img src="https://ghl-ball.github.io/solving-baseball/images/42.png"
loading="lazy"
alt="ストライクゾーン改定02"
&gt;&lt;/p&gt;
&lt;p&gt;Baseball SavantがPitch単位で設定しているストライクゾーンが縦に何cm小さくなるかを計算しています。
ベリンジャーやイエリッチは（身長に対して）極端なストライクゾーンでも有名でしょう。&lt;/p&gt;
&lt;p&gt;ただ注意点として打者の体感として格差が生じるかというと、現状の審判は打者の個別ゾーンに対応できていませんので悪い意味で現行のものと別物にはならないでしょう。
以下に実際の試合のストライク・ボール判定において、ストライク確率が50％となる高さを打者別に推定したソーンとの比較を示します。&lt;/p&gt;
&lt;p&gt;-&lt;img src="https://ghl-ball.github.io/solving-baseball/images/43.png"
loading="lazy"
alt="ストライクゾーン改定03"
&gt;
-&lt;img src="https://ghl-ball.github.io/solving-baseball/images/44.png"
loading="lazy"
alt="ストライクゾーン改定04"
&gt;&lt;/p&gt;
&lt;p&gt;ベリンジャーやイエリッチがこちらのリストに登場しないことからも理論と実態の乖離を窺えるかと思います。
そこも含めて打者へのフィードバックを適切に行わないと、ジャッジが低めの誤審をチャレンジしないとかアルトゥーベが高めの誤審をチャレンジしないとか、そんな状況になる可能性は十分にあります。&lt;/p&gt;</description></item><item><title>Bat Trackingから打者のタイミングを推し量る</title><link>https://ghl-ball.github.io/solving-baseball/memo/memo_05/</link><pubDate>Tue, 23 Sep 2025 00:00:00 +0000</pubDate><guid>https://ghl-ball.github.io/solving-baseball/memo/memo_05/</guid><description>&lt;p&gt;Baseball SavantのBat Trackingに追加されたIntercept Pointから打者のタイミング情報を推し量ってみます。
Intercept Pointはその名の通り、バットとボールの接点（もしくはそれに近い点）であり、基準をホームベースではなく打者に置いたものも取得できます。
打者のタイミングにおいては後者の方が適切ですので今回はこちらを使用します。&lt;/p&gt;
&lt;p&gt;周知の通り、打者はタイミングを投手方向にずらされる、いわゆる泳いだ打撃になるスイングでは「想定より投球が遅い」状態であることが多く、
タイミングを捕手方向にずらされる、いわゆる差し込まれた打撃になるスイングでは「想定より投球が速い」状態であることが多いです。&lt;/p&gt;
&lt;p&gt;投手視点で見ると、そのズレをどちらの方向にどの程度発生させるかが投球評価における構成要素の一つとなります。&lt;/p&gt;
&lt;p&gt;トラッキングデータの対象範囲の拡大が進む現代において、投手の多角的な出力情報はStuff+をはじめとするピッチモデリング指標のような文字通りの予測的指標
（xFIPやSIERAは予測的性能は高いが統計学的に純粋な予測モデルとは言い難い）を生み出しました。
打者側の反応が多角的に見えるBat Trackingは「空振り」や「ファウル」といった結果の構成要素の分解にも役立ちます。&lt;/p&gt;
&lt;p&gt;投球はまず打者のスイングの有無で分岐します。それにより、見逃し時により多くストライクを獲得し、スイング時にどれだけ得点価値の低いイベントを誘発させられるかかという評価軸に分解できます。
そしてスイング時の評価にBat Trackingは活用できます。&lt;/p&gt;
&lt;p&gt;スイング時の投球評価を変化量の想定とのズレを主としたxz平面とタイミングの想定とのズレを主としたy軸に分解します。
今回はそのy軸のズレの話です。&lt;/p&gt;
&lt;p&gt;多数の要因によってy軸のズレは発生しますが必ず考慮しなければならないのが投球コース及びそれに対応するx軸でのIntercept Pointです。
また絶対値を使うとJ.ターナーは常に泳いだ打撃、ゴールドシュミットは常に差し込まれた打撃と評価してしまうので各打者内で標準化します。&lt;/p&gt;
&lt;p&gt;ということでIntercept Point(x)を固定効果として設定し、GAMでIntercept Point(y)の予測をします。
その予測値との差分をTiming Deviationとして評価します。&lt;/p&gt;
&lt;p&gt;以下にTiming Deviationの分布、空振り率、得点価値との関係を示します。&lt;/p&gt;
&lt;p&gt;-&lt;img src="https://ghl-ball.github.io/solving-baseball/images/45.png"
loading="lazy"
alt="Timing Deviationの分布"
&gt;&lt;/p&gt;
&lt;p&gt;納得感はありつつも興味深いのは打者は得点価値（多くは打球価値から生み出される）が最大化されるタイミングではなく空振り率が最小化されるタイミングでスイングをしているという点です。
感覚的ではあるでしょうが、打者はコンタクトを優先的に考え、チャンスがあれば普段より前方の、Bat Speedが最大化しAttack Angleが最適化されるタイミングで捉えるといった感じでしょうか。
また、選球を正しく行うためにはいわゆるチェックポイントを打者側に近づけた方が良いわけで、打球価値が最大化されるタイミングより程度はあれど差し込まれるタイミングの方が合理的でしょう。&lt;/p&gt;
&lt;p&gt;これらの点を踏まえると、投手視点ではただタイミングを打者の基準から外すだけではなく、少し泳ぎ気味のタイミングにあるスイートスポットを避ける投球がより必要になるかと思われます。
この観点では半速球と呼ばれるような主要FastballとBreakingやOffspeedの架け橋となる球種は危険なようにも思えますが、それらの球種はチェックポイントまでに打者が球種を誤認しやすいわけで、
すると今回取り上げなかったxz平面でのズレにつながる話かなとも思います。実際に主要な球種がFFとCHの最強投手スクーバルはxz平面よりy軸のズレが傑出していますし、主要な球種にFCがある最強投手
クロシェはy軸よりxz平面でのズレが傑出しています。&lt;/p&gt;
&lt;p&gt;まだまだラフの段階ではありますが、例えば先ほどの図にBat Trackingの他の要素や球種やピッチカウントといった無視のできない条件も加味していけば、さらに精度高く野球を理解できるかなと思います。&lt;/p&gt;</description></item><item><title>Bat Trackingから投球を分析する</title><link>https://ghl-ball.github.io/solving-baseball/memo/memo_06/</link><pubDate>Sat, 06 Sep 2025 00:00:00 +0000</pubDate><guid>https://ghl-ball.github.io/solving-baseball/memo/memo_06/</guid><description>&lt;p&gt;2025年のYearly Savant UpdateではBat Trackingがさらにその対象範囲を広げました。
打者のスイング情報がより増えたということは投球の分析が深まるということですので、新たに追加された変数を利用して投球の分析を行います。&lt;/p&gt;
&lt;p&gt;投球はまず打者のスイングの有無で分岐します。今回はそのスイング有に対する分析を行います。&lt;/p&gt;
&lt;p&gt;スイング時の投球の基本的な目標は打者が標準とする打点（Intercept Point）とバットの芯からズレることです。
そのズレをxz平面とy軸に分解します。xz平面はSavantだと選手トップページのMovementのやつです。&lt;/p&gt;
&lt;p&gt;-&lt;img src="https://ghl-ball.github.io/solving-baseball/images/63.png"
loading="lazy"
alt="Savant Movement"
&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;この図、人気ですけど見ての通り現実の野球とは違う「平面」であることは忘れたくないですよね&lt;/em&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class="link" href="https://ghl-ball.github.io/solving-baseball/memo/memo_19/" &gt;投球のDeceptionを指標化する&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;以前の記事で紹介したこの指標を使います。&lt;/p&gt;
&lt;p&gt;y軸はいわゆる「奥行き」で、緩急、タイミングが関わってくる視点です。&lt;/p&gt;
&lt;p&gt;こちらはIntercept Point(x)を固定効果として設定し、GAMでIntercept Point(y)の予測、その予測値との差分をTiming Deviationとして指標化します。&lt;/p&gt;
&lt;p&gt;-&lt;img src="https://ghl-ball.github.io/solving-baseball/images/172.png"
loading="lazy"
alt="Savant Movement"
&gt;&lt;/p&gt;
&lt;p&gt;スクーバルを可視化するとこんな感じになります。
FFはより速く、CHはより遅く打者が感じています。&lt;/p&gt;
&lt;p&gt;xz平面のズレとy軸のズレの関係性を示した図が以下になります。&lt;/p&gt;
&lt;p&gt;-&lt;img src="https://ghl-ball.github.io/solving-baseball/images/171.png"
loading="lazy"
alt="Savant Movement"
&gt;&lt;/p&gt;
&lt;p&gt;xz平面のズレはy軸にも表れますし、y軸のズレはxz平面にも表れますのである程度の正の相関がある図になっています。&lt;/p&gt;
&lt;p&gt;スクーバルはxz平面ではなくy軸のズレを主として失点を抑止していることが分かります。またセールのような投球フォームから軌道まで特殊な投手は打者が普段とは全く違ったスイング軌道で対応しようとしていることも示唆されています。&lt;/p&gt;
&lt;p&gt;もっと精査し、得点価値とも結びつけられると、さらに高精度に野球を記述できる観点かと思います。&lt;/p&gt;</description></item><item><title>投球に合わせたスイングをすることのジレンマ</title><link>https://ghl-ball.github.io/solving-baseball/memo/memo_09/</link><pubDate>Sun, 24 Aug 2025 00:00:00 +0000</pubDate><guid>https://ghl-ball.github.io/solving-baseball/memo/memo_09/</guid><description>&lt;ul&gt;
&lt;li&gt;&lt;a class="link" href="https://ghl-ball.github.io/solving-baseball/memo/memo_21/" &gt;スイングの多様性と打球価値について&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;上記の記事で投球に合わせたスイングをすることは打球価値という視点で見るとマイナスに働きやすい可能性を取り上げました。&lt;/p&gt;
&lt;p&gt;&lt;img src="https://ghl-ball.github.io/solving-baseball/images/167.png"
loading="lazy"
alt="q"
&gt;&lt;/p&gt;
&lt;p&gt;ただ野球は非打球イベントもあるのが面白いところです。&lt;/p&gt;
&lt;p&gt;&lt;img src="https://ghl-ball.github.io/solving-baseball/images/168.png"
loading="lazy"
alt="q"
&gt;&lt;/p&gt;
&lt;p&gt;打球価値は一貫したBat Pathの方が、空振り率は多様なBat Pathの方が優れています。&lt;/p&gt;
&lt;p&gt;当てるだけならスイング軌道をその投球に合わせることが有効に働くが、価値の高い打球を生み出すにはスイング軌道が乱されない方が総合的には有利に働く。それっぽい結果ではあるでしょう。&lt;/p&gt;
&lt;p&gt;このような全体傾向を把握したのちにそこから展開して細部を掘っていきたいですね。例えば空振りはカウントによってその価値が変わりますので、カウントによるBat Pathの多様性の差が大きい打者を調べてみるのも面白そうです。&lt;/p&gt;</description></item><item><title>指名打者というポジションを投手は意識するか</title><link>https://ghl-ball.github.io/solving-baseball/memo/memo_10/</link><pubDate>Sun, 10 Aug 2025 00:00:00 +0000</pubDate><guid>https://ghl-ball.github.io/solving-baseball/memo/memo_10/</guid><description>&lt;p&gt;打者のDHペナルティは有名ですが、投手はDHに影響を受けているのでしょうか？&lt;/p&gt;
&lt;p&gt;投手は基本的に強打者に対してその出力を上げています。
例えば2025年に対面したStuff+の最高値はジャッジでした。&lt;/p&gt;
&lt;p&gt;ジャッジという打者情報が投手の警戒度を上げるようにDHというポジションは投手の警戒度を上げるでしょうか。&lt;/p&gt;
&lt;p&gt;&lt;img src="https://ghl-ball.github.io/solving-baseball/images/165.png"
loading="lazy"
alt="q"
&gt;&lt;/p&gt;
&lt;p&gt;こちらは固定効果としてDHか否か、ランダム効果としてそのシーズンの打者を設定したLMMの結果です。&lt;/p&gt;
&lt;p&gt;サンプルサイズの暴力によりDHというポジションが球速を0.01mph程度は上昇させることが示唆されています。
交絡因子となっている可能性もある打順等の効果についても調べてみたいですね。&lt;/p&gt;
&lt;p&gt;&lt;img src="https://ghl-ball.github.io/solving-baseball/images/166.png"
loading="lazy"
alt="q"
&gt;&lt;/p&gt;
&lt;p&gt;ちなみに速球に限定したらその効果が顕著になります。
とは言ってもトリビア程度ですが。&lt;/p&gt;</description></item><item><title>投手の力むポイント</title><link>https://ghl-ball.github.io/solving-baseball/memo/memo_12/</link><pubDate>Sun, 03 Aug 2025 00:00:00 +0000</pubDate><guid>https://ghl-ball.github.io/solving-baseball/memo/memo_12/</guid><description>&lt;p&gt;Arm Angleは投球コースの分布や変化の分布においてかなり重要な要素です。
今回はそれのトリビア程度のテーマを。&lt;/p&gt;
&lt;p&gt;&lt;img src="https://ghl-ball.github.io/solving-baseball/images/163.gif"
loading="lazy"
alt="a"
&gt;&lt;/p&gt;
&lt;p&gt;このGIFはArm Angleごとの各投手の速球の平均球速からの乖離を集計したものです（利き手やピッチカウントは補正済み）。
正直分かりにくいですが、球速が最大化するのは通常より腕が加速したときということなのか所謂引っかけた際に最大化していそうです。&lt;/p&gt;
&lt;p&gt;そして投げおろし型は低めにサイド寄りは対角という傾向はあるかなと思います。&lt;/p&gt;
&lt;p&gt;大きな効果はないかもしれませんが、投球コースの分布や変化の分布も含めArm Angleの適正化は育成面において重要な要素ですので共通する理論を把握していたいものです。&lt;/p&gt;</description></item><item><title>打者が慣れやすい球種</title><link>https://ghl-ball.github.io/solving-baseball/memo/memo_14/</link><pubDate>Sat, 07 Jun 2025 00:00:00 +0000</pubDate><guid>https://ghl-ball.github.io/solving-baseball/memo/memo_14/</guid><description>&lt;p&gt;有名な周回効果について、脇道にそれた話題を。&lt;/p&gt;
&lt;p&gt;周回効果に慣れが関わることはまず間違いないですが、その現象が存在するということが実際には打席によって離散しているとは考えづらいでしょう。&lt;/p&gt;
&lt;p&gt;&lt;img src="https://ghl-ball.github.io/solving-baseball/images/161.png"
loading="lazy"
alt="a"
&gt;&lt;/p&gt;
&lt;p&gt;上図は同打席内において当該球種が2球投げられた際のRun Valueの変化です。&lt;/p&gt;
&lt;p&gt;これを見るとBreaking系の球種の方が打者は慣れによる恩恵を受けやすく、Fastball系、Offspeed系は比較して慣れによる恩恵を受けにくい球種となっています。
大きい変化ほど意外性という面で投手有意に働いている感覚はあります。意外性は見方を変えると慣れによるリスクの高さでもありますので経験則的には腑に落ちる結果となっています。
見事なくらいKCとCU、STとSLの数値が近く面白い結果だなと思いますが、同じFastball系でもFFとSIの差が大きい部分について深堀してみたいとも思いました。&lt;/p&gt;</description></item><item><title>Bat Trackingから打者のズレを可視化する</title><link>https://ghl-ball.github.io/solving-baseball/memo/memo_17/</link><pubDate>Tue, 27 May 2025 00:00:00 +0000</pubDate><guid>https://ghl-ball.github.io/solving-baseball/memo/memo_17/</guid><description>&lt;ul&gt;
&lt;li&gt;&lt;a class="link" href="https://ghl-ball.github.io/solving-baseball/memo/memo_19/" &gt;投球のDeceptionを指標化する&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;上記の記事で紹介した打者の予測投球コースからのズレを可視化してみます。&lt;/p&gt;
&lt;p&gt;&lt;img src="https://ghl-ball.github.io/solving-baseball/images/153.png"
loading="lazy"
alt="a"
&gt;
&lt;img src="https://ghl-ball.github.io/solving-baseball/images/154.png"
loading="lazy"
alt="a"
&gt;
&lt;img src="https://ghl-ball.github.io/solving-baseball/images/155.png"
loading="lazy"
alt="a"
&gt;
&lt;img src="https://ghl-ball.github.io/solving-baseball/images/156.png"
loading="lazy"
alt="a"
&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;少し表記ミスはあります&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;実際のバットの通過点は取得できませんが、Bat Pathからでもこのように野球が記述できるのがセイバーメトリクスの楽しいポイントの一つです。&lt;/p&gt;</description></item><item><title>球種、プラトーン別のDeception</title><link>https://ghl-ball.github.io/solving-baseball/memo/memo_18/</link><pubDate>Sun, 25 May 2025 00:00:00 +0000</pubDate><guid>https://ghl-ball.github.io/solving-baseball/memo/memo_18/</guid><description>&lt;p&gt;-&lt;a class="link" href="https://ghl-ball.github.io/solving-baseball/memo/memo_19/" &gt;投球のDeceptionを指標化する&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Deception Scoreのリーグ平均値を球種、プラトーン別にまとめます。&lt;/p&gt;
&lt;p&gt;&lt;img src="https://ghl-ball.github.io/solving-baseball/images/138.png"
loading="lazy"
alt="a"
&gt;&lt;/p&gt;
&lt;p&gt;Breaking系の球種や速球でもシンカーは「右vs右」や「左vs左」といった同手に対して強く、スプリットやチェンジアップといったOffspeed系の球種はプラトーンによる有利不利が確認できません。&lt;/p&gt;
&lt;p&gt;このような傾向に自身の積み重ねた知識理解から違和感を覚えないか、といったレビューは常にしたいですし、今回で言うとカッターのプラトーン格差の無さの中身や速球と遅球でズレる価値の違いなど、違和感を覚えた箇所への修正的アプローチも積み重ねたいと思います。&lt;/p&gt;</description></item><item><title>Bat Pathと投球コース</title><link>https://ghl-ball.github.io/solving-baseball/memo/memo_20/</link><pubDate>Sat, 24 May 2025 00:00:00 +0000</pubDate><guid>https://ghl-ball.github.io/solving-baseball/memo/memo_20/</guid><description>&lt;p&gt;試合を見ても、各々イメージしていただいても簡単に分かることではありますが、打者は投球コースによってスイングの形状を変えます。&lt;/p&gt;
&lt;p&gt;この現象自体に革新さはありませんが、トラッキングデータの進化により各スイングの形状を測定できるようになった現代ではその現象を革新的に利用できます。&lt;/p&gt;
&lt;p&gt;打者が投球コースに合わせたスイングをするということは、スイングの形状から打者が予測した投球コースを推定できるということです。&lt;/p&gt;
&lt;p&gt;配球戦略という文脈でも投球の質という文脈でも打者の予測からのズレは言わば目標値のような使われ方はされつつも、空振りや打球イベントといった結果からしか語られないジレンマのようなものもありました。&lt;/p&gt;
&lt;p&gt;バットトラッキングはそのジレンマの解消に一歩近づく可能性を秘めています。&lt;/p&gt;
&lt;p&gt;打者ごとに標準化したBat Pathを投球コースで可視化したものが以下になります。&lt;/p&gt;
&lt;p&gt;&lt;img src="https://ghl-ball.github.io/solving-baseball/images/137.png"
loading="lazy"
alt="Bat Pathと投球コース"
&gt;&lt;/p&gt;
&lt;p&gt;綺麗に高めほどフラットに外角ほどフラットになっていることが分かります。
このアプローチに潜むバイアスに対処し、予測投球コースの推定の精度を高められれば特に投手の評価について新たな深みを与えられると思います。&lt;/p&gt;</description></item><item><title>投球のDeceptionを指標化する</title><link>https://ghl-ball.github.io/solving-baseball/memo/memo_19/</link><pubDate>Sat, 24 May 2025 00:00:00 +0000</pubDate><guid>https://ghl-ball.github.io/solving-baseball/memo/memo_19/</guid><description>&lt;p&gt;-&lt;a class="link" href="https://ghl-ball.github.io/solving-baseball/memo/memo_20/" &gt;Bat Pathと投球コース&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;上記の記事のBat Pathから推定した打者の予測投球コースと実際の投球コースのズレを投手指標化してみました。&lt;/p&gt;
&lt;p&gt;&lt;img src="https://ghl-ball.github.io/solving-baseball/images/149.png"
loading="lazy"
alt="q"
&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;単回帰×2による予測投球コースからの乖離&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;打者のズレを指標化してるものですのでもちろん空振りとの相関はある程度確認できます。
そして意外と空振りと独立して語られる打球速度の抑制力ですが、理論的にはバットの芯から外すという共通目的からその程度の差によって生まれる二者ですので空振り率に及ぶほどの相関も見せています。&lt;/p&gt;
&lt;p&gt;&lt;img src="https://ghl-ball.github.io/solving-baseball/images/150.png"
loading="lazy"
alt="q"
&gt;&lt;/p&gt;
&lt;p&gt;次は一貫性と予測性です。
年度間での比較ができるサイズは揃っていないので2024年のデータを投手ごとに分割しそれらの一貫性と予測性を調べました。&lt;/p&gt;
&lt;p&gt;一貫性はこの手の指標ではかなり強いと言えるでしょう。
一貫性がないと次に進めませんので少なくとも打者の予測からズレる力のある程度の一貫性を確認できたのは良かったです。&lt;/p&gt;
&lt;p&gt;予測性もxwOBAconをこの程度予測できるのは強いですがまだ野球の摂理に抗えるほどではないかと思います。&lt;/p&gt;
&lt;p&gt;&lt;img src="https://ghl-ball.github.io/solving-baseball/images/151.png"
loading="lazy"
alt="q"
&gt;
&lt;img src="https://ghl-ball.github.io/solving-baseball/images/152.png"
loading="lazy"
alt="q"
&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;多変量GAMによる予測投球コースからの乖離&lt;/em&gt;&lt;/p&gt;</description></item><item><title>予測スイング率との乖離から投球戦略を考える</title><link>https://ghl-ball.github.io/solving-baseball/memo/memo_24/</link><pubDate>Tue, 08 Apr 2025 00:00:00 +0000</pubDate><guid>https://ghl-ball.github.io/solving-baseball/memo/memo_24/</guid><description>&lt;p&gt;投手と打者の対戦が大きな要素を占める野球において、投手が打者に対してどの程度警戒しているかという視点をたまに見かけます。&lt;/p&gt;
&lt;p&gt;ただ、それをBB％やZone%という結果から推定する方法は、その結果が生成されるまでのプロセス情報が入手できる今の時代では正直ワクワクしません。&lt;/p&gt;
&lt;p&gt;ということで、Pitching+のようなピッチモデリング指標の算出過程を活用します。&lt;/p&gt;
&lt;p&gt;例えばハーパーはZone%や3-0率といった結果からお化けみたいな打撃成績を残していない近年も投手から恐れられている印象を抱きますが、少し視点を変えてみるということです。&lt;/p&gt;
&lt;p&gt;多くのピッチモデリング指標はその算出過程において、投球の特性からスイング率を予測する工程が存在します。この予測スイング率は打者の情報に影響されません。
つまり、打者にとってその予測スイング率との乖離がスイング積極性であり、投手にとってその乖離に対応した予測スイング率の投球をすることに合理性が生まれます。&lt;/p&gt;
&lt;p&gt;&lt;img src="https://ghl-ball.github.io/solving-baseball/images/144.png"
loading="lazy"
alt="q"
&gt;
&lt;em&gt;ちょっとTangoの図っぽくしてみた&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;上記の図は、x軸に予測スイング率、y軸にその予測からの乖離を示したものです。&lt;/p&gt;
&lt;p&gt;例で出したハーパーはZone%と同じように打者の情報を含まない予測スイング率は極端に低いです。しかし、その予測からの乖離もトップクラスに大きく、回帰直線を引くと異常値として目立つほどではないでしょう。
対してソトは予測からの乖離は負の方向に大きく、投手はある程度大胆なアプローチをする合理性が生まれますが実際には予測スイング率もかなり低くなっています。&lt;/p&gt;
&lt;p&gt;&lt;img src="https://ghl-ball.github.io/solving-baseball/images/145.png"
loading="lazy"
alt="q"
&gt;&lt;/p&gt;
&lt;p&gt;上記の図は打者の実際のスイング率と予測スイング率からの乖離の関係です。
もちろんこれらはかなり強く相関しますが、その回帰線からの逸脱具合から歪みのある打者の存在も確認できるかと思います。&lt;/p&gt;
&lt;p&gt;もちろんこのような思考にはピッチモデリング指標を利用しない方法もありますが、結果を補正して目的とした成分を抽出する手法よりその結果が出るまでのプロセス情報から目的とする成分を抽出する方が理論的には美しいと思います。
問題としてはブラックボックス化しやすいことによる万人への解釈性や再現性といったところかと思います。&lt;/p&gt;</description></item><item><title>最強打者の特徴【球速編】</title><link>https://ghl-ball.github.io/solving-baseball/analysis/strongest-hitters-velocity-article/</link><pubDate>Sun, 22 Sep 2024 00:00:00 +0000</pubDate><guid>https://ghl-ball.github.io/solving-baseball/analysis/strongest-hitters-velocity-article/</guid><description>&lt;p&gt;テーマは&lt;strong&gt;最強打者&lt;/strong&gt;について。&lt;/p&gt;
&lt;p&gt;とりあえず見てもらいたいのが以下のヒストグラム。&lt;/p&gt;
&lt;p&gt;&lt;img src="https://ghl-ball.github.io/solving-baseball/images/78.png"
loading="lazy"
alt="MLB球速分布"
&gt;&lt;/p&gt;
&lt;p&gt;今シーズンのMLBの球速分布を示しています。&lt;/p&gt;
&lt;p&gt;速球の山と変化球の山が確認できるかと思います。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;最強打者達はこの山のどのあたりを得意にしているのか&lt;/strong&gt;、（相対的に）&lt;strong&gt;苦手にしているのか&lt;/strong&gt;、といったところに興味が湧きましたので簡単に見ていきます。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;対象としたのは2015年以降（2020年を除く）の規定打席到達打者。&lt;/p&gt;
&lt;p&gt;最強打者は wRC+ が最高の打者でいいとして、n 数の確保のため &lt;strong&gt;95 パーセンタイル以上の wRC+ を持つ打者&lt;/strong&gt;を最強打者の一人として集めました。各シーズン 7、8人ほどですね。&lt;/p&gt;
&lt;p&gt;そして各シーズンで&lt;strong&gt;球速帯をそれぞれ投球数が等しくなるように六分割&lt;/strong&gt;します。&lt;/p&gt;
&lt;p&gt;その&lt;strong&gt;各球速帯におけるRun Valueの結果&lt;/strong&gt;を比較してみました。（wRC+ で打者を選んでおいてRVを調べる？？まあ、RVで強打者を選ぶのも結果球のみを分析の対象にするのも微妙でしょう）&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th style="text-align: center"&gt;球速帯（パーセンタイル）&lt;/th&gt;
&lt;th style="text-align: center"&gt;全体&lt;/th&gt;
&lt;th style="text-align: center"&gt;〜16.7&lt;/th&gt;
&lt;th style="text-align: center"&gt;16.7〜33.3&lt;/th&gt;
&lt;th style="text-align: center"&gt;33.3〜50.0&lt;/th&gt;
&lt;th style="text-align: center"&gt;50.0〜66.7&lt;/th&gt;
&lt;th style="text-align: center"&gt;66.7〜83.3&lt;/th&gt;
&lt;th style="text-align: center"&gt;83.3〜&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style="text-align: center"&gt;RV / 100（パーセンタイル）&lt;/td&gt;
&lt;td style="text-align: center"&gt;96.2&lt;/td&gt;
&lt;td style="text-align: center"&gt;79.9&lt;/td&gt;
&lt;td style="text-align: center"&gt;76.4&lt;/td&gt;
&lt;td style="text-align: center"&gt;79.7&lt;/td&gt;
&lt;td style="text-align: center"&gt;82.0&lt;/td&gt;
&lt;td style="text-align: center"&gt;80.6&lt;/td&gt;
&lt;td style="text-align: center"&gt;76.5&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;em&gt;Data : Baseball Savant&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;一番の傑出力を見せたのは球速帯が 50〜66.7パーセンタイルの範囲。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;この球速帯は遅めのフォーシーム、シンカーが大部分を占め、残りを速めのカッターやスライダー、チェンジアップなどが占めています。&lt;/p&gt;
&lt;p&gt;対して、&lt;strong&gt;相対的に対応を苦手としているのが豪速球蔓延る球速帯&lt;/strong&gt;と&lt;strong&gt;スライダー、チェンジアップ、スプリットが大部分を占める球速帯&lt;/strong&gt;です。&lt;/p&gt;
&lt;p&gt;一応例として、今シーズンの球速帯グループの分布を示しておきます。&lt;/p&gt;
&lt;p&gt;&lt;img src="https://ghl-ball.github.io/solving-baseball/images/79.png"
loading="lazy"
alt="MLB球速分布（球速帯別）"
&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Data : Baseball Savant&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;最強打者達は上図で言う黄色の部分を得意とし、その両隣もそこそこに、ただもう一段階離れたら流石に対応力は落ちてしまうよと、でも遅すぎる球速帯なら対応できるよと、そんなところでしょうか。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;今回は軽めの note にしたかったので早々に切り上げますけど、面白い見方だなと思いました（絶対他に似たようなことやってる人いますけどね）。&lt;/p&gt;
&lt;p&gt;例えば年々高速化しているのが野球界ですから、次の最強打者は上図で言うオレンジを得意としている打者なんじゃないかとかね。&lt;/p&gt;
&lt;p&gt;豪速球に強いと良い意味で話題になりやすいけど、実際どうなん？とかね。&lt;/p&gt;
&lt;p&gt;今回はパーセンタイルで見ましたけど、絶対値で範囲を区切った見方もすればもう少し深い考察もできるでしょうし。&lt;/p&gt;</description></item><item><title>投手のギアチェンジについて</title><link>https://ghl-ball.github.io/solving-baseball/analysis/gear_change/</link><pubDate>Fri, 07 Jun 2024 00:00:00 +0000</pubDate><guid>https://ghl-ball.github.io/solving-baseball/analysis/gear_change/</guid><description>&lt;p&gt;ピッチング、特に先発投手のピッチングについて語る場面でよく出くわす&amp;quot;ギアチェンジ&amp;quot;という概念。この概念が事実としてあるのか、あるのならその中身も覗いてみたいと思います。&lt;/p&gt;
&lt;h2 id="ギアチェンジは存在するか"&gt;ギアチェンジは存在するか
&lt;/h2&gt;&lt;p&gt;野球におけるギアチェンジ、解説者や選手、ファンの使い方としては「(重要な場面に)常時は全開でない(先発)投手が出力を上げて抑えにいくこと」でしょうか。&lt;/p&gt;
&lt;p&gt;ちなみに大御所野球ゲーム、パワプロにもギアチェンジという特殊能力がありますが、その発動条件・効果は&lt;a class="link" href="https://gamerch.com/pawapuro2022/364469" target="_blank" rel="noopener"
&gt;Gamerch&lt;/a&gt;によると以下です。&lt;/p&gt;
&lt;p&gt;&lt;img src="https://ghl-ball.github.io/solving-baseball/images/2.png"
loading="lazy"
alt="パワプロのギアチェンジ能力"
&gt;&lt;/p&gt;
&lt;p&gt;ではギアチェンジの存在を数字でしっかり拾えるかどうか調べてみます。&lt;/p&gt;
&lt;h3 id="ピンチにおける出力の変化"&gt;ピンチにおける出力の変化
&lt;/h3&gt;&lt;p&gt;パワプロでは球速以外にもコントロールや変化球のキレ(曲がり始めの遅速)も上がる能力とされていますが、コントロールとか変化球のキレの話は複雑かつ高度ですし、解説者やファンがギアチェンジを測る指標としてよく使われるのが球速なのでここを調べます。&lt;/p&gt;
&lt;p&gt;ギアチェンジによる球速変化の比較対象はその試合の球速です。「試合序盤の150キロ前後のストレートから大幅に球速を上げていました」という上記記事の表現もよく聞きます。&lt;/p&gt;
&lt;p&gt;ということでトラックマン、ホークアイによる測定値が記録されている2017年以降のMLBを対象に、その試合における平均球速との差を球種ごとに算出し、それをアウトカウント、塁状況別にまとめました。&lt;/p&gt;
&lt;p&gt;&lt;img src="https://ghl-ball.github.io/solving-baseball/images/3.png"
loading="lazy"
alt="アウトカウント・塁状況別の球速変化"
&gt;&lt;/p&gt;
&lt;p&gt;いろいろ興味深い箇所はありますが、状況によって投手の出力が変わっているのは間違いなさそうです。&lt;/p&gt;
&lt;p&gt;ランナーが先の塁にいるほど、アウトが増えるほど出力が上がっています。気になるところはランナーが二盗可能な状況では他の似た状況と比して出力が上がっていないところ。盗塁の警戒から出力に最適化されたフォームで投げられていないのでしょうか。&lt;/p&gt;
&lt;p&gt;他は、満塁より三塁・二三塁の方が多少ではありますが出力が上がっているところ。満塁より四球による損失は小さく、内野ゴロのアウト期待値の違いから三振の相対的失点抑止力が二三塁の方が大きくなるからとかが考えられますかね。&lt;/p&gt;
&lt;p&gt;では先発投手とリリーフ投手でこの傾向に違いはあるのでしょうか。&lt;/p&gt;
&lt;p&gt;&lt;img src="https://ghl-ball.github.io/solving-baseball/images/4.png"
loading="lazy"
alt="先発とリリーフの球速変化比較"
&gt;&lt;/p&gt;
&lt;p&gt;ピンチな場面ほど出力が上がる基本的な傾向は似ていますが、やはり長いイニングを投げることも求められる先発の方が出力の変化の幅が大きいです。&lt;/p&gt;
&lt;p&gt;先発が無死無走者を基準にすると二死満塁で1.38km/h出力が上がりますが、リリーフ投手は二死三塁で0.65km/hの上昇が最大です。&lt;/p&gt;
&lt;p&gt;ここで先ほど語った、満塁と三塁・二三塁での出力変化の違いの話にも進展が見えます。この状況を比べたとき、先発はランナーの数ほど出力が上がっていますがリリーフはむしろ逆です。&lt;/p&gt;
&lt;p&gt;試合の序盤・中盤を投げる先発ほどランナーの数(失点期待値)を、終盤を投げるリリーフほど失点確率の方を意識しがちなことは推定できるので、失点確率の方に比重を置くと四球を出しても(制球を落としても)三振を獲りにいく(出力を上げる)という行動の合理性はリリーフの方が高くなることも推測できます。&lt;/p&gt;
&lt;p&gt;何にせよ、ギアチェンジという言葉が使われる理由は数字で確認できました。&lt;/p&gt;
&lt;p&gt;ではざっくりとした&amp;quot;ピンチ&amp;quot;という表現ではなく、得点期待値の観点からも見てみます。(ここからは主に先発投手を対象にします)&lt;/p&gt;
&lt;p&gt;&lt;img src="https://ghl-ball.github.io/solving-baseball/images/5.png"
loading="lazy"
alt="得点期待値と球速変化"
&gt;
&lt;em&gt;得点期待値はBaseball Savant(2017~2023)から算出&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;状況による出力変化を合理たらしめるものは、状況による重要度の変化です。&lt;/p&gt;
&lt;p&gt;ということで、まずは定番の得点期待値と照らし合わせてみますが、基本的にアウトを重ねるほど出力が上がる投手に対して、得点期待値はアウトを重ねるほど下がるので目立った相関はありません(R = 0.17)。&lt;/p&gt;
&lt;p&gt;ただこれは、得点期待値という複数打席(その状況からイニング終了まで)の数字と単打席の出力変化を照らし合わせるのがそもそも頭の悪い話です。&lt;/p&gt;
&lt;p&gt;そこで単純ではありますが、状況そのままにアウトを増やしたときの抑止得点期待値と照らし合わせてみます。例えば無死満塁(得点期待値 2.32)から三振なり内野フライなりで一死満塁(得点期待値 1.59)にできたら得点期待値は0.74(四捨五入誤差)下がりますねということです。&lt;/p&gt;
&lt;p&gt;この観点から見ると、アウトを重ねるほど出力を上げることの非合理さも目立たず、そこそこの関係性が窺えます(R = 0.57)。また後述しますが、投手は球数を重ねるほど出力は下がるので、終わりが見えない無死より終わりの見える二死ほど出力が上がるのもイニング単位で考えると多少の合理性は見えてくるのではないのかなとも思います。&lt;/p&gt;
&lt;h3 id="場面の重要度における出力の変化"&gt;場面の重要度における出力の変化
&lt;/h3&gt;&lt;p&gt;さっきと同じじゃね？と思うかもしれませんが、失点を減らす観点での場面の重要度と試合に勝利するという観点での重要度は違います。&lt;/p&gt;
&lt;p&gt;1回裏 5 - 0 の二死二三塁と9回裏 1 - 0 の二死二三塁では1つのアウトや1つのヒットが勝敗結果に及ぼす影響度が違うことは分かりやすいかと思います。&lt;/p&gt;
&lt;p&gt;先ほど失点の観点からシチュエーションを24通りに分けましたが、勝利の観点ではさらに点差、イニング、先攻後攻によっても分けられます。&lt;/p&gt;
&lt;p&gt;そこで、そのような場面ごとの重要度を測る指標「&lt;a class="link" href="https://tht.fangraphs.com/crucial-situations/" target="_blank" rel="noopener"
&gt;Leverage Index&lt;/a&gt;」を利用します。Leverage Index (LI)を一言で説明すると、「勝利確率の振れ幅」でしょうか。大差のついた最終回の1打席では勝利確率の増減は0%に近くても、接戦なら1打席で20%程度の増減もあるのが野球です。その振れ幅の平均との比較で場面の重要度を測っています。英単語&amp;quot;leverage&amp;quot;はてこの原理という意味でもよく使われるので連想もしやすいかなと思います。&lt;/p&gt;
&lt;p&gt;LI は得点期待値と同じくsavantの変数から算出しました。FanGraphsのLIとの比較がこちら。&lt;/p&gt;
&lt;p&gt;&lt;img src="https://ghl-ball.github.io/solving-baseball/images/6.png"
loading="lazy"
alt="LI比較"
&gt;&lt;/p&gt;
&lt;p&gt;FGが具体的にどの期間を対象にLIを算出しているのか知りませんが、とりあえず2008~2023を対象に算出したLIで十分そうです。&lt;/p&gt;
&lt;p&gt;ではLIと出力変化について見ていきます。&lt;/p&gt;
&lt;p&gt;まずは単純にLIごとの球速の変化がこちら。&lt;/p&gt;
&lt;p&gt;&lt;img src="https://ghl-ball.github.io/solving-baseball/images/7.png"
loading="lazy"
alt="LIと球速変化"
&gt;&lt;/p&gt;
&lt;p&gt;順当にレバレッジが高い場面ほど出力が上がっています。がここには罠があります。&lt;/p&gt;
&lt;p&gt;というのも投手はイニングを追うごとに球速を落とします。&lt;/p&gt;
&lt;p&gt;&lt;img src="https://ghl-ball.github.io/solving-baseball/images/8.png"
loading="lazy"
alt="イニング別球速変化"
&gt;&lt;/p&gt;
&lt;p&gt;なんだかんだ言って元気のある初回に元気のある球を投げています。がここにも少し罠があります。&lt;/p&gt;
&lt;p&gt;というのもイニングによってLIが違います。&lt;/p&gt;
&lt;p&gt;&lt;img src="https://ghl-ball.github.io/solving-baseball/images/9.png"
loading="lazy"
alt="イニング別LI"
&gt;&lt;/p&gt;
&lt;p&gt;接戦であるほど、終盤であるほどレバレッジは高くなりますが先発投手の場合、打者が慣れてきて投手が疲れてくる終盤に続投を決断されるのはレバレッジの低い大差のついた場面が多くなります。&lt;/p&gt;
&lt;p&gt;という風に投手のイニング、レバレッジごとの球速変化というのはイニングやレバレッジがお互いに作用している可能性があるのです。&lt;/p&gt;
&lt;p&gt;なのでLIによる球速変化を調べるにあたってイニングによる補正も行います。具体的には各LIを0.25ごとに丸めてイニングを揃えて比較し、データ数によって加重平均します。その結果がこちら。&lt;/p&gt;</description></item><item><title>MLBの審判は本当にルーキーに厳しいのか</title><link>https://ghl-ball.github.io/solving-baseball/analysis/mlb-umpire-rookie-bias/</link><pubDate>Wed, 21 Feb 2024 00:00:00 +0000</pubDate><guid>https://ghl-ball.github.io/solving-baseball/analysis/mlb-umpire-rookie-bias/</guid><description>&lt;p&gt;「MLBの審判はルーキーに厳しい」という言説をたまに目にします。MLBを見ていなかった時に自分もそのイメージを持っていました。特に野手のストライク・ボール判定でその風潮があるという個人的イメージに基づいて今回は野手を調べます。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="ルーキーの誤審率"&gt;ルーキーの誤審率
&lt;/h2&gt;&lt;p&gt;まずは単純にルーキー群と非ルーキー群の誤審率から。&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th style="text-align: center"&gt;year&lt;/th&gt;
&lt;th style="text-align: center"&gt;rookies&lt;/th&gt;
&lt;th style="text-align: center"&gt;non-rookies&lt;/th&gt;
&lt;th style="text-align: center"&gt;difference&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style="text-align: center"&gt;2008&lt;/td&gt;
&lt;td style="text-align: center"&gt;16.1%&lt;/td&gt;
&lt;td style="text-align: center"&gt;15.2%&lt;/td&gt;
&lt;td style="text-align: center"&gt;0.87%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: center"&gt;2009&lt;/td&gt;
&lt;td style="text-align: center"&gt;15.1%&lt;/td&gt;
&lt;td style="text-align: center"&gt;14.6%&lt;/td&gt;
&lt;td style="text-align: center"&gt;0.46%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: center"&gt;2010&lt;/td&gt;
&lt;td style="text-align: center"&gt;14.4%&lt;/td&gt;
&lt;td style="text-align: center"&gt;13.5%&lt;/td&gt;
&lt;td style="text-align: center"&gt;0.81%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: center"&gt;2011&lt;/td&gt;
&lt;td style="text-align: center"&gt;13.6%&lt;/td&gt;
&lt;td style="text-align: center"&gt;13.4%&lt;/td&gt;
&lt;td style="text-align: center"&gt;0.21%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: center"&gt;2012&lt;/td&gt;
&lt;td style="text-align: center"&gt;12.8%&lt;/td&gt;
&lt;td style="text-align: center"&gt;12.9%&lt;/td&gt;
&lt;td style="text-align: center"&gt;-0.12%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: center"&gt;2013&lt;/td&gt;
&lt;td style="text-align: center"&gt;12.0%&lt;/td&gt;
&lt;td style="text-align: center"&gt;12.1%&lt;/td&gt;
&lt;td style="text-align: center"&gt;-0.07%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: center"&gt;2014&lt;/td&gt;
&lt;td style="text-align: center"&gt;11.7%&lt;/td&gt;
&lt;td style="text-align: center"&gt;11.6%&lt;/td&gt;
&lt;td style="text-align: center"&gt;0.14%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: center"&gt;2015&lt;/td&gt;
&lt;td style="text-align: center"&gt;11.3%&lt;/td&gt;
&lt;td style="text-align: center"&gt;11.1%&lt;/td&gt;
&lt;td style="text-align: center"&gt;0.14%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: center"&gt;2016&lt;/td&gt;
&lt;td style="text-align: center"&gt;10.5%&lt;/td&gt;
&lt;td style="text-align: center"&gt;10.7%&lt;/td&gt;
&lt;td style="text-align: center"&gt;-0.13%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: center"&gt;2017&lt;/td&gt;
&lt;td style="text-align: center"&gt;9.8%&lt;/td&gt;
&lt;td style="text-align: center"&gt;9.5%&lt;/td&gt;
&lt;td style="text-align: center"&gt;0.28%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: center"&gt;2018&lt;/td&gt;
&lt;td style="text-align: center"&gt;8.7%&lt;/td&gt;
&lt;td style="text-align: center"&gt;8.7%&lt;/td&gt;
&lt;td style="text-align: center"&gt;-0.02%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: center"&gt;2019&lt;/td&gt;
&lt;td style="text-align: center"&gt;8.5%&lt;/td&gt;
&lt;td style="text-align: center"&gt;8.3%&lt;/td&gt;
&lt;td style="text-align: center"&gt;0.15%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: center"&gt;2020&lt;/td&gt;
&lt;td style="text-align: center"&gt;8.6%&lt;/td&gt;
&lt;td style="text-align: center"&gt;8.1%&lt;/td&gt;
&lt;td style="text-align: center"&gt;0.42%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: center"&gt;2021&lt;/td&gt;
&lt;td style="text-align: center"&gt;8.2%&lt;/td&gt;
&lt;td style="text-align: center"&gt;7.8%&lt;/td&gt;
&lt;td style="text-align: center"&gt;0.43%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: center"&gt;2022&lt;/td&gt;
&lt;td style="text-align: center"&gt;7.4%&lt;/td&gt;
&lt;td style="text-align: center"&gt;7.5%&lt;/td&gt;
&lt;td style="text-align: center"&gt;-0.08%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: center"&gt;2023&lt;/td&gt;
&lt;td style="text-align: center"&gt;7.4%&lt;/td&gt;
&lt;td style="text-align: center"&gt;7.1%&lt;/td&gt;
&lt;td style="text-align: center"&gt;0.27%&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;em&gt;ルーキーとルーキー以外の誤審率比較　誤審数/見逃し数&lt;/em&gt;&lt;/p&gt;</description></item></channel></rss>