要約
2022年度の東大生の身長分布を予測すると、次の分布になりました。女子学生が少ないですね…

ちなみに慶應について同様のシミュレーションを行うと、次のようになりました。

全体像
(1)問題の構造
問いを「東大生の身長はどんな分布なのか?」と設定します。ただし「東大生の身長のデータそのものは手に入らない」という制約条件を加えます。この問いは
①大学生の身長分布は
②東大生とは
③大学生の中でも東大生の身長分布とは
と分解できます。
(2)前提の選択
①②を前提として選択します。
(3)論点の選択
③を論点として選択します。
(4)付録一覧
冗長さを避けて、可読性を上げるために、以下の内容は付録に回します。
「慶應義塾大学、早稲田大学、上智大学、東京工業大学、一橋大学の身長分布」「Rコード」
前提
①大学生の身長分布は
身長の伸びは大学になるとほぼ止まるので
・大学生男子の身長分布≒17歳男子の身長分布
・大学生女子の身長分布≒17歳女子の身長分布
と考えていいでしょう。令和3年度の学校保健統計調査によると
・17歳男子:平均170.8cm、標準偏差5.90
・17歳女子:平均158.0cm、標準偏差5.39
です。これが正規分布に従うとすると、下図になります。(←別記事「身長はどんな分布をしているのか?」)

②東大生の男女学生数
2022年度の東京大学の学部生は
・学生数:13962
・男子学生数:11160(79.9%)
・女子学生数:2802(20.1%)
です。
方法
論点は「東大生の身長分布は?」でしたが、データがないので正確にはわからないです。
そこで、東大生一人一人が性別ごとの17歳の身長分布に従うと考えて、乱数を発生させるシミュレーションをします。
結果
東大生の男女それぞれが17歳の分布に従うと仮定すると、身長の分布は下図になりました。平均身長は167.16(黒線)でした。

考察
(1)結論
東大には女子が少ないので、左すそが伸びた身長分布になりました。
(2)妥当性評価
前提評価
男女別に分けて考えたのはGoodです。
成長期に寝不足になっているだろう東大生は同世代よりも平均的に身長が低いと思うので、17歳と身長分布が同じと考えたのは、Badです。
方法評価
一人一人について乱数を発生させるシミュレーションをして、視覚的に導いたのはGoodです
複数回のシミュレーションをして、結果があまり変わらないかを確かめなかったのはBadです。
結論評価
140cmや200cmの人はほぼいないと思うので、そういったかなり珍しい数値が出てないのはGoodです。
(3)意義
乱数を発生させるモンテカルロ・シミュレーションの練習になります。
また、付録に載せた他大の身長分布と比較すると、いかに東大に女子学生が少ないのかわかります。
付録:他大の身長分布
慶應
2022年度の慶應義塾大学の学部生は
・学生数:28641
・男子学生数:18286(63.8%)
・女子学生数:10355(36.2%)
です。男女それぞれが17歳の分布に従うと仮定すると、身長の分布は下図になりました。平均166.16(黒線)でした。

早稲田
2021年度の早稲田大学の学部生は
・学生数:38685
・男子学生数:24066(62.2%)
・女子学生数:14619(37.8%)
です。男女それぞれが17歳の分布に従うと仮定すると、身長の分布は下図になりました。平均165.94(黒線)でした。

上智
2021年度の上智大学の学部生は
・学生数:12233
・男子学生数:4721(38.6%)
・女子学生数:7512(61.4%)
です。男女それぞれが17歳の分布に従うと仮定すると、身長の分布は下図になりました。平均163.00(黒線)でした。

東工大
2021年度の東京工業大学の学部生は
・学生数:4858
・男子学生数:4246(87.4%)
・女子学生数:612(12.6%)
です。男女それぞれが17歳の分布に従うと仮定すると、身長の分布は下図になりました。平均身長は169.20(黒線)でした。

一橋
2021年度の一橋大学の学部生は
・学生数:4364
・男子学生数:3113(71.3%)
・女子学生数:1228(28.7%)
です。男女それぞれが17歳の分布に従うと仮定すると、身長の分布は下図になりました。平均身長は167.04(黒線)でした。

付録:Rコード
シミュレーションは、R言語を用いて行いました。R言語については「しまうまのRでデータ分析入門」をご覧ください。
美しい図示のため、パッケージとしてggplot2を用いました。
#パッケージの呼び出し。未インストールならインストール!
library(ggplot2)
シミュレーションと図示↓
#打ち込み部分
population_size <- 10000 #学生数を入力。例えば、10000
female_size <- 3000 #女子学生数を入力。例えば、3000
#母集団作成
x <- rep(NA, population_size)
male_d <- rep(NA, population_size)
for(i in 1:population_size){
x[i] <- ifelse(i < female_size,rnorm(1,158.0,5.39) , rnorm(1,170.8,5.90))
male_d[i] <- ifelse(i < female_size,"女", "男")
}
#データフレーム作成
data0 <- data.frame(x,male_d)
#ヒストグラム作図
ggplot(data0, aes( x = x ,fill=male_d)) +
geom_histogram(bins=40,position = "stack",colour="white",alpha=0.8)+
xlab("身長") +
ylab ("度数") +
ggtitle ("?大生の身長のヒストグラム(予測)") +
geom_vline(xintercept = mean(data0[data0$male_d=="男" ,]$x),col="blue")+
geom_vline(xintercept = mean(data0[data0$male_d=="女" ,]$x),col="red")+
geom_vline(xintercept = mean(data0$x),col="black")+
theme_grey(base_family = "HiraKakuPro-W3")
#平均の計算
mean(data0$x)
コメント欄 お気軽にコメントをお寄せください!