結論から言うと福岡大学(多浪を重視、OR=1.31)は多浪女性でも医学部合格しやすいかもしれない。ただし女性であることで合格しやすいかは有意差がない。
現役女性に限って言えば、女性で合格しやすいのは三重大学(OR=1.23)、弘前大学(OR=1.34)である。
BubbleChartIDe427b1723cc
以前、こんなことをやった。
mikuhatsune.hatenadiary.com
東京大学のみならず、81医学部についてのデータがあり、かつ、現役世代の18歳から、19〜22歳までの受験者数と合格者数のデータもあるので、
・男女での合格に差があるのか
・年齢別で合格に差があるのか
を前回と同様に複数年度の受験結果を用いてメタアナリシスして、ORを出して二次元プロットして、合否に性差もしくは現役浪人差があるのかないのかを特徴づける。ただし、東京女子医科大学は女性しか受験者かつ合格者がいないので、女性で最大の合格ORだった弘前大学(OR=1.34)より大きい値として適当にOR=1.4 を割り当てた。
ついでにインタラクティブに見れると楽しいので、googlevis を使ってみた。
mikuhatsune.hatenadiary.com
気になる大学を見つけてマウスを合わせると、
・x軸が男女差のOR(男性からみた女性の合格率で、ORが大きい(みぎ)と女性なら合格しやすい、ORが小さい(ひだり)と女性なら合格しにくい)で、y軸が現役浪人のOR(ORが大きい(うえ)と浪人生が合格しやすく、ORが小さい(した)と浪人生が合格しにくい)
・色は男女差、現浪別のORが有意差(0.05)をもつかもたないかで、多重補正はまったく考えていない
・円の大きさはZ score 偏差値(2019医学部偏差値ランキング | 医学部受験バイブル からパクって、山梨大学、自治医科大学、藤田保健衛生大学は適当に67にした)
を表している。
特徴として、医学部受験性は
男女にとらわれず、現役生なら東京大学を受験するのがよさそう(男女OR=0.97、現浪OR=0.18)。
男女にとらわれず、浪人生なら久留米大学(男女OR=0.96、現浪OR=1.63)、鳥取大学(男女OR=1.0、現浪OR=1.64)を受けるのがよさそう。
現役男性は順天堂大学(男女OR=0.58、現浪OR=0.64)、九州大学(男女OR=0.60、現浪OR=0.73)を受けておくのがよさそう。
現役女性は弘前大学(男女OR=1.34、現浪OR=0.75)を受けるのがよさそう。
浪人男性は東北医科薬科大学(男女OR=0.61、現浪OR=2.56)、新潟大学(男女OR=0.68、現浪OR=2.39)、山形大学(男女OR=0.71、現浪OR=2.14)を受けるのがよさそう。
library(meta)
library(googleVis)
dat <- read.csv("data.csv", stringsAsFactors=FALSE)
gokei <- dat[,4] == "合計"
d0 <- dat[gokei, c(3,5,6,8,9)]
private <- dat[gokei,2]
d1 <- cbind.data.frame(d0[,1], mapply(function(z) as.numeric(gsub(",", "", as.character(d0[,z]))), 2:5))
colnames(d1) <- c("Univ", "n.ctrl", "n.trt", "col.ctrl", "col.trt")
u <- as.character(d1$Univ)
idx <- mapply(function(z) c(0,1,3,4) + z, grep("年度", colnames(dat)), SIMPLIFY=FALSE)
d2 <- mapply(function(w) mapply(function(z) as.numeric(gsub(",", "", as.character(dat[gokei, w][,z]))), 1:4), idx, SIMPLIFY=FALSE)
dat1 <- dat[-c(1:2),which(dat[2,]=="計")]
dat1 <- matrix(as.integer(unlist(dat1)), nrow(dat1))
d4 <- mapply(function(z) cbind.data.frame(u, z), d2, SIMPLIFY=FALSE)
for(i in seq(d4)) colnames(d4[[i]]) <- c("Univ", "n.ctrl", "n.trt", "col.ctrl", "col.trt")
ronin <- function(mat){
tmp1 <- apply(matrix(mat[2,], nc=2, byrow=TRUE), 2, rep, each=4)
tmp2 <- do.call(rbind, mapply(function(z) matrix(mat[z,], nc=2, byrow=TRUE), 3:6, SIMPLIFY=FALSE))
i <- c(outer(((1:4)-1)*6, 1:6, "+"))
tmp3 <- cbind(tmp2[i,], tmp1)
colnames(tmp3) <- c("n.trt", "col.trt", "n.ctrl", "col.ctrl")
tmp3
}
d5 <- do.call(rbind.data.frame, mapply(function(z) z[u == "東京大学",], d4, SIMPLIFY=FALSE))
d5$Univ <- paste0(2018:2013, "_", as.character(d5$Univ))
age_idx <- c("19歳", "20歳", "21歳", "22歳")
res <- matrix(0, length(u), 4)
for(i in seq(u)){
d5 <- do.call(rbind.data.frame, mapply(function(z) z[u == u[i],], d4, SIMPLIFY=FALSE))
d5$Univ <- paste0(2018:2013, "_", as.character(d5$Univ))
b5 <- metabin(col.trt, n.trt, col.ctrl, n.ctrl, data=d5, sm="OR", studlab=Univ, comb.fixed=TRUE, comb.random=TRUE, label.e="女性", label.c="男性")
ut <- dat[-c(1:2), 3] == u[i]
x <- ronin(dat1[ut,])
X <- cbind.data.frame("Univ"=c(mapply(function(z) sprintf("%d_%s", z, age_idx), 2018:2013)), x)
b7 <- metabin(col.trt, n.trt, col.ctrl, n.ctrl, data=X, sm="OR", studlab=Univ, comb.fixed=TRUE, comb.random=TRUE, label.c="現役", label.e="浪人")
res[i, ] <- c(b5$pval.random, exp(1)^b5$TE.random, b7$pval.random, exp(1)^b7$TE.random)
}
res[u == "東京女子医科大学", 2] <- 1.4
res[u == "東京女子医科大学", 1] <- 0.00001
hensati <- c(67,64,65,69,65,65,67,65,69,74,71,66,65,67,65,67,65,67,65,70,67,66,72,71,69,65,65,67,69,65,64,65,65,65,69,65,66,64,67,67,65,64,65,65,69,68,69,69,67,66,64,65,67,64,62,67,65,73,68,67,62,66,69,64,66,64,68,64,63,63,64,65,67,69,68,65,66,63,65,66,64)
flag <- 1*(res[,1] < 0.05) + 2*(res[,3] < 0.05) + 1
sig <- c("どちらも非有意", "男女差あり", "現浪差あり", "どちらも有意")[flag]
gdat <- data.frame("Univ"=gsub("大学", "", u), "gender"=res[,2], "age"=res[,4], significance=sig, size=res[,1], Zscore=hensati)
ops <- list(
fontSize=12, height=800, width=800,
vAxis="{title:'← 現役有利 浪人有利 →', fontSize: 20, titleTextStyle: {fontSize: 30, bold: 'true', italic: 'false'}, viewWindow: {min: 0, max: 3}}",
sizeAxis="{minValue: 61, maxValue: 75, maxSize: 15}",
hAxis="{title:'← 男性有利 女性有利 →', fontSize: 20, titleTextStyle: {fontSize: 30, bold: 'true', italic: 'false'}, viewWindow: {min: 0.5, max: 1.5}}",
bubble="{opacity: 0.3, textStyle: {color: 'black', fontSize: 6}}",
legend="{position: 'top', textStyle: {color: 'black', fontSize: 10}}"
)
g <- gvisBubbleChart(gdat, idvar="Univ", xvar="gender", yvar="age", colorvar="significance", sizevar="Zscore", options=ops)
g$html$caption <- NULL
g$html$footer <- NULL
plot(g)
Univ gender age significance
1 北海道 0.7795549 0.8358955 男女差あり
2 旭川医科 1.1072457 1.1124023 どちらも非有意
3 弘前 1.3430755 0.7445803 どちらも有意
4 東北 0.8316471 0.7764137 どちらも非有意
5 秋田 0.9063561 1.2979681 現浪差あり
6 山形 0.7055803 2.1388523 どちらも有意
7 筑波 0.6991179 1.5509685 どちらも有意
8 群馬 0.8081662 1.1168925 どちらも非有意
9 千葉 0.8171945 1.0079015 どちらも非有意
10 東京 0.9743834 0.1760281 現浪差あり
11 東京医科歯科 0.8706480 0.5788984 現浪差あり
12 新潟 0.6808657 2.3894754 どちらも有意
13 富山 0.8421141 1.2412026 現浪差あり
14 金沢 0.7754830 1.0592769 男女差あり
15 福井 1.1072532 1.0803992 どちらも非有意
16 山梨 0.8400773 0.5890478 現浪差あり
17 信州 0.8659979 1.2853796 現浪差あり
18 岐阜 1.2190230 0.4947173 現浪差あり
19 浜松医科 0.9326345 1.2992796 現浪差あり
20 名古屋 0.6822946 0.6171088 どちらも有意
21 三重 1.2290965 0.9026513 男女差あり
22 滋賀医科 0.8513929 1.3432858 現浪差あり
23 京都 0.7048194 0.5555648 どちらも有意
24 大阪 0.8135480 0.9649404 どちらも非有意
25 神戸 0.9414366 0.8969217 どちらも非有意
26 鳥取 1.0010875 1.6347672 現浪差あり
27 島根 1.0373790 0.9665065 どちらも非有意
28 岡山 0.6835727 1.1800753 男女差あり
29 広島 0.9091040 0.8411865 どちらも非有意
30 山口 0.8191789 1.5228979 どちらも有意
31 徳島 1.2005137 0.7149804 現浪差あり
32 香川 0.9456194 1.2559985 現浪差あり
33 愛媛 1.1204252 0.9363107 どちらも非有意
34 高知 0.7014073 1.8211713 どちらも有意
35 九州 0.6010195 0.7278395 男女差あり
36 佐賀 0.9930771 0.9298034 どちらも非有意
37 長崎 0.9388264 1.0893053 どちらも非有意
38 熊本 0.7773319 0.8647244 男女差あり
39 大分 1.1167834 0.5773147 現浪差あり
40 宮崎 0.8924326 1.1936232 現浪差あり
41 鹿児島 0.9719078 1.2574617 現浪差あり
42 琉球 1.1014414 0.6890158 現浪差あり
43 札幌医科 0.9921191 0.6785030 現浪差あり
44 福島県立医科 0.8690277 0.7433259 現浪差あり
45 横浜市立 0.7455896 0.7368872 どちらも有意
46 名古屋市立 0.7994566 1.4448609 どちらも有意
47 京都府立医科 0.7578657 0.9077705 男女差あり
48 大阪市立 0.6544273 1.4000904 どちらも有意
49 奈良県立医科 0.7644644 0.7640460 どちらも有意
50 和歌山県立医科 0.9867701 0.8327582 どちらも非有意
51 岩手医科 0.8444440 1.3800626 どちらも有意
52 東北医科薬科 0.6120065 2.6578989 どちらも有意
53 自治医科 0.8869985 0.7625714 現浪差あり
54 獨協医科 1.0487767 0.9630485 どちらも非有意
55 埼玉医科 0.7333328 1.2052120 男女差あり
56 国際医療福祉 0.7868929 1.2577448 男女差あり
57 杏林 0.9602251 1.2664534 どちらも非有意
58 慶應義塾 0.7083041 0.3754968 どちらも有意
59 順天堂 0.5764011 0.6541914 どちらも有意
60 昭和 0.6339648 0.4714578 どちらも有意
61 帝京 0.9250509 1.1989886 どちらも非有意
62 東京医科 0.7576769 0.7077992 現浪差あり
63 東京慈恵会医科 0.9325814 0.3638655 現浪差あり
64 東京女子医科 1.4000000 0.6583648 どちらも有意
65 東邦 0.8698090 0.5312341 どちらも有意
66 日本 0.6616185 1.0207536 男女差あり
67 日本医科 0.8988065 0.7915679 男女差あり
68 北里 0.9392253 0.6936157 現浪差あり
69 聖マリアンナ医科 0.9096452 0.9156971 どちらも非有意
70 東海 0.9820955 0.7585251 現浪差あり
71 金沢医科 1.0785915 1.1580856 どちらも非有意
72 愛知医科 1.0809097 0.8511029 どちらも非有意
73 藤田保健衛生 0.9524440 0.7914505 どちらも非有意
74 大阪医科 0.7450630 1.1032199 男女差あり
75 関西医科 0.9348929 1.1583467 どちらも非有意
76 近畿 0.8097108 1.2662151 どちらも有意
77 兵庫医科 0.9040168 1.0794900 どちらも非有意
78 川崎医科 1.0692299 1.1115515 どちらも非有意
79 久留米 0.9607759 1.6301744 現浪差あり
80 産業医科 1.1261682 1.0523442 どちらも非有意
81 福岡 1.0771316 1.3134493 現浪差あり