morの解析ブログ

解析疫学、リスクにまつわるメモや計算

「推定」のまわりをさぐる.教科書では「解析はMHにより行う、因子が多ければ重回帰を用いる」という風で詳しい例は少ない.独自(のつもり)な思いつきで具体に試行.
 数理を用いるべきアセスメントにも切り込む.

《真打》因子をどう選ぶか 交互作用をどう組むか 生起因子との重複を記述で&交互図示

■ 因子選びの手順、交互作用項の設定ヒント
 生起因子t、曝露の多い因子を知る記述はできた mesi steak は挙げることができたが、生起因子とできるだけ重複する因子を選び出す方がよいと思われた これは、生起因子に対して抑制、阻止の効果が働いてみえるという経験とも一致する
 Rで記述;重複因子の数をカウントし、因子を決める記述
 交互作用項を設定するための図を考えた


■ 生起、抑制因子
 

    図 曝露数;度数 によるcRD   因子プロット


・RDの大きな、また曝露の大きな因子は、事例の大部分を説明するだろう
 曝露は小ながら鋭い抑制因子もみえる


■ 生起因子と重複する因子を挙げ、IDを数える記述


      tsum<- NULL            # tと重複する因子と重複数計算する記述
   for ( i  in  1:27)   {              #  1番目は yである
     va<- d[,i]
       sumk<- sum(0< vt *va )        #  vt は固定し、va;総当たり因子 とした
       tsum<- c( tsum,sumk)
   } 
t_sum<- rbind(colnames(d),tsum)     # カラムに因子名を付けてデータ保存 


・結果をみる  
       tと重複する因子と そのID 数

  

■ 因子の限定
・mesi potesara steak が tのなかで多い ;重複が多い 
 単純に曝露が大だったmesi steak は、tとも重複が大で、ここでも挙げられた
 poteは、生起性があって選んだのだったが、ここでは重複も大な 因子として挙げられた


・3因子がカバーしなかった t因子ID数
 では、tのうち、これら3因子のいずれも重複しなかった数はどうか
   t 曝露 ID かつ { mが1でないかつpが1でないかつsteが1でない }
   = t 曝露 ID かつ {(1-vm)*(1-vp)*(1-vste)  }
   sum( vt *(1-vm)*(1-vp)*(1-vste) )
      [1] 3  
 t曝露ID 194 のうち、上の方法で残ったのは僅か3つであった うちy=1は 1つ


■ 交互作用項の組み方
 ”もっともよいモデル”での交互作用項の組み立て方は、曝露大な因子と生起因子のつながりが多いことだった 関係図;下 実線
 図から、モデルに破線の交互作用がないことに気づく その項を入れるとモデルが改良される   :モデル② 
 

    

    図 選んだ因子の、交互作用項関係図 
         実線:kowsmsモデル ①
         破線:〃 改良モデル  ②
 ① kowsms<- lm(formula = y ~ wat + mesi + tam + potesara + steak + wat:mesi:tam +
 steak:tam + mesi:tam + mesi:tam:steak, data = d) 
      切片 -0.01514   Multiple R-squared: 0.12     
 ② kowsms<- lm(formula = y ~ wat + mesi + tam + potesara + steak + wat:mesi:tam +
 steak:tam + mesi:tam + mesi:tam:steak  +   mesi:steak   , data = d)
  切片 -0.01054                       0.1201   


 なお、wt加えたモデルも考えてよいが、変化は僅か
 切片 -0.01569        MRsq  0.121


・交互作用項でNaNがでるかどうか、調べるには、
 sum( ( vt )*( vw)*( vm)*( vp)*( vste) )   すべてに曝露 17
 sum( ( vt )*( 1-vw) ) ・・       tのうち、wに曝露しない・・
のような論理式で知ることができる



 lmは直感的に因子効果を調べられる 発散が少ない感触がある
 交互作用のあるモデルは切片が妥当な値となり適合も改善する例がある
 2重、3重交互作用項を曝露の大きい、または係数の大きい因子に適用したモデルが有利だった
 交互作用によるモデルの変化をvectorで計算し可視化して観察できる

《前座》因子選びと組み方を手探りする 交互作用モデル

■ 因子をできるだけ客観的に選んで、有利な交互作用をもつモデルで組み合わせを試す
■ 因子、モデル 
因子
  wat mesi tam potesara は 客観的選択
  steakは 曝露がmesiに次いで大  
 mesi steakには、阻止を想定した交互
 mesi,wat は抑制を表す交互作用を期待してみる
 ------------
