0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

従属なデータの統計的検定

Last updated at Posted at 2025-04-14

従属なデータ

 統計的検定では,独立なデータであることが前提です.対する従属なデータは医学の研究ではよく扱われ,様々な対処法があります.
 $X$と$Y$が,互いに独立であれば$COV(X,Y)≠0$となります(十分条件).ゆえに従属なデータは相関関係を持ちます1.医学では,従属なデータを“対応がある”といいます.例えば,左右の握力を測り,左右の差をみるときに,Aという人の右の握力とBという人の左の握力を比べるなら,AとBは異なる人なので独立なデータで,複数名の平均の差を比べたいなら,2標本$t$検定を適用します.また,Aという人の右の握力と左の握力を比べるときは独立ではなくなり(=従属),対応のある$t$検定を適用します.
 A,B,Cという3名の左右握力を測ると,6つの握力値が記録されます.D,E,Fという3名の左右握力を測ると,6つの握力が記録されます.ABC群とDEF群は独立です.ABCの平均とDEFの平均の差を検定したいときは,2標本$t$検定で間違いありません.しかし,もしABCの握力値の左右含めてn=6とし,DEFの握力値の左右含めてn=6とし,これらの差を見たいとします.ABCとDEFは独立ですが,Aの右握力とAの左握力は独立ではありません.2標本$t$検定を適用してよいのでしょうか?  

例:左右握力のデータの場合

 A群(10人)における右の握力データ $X_R$ があるとします.同一の10名に対して左の握力データ $X_L$ があるとします.
 同様に,B群(10人)における右の握力データ $Y_R$ ,同一の10名から取った左の握力データ $Y_L$ があるとします.
  $X_R$$Y_R$ の平均差を検定したいなら,2標本$t$検定の適用となります2$X_L$$Y_L$$X_R$$Y_L$$X_L$$Y_R$ の平均差の検定でも2標本$t$検定を適用します.
 ここで,$X=${$X_R,X_L$}(左右のデータを1つにする),$Y=${$Y_R,Y_L$} として,A群の握力とB群の握力を比べたいとき,2標本$t$検定を適用してよいか.2標本$t$検定は,2つの独立した母集団からの各標本(2標本)に対する平均の差を検定する手法です.このケースでは,A群とB群は独立で間違いないですが,Aの中のデータ$X_R,X_L$とBの中のデータ$Y_R,Y_L$の中では,従属な関係があります.これでも検定は成り立つか,です.

Rによるシミュレーション

 まず,

cor.matrix<-function(rcoef,l){ #相関係数rcoefのl行×l列行列を作成
  r<-matrix(rcoef,l,l)
  diag(r)<-1
  r
}

の関数で,相関行列rを作ります.この関数を利用して次に,

rep<-10000 
n<-50
Y<-NULL
   for(m in c(0,0.2,0.4,0.6,0.8)){
        r<-cor.matrix(m,2)
        X<-NULL
             for(i in 1:rep){
                   x<-cor.sim(r,n) #大きさnのx_1~N(0,1)と相関rを持つx_2~N(0,1)の作成
                   y<-cor.sim(r,n) #大きさnのy_1~N(0,1)と相関rを持つy_2~N(0,1)の作成
                   X<-rbind(X,
                       c(t.test(x[,1],y[,1],var.equal=T)$p.value, #r=0のデータの差の検定⇒p値の回収
                                             t.test(c(x),c(y),var.equal=T)$p.value)) #r=0,0.2,0.4,0.6,0.8のデータの差の検定⇒p値の回収
             }
        Y<-rbind(Y,c(sum(X[,1]<0.05)/rep,sum(X[,2]<0.05)/rep))
   }
dimnames(Y)[[2]]<-c("片側データ","左右のデータ")
dimnames(Y)[[1]]<-c("r=0","r=0.2","r=0.4","r=0.6","r=0.8")
Y

により,シミュレーションします.
 まず,$N(0,1)$に従う乱数からデータ$X_1$(n=50),$X_1$と$r=0,0.2,0.4,0.6,0.8$の相関を持つデータ$X_2$(n=50)を発生させます.$r=0$の場合は独立です.
 次に,$N(0,1)$に従う乱数からデータ$Y_1$(n=50),$Y_1$と$r=0,0.2,0.4,0.6,0.8$の相関を持つデータ$Y_2$(n=50)を発生させます.これも$r=0$の場合は独立です.
 そして,①$X_1$と$Y_1$の2標本$t$検定を行います.続いて,②$X=${$X_1,X_2$}(n=100)と$Y=${$Y_1,Y_2$}(n=100)として,2標本$t$検定を行います.何れも平均に差のない標本なので,有意水準$5%$で検定すれば,第Ⅰ種の過誤は5%前後です.
 以上の過程をrep=10,000回繰り返し計算します.
 各検定の$p$値から$p<0.05$となる個数を数え,$10,000$で割ります.もし,全てp<0.05であれば1,p<0.05が何もなければ0となります.

