群馬大学 | 医学部 | サイトトップ | 医学情報処理演習
Rの組み込みデータinfertは,Trichopoulos et al. (1976) Induced abortion ans secondary infertility. Br J Obst Gynaec, 83: 645-650.で使われているデータである。
アテネ大学の第一産婦人科を受診した続発性の不妊の100人の女性の1人ずつについて同じ病院から年齢,既往出生児数,教育歴をマッチングした健康な(不妊でない)女性2人ずつを対照として選ぶことを目指してサンプリングし,2人の対照が見つかった不妊患者が83人だったので,この患者と対照全員を含むデータである(ただし74組目だけ対照が1人しかデータに含まれていないので,249人でなく248人のデータとなっている。除かれたのはそれまでの自然流産と人工妊娠中絶が2回ずつあった人である)。含まれている変数は以下の通りである。
education: 教育を受けた年数(3水準の要因型) age: 年齢 parity: 既往出生児数 induced: それまでの人工妊娠中絶回数(2は2回以上) case: 不妊の女性が1,対照が0 spontaneous: それまでの自然流産回数(2は2回以上) stratum: マッチングした組の番号 pooled.stratum: プールした層番号このデータに対して,以下のコードによって一般化線型モデルを当てはめた分析を行ったとする。このコードによってどういう分析を行っているか解説し,Rの出力結果を考察せよ。
table(infert$case,infert$age) table(infert$induced,infert$case) table(infert$spontaneous,infert$case) res <- glm(case ~ age+induced+spontaneous, data=infert, family=binomial) summary(res)学籍番号・氏名とともに(注:絶対に忘れないこと!),下のフォームに出力結果からの考察を貼り付けて送信せよ。
1行目から3行目は不妊かどうかと年齢,それまでの人工妊娠中絶回数,それまでの自然流産回数とのクロス集計をしている。
4行目と5行目は不妊かどうかを応答変数(従属変数),年齢とそれまでの人工妊娠中絶回数とそれまでの自然流産回数を説明変数(独立変数)とするロジスティック回帰分析をしている。出力結果は以下の通り。
21 23 24 25 26 27 28 29 30 31 32 34 35 36 37 38 39 40 41 42 44 0 4 4 2 10 10 10 20 8 8 14 10 12 12 10 8 5 6 4 2 4 2 1 2 2 1 5 5 5 10 4 4 7 5 6 6 5 4 3 3 2 1 2 1 0 1 0 96 47 1 45 23 2 24 13 0 1 0 113 28 1 40 31 2 12 24 Call: glm(formula = case ~ age + induced + spontaneous, family = binomial, data = infert) Deviance Residuals: Min 1Q Median 3Q Max -1.6678 -0.8201 -0.5984 0.9251 2.0237 Coefficients: Estimate Std. Error z value Pr(>|z|) (Intercept) -2.40494 0.96380 -2.495 0.0126 * age 0.02154 0.02842 0.758 0.4484 induced 0.43429 0.20663 2.102 0.0356 * spontaneous 1.21446 0.21331 5.693 1.25e-08 *** --- Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 (Dispersion parameter for binomial family taken to be 1) Null deviance: 316.17 on 247 degrees of freedom Residual deviance: 279.04 on 244 degrees of freedom AIC: 287.04 Number of Fisher Scoring iterations: 4
まずクロス集計からわかることを記す。年齢ごとの人数は,サンプルの選び方からいって当然だが,対照群が不妊群のちょうど2倍ずつになっている。それまでの人工妊娠中絶回数も対照群が不妊群のほぼ2倍になっているが,人工妊娠中絶回数が多い女性の方が,若干不妊群の割合が多くなっている。自然流産回数は,明らかに不妊群の方が多い。
このロジスティック回帰分析の結果から,年齢は不妊かどうかに寄与していないが,それまでの人工妊娠中絶も自然流産回数も不妊である確率に有意に寄与していることがわかる。ただし,年齢はマッチングしてあるので,寄与していないのが当然であり,本来は回帰モデルに入れるべきではない。また,人工妊娠中絶回数と自然流産回数が線型に寄与するとすれば,人工妊娠中絶回数が1回増えると不妊の対数オッズが0.434倍になり,自然流産回数が1回増えると不妊の対数オッズが1.214倍になるといえる。
しかし,通常,ロジスティック回帰分析では,リスク因子はカテゴリ化して評価することが多い(線型でないかもしれないので)。この場合も,むしろ次のような分析をすべきである。
dat <- data.frame(case=infert$case, induced=as.factor(infert$induced), spontaneous=as.factor(infert$spontaneous)) res <- glm(case ~ induced+spontaneous, family=binomial, data=dat) summary(res) exp(coef(res)) exp(confint(res))
結果は次の通り
Call: glm(formula = case ~ induced + spontaneous, family = binomial, data = dat) Deviance Residuals: Min 1Q Median 3Q Max -1.6524 -0.8193 -0.5676 0.9318 1.9521 Coefficients: Estimate Std. Error z value Pr(>|z|) (Intercept) -1.7442 0.2882 -6.051 1.44e-09 *** induced1 0.4608 0.3507 1.314 0.188887 induced2 0.8250 0.4321 1.909 0.056206 . spontaneous1 1.2893 0.3342 3.858 0.000115 *** spontaneous2 2.3538 0.4399 5.351 8.75e-08 *** --- Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 (Dispersion parameter for binomial family taken to be 1) Null deviance: 316.17 on 247 degrees of freedom Residual deviance: 279.47 on 243 degrees of freedom AIC: 289.47 Number of Fisher Scoring iterations: 4 (Intercept) induced1 induced2 spontaneous1 spontaneous2 0.1747790 1.5853978 2.2818564 3.6301917 10.5253170 2.5 % 97.5 % (Intercept) 0.09637495 0.2997009 induced1 0.79718579 3.1718524 induced2 0.96929816 5.3320078 spontaneous1 1.89953032 7.0743357 spontaneous2 4.55122350 25.7536828
人工妊娠中絶については回数ゼロの人に比べて1回の人は不妊に1.59倍(95%信頼区間が[0.80, 3.17]),2回以上の人は2.28倍(同じく[0.97, 5.33])と有意ではないが不妊になりやすい傾向があった。自然流産については,回数ゼロの人に比べて1回の人は不妊に3.63倍(95%信頼区間が[1.90, 7.07])なりやすく,2回以上の人は10.5倍(95%信頼区間は[4.55, 25.8])と,不妊リスクが有意に高まっていることがわかる。