多浪女性だけど医学部に合格したい

結論から言うと福岡大学多浪を重視、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)

# googlevis 用のプロットオプション
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     現浪差あり