Hiroki Matsui
2015/1/21
元理学療法士→現在は大学教員
スキル:大規模観察データのハンドリング&統計解析
興味:医療のOutcome Research
また、演習用ドキュメントとデータとハンドアウトを圧縮したファイルが 必要な方はお申し出下さい。
割合の比較
| x | col1 | col2 |
|---|---|---|
| row1 | a | b |
| row2 | c | d |
95%信頼区間
| x | col1 | col2 |
|---|---|---|
| row1 | a | b |
| row2 | c | d |
\( P_a = \frac{a}{a+b} \), \( P_c = \frac{c}{c+d} \)
リスク差 (Rusk Difference) \[ RD = \hat{RD} \pm 1.96SE \] \[ SE = \sqrt{\frac{P_a(1-P_a)}{a+b}+\frac{P_c(1-P_c)}{c+d}} \]
リスク比 (Risk Ratio) \[ log(RR) = log(\hat{RR}) \pm 1.96SE \] \[ SE=\sqrt{\frac{1}{a} - \frac{1}{a+b} + \frac{1}{c} - \frac{1}{c+d}} \]
オッズ比 (Odds Ratio) \[ log(OR) = log(\hat{OR}) \pm 1.96SE \]\[ SE=\sqrt{\frac{1}{a} + \frac{1}{b} + \frac{1}{c} + \frac{1}{d}} \]
\( \chi^2 \) test with R
| x | col1 | col2 |
|---|---|---|
| row1 | 14 | 8 |
| row2 | 4 | 17 |
x <- matrix(c(14, 8, 4, 17), ncol=2, byrow=T)
chisq.test(x)
Pearson's Chi-squared test with Yates' continuity correction
data: x
X-squared = 7.0406, df = 1, p-value = 0.007968
fisher.test(x)
Fisher's Exact Test for Count Data
data: x
p-value = 0.005089
alternative hypothesis: true odds ratio is not equal to 1
95 percent confidence interval:
1.56789 39.54979
sample estimates:
odds ratio
7.051895
オッズ比の解釈
臨床的解釈
\( NNT = \frac{1}{RD} = \frac{1}{EER - UER} \)
\( = \frac{1}{(OR-1)\times UER} + \frac{OR}{(OR-1)\times(1-UER)} \)
\( EER:Exposed Event Propotion, UER:Unexposed Event Propotion \)
一人アウトカムが増えるには何人治療(曝露)を受けなければならないか。 Number needed to be exposed(NNE) とか呼び方は色々あるのでシチュエーションに合わせて使いわけ。
多変量回帰(一般線形モデル) \[ Y = \beta_0 + \beta_1x_1 + \eta \] \[ Y = \{y|0,1\} \]
summary(lm(y~x_1))
Call:
lm(formula = y ~ x_1)
Residuals:
Min 1Q Median 3Q Max
-0.65470 -0.17852 -0.01393 0.16550 0.74639
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 0.497231 0.008032 61.90 <2e-16 ***
x_1 0.073363 0.001368 53.63 <2e-16 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 0.254 on 998 degrees of freedom
Multiple R-squared: 0.7424, Adjusted R-squared: 0.7422
F-statistic: 2876 on 1 and 998 DF, p-value: < 2.2e-16
Logistic Function からLogistic regression へ
Logistic regression とOdds Ratio
年齢(連続変数)の場合年齢が1単位増加した場合のオッズ比を算出できる。
\( \beta \)の信頼区間の出し方などはソフトウェアに任せましょう。
Logistic regression には大きく2つの使いどころがある。
この二つは、似ているようで注意すべき点が異なる。
そのため自分がどちらの使い方をしているのか意識しておく必要がある。
因果推論モデル
例えば
予測モデル
例えば
train_data <- read.csv("http://www.ats.ucla.edu/stat/data/binary.csv")
summary(train_data)
admit gre gpa rank
Min. :0.0000 Min. :220.0 Min. :2.260 Min. :1.000
1st Qu.:0.0000 1st Qu.:520.0 1st Qu.:3.130 1st Qu.:2.000
Median :0.0000 Median :580.0 Median :3.395 Median :2.000
Mean :0.3175 Mean :587.7 Mean :3.390 Mean :2.485
3rd Qu.:1.0000 3rd Qu.:660.0 3rd Qu.:3.670 3rd Qu.:3.000
Max. :1.0000 Max. :800.0 Max. :4.000 Max. :4.000
Call:
glm(formula = admit ~ gre + gpa + rank, family = binomial(logit),
data = train_data)
Deviance Residuals:
Min 1Q Median 3Q Max
-1.6268 -0.8662 -0.6388 1.1490 2.0790
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -3.989979 1.139951 -3.500 0.000465 ***
gre 0.002264 0.001094 2.070 0.038465 *
gpa 0.804038 0.331819 2.423 0.015388 *
rank2 -0.675443 0.316490 -2.134 0.032829 *
rank3 -1.340204 0.345306 -3.881 0.000104 ***
rank4 -1.551464 0.417832 -3.713 0.000205 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 499.98 on 399 degrees of freedom
Residual deviance: 458.52 on 394 degrees of freedom
AIC: 470.52
Number of Fisher Scoring iterations: 4
Logistic Regression はコマンド一つで簡単に実施できる。 しかし、注意しておくべき点がいくつかある。
イベント数が極めて少ない場合等で、\( \beta \)の推計値が極めて不安定になる。
| Sex=1 | Treat=0 | Treat=1 | Treat=2 |
|---|---|---|---|
| death=0 | 123 | 246 | 150 |
| death=1 | 5 | 0 | 10 |
対応
独立変数が連続変数の場合、従属変数との関係は線形であることを仮定している。
例えば、上記の場合推計した\( \beta \)はOutcome に対する因子の効果を正しく推計していない。
確認
対応
交互作用:変数の組み合わせでOutcome との関連が異なる変数があるかどうか。
例えば
交互作用項は二つの変数の積であらわされる。 \[ logit(p) = \beta_0 + \beta_1 x_1 + \beta_2 x_2 +\beta_3 x_1*x_2 \]
交互作用の解釈 \[ logit(p) = \beta_0 + \beta_1 x_1 + \beta_2 x_2 +\beta_3 x_1*x_2 \]
変数間の相関があまりに強いと\( \beta \) の推計値が安定しなくなる。予測値にはあまり影響しない。
確認
対応
モデルがそのデータをどの程度うまく表しているか?
因果推論モデル
予測モデル作成時はさらに以下を確認する。
モデルの 内的妥当性 および、 外的妥当性 を検証する。
過剰適合
内的妥当性
今回作成したモデルが過剰にデータにフィットしていないか確認する。
外的妥当性
今回作成したモデルが他のデータにフィットしているか確認する。
さらに、報告する際には以下を明記する。
今まで存在する知見などから、全ての共変量を網羅する。
Odds Ratio はReferenceとの関連で表される。
どの変数を、どのように投入するかがモデル構築において極めて重要
個々の測定がクラスター単位で似通ってくる。
対応
リンク先のDAGにおいて調整すべき因子は何か?