10/31補足:2時点データ分析の考え方

10月31日の演習では、2時点(例:T1=前、T2=後)のデータ分析を行いました。

演習時には、ファイルの読み込みと前処理に力を注ぎすぎてしまったことから、意義がありそうな分類に手が回らない状況が発生してしまいました。
このため、意図が伝わらなかった部分があったのではないかと感じております。

ただ、この回は、修士研究で介入を含む実験を企画している場合において、初手となる重要な分析を含んだこともあり、復習素材を用意しました。
ご確認いただければと思います。

そもそも 2時点データ分析の「目的」は?

そもそも、なぜ2時点のデータ分析をするのでしょうか?
まず、これを問う必要があります。


 

 

(端的に述べれば、)多くの場合は、
特定の暴露によって、特徴的な変化をしていないか(=変化の仕方に差があるか) を統計的に検証するためと言えます。
(特定の暴露によって、群わけをして分析する場合が多い)

特定の暴露の例として、以下のようなものが考えられます。

  • ある介入(例:新しい教育的なプログラムによる介入)
  • ある変化(例:家族の介護が必要になった、転職した、単身になった)
  • ある特徴をもつ集団(例:特定の疾患群、喫煙群)


つまり、2時点データの分析は、研究で頻出する、「ある介入」が何らかの変化をもたらした可能性を探索する初期的な分析となります。
例えば、「介入群は対照群に比べて、T1からT2にかけてメンタルヘルスがより大きく改善したか?」というように、平均的な変化の違いを記述的に比較できます。



もちろん、シングルアームの介入研究(単一群の介入研究)でも、複数時点のデータを分析することはあります。
ただし、今回は頻繁に活用する群わけ(介入的な要素がある、ない)を組み込んだ分析にフォーカスを当てました。

「変化の差」を見る代表的な2つの方法

「介入群と対照群の変化の差」をモデルで分析する際の、2つの代表的なアプローチを紹介しました。

方法①:変化量 (Delta) を目的変数にする

T2 - T1 の「変化量(差分)」そのものを目的変数(Y)として計算し、群を説明変数(X)とするモデルです。

  • モデルのイメージ: 変化量 (delta) ~ 群 + (他の調整変数)
  • Rコード例: lm(delta ~ group, data = df)
  • 考え方: 「群(例えば、介入・変化があるか、ないかによる群わけ)」が、delta(変化量)に対して統計的に有意な差(平均値の差)に貢献しているか、そしてその程度はどれくらいかを直接見る方法です。

方法②:T2の値を目的変数にし、T1の値を共変量にする

T2(事後)の値を目的変数(Y)とし、T1(事前)の値を「説明変数の一つ(共変量)」としてモデルに投入します。

  • モデルのイメージ: T2スコア ~ T1スコア + 群 + (他の調整変数)
  • Rコード例: lm(T2_score ~ T1_score + group, data = df)
  • 考え方: T1_score の影響を統計的に調整した(=スタート地点の影響を取り除いた)上で、なお「群(例:介入・変化があるか、ないかによる群わけ)」が T2_score に影響があるか。
    もし group が有意なら、「スタート地点(T1)が同じ値であっても、群によってT2の値が異なる」ことを意味し、「介入」が「T2変化」に貢献した可能性を考えられます。

社会調査分野での使い分け

演習で取り組んだ、社会調査の分野は、尺度の信頼性が高くないこともあり、測定誤差が差分に強く反映されます。
その結果、個人の変化量(T2-T1)の分散が過大に見え、モデルが不安定になることがあります。

このため、方法②(T2を目的変数、T1を共変量)が活用されることが多いです。
この方法は、スタート地点の個人差を統制できるため、安定した結果が得やすいと考えられています。

授業で扱った一般線形モデル

モデルの構成(説明変数)分析手法の名前Rでの使い方(基本形)
連続変数 × 1単回帰分析lm(Y ~ X_cont, data = df)
summary(model)
plot(model)
連続変数 × 2以上重回帰分析lm(Y ~ X1_cont + X2_cont, data = df)
summary(model)
plot(model)
カテゴリカル変数 × 1一元配置分散分析 (ANOVA)aov(Y ~ X_cat, data = df)
summary(model)

※lm()でも可能だが、ここでは省略
(lm()で実行した場合、基準カテゴリの平均値が「切片」となり、他カテゴリと「差」があるか、という結果が示される)
カテゴリカル変数 + 連続変数共分散分析 (ANCOVA)lm(Y ~ X_cont + X_cat, data = df)
summary(model)
plot(model)

※aov()でも可能だが、ここでは省略

Rでは、共分散分析(ANCOVA)も一般線形モデルとして lm() 関数で実行できます。
ただし「lm()を使う」こと自体がANCOVAを意味するわけではなく、「連続変数+カテゴリ変数を同時に投入したモデル」がANCOVAに該当します。
論文に書くときは、Liner Modelと丸めて表現し、各説明変数と共変量について説明することが多いかと思います。



最後に、演習の「範囲」を明確にしておきます。
・今回扱ったモデルは、すべて「傾きが群によらず共通である」(主効果のみ)という前提のモデルでした。
まずは、上記の基本モデルの処理と解釈を、現実のデータに適応できるようになることが重要だと考えています。
・その上で、もし「群によってT1とT2の関係性(傾き)が異なる」可能性を考慮する場合は、「交互作用」(Rでは * を使う)や、「ランダムスロープ」(混合モデル)といった手法を活用することになります。