[Statistics]交互作用項、interaction termについて

photo of family having fun with soccer ball python
Photo by Gustavo Fring on Pexels.com

交互作用項、interaction termとは何か

交互作用とは、ある説明因子(exposure)が、その他の説明因子の有無によって、従属因子(outcome)に対して異なる影響を与えることをいう。交互作用項をきちんと説明できるかどうかは、その人の統計リテラシーの大きな判断材料になる(とあるドクターから聞いた話だが、Harvard大学のMPHの学生でも、interaction termをきちんと理解し説明できたものは半数にも満たなかったという)。

交互作用項の具体例

分かりにくいので具体例を扱う。コレステロールを低下させる薬Aを考える。ただし、\(Y\)軸はコレステロールの低下量を表すものとする。ある一定の範囲で、直線的なdose-responseがあり、下のグラフ\(\text{①}\)のようになっているとする。

交互作用項を説明する\(4\)つのグラフ。

一番シンプルなのは\(\text{①}\)の例で、薬の量が増えるとコレステロールの値も低下する。モデルはシンプルな単回帰で表すことができる。しかし、現実の世界ではなかなかきれいにはいかない。例えば、女性と男性で薬に対する応答が異なるということはしばしば起こりうる。

\(\text{②}\)のグラフでは、女性と男性では薬に対する応答が異なるが、それでも交互作用はない。傾きが同一であるからである。

\(\text{③}\)のグラフでは、男性は女性に比べてより急峻な傾きで応答している。\(\text{④}\)では、女性と比べて男性の応答は鈍い。

交互作用項を説明する異なる4つのグラフ

この違いを説明できれば、交互作用については十分理解したと言える。つまり、\(\text{①}\)では性差はなく、\(\text{②}\)では性差はあるが交互作用はない。\(\text{③, ④}\)では性差も交互作用もある。

交互作用項の数式での説明

性差なし、交互作用なし

せっかくなので、上のグラフを用いて、数式で交互作用を理解する。まず、\(\text{①}\)の数式は、$$Y = \alpha+\beta_1*dose \tag{a}$$である。ここで\(\alpha\)は回帰直線の切片、\(\beta_1\)がdoseについての係数である。統計ソフトでこれを解析するときは、例えばStataなら

regress Y dose

とすれば良いし、Rなら

lm(Y ~ dose, data = ...)

とすれば良い。係数の値や、95%信頼区間をみて、その値が有意かどうかを判断する。

性差あり、交互作用なし

\(\text{②}\)の数式は、$$Y = \alpha + \beta_1*dose + \beta_2*sex \tag{b}$$となる。いわゆる重回帰分析がこれである。統計ソフトでは、Stataなら

regress Y dose sex

でよく、Rなら

lm(Y ~ dose+sex, data = ...)

となる。この\(\beta_1\)や\(\beta_2\)の値をみて、例えばコレステロールを下げる効果は、薬の量に関連するが、性差とは関連しない(\(\beta_1\)が有意で\(\beta_2\)が有意でない)、などと言及することが可能になる。

交互作用あり

\(\text{③, ④}\)の数式がこれで、$$Y = \alpha+\beta_1*dose + \beta_2*sex + \beta_3*dose*sex \tag{c}$$となる。Stataでは

regress Y dose sex dose#sex

regress Y dose##sex

といった記載方法になる。Rでは

lm(Y ~ dose + sex + dose*sex)

で良い。

係数の解釈について

解析自体は簡単だが、結果をどのように解釈し、どのように報告するのかが重要である。式\((a)\)は単純で、はじめから性差の影響をモデルに組み込んでおらず、\(\beta_1\)の値はdoseの影響を表す。もっと詳細に述べると、doseが\(1\)単位増加したときのコレステロールが降下する値が\(\beta_1\)となる。

式\((b)\)では結果に対してdoseとsex両方の影響を考えている。が、交互作用なしと仮定しているので、\(\beta_1\)は式\((a)\)と同様に、doseが\(1\)単位増加したときのコレステロール低下量となる。同様に、\(\beta_2\)というのは性差によるコレステロール低下量の指標となる。なので、例えば女性を\(0\)、男性を\(1\)とcodingしていたならば、\(\beta_1+\beta_2\)はdoseを\(1\)単位増加したとき、男性でコレステロールが降下する値となる。

