morの解析ブログ

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

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

別事例oswデータで 因子選択 交互作用の組み方を試す【曝露-cRDプロット】


■ 因子選択と交互作用項の設定は 別事例データでも通じるか調べる
   因子選択     ~ 曝露数、cRD 絶対値の大きなもの
   交互作用項の設定 ~ それらの主な組み合わせのみによる
               2重交互>3重交互
     モデルは  切片≒0,MRsqはより大きいもの を基準に
・oswegoデータ 


■ 曝露-cRDプロット
 csv は OS・・  
 データ名 osd
colnames(osd)
 [1] "y" "yakih" "spi" "pote" "cabe" "jero" "rol" "tyap"
 [9] "milk" "cafe" "wat" "cake" "vice" "choco" "salad"
ncol(osd)
 因子数は、ncol(osd)-1となるが、yをもまとめてあるため繰り返し計算の回数はncol(osd)


--------------------
 # 曝露-cRDプロット 
 # この記述は、できるだけ汎用な記述で
aaos<-NULL   
bbos<-NULL
ccos<-NULL
ddos<-NULL
 bakua<-NULL
crdo<-NULL
# 繰り返し幅    # 曝露-cRDプロット 
   for ( j in 1:ncol(osd) )  { 
# 度数;22table
 aosw<-sum(   osd[,1 ] *  osd[, j  ]  ) 
 bosw<- sum(    (osd[,1 ] ) *(1- osd[, j ]  ) )
 cosw<- sum(    (1-osd[,1 ]) *  (osd[, j ]  )     )
 dosw<-   sum(    (1-osd[,1 ] )*(1-osd[, j ])   )  
aaos<-c(aaos,aosw)  # 曝露-cRDプロット
bbos<-c(bbos,bosw)
ccos<-c(ccos,cosw)
ddos<-c(ddos,dosw) 


# 曝露数     生起因子との重複の大きさまではみず、選択
 bakos<- aosw+cosw
   print(bakos)
bakua<-c(bakua,bakos)
# cRD         曝露-cRDプロット 
 crdos <- aosw/(aosw+cosw)-bosw/(bosw+dosw) 
    crdo     <- c(crdo,crdos) 
   }         # 曝露-cRDプロット 
# プロットしてみる 
plot(bakua,crdo)
 text(x=bakua,y=crdo,colnames(osd)) 
------------------------------------

          

          図 曝露-cRDプロット


 ・ 一見して、生起因子があきらか、かつ曝露が大きい
 ・ cRD は+-相半ば


■ 因子選択と交互作用
・ vice以外の発生を担う因子
 因子を絞るためには、すべての発生を取りこぼさないよう、生起性を説明できる因子を最小限入れる 
 sum((osd$y)*(1-osd$vice) )                      #  vice以外のy1数
[1] 3 
 sum( (osd$y)*(1-osd$vice) *osd$cake )     #   vice以外のcake曝露の y1数
[1] 3
 から、cakeをモデルに加える 必要がある; vice以外の発生をcakeに担わせる
 このことで、IC = 0 付近のモデルをさがす  


・ プロットから因子選び交互作用
 【生起因子との重複の大きそうな因子を選ぶ】
  oswのデータで 重なりをみる
     yakih spi cake choco は重なりが大きい cakeはここでも含まれる
          * 因子の重複を記述:別記事
 【交互作用は因子図の頂点を結ぶ;囲むように組む】

    


・モデリング ~交互作用モデルまでと評価
・独立モデル
   oswd <- lm(formula = y ~ vice+yakih+choco+milk+wat+spi +cake ,data=osd)
   (Intercept) 0.10729 Multiple R-squared: 0.3818
       * 抑制因子は、milk spi choco となったが、上plotで選んだものに近い
・交互作用
 oswca <- lm(formula = y ~ vice+yakih+choco+milk+wat+spi +cake+vice:milk+vice:choco + choco:milk  ,data=osd)
  (Intercept) -0.01570 Multiple R-squared: 0.4384  よい
 しかし、異常係数1<がふくまれる !!!
  oswca3 <- lm(formula = y ~ vice+yakih+choco+milk+wat+spi +cake+vice:milk+vice:choco + choco:milk+vice:choco:yakih ,data=osd)
  (Intercept) 0.04603  Multiple R-squared: 0.4445  かなりよい
   
・・3重作用を2つ
 oswca33 <- lm(formula = y ~ vice+yakih+choco+milk+wat+spi +cake+vice:milk+vice:choco + choco:milk+vice:choco:yakih+vice:cake:milk ,data=osd)
 (Intercept) 0.04614  Multiple R-squared: 0.4449  なかなかよい    
    * 抑制因子は、独立モデルでの milk spi choco であって、変化ない
      choco は交互作用を注意
 なお、vice:choco:milk を加えると NA となる
 sum(osd$vice*osd$choco*osd$milk) は [1] 2 であり、すべてy1 


交互作用の係数解釈
 これらモデルでの因子の性格は、「vアイスは生起因子、ミルクなど抑制因子、チョコ:vアイスでチョコは抑制、ミルクは、チョコで阻止される」 


■ まとめ
・曝露-cRDプロットから因子を選んだ
 生起性のほとんどを説明しうる2因子を組み込んだ ;観光船事例と同じ
・上プロットを囲むような交互作用項を組んだ          ;観光船事例と同じ
 2重項個数>3重項個数              ;船事例でも 
   ・・経験的
・この事例ではいずれのモデルも MRsqが大きい 発生率が極めて高いor 曝露の重複が小さいためか


■ 問題点 
・囲むような交互作用項を組むとモデル全体が上手くいくのはなぜかはわからない
・異常な係数 1<がでてくることがある

×

非ログインユーザーとして返信する