シミュレーションの結果

 以下は,$n=50$の場合の結果です.$X_1$と$Y_1$の2標本$t$検定では,例えば右側のデータだけでA,B群の差を検定したような結果です.$X$と$Y$の2標本$t$検定では,右側と左側のデータを併せてA,B群の差を検定したような結果です.
 有意水準0.05で判断しているので,0.05(=$\alpha$)に近いほど正解です.$X$と$Y$の2標本$t$検定では,相関が大きくなるほど値は上がり,有意差が出やすい条件になります3

r $X_1$と$Y_1$ $X$と$Y$
0 0.0483 0.0492
0.2 0.0471 0.0726
0.4 0.0481 0.1010
0.6 0.0487 0.1215
0.8 0.0488 0.1464

※0.05となるのが理想.0.04~0.06の範囲外を赤字で表示.

ここまでの結論

 少なくとも,一人の対象から2つのデータ(例えば左右)を取得して1標本とし,2標本の差の検定を行う方法は間違いでした.シミュレーションするまでもない数理的には常識の事項ですが,証拠を示しました.
 検出力,nの異なる場合や,正規分布以外でも確認したいところですが,この一例で十分です.
 また,解析はこれ以外のケースもあります.例えば経時的にとった反復測定の例とか,多変量解析の例とかです.問題は必ず起こりますが,程度は想像つかないので,シミュレーションする価値はありそうです.

代わりの方法

 A群の左右の握力を測定して,どうしても左右のデータを活用したい4という場合,線形混合モデル(MMRM)を活用できます.

 上述のシミュレーションで,MMRMを使用してみます.固定効果(fixed effect)を群の比較,そして左右の比較,変量効果(random effect)を対象者として,Rのlme4パッケージのlmer関数による検定結果を追加します.
 上述と同様に,$n=50$として,相関係数の変化,シミュレーション回数は同様です.

シミュレーションの結果

 全ての変数で平均に差のない検定結果なので,値は$0.05$前後になるはずです.

r $X_1$と$Y_1$ $X$と$Y$ $X$と$Y$(MMRM) $X_1,Y_1$と$X_2,Y_2$(MMRM) 交互作用(MMRM)
0 0.0518 0.0521 0.0046 0.0488 0.0512
0.2 0.0454 0.0686 0.0451 0.0505 0.0524
0.4 0.0504 0.0990 0.0502 0.0487 0.0448
0.6 0.0481 0.1204 0.0514 0.0492 0.0488
0.8 0.0514 0.1503 0.0496 0.0505 0.0524

※0.05となるのが理想.0.04~0.06の範囲外を赤字で表示.

 MMRMは,理論に近似した結果となりますので,問題なさそうです.

結論

 同一人物から左右の握力や筋力などを測定して,全てのデータを利用する方法は誤りです.相関が強いほど,その率は高くなります.しつこいようですが,n=10のA群,n=5のB群があって,それぞれ左右の握力を測り,A群をn=20,B群をn=10として検定すれば,誤った結果が出力されます.もちろん,全員が左右とも測定できない人がいて,A群n=15,B群n=8となることもあると思います.その場合,本結果よりも多少は理論値に近づくと思います.
 今回はMMRMで適切な結果となりましたので,解析方法によっては適切に解析できることがわかりました.
 古くから医学の研究では,このような手順が当たり前のように行われてきました.その風習を継承しているわけですが,「皆がやってるからいい」とか「赤信号みんなで渡れば怖くない」的な発想は,止めなければなりません.このような検定結果は信用するに足りず,その研究者の信憑性に関わります.
 

  1. $COV(X,Y)=0$であっても独立なことがあります.

  2. $X_R$$Y_R$ が等分散と仮定した場合

  3. 平均差の差のない検定なので,nが大きくなっても0.05をキープして正解です.

  4. 研究目的に応じて活用しなければならないならということで,なんとなくnを増やしたい,測定したデータを捨てるにはもったいないなどの理由ではありません.

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?