これから何回かに分けて、回帰分析を解説していきます。回帰分析は、linear regression, logistic regression, Cox regression, Median regressionなど様々なregression modelを含みますが、基本中の基本であるlinear regressionを理解することがとても重要になります。したがって、まずはlinear regression(線形回帰分析)について解説していきたいと思います。
はじめに
用語の説明
回帰分析では、様々な数式が出てきます。それぞれの文字には意味がありますので、まずはその文字の意味するところを理解しておく必要があります。
“Y”は通常、outcomeを表します。そして、その横に小さく書いてある数字が、個々の患者におけるoutcomeです。Yiと書くことで、i番目の患者のoutcomeということになります。そして、サンプルサイズがnである場合は、iは1~nまでとりうることになります。
“X”は、predictorやcovariateを表します。Predictorとは、outcomeとの関連性に興味のある因子のことです。因果推論においては、暴露因子ということになります。一方、covariateはpredictor以外の調整すべき因子のことです。
このpredictorとcovariate、しっかりと区別できていますか?同じXであっても、predictorとcovariateが違えばモデルも異なってきます。
Xの横につく一つ目の数字が、predictorまたはcovariateを特定する番号です。そして、Xの横につく二つ目の数字が、患者の番号を表します。Yの時と同様、iを用いて、1~nだけ存在することになります。
Outcomeによって異なるregression model
様々なregression modelがあると申し上げましたが、outcomeのタイプによって使用するモデルが異なります。Outcomeが連続変数の場合はlinear regression、binary outcomeの場合はlogistic regression、といった感じです。
Modelの基本的な数式
基本的に、どのregression modelも上記のような数式で表すことができます。それぞれのpredictorやcovariateに係数を掛けたものを足し合わせたもの(右辺)が、outcomeをfunctionによって変形したもの(左辺)と等しくなります。
Linear regressionでは、このf()は不要で、それがそのままoutcomeになります。Logistic regressionでは、log [P/(1-P)](Pはoutcomeのprobability)がそのfunctionとなります。
数式の解釈
データとモデルからa, b, c, d…を求める訳ですが、例えばpredictor1の係数bはどのように解釈するのでしょうか。
中学生レベルの算数を知っていれば、理解できます。b=0であれば、predictor1はoutcomeに影響を与えないことになりますね。b<0であれば、predictor1が1増えるとf(outcome)がb減ることになり、b>0であれば、predictor1が1増えるとf(outcome)がb増えることになります。
Simple linear regression
まずは、predictorが一つしかない、最も単純なlinear regression modelを考えていきましょう。
Predictorが一つしかなければ、linear regression以外にもoutcomeとの関係性を調べる方法はありますよね?
- Predictorが連続変数であれば、連続変数であるoutcomeとの関係性は相関係数(Pearson or Spearman)で表すことができました。
- Predictorがbinaryであれば、連続変数であるoutcomeとの関係性はt-testまたはWilcoxon testで評価することができました。
- Predictorが3群以上のカテゴリーであれば、連続変数であるoutcomeとの関係性はANOVAまたはKruscal-Wallis testで調べることができました。
今回は、それぞれについてlinear regressionを用いて評価するとともに、それぞれの方法と比べてみることにします。
Predictorが連続変数
数式の”error”とは、このモデルでは表しきれないrandom variationのことです。Assumptionとして、outcomeがそれぞれ独立していること、正規分布していることなどが挙げられます。t-testの時と同じなので、わからない人はそちらを読んでください。
今回は、Charlson Co-morbidity scoreという合併症のスコアが、患者が病院を受診する回数にどのように影響を及ぼすかを調べたいとします。この数式(model)を図示すると、以下のようになります。
Y = b*X + a
ですので、切片(intercept)aと、傾き(slope)bをもつ直線(linear)であることがわかります。
やることは、データからaとbを求め、predictorの係数であるbが有意かどうかtestすることです。帰無仮説はb=0(predictorはoutcomeと関係しない)です。t-scoreを計算し、t-distributionからそのprobabilityを計算すれば、p-valueを求めることができます。
実際のデータから求めたこれらの数値が以下のようだった時、
Number of Visits = 2.91 + 1.25*Charlson Score
という数式が出来上がります。Charlson Scoreが0の時、病院の受診回数は2.91と予想され、Charlson Scoreが1上がる毎に受診回数は1.25回ずつ増加するというのが、この数式の意味するところです。そして、bのp-value<0.0001であることから、1.25という数字は(0よりも)有意に高い、すなわちCharlson Scoreは病院受診回数と有意に関連している、ということが言えます。
最後に、Linear regressionとPearson correlation coefficientを比較してみましょう。
Pearsonの相関ではrを求めるのに対し、linear regressionではslope bを求めます。そして、面白いことにrのp-valueとbのp-valueは等しくなります。
Predictorが2群のカテゴリー
Predictorが2群のカテゴリーの場合であっても、数式上は0 or 1で表すことになります。例えば、男女というカテゴリーであっても、男性=0、女性=1というようにcodingすることで、regression modelに当てはめることが可能になります。
この場合注意したいのは、“predictor=0″の群がreferenceとなるということです。そして、”predictor=1″となることによって、outcomeがその係数bだけ増える、という数式になります。
図示すると、以下のようになりますね。Somatizationがない(=0)群と比べ、somatizationがある(=1)群では病院受診回数がb回多い、ということを表しています。
To do listは連続変数であった場合と同じです。データからaとbを求め、predictorの係数であるbが有意かどうかtestします。
解釈も連続変数の時と同じですね。
Number of Visits = 3.40 + 1.44*Somatization
という数式が出来上がります。Somatizationがない(=0)の時、病院の受診回数は3.40と予想され、Somatizationがある(=1)と受診回数は1.44回増加するというのが、この数式の意味するところです。そして、bのp-value<0.0001であることから、somatizationは病院受診回数と有意に関連している、ということが言えます。
最後に、Linear regressionとt-testを比較してみましょう。
t-testで比較した平均値の差は、linear regressionのbと等しくなります。そして、t-testのp-valueとlinear regressionのbのp-valueは等しくなります。
Predictorが3群以上のカテゴリー
最後は、predictorが3群以上あるカテゴリーのケースです。今回は、regression modelを使うために、codingにちょっとした工夫が必要です。
まず、referenceを決めましょう。Referenceの決め方ですが、1つ目には臨床的に決める方法があります。治療方法が3つあり、その一つがgold standardであった場合、その治療法をreferenceにする、といった感じです。
統計学的には、他の方法の方が魅力的です。大きなサンプルサイズのある群をreferenceにすることでstandard errorが小さくなり、平均値が大きく異なる群をreferenceにすることで、t-scoreが大きくなります。つまり、検出力が大きくなります。
次に、dummy variablesを作成します。Category 1をreferenceにした場合、「category 2であれば1、そうでなければ0というvariable X1」と、「category 3であれば1、そうでなければ0というvariable X2」という二つのdummy variablesを作ります。そして、X1とX2を用いることで、3群以上あってもlinear regressionが可能となります。
以下の例では、depressionの程度で3群に分け、病院受診回数との関連を調べています。
上記のように”Minor”と”Major”というdummy variablesを作成することで、以下のようなmodelができます。
Number of Visits = a + b*Minor + c*Major
こうすることで、
- depressionがない (Minor=0かつMajor=0)のときのoutcomeはaとなり、
- depressionがminor (Minor=1かつMajor=0)のときのoutcomeはa+bとなり、
- depressionがmajor (Minor=0かつMajor=1)のときのoutcomeはa+cとなります。
図示すると、
のようになり、bとcがそれぞれreferenceと比較した病院受診回数の差を表していることがわかります。
ここまできたら、解釈もできますね。
Number of Visits = 3.49 + 0.85*Minor + 1.08*Major
ですので、depressionがない場合の病院受診回数が3.49、depressionがminorだった場合の病院受診回数が3.49+0.85、depressionがmajorだった場合の病院受診回数が3.49+1.08となります。そして、それぞれreferenceと比較した場合の差(None vs. Minor: 0.85, None vs. Major: 1.08)のp値が、それぞれ0.038と0.004ということになります。
最後はANOVAとの比較です。
ANOVAで比較する平均値の差が、それぞれlinear regressionにおけるbやcと一致します。そして、ANOVAのp-valueは、regressionにおけるF-testのp-valueと一致しますが、bやcのp-valueとは異なります。
まとめ
このように、predictorが一つだけのlinear regressionでしたら、これまで勉強した多くの検定でも可能ですし、その数字も一致します。ただし、regressionのメリットは、predictorやcovariateが複数であっても使える点です。今後一緒に勉強していきましょう。
コメント
コメント一覧 (2件)
[…] Linear regressionの基礎、読んでいただけたでしょうか。そちらを読めば、modelの数式の意味が理解できたと思います。 […]
[…] これまでは、”simple linear regression”と称して、説明変数Xは一つだけ(X1)の場合を考えてきました。今回は、説明変数をもう一つ(X2)を加えます。目標は […]