交互作用項モデル
  ko6st lm(formula = y ~ wat + mesi + tam + potesara + steak + steak:mesi:tam +
 mesi:tam, data = d)
は、
 (Intercept) 0.009791 Multiple R-squared: 0.09739, Adjusted R-squared: 0.06968 
の性能を持つ
■ 試行
 抑制を正してみる
  kow<- lm(formula = y ~ wat + mesi + tam + potesara + steak + wat:mesi:tam +
 wat:tam, data = d) 
だと、
 (Intercept) 0.095232  Multiple R-squared: 0.08684, Adjusted R-squared: 0.06291
となり、すべてが悪化する
 つまり第一抑制だけにとらわれると違うぞと


 なのでmesi:tamを入れ戻す
  kowm<- lm(formula = y ~ wat + mesi + tam + potesara + steak + wat:mesi:tam +
 wat:tam+mesi:tam, data = d)
  (Intercept) -0.003739   Multiple R-squared: 0.09215, Adjusted R-squared: 0.06428
 ましになった


 ならば、steak:第二抑制を想定する
  kowsm<- lm(formula = y ~ wat + mesi + tam + potesara + steak + wat:mesi:tam +
 steak:tam+mesi:tam, data = d)
  としたら、
 (Intercept) -0.01100 Multiple R-squared: 0.09376, Adjusted R-squared: 0.06182
 もっとましになった
 むしろ、大暴露は抑制を考えとけということか


 で、第二曝露にも阻止を想定すると 
   kowsms<- lm(formula = y ~ wat + mesi + tam + potesara + steak + wat:mesi:tam +
 steak:tam + mesi:tam + mesi:tam:steak
, data = d)
   (Intercept) -0.01514   Multiple R-squared: 0.12, Adjusted R-squared: 0.08496
 oh これはもっともよい
    * 交互作用項係数からsteak,mesiは、抑制性、かつそれらが互いに阻止性


  kowst<- lm(formula = y ~ wat + mesi + tam + potesara + steak    +steak:tam+mesi:tam+mesi:tam:steak, data = d)
 (Intercept) -0.01752 Multiple R-squared: 0.1199, Adjusted R-squared: 0.08888
 ほぼ同程度


・曝露の大きな因子 2個 生起性大きな2つ 抑制因子1つの組み合わせとした
 各因子の組み合わせは、
   kowsms        kowst
  抑制・曝露大1・生起          
  曝露大2・生起        〃      
  曝露大1・生起        〃       
  曝露大1・生起・曝露大2  〃 
    良          次


■ なにがよかったのか 
・交互作用として曝露大の因子を重視したモデルは よい という傾向だった
・交互作用項4つで最良のモデルができた
 当初、抑制と阻止をあらかじめ想定し交互作用項を設定、試行したとはいえ行き当たりばったりだった 因子をどうカバーしてきたかをベン図;質的な模式でみると次のようであった
   

                 

     図 kowsmsの交互作用がカバーする因子


 また、交互作用項で限定したカテゴリーのID数を調べると
  wat:mesi:tam   20
  steak:tam    176
  mesi:tam     184
  mesi:tam:steak 170
 と、比較的IDの大なものとなっていた


 これらのことから、「生起因子と重複する項を増やした」ことが奏功した、と考えた
 だとすると、推定pが0.6あたりに集中し、そこのyが1と0に分かれることを裏付けるものと思える
 しかも、さらにpotesara:tamを追加するとわずかに改善する;結果記載なし それでいて、t:wを追加するとかえって悪化する;結果記載なし 
 注意は、度数0となるカテゴリーを含む項を入れた予測子だと推定が;それとは別な項が NAになり異常となる
・交互作用をどのように組んでいたか
 生起因子とできるだけ重複する因子で交互作用を組み、試行するのがよいだろう
   (曝露グループを計算して試行するよりは手間が少ない


・曝露が大であれば、他の因子との重複は強く、場合によっては係数の代償性変化を引き起こしているおそれはある 


■ まとめ
 客観的に選んだ5因子で交互作用を試した
 モデルを改善する試行のすえに曝露大なものなど、生起因子に影響する因子組み合わせを重視すべきと気づいた  


 ”曝露の大きな因子と、生起抑制因子をさがし”
 ”生起因子に絡んだ交互作用項を過不足なく試行錯誤せよ” 

  
■ 課題
 生起因子と重複する因子を調べるR記述