式\((c)\)が交互作用項ありの場合であるが、話はやや複雑になる。性差が事前に判明しないと、doseあたりのコレステロール降下量はわからない。上のように女性を\(0\)、男性を\(1\)とcodingしていた場合を考える。このとき、女性がdoseが\(1\)単位増加したときのコレステロール降下量は\(\beta_1\)となる。なぜならば、女性\( = 0\)なので、交互作用項が\(0\)になるからである。対して、男性ではdoseが\(1\)単位上昇したときのコレステロール降下量は、\(\beta_1 + \beta_3\)となる。

変数が連続量同士の場合や、二値変数同士の場合

上記の例ではdoseという連続量に対して、sexは二値変数であった。交互作用項はダミー変数同士や、\(2\)つの連続量同士でも考察することが可能である。例えば、doseとsexではなく、doseとageで考えてみよう。この場合、ageは連続量になるので、どちらの変数も連続変数である。交互作用項なしで式を考えると、$$Y = \alpha + \beta_1 * dose + \beta_2 * age \tag{d}$$となる。\(\beta_1\)はdoseが\(1\)単位増えたときのコレステロール低下量で、\(\beta_2\)は年齢が\(1\)歳上がったときのコレステロール低下量となる(\(\beta_2 < 0\)の場合は上昇量になる)。ここで下図の\(\text{①}\)のように、仮想的に年齢をyoungとoldの二値に分けてみる。

変数が連続量同士であるときの例。

\(\text{①}\)はすでに論じたケースで、交互作用項ありの場合である。それでは、年齢をさらに細分化して、youngとmiddleとoldに分類してみよう。これが\(\text{②}\)になる。カテゴリーをどんどん細かくしたものが、\(\text{③, ④}\)になる。モデルを数式化すると、$$Y = \alpha+\beta_1*dose + \beta_2*age + \beta_3 * dose*age \tag{e}$$となる。二値変数を段階的にカテゴリー分けし、連続変数に近づけていくというわけである。この解釈だが、例えば固定した年齢\(age_0\)における薬のdose\(1\)単位あたりのコレステロール低下量は\(\beta_1 + \beta_3*age_0\)となる。このeffectは年齢に依存するので、年齢特有ものである。つまり、\(50\)歳の人ではeffectは\(\beta_1 + 50*\beta_3\)となるし、\(32\)歳の人では\(\beta_1 + 32*\beta_3\)となる。年齢の影響は同様にdoseにも依存する。例えばあるdose\(= dose_0\)のとき、年齢の影響は\(\beta_2 + dose_0 * \beta_3\)となる。

交互作用項、interaction termについての要約

交互作用があるとき、交互作用項を形成するある一つの変数の効果は、交互作用項を形成するもう一方の変数のレベルに依存する。

二値変数同士の交互作用について

これはどちらか一方、あるいはどちらも連続変数である場合よりも簡単で、例えば性別、喫煙の有無などを変数にすると、$$Y = \alpha + \beta_1 *sex + \beta_2*smoking + \beta_3 * sex * smoking$$としたとき、下の表のようになる。ただし、女性を\(0\)、男性を\(1\)、喫煙なしを\(0\)、喫煙ありを\(1\)とする。

喫煙、性別平均効果量
女性、喫煙なし\(\alpha\)
女性、喫煙あり\(\alpha+\beta_2\)
男性、喫煙なし\(\alpha + \beta_1\)
男性、喫煙あり\(\alpha+\beta_1+\beta_2+\beta_3\)
二値変数同士の交互作用の例。

もしも交互作用を考えていないと、男性で喫煙ありの人の平均効果は\(\alpha+\beta_1+\beta_2\)となる。つまり、交互作用を考慮した場合と比べて、\(\beta_3\)だけ小さく効果を見積もっていることになる。

関連リンク

主に下のMcGill大学医学部の資料を参考にした。

https://www.medicine.mcgill.ca/epidemiology/joseph/courses/EPIB-621/interaction.pdf

コメント

タイトルとURLをコピーしました