02 「重回帰分析」の入門
DESCRIPTION
心理・医学系研究者のためのデータ解析環境Rによる統計学の研究会http://blue.zero.jp/yokumura/Rhtml/session05.html での発表資料です。TRANSCRIPT
「重回帰分析」の入門MULTIPLE LINEAR REGRESSION
2012年4月7日
リウマチ膠原病内科 吉田和樹
公益社団法人日本心理学会
第5回「心理・医学系研究者のための による統計学の研究会」
本日の発表内容
回帰分析とは?
よく使われる回帰分析、他の分析との関係
重回帰分析の原理とモデルの仮定
交互作用とは?
Rでの重回帰分析、仮定の検証、交互作用の入れ方
回帰REGRESSIONとは?
t検定やANOVAは群間に差があるかどうかを検定する。
相関係数は2つの変数の関連
の強さをみる。
回帰では一つ以上の変数の値からアウトカムを予測する。
●
●●
●
●
●
●
●
●●●
●
●
●
●
●
●
●
●
●
●
●
●
0 5 10 15 20
0.0
0.5
1.0
1.5
2.0
data(thuesen)
blood.glucose
short.velocity
●
●●
●
●
●
●
●
●●●
●
●
●
●
●
●
●
●
●
●
●
●
0 5 10 15 20
0.0
0.5
1.0
1.5
2.0
data(thuesen)
blood.glucose
short.velocity
モデル式で考える
Rで使われるモデルの表記の方法
アウトカム変数 ~ 説明変数A
アウトカム変数 ~ 説明変数A + 説明変数B + 説明変数C
アウトカム変数 ~ 説明変数A + 説明変数B + A:B
SCALES/尺度について
Ratio scale/比尺度: 絶対温度, 身長, 体重, 回数
Interval scale/間隔尺度: 摂氏温度
Ordinal scale/順序尺度: 癌のステージ
Nominal scale/名義尺度: 疾患の有無, 都道府県
Stevens SS. On the Theory of Scales of Measurement. Science 1946;103:677-80.
連続変数 VS 離散変数
離散変数
連続変数無限に値がある
飛び飛び
Continuous
variable
Discrete
variable
Ratio
Interval
Nominal
Ordinal
ContinuousD
iscrete
Kleinbaum et al
Ratio
Interval
Nominal
Ordinal
ContinuousD
iscrete
Kleinbaum et al
身長 体重回数絶対温度
摂氏温度
出身都道府県
癌のステージ
さいころの目
疾患の有無
テニスの世界ランキング
性別
華氏温度
log変換年齢
各種手法とモデル式
t-test: 間隔/比尺度 ~ 名義尺度(2グループ)
ANOVA: 間隔/比尺度 ~ 名義尺度(≥3グループ)
ANCOVA: 間隔/比尺度 ~ 名義(≥3) + 間隔/比 + ...
Correlation: 間隔/比尺度 ~ 間隔/比尺度
Linear regression: 間隔/比尺度 ~ Any + Any + ...
アウトカム変数の種類
アウトカム変数の例
二変量解析 多変量解析
間隔/比尺度 血圧, 体重, 温度相関係数, 回帰分析, t
検定, ANOVA重回帰分析, ANOVA
二値名義尺度 死亡, 癌発症,
ICU入室χ2検定, Fisher’s, t検定, 傾向のχ2検定, Mann-Whitney
ロジスティック回帰分析
順序尺度 疾患のstage,
症状の重症度傾向のχ2検定, Mann-
Whittney, Spearman相関係数Proportional odds
regression
名義尺度(>2値)死亡原因,
がんの発生部位χ2検定, ANOVA,
Kruskal-WallisMultinomial logistic
regression
time to outcome死亡までの時間,
癌発症までの時間Log-rank検定 比例ハザードモデル
回数 感染の回数,
入院回数Poisson回帰分析, negative
binomial regression
Poisson回帰分析, negative
binomial regression
発生率 新規感染症の発生率,
交通事故の発生率z scores
Poisson回帰分析, negative
binomial regression
Katz MH. Multivariable Analysis.
重回帰分析の仕組み
単回帰分析の仕組み
library(ISwR)よりdata(thuesen)
心筋収縮速度 ~ 血糖(mmol/L)とのデータ。
これを線形関数(一次関数)で説明(近似)し、回帰直線(regression line)を引きたい。
●
●●
●
●
●
●
●
●●●
●
●
●
●
●
●
●
●
●
●
●
●
0 5 10 15 20
0.0
0.5
1.0
1.5
2.0
data(thuesen)
blood.glucose
short.velocity
●
●●
●
●
●
●
●
●●●
●
●
●
●
●
●
●
●
●
●
●
●
0 5 10 15 20
0.0
0.5
1.0
1.5
2.0
data(thuesen)
blood.glucose
short.velocity
単回帰分析の仕組み
yi = α + βxi + εi
α: 切片 (intercept)
β: 係数(regression coefficient, slope)
εi: 残差(residuals), N(0, σ2)の正規分布, 説明できない誤差
傾き一次関数
●
●●
●
●
●
●
●
●●●
●
●
●
●
●
●
●
●
●
●
●
●
0 5 10 15 20
0.0
0.5
1.0
1.5
2.0
data(thuesen)
blood.glucose
short.velocity
単回帰分析の仕組み
残差の平方和
を最小にするようなα, βを選ぶ。
least square method 最小二乗法
共分散の式の分子
分散の式の分子
重回帰分析の仕組み
y = α + β1x1 + β2x2 + β3x3 + ε (3変数の場合)
同様に実測値と予測値の差の二乗の合計(残差の平方和)を最小化するβj
βjが偏回帰係数(partial regression coefficient)
xjが単独で 1 上昇するときのyの変化量である
http://online.stat.psu.edu/online/development/stat501/08multiple/07multiple_matrix.html
行列計算で解かれる
β0 β1
β2 β3
よく使われる回帰分析
重回帰分析: “lm()”
ロジスティック回帰分析: “glm(family=binomial)”
比例ハザードモデル: “coxph()”
ポアソン回帰分析: “glm(family=poisson)”
→ いろいろあるが使い分けはアウトカム変数の型による。
アウトカム変数の種類
アウトカム変数の例
二変量解析 多変量解析
間隔/比尺度 血圧, 体重, 温度相関係数, 回帰分析, t
検定, ANOVA重回帰分析, ANOVA
二値名義尺度 死亡, 癌発症,
ICU入室χ2検定, Fisher’s, t検定, 傾向のχ2検定, Mann-Whitney
ロジスティック回帰分析
順序尺度 疾患のstage,
症状の重症度傾向のχ2検定, Mann-
Whittney, Spearman相関係数Proportional odds
regression
名義尺度(>2値)死亡原因,
がんの発生部位χ2検定, ANOVA,
Kruskal-WallisMultinomial logistic
regression
time to outcome死亡までの時間,
癌発症までの時間Log-rank検定 比例ハザードモデル
回数 感染の回数,
入院回数Poisson回帰分析, negative
binomial regression
Poisson回帰分析, negative
binomial regression
発生率 新規感染症の発生率,
交通事故の発生率z scores
Poisson回帰分析, negative
binomial regression
Katz MH. Multivariable Analysis.
アウトカム変数の変形
Linear regression: Y = α + β1x1 + β2x2 + β3x3
Logistic regression: ln(p/1-p) = ln(Pr(Y=1) / Pr(Y=0)) = α + β1x1 + β2x2 + β3x3
Poisson regression: ln(Y) = α + β1x1 + β2x2 + β3x3
Cox regression: ln(h(t) / h0(t)) = α + β1x1 + β2x2 + β3x3
モデルの仮定と検証
モデルの仮定x軸のどの値においてもyの値は
正規分布(Normality)かつ分散
が等しく(Homoscedasticity)、
お互いに独立(Independence)。
(t検定やANOVAの仮定と同じ)
xが増えるとyは直線的に増える
(Linearity)
残差(Residuals)を評価
wikipedia
交互作用とは
参考: Gordis, Epidemiology
交互作用
Interaction
2と3をあわせて7になったり、逆に4になったりするのが交互作用!!
数学的な交互作用モデルは生物学的な相互作用を必ずしも意味しない
イメージ
運動や食事に気をつけていない人は平均寿命が65歳だった運動のみをしている人は平均寿命が70歳だった健康な食事のみをしている人は平均寿命が70歳だった
じゃあ、両方とも気をつけている人はどうか?
数式化:交互作用無し
運動や食事に気をつけていない人は平均寿命が65歳だった運動のみをしている人は平均寿命が70歳だった
健康な食事のみをしている人は平均寿命が70歳だった
予測平均寿命 = 65 + 運動の有無 * 5 + 健康な食事の有無 * 5
有り = 1, 無し = 0とする
60
65
70
75
80
運動なし 運動あり
食事だめ群
食事よい群
交互作用があると
例1: 運動をして健康な食事をしている人は寿命がいずれでもない人とより15年長かった → positive interaction
例2: 運動をして健康な食事をしている人は寿命がいずれでもない人とより7年長かった → negative interaction
60
65
70
75
80
運動なし 運動あり
食事だめ群
食事よい群
60
65
70
75
80
運動なし 運動あり
食事だめ 食事よい
予測平均寿命 = 65 + 5*運動 + 5*食事 + 5*運動*食事
両方1のときだけ有効な交互作用項
80で予想した75より高い
60
65
70
75
80
運動なし 運動あり
食事だめ 食事よい
60
65
70
75
80
運動なし 運動あり
食事だめ 食事よい
予測平均寿命 = 65 + 5*運動 + 5*食事 - 3*運動*食事
両方1のときだけ有効な交互作用項
72で予想した75より低い
予想される値とは何か?
- +
- 3.0 9.0
+ 15.0 ?
Risk factor A
Risk
factor
B
ADDITIVE MODEL
- +
- 3.0 9.0
+ 15.0 21.0
Risk factor A
Risk
factor
B
+6
+12
+18
足し算モデル
MULTIPLICATIVE MODEL
- +
- 3.0 9.0
+ 15.0 45.0
Risk factor A
Risk
factor
B
×3
×5
×15
かけ算モデル
交互作用と尺度の関係
名義尺度A * 名義尺度B の時: 場合分けになり2×2表になる
間隔/比尺度A * 名義尺度B の時: 2本の傾きの異なるグラフ
間隔/比尺度A * 間隔/比尺度B の時: 傾きが連続的に変化する面
Dalgaard
間隔/比尺度 * 名義尺度の交互作用の場合
交互作用があると
傾きも変わる
交互作用がないと
切片のみ変化して
平行移動
名義尺度
X軸: 間隔/比尺度
いつ交互作用を検討するか
データを見る前にどの交互作用を検討するか決めておけ!
a priori, based on:
Clinical relevance: 結果が世の中に役に立つものを!
Plausibility: 原理的にあり得るものを!
Grobbee
やり過ぎは禁物
急性心筋梗塞が疑われた患者でaspirin(抗血小板薬)とstreptokinase(血栓溶解薬)の効果を検討したISIS-2 study
(1980)
Aspirinは生命予後を改善した!
しかし、星座ごとに検討すると双子座と天秤座の患者ではaspirinで予後が悪化。
星座はaspirinの効果に対する交互作用をもつ!Grobbee
でやってみる
GINZBERG
car パッケージのGinzbergデータセット
82名の被検者での下記の3つの連続変数データ
adjsimp: 単純性。何でも白黒つけようとする傾向。
adjfatal: 運命論。運命に対して人は無力と考える傾向。
adjdep: ベックの抑うつ自己評価尺度。
data(Ginzberg)pairs(Ginzberg[,4:6])
## Model without interactionlm.ginz <- lm(data = Ginzberg, adjdep ~ adjsimp + adjfatal)summary(lm.ginz)
Call:lm(formula = adjdep ~ adjsimp + adjfatal, data = Ginzberg)
Residuals: Min 1Q Median 3Q Max -0.70946 -0.25204 -0.05741 0.21882 1.15001
Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) 0.2492 0.1054 2.365 0.020501 * adjsimp 0.3663 0.1004 3.649 0.000471 ***adjfatal 0.3845 0.1004 3.829 0.000256 ***---Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 0.3812 on 79 degrees of freedomMultiple R-squared: 0.4332,! Adjusted R-squared: 0.4188 F-statistic: 30.19 on 2 and 79 DF, p-value: 1.823e-10
## Model without interactionlm.ginz <- lm(data = Ginzberg, adjdep ~ adjsimp + adjfatal)summary(lm.ginz)
Call:lm(formula = adjdep ~ adjsimp + adjfatal, data = Ginzberg)
Residuals: Min 1Q Median 3Q Max -0.70946 -0.25204 -0.05741 0.21882 1.15001
Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) 0.2492 0.1054 2.365 0.020501 * adjsimp 0.3663 0.1004 3.649 0.000471 ***adjfatal 0.3845 0.1004 3.829 0.000256 ***---Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 0.3812 on 79 degrees of freedomMultiple R-squared: 0.4332,! Adjusted R-squared: 0.4188 F-statistic: 30.19 on 2 and 79 DF, p-value: 1.823e-10
adjdep = 0.2492 + 0.3663*adjsimp + 0.3845*adjfatal
## Model with interactionlm.ginz.int <- lm(data = Ginzberg, adjdep ~ adjsimp + adjfatal + adjsimp:adjfatal)summary(lm.ginz.int)
Call:lm(formula = adjdep ~ adjsimp + adjfatal + adjsimp:adjfatal, data = Ginzberg)
Residuals: Min 1Q Median 3Q Max -0.58251 -0.23705 -0.05099 0.17981 1.21560
Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) -0.1366 0.2023 -0.676 0.501319 adjsimp 0.7736 0.2083 3.714 0.000381 ***adjfatal 0.7218 0.1811 3.987 0.000150 ***adjsimp:adjfatal -0.3168 0.1430 -2.216 0.029607 * ---Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 0.3721 on 78 degrees of freedomMultiple R-squared: 0.4668,! Adjusted R-squared: 0.4463 F-statistic: 22.76 on 3 and 78 DF, p-value: 1.103e-10
## Model with interactionlm.ginz.int <- lm(data = Ginzberg, adjdep ~ adjsimp + adjfatal + adjsimp:adjfatal)summary(lm.ginz.int)
Call:lm(formula = adjdep ~ adjsimp + adjfatal + adjsimp:adjfatal, data = Ginzberg)
Residuals: Min 1Q Median 3Q Max -0.58251 -0.23705 -0.05099 0.17981 1.21560
Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) -0.1366 0.2023 -0.676 0.501319 adjsimp 0.7736 0.2083 3.714 0.000381 ***adjfatal 0.7218 0.1811 3.987 0.000150 ***adjsimp:adjfatal -0.3168 0.1430 -2.216 0.029607 * ---Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 0.3721 on 78 degrees of freedomMultiple R-squared: 0.4668,! Adjusted R-squared: 0.4463 F-statistic: 22.76 on 3 and 78 DF, p-value: 1.103e-10
adjdep = -0.1366 + 0.7736*adjsimp + 0.7218*adjfatal
- 0.3168*adjsimp*adjfatal
## Model diagnosticslayout(matrix(1:4, ncol = 2, byrow = TRUE))plot(lm.ginz.int)layout(1)
0.5 1.0 1.5
-0.5
0.0
0.5
1.0
Fitted values
Residuals
Residuals vs Fitted71
7063
-2 -1 0 1 2
-10
12
34
Theoretical Quantiles
Standardized residuals
Normal Q-Q71
7063
0.5 1.0 1.5
0.0
0.5
1.0
1.5
Fitted values
Standardized residuals
Scale-Location71
7063
0.0 0.1 0.2 0.3 0.4 0.5 0.6
-2-1
01
23
4
Leverage
Standardized residuals
Cook's distance 10.5
0.51
Residuals vs Leverage71
65
80
0.5 1.0 1.5
-0.5
0.0
0.5
1.0
Fitted values
Residuals
lm(adjdep ~ adjsimp + adjfatal + adjsimp:adjfatal)
Residuals vs Fitted
71
7063
アウトカム変数の予測値
X軸に関わらず残差
がゼロ周囲に均等に
ばらけているか?
残差
(予測値と実測値のずれ
)
Linearity
Homoscedasticity
-2 -1 0 1 2
-10
12
34
Theoretical Quantiles
Standardized residuals
lm(adjdep ~ adjsimp + adjfatal + adjsimp:adjfatal)
Normal Q-Q
71
7063
残差が正規分布して
いるかどうかをみ
る。正規分布なら斜
めの線にのっかる。
Normality
標準化した残差
0.5 1.0 1.5
0.0
0.5
1.0
1.5
Fitted values
Standardized residuals
lm(adjdep ~ adjsimp + adjfatal + adjsimp:adjfatal)
Scale-Location71
7063
標準化した残差の絶対値の平方根
Homoscedasticityアウトカム変数の予測値
X軸に関わらず残差が
均等にばらけているか?
0.0 0.1 0.2 0.3 0.4 0.5 0.6
-2-1
01
23
4
Leverage
Standardized residuals
lm(adjdep ~ adjsimp + adjfatal + adjsimp:adjfatal)
Cook's distance 10.5
0.51
Residuals vs Leverage
71
65
80
標準化した残差
影響の大きいは
ずれ値の検出
てこ比変な組み合わせ
の説明変数
Cookの距離
Dalgaard P. Introductory Statistics with R. 2nd Ed. 2008. Springer.
Gordis L. Epidemiology. 4th Ed. 2011. Elsevir.
Grobbee DE. Clinical Epidemiology. 1st Ed. 2009. Jones and Bartlett.
Kabacoff RI. R in Action. 1st Ed. 2011. Manning.
Katz MH. Multivariable Analysis: A practical guide for clinicians and public health researchers. 3rd Ed. 2011. Cambridge.
Kleinbaum. Applied Regression Analysis and Other Multivariable Methods. 4th Ed. 2008. Brooks/Cole.
KogoLab. アイスクリーム統計学 http://kogolab.chillout.jp/elearn/icecream/ 2003.
Pagano M, Gauvreau K. Principles of Biostatistics. 2nd Ed. 2000. Brooks/Cole.
Rothman KJ. Epidemiology: An introduction. 1st Ed. 2002. Oxford University Press.
Toyoda H. 回帰分析入門 -Rで学ぶ最新データ解析- 2012. 東京図書.
Matsuoka S. 初心者による初心者のためのロジスティック回帰分析. 2011. 本会 第一回
Tsuchiya M. 初心者による初心者のための線形混合モデル. 2011. 本会 第二回
Tsuchiya M. 初心者による初心者のための量的データの二変量解析. 2011. 本会 第三回
おまけ学習方法などについて
背景
初期研修: 2年
総合内科: 2年
リウマチ膠原病内科: 3年間
研修病院で研修医がよく働くので比較的勉強時間はとりやすい
外来は長期フォローでデータを取りやすい
生物学的抗リウマチ薬の実地臨床での効果副作用のまとめなどしていいます。
その他の背景
数学はあまり得意でなかった
プログラミングはLinuxのshell scriptで若干経験あり
なので、統計の勉強は”R言語の学習”として入ることで興味
を持てた
学習方法
最初はsupervisorの先生に他のパッケージで解析してもらった結果をRで再現して学習
他のデータにも応用できるように統計手法の選び方をまずは学習
統計手法の適切な使用を目指してその原理や仮定などを学習中
医学研究においては
導入に有用だった資料ハンバーガー統計学 (web)
アイスクリーム統計学 (web)
R-Tips (web)
生物統計と心理統計で頻用される手法がやや異なるので
Rの生物統計本ではこれがよかった。原著は2版に改訂。
多変量解析の実践的な正しい使い方(手法の選び方, 変数
の選び方, etc)の本。原著は3版に改訂。木原ら訳。他の
木原訳本シリーズも良書ぞろい。
終