← 記事一覧へ

日本のプロ野球選手の誕生日に偏りはあるのか, を見ます.

メジャーリーガーでは8月生まれが多いことが 分かっています. 米国の少年野球の学年区切りが7月31日で, 8月生まれが学年で最年長になるためです.

日本の学年の区切りは4月2日です. だとすれば, ピークは4月に来るはずです.

library(data.table)
library(dplyr)
library(ggplot2)
library(knitr)

dat <-
  fread("../../data/derived/npb-players.csv") |>
  as_tibble() |>
  mutate(BIRTH = as.Date(birth))

データはプロ野球データFreakから scrape-npb-players.R で取ってきます (12球団の選手一覧). 同じ選手が支配下と育成で二重に載ることがあるので, 選手単位にまとめてから数えます.

players <-
  dat |>
  distinct(name, BIRTH) |>
  filter(!is.na(BIRTH)) |>
  mutate(月 = as.integer(format(BIRTH, "%m")),
         生年 = as.integer(format(BIRTH, "%Y")))

1,068人, 生年は1980年から2007年までです.

1日あたりに直す

2月は28日しかないので, 月ごとの人数をそのまま比べてはいけません. 1日あたりの人数に直し, 全体平均を100とした指数にします.

days_in_month <- c(31, 28.25, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31)

idx <-
  players |>
  count(月, name = "人数") |>
  arrange(月) |>
  mutate(日数 = days_in_month,
         一日あたり = 人数 / 日数,
         指数 = 一日あたり / mean(一日あたり) * 100)

idx |> select(月, 人数, 一日あたり, 指数) |> kable(digits = 2)
人数 一日あたり 指数
1 69 2.23 76.14
2 63 2.23 76.29
3 68 2.19 75.04
4 106 3.53 120.87
5 105 3.39 115.87
6 107 3.57 122.01
7 97 3.13 107.04
8 117 3.77 129.11
9 100 3.33 114.03
10 74 2.39 81.66
11 86 2.87 98.07
12 76 2.45 83.87

8月が最も多く (指数129), 3月が最も少ない (指数75) でした.

idx |>
  ggplot(aes(x = factor(月), y = 指数, fill = 月 %in% 4:7)) +
  geom_col() +
  geom_hline(yintercept = 100, linetype = "dashed") +
  scale_fill_manual(values = c("grey60", "tomato"),
                    labels = c("その他", "学年の前半 (4-7月)"), name = NULL) +
  xlab("誕生月") + ylab("1日あたりの人数 (平均=100)") +
  ggtitle("日本のプロ野球選手の誕生月")

ピークちょうど4月ではありませんでした. 最も多いのは8月です.

ただし形は予想と合っています. 4月から7月が揃って高く, 1月から3月が低い. とくに3月は指数75で, 最大の月の58%しかありません.

日本の学年は4月2日から翌年4月1日までなので, 3月生まれは学年でいちばん年下です. そこが最も少ないというのは, 相対年齢効果の予測どおりです.

4月ではなく8月がピークになった理由は, このデータからは分かりません. 1,068人なので月あたり89人ほどしかなく, 4月 (121) と 8月 (129) の差はこの規模のばらつきに埋もれます.

学年の区切りで並べ替える

4月2日を起点にして, 学年の中で何番目の月かで並べ直します.

idx |>
  mutate(学年内の月順 = (月 - 4) %% 12) |>
  ggplot(aes(x = 学年内の月順, y = 指数)) +
  geom_col(fill = "grey60") +
  geom_smooth(method = "lm", formula = y ~ x, se = FALSE, colour = "tomato") +
  geom_hline(yintercept = 100, linetype = "dashed") +
  scale_x_continuous(breaks = 0:11,
                     labels = c("4月", "5月", "6月", "7月", "8月", "9月",
                                "10月", "11月", "12月", "1月", "2月", "3月")) +
  xlab("学年の区切り(4月2日)からの月数") + ylab("指数") +
  ggtitle("学年内で年上なほど多い")

fit <- lm(指数 ~ I((月 - 4) %% 12), data = idx)
summary(fit)$coefficients |> round(3)
##                 Estimate Std. Error t value Pr(>|t|)
## (Intercept)      127.362      5.647  22.555        0
## I((月 - 4)%%12)   -4.975      0.870  -5.721        0

学年の中で1か月遅く生まれるごとに指数が5.0下がります.

検定

chisq.test(idx$人数, p = days_in_month / sum(days_in_month))
## 
##  Chi-squared test for given probabilities
## 
## data:  idx$人数
## X-squared = 41.081, df = 11, p-value = 2.334e-05

「日数に比例して一様」とは言えません.

月ごとの山は動くが, 前半・後半の差は動かない

月ごとの指数は89人程度で計算しているので, どの月がピークかは標本を変えると簡単に入れ替わります. 学年の前半 (4-9月) と後半 (10-3月) に分けた比率のほうが安定します.

first  <- sum(idx$人数[4:9])
second <- sum(idx$人数[c(10:12, 1:3)])
expected_first <- sum(days_in_month[4:9]) / sum(days_in_month)

prop.test(first, first + second, p = expected_first)
## 
##  1-sample proportions test with continuity correction
## 
## data:  first out of first + second, null probability expected_first
## X-squared = 34.808, df = 1, p-value = 3.639e-09
## alternative hypothesis: true p is not equal to 0.5010267
## 95 percent confidence interval:
##  0.5615331 0.6213193
## sample estimates:
##         p 
## 0.5917603

日数どおりなら50.1%のはずが, 実際は59.2%でした.

この記事はもともと2009-2014年の名鑑1,549人ぶんで書いていました. そのときの前半比率は59.0%で, 今回の59.2%と ほぼ一致します. データを取り直しても同じ数字が出る一方, ピークの月は6月から8月へ動きました. どちらを結論として書くべきかが はっきりします.

日米の比較

学年の区切り 最も多い月 最も少ない月 最大/最小
日本のプロ野球 4月2日 8月 3月 1.72
メジャーリーグ (米国生まれ) 7月31日 8月 6月 1.30

どちらも「学年でいちばん年下になる月」が最も少なくなっています. 日本は3月, 米国は7月です. 区切りが違えば谷の位置もずれる, という形で相対年齢効果が確認できました.

最も多い月のほうは, 米国では区切り直後の8月がきれいに立っていますが, 日本では4月ちょうどではありません. 人数が少ないぶん揺れているのだと思います.

偏りの大きさは日本のほうが目立ちます (1.72倍 対 1.30倍). ただし日本のデータは1,068人と少なく, この比自体もかなりばらつきます. 「日本のほうが強い」と言い切るには足りません.

注意

  • 一般人口の誕生月分布と比べていません. 日本の出生にも季節性がありますが, ここで見た差を説明しきるほどではないと思われます.
  • 1980年から2007年生まれ, 1,068人のデータです. 年代による変化は見ていません.
  • 選手名でまとめているので, 同姓同名は1人として数えています.
  • データは現在のシーズンの12球団名鑑です. 過去年のページは残っていないので, 年代をまたいだ比較はできません.