結論から言うと福岡大学(多浪を重視、OR=1.31)は多浪女性でも医学部合格しやすいかもしれない。ただし女性であることで合格しやすいかは有意差がない。
現役女性に限って言えば、女性で合格しやすいのは三重大学(OR=1.23)、弘前大学(OR=1.34)である。
以前、こんなことをやった。
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 現浪差あり