大学進学率
大学進学率は都道府県・性別によってかなり違うという話題を見かけたが、描かれていた散布図のアスペクト比(縦横比)が1ではなく、見にくかったので、描きなおすことにした。
まずデータは最新(2023年)の学校基本調査。学校基本調査 / 令和5年度 初等中等教育機関・専修学校・各種学校 卒業後の状況調査 卒業後の状況調査票(高等学校 全日制・定時制)(Excelファイル名 sy0281.xlsx)がそれっぽい。
import numpy as np import matplotlib.pyplot as plt 都道府県 = ["北海道", "青森", "岩手", "宮城", "秋田", "山形", "福島", "茨城", "栃木", "群馬", "埼玉", "千葉", "東京", "神奈川", "新潟", "富山", "石川", "福井", "山梨", "長野", "岐阜", "静岡", "愛知", "三重", "滋賀", "京都", "大阪", "兵庫", "奈良", "和歌山", "鳥取", "島根", "岡山", "広島", "山口", "徳島", "香川", "愛媛", "高知", "福岡", "佐賀", "長崎", "熊本", "大分", "宮崎", "鹿児島", "沖縄"] 男計 = np.array([18311, 5013, 4872, 9034, 3584, 4515, 7418, 11993, 8161, 8041, 27147, 23403, 47684, 31651, 8465, 4214, 4737, 3388, 3862, 8641, 8177, 15307, 29857, 7098, 6003, 10595, 33229, 20659, 5294, 3757, 2275, 2824, 8202, 10896, 5081, 2769, 4039, 5115, 2763, 19703, 3697, 5535, 7261, 4716, 4702, 6708, 6832]) 男大学等 = np.array([9582, 2562, 2177, 4987, 1615, 2092, 3523, 6745, 4567, 4423, 17716, 14705, 33743, 21573, 4505, 2226, 2729, 2081, 2379, 4393, 4887, 8889, 18454, 3840, 3691, 7625, 22523, 13535, 3311, 2089, 1116, 1356, 4453, 6833, 2157, 1548, 2259, 2712, 1433, 11025, 1640, 2486, 3279, 2300, 2135, 2765, 2961]) 女計 = np.array([18064, 4791, 4732, 8680, 3407, 4252, 7076, 11294, 7642, 7500, 25299, 22417, 49128, 30998, 8008, 4094, 4639, 3279, 3406, 8116, 7947, 14317, 29860, 7010, 5732, 10764, 33186, 20749, 5047, 3532, 2315, 2688, 7620, 10738, 4899, 2733, 3949, 4875, 2649, 19492, 3443, 5398, 6746, 4427, 4427, 6620, 6796]) 女大学等 = np.array([9167, 2681, 2392, 4798, 1709, 2190, 3742, 6297, 4418, 4455, 16169, 13937, 36720, 21076, 4228, 2548, 2920, 2098, 2070, 4702, 4794, 8085, 19058, 3884, 3540, 7973, 22363, 14232, 3361, 2069, 1273, 1400, 4567, 7149, 2527, 1731, 2402, 2911, 1598, 11892, 1778, 2811, 3586, 2472, 2299, 3422, 3346]) 男進学率 = 男大学等 / 男計 女進学率 = 女大学等 / 女計 plt.scatter(男進学率, 女進学率) plt.axis("scaled") plt.axis([0.4, 0.76, 0.4, 0.76]) plt.xlabel("大学等進学率 男") plt.ylabel("大学等進学率 女") plt.plot([0.4, 0.76], [0.4, 0.76]) for x, y, s in zip(男進学率, 女進学率, 都道府県): plt.text(x, y, s)
女のほうが進学率が高くなってしまった。これは「大学等」に短大が含まれるためのようだ。
改めて探し直し。e-Statで「学校基本調査」で検索し、令和5年度→初等中等教育機関・専修学校・各種学校→卒業後の状況調査→卒業後の状況調査票(高等学校 全日制・定時制)の285番「都道府県別大学・短期大学等への進学者数」がそれっぽい。パーマリンクは学校基本調査 / 令和5年度 初等中等教育機関・専修学校・各種学校 卒業後の状況調査 卒業後の状況調査票(高等学校 全日制・定時制)(Excelファイル名 sy0285.xlsx)。
こちらの計(男・女)は進学者の計のようなので、計はさきほどのものを使い、「大学(学部)」(男・女)の数を拾い出す:
男大学 = np.array([9410, 2430, 2053, 4834, 1552, 2011, 3441, 6689, 4514, 4347, 17590, 14540, 33572, 21394, 4379, 2154, 2680, 2060, 2309, 4226, 4778, 8741, 18276, 3704, 3625, 7494, 22260, 13389, 3234, 2065, 1025, 1308, 4403, 6791, 2094, 1504, 2215, 2635, 1393, 10699, 1612, 2436, 3200, 2152, 2067, 2630, 2873]) 女大学 = np.array([8022, 2166, 2010, 4110, 1353, 1769, 2990, 5759, 3875, 3855, 14565, 12737, 35408, 19651, 3654, 2092, 2490, 1783, 1777, 3871, 4101, 7241, 17475, 3295, 3104, 7374, 20037, 13018, 2937, 1750, 1011, 1173, 3909, 6503, 2046, 1538, 2015, 2470, 1337, 10043, 1453, 2287, 3038, 1709, 1747, 2196, 2966]) 男進学率 = 男大学 / 男計 女進学率 = 女大学 / 女計 plt.plot(男進学率, 女進学率, "o") plt.axis("scaled") plt.axis([0.32, 0.73, 0.32, 0.73]) plt.xlabel("大学進学率 男") plt.ylabel("大学進学率 女") plt.plot([0.32, 0.73], [0.32, 0.73], lw=1) for x, y, s in zip(男進学率, 女進学率, 都道府県): plt.text(x, y, s)
関連する散布図はいろいろ描けそう。例えば接種率とコロナで使った可住地人口密度(対数目盛):
可住地人口密度 = [234.7, 385.8, 330.4, 730.9, 301.5, 373.7, 437.7, 719.4, 648.4, 852, 2843.7, 1761, 9792.9, 6252.6, 490.1, 566.5, 817.6, 712.9, 849.8, 635.2, 898.6, 1325.4, 2527.1, 864.9, 1081.7, 2200.5, 6619.7, 1964.1, 1554.6, 829.5, 617.2, 518.9, 851.8, 1213.3, 795.6, 720.6, 950.7, 800.3, 600.2, 1848.3, 610.2, 792.2, 625.1, 630.9, 580, 483.6, 1242.9] for x, y, z, s in zip(可住地人口密度, 男進学率, 女進学率, 都道府県): plt.plot([x, x], [y, z], "k", lw=1) plt.text(x, y, s) plt.plot(可住地人口密度, 男進学率, "o") # ブルー plt.plot(可住地人口密度, 女進学率, "o") # オレンジ plt.xscale("log") plt.xlabel("可住地人口密度") plt.ylabel("大学進学率")