morの解析ブログ

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

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

Rで調べる 他の因子は弱抑制性をもつか  plot + text

・弱い因子の抑制性を調べる


■ 仮説 t以外の、或る因子が曝露重複する程、発生率を抑えている.
・調べる方針
 曝露する因子数をIDごとに和し、その数により分類し、発生率を調べる.
 一様なBGから取り出されたとみなした、発生率の起こりやすさと比べる.
・計算
 発生;yありなしと曝露重複度数が必要:IDごと そのdfを作る.
       ye     y   曝露
          1    5   i = 5 の例
          0    5
         ・    5
         ・   ・
 曝露度数  i 
   ye[ye[,2]==i,]   分子、分母のもと となる
   さらに、曝露数ごとに率を計算する.
name  [,1]  [,2]  [,3]   [,4]  [,5]  [,6]  [,7]  [,8]
  [1,]  "y"  "wat" "tya" "mesi" "tori"  "sake" "tam" "potesara"


■ 記述 全ID;t1 t0
 とりあえず全体について計算して調べる.


ye<-cbind( dr[,1], (dr[,2]+dr[,3]+dr[,4]+dr[,5]+dr[,6]+dr[,8] ))  
 dosdata<- NULL
   for(i in 1:8) {
   yi<- ye[ye[,2]==i,] #  
#    分母  yi内の ・・
   bo<- nrow(ye[ye[,2]==i,] ) 
# 分子 y1の計    yi[1,] の 和
   si<- sum(yi[,1]) 
# 率
   ri<- sum(yi[,1])/nrow(ye[ye[,2]== i ,] )  
 ind <-c(bo,si,ri )  
 dosdata <-rbind( dosdata,ind)
  }
  rownames(dosdata)<-t(c(1:8))
  colnames(dosdata)<-c("ID","発生","率")


表 全ID dosdata 重複数ごとのID数

             

図 全ID 重複数を度数とする各群の発生率
 plot(c(1:8),dosdata[,3],cex=dosdata[,2]/20,type="S",xlim=c(0,8),ylim=c(0,1))
 text(x=c(1:8)-0.5,y=dosdata[,3],cex=5,"-" )
 text(x=c(1:8)-0.5,y=0,dosdata[,1])
  

     

        
            横軸;曝露数、縦軸;発生率 図内数:群分母


 tを含む全IDについて t 以外の因子曝露を和し、曝露数ごとに発生率を計算した.曝露4から5では率の低下があった.
 全体をまとめて計算したせいか、曝露数に応じて発生率が低いとの一貫した傾向はない.やり直してみる.


■ s除いた場合 s0
 上と同様な処理で、曝露度数の条件を「sを除く」に変えると、「曝露が重なれば率が上がる」傾向が顕著.


■ t1に限った場合 t1
 抑制性を調べるには、tへの効果をみる必要があるのだった.
 tに限定する記述とし、調べる.
    t1 dosdata

    

 この場合、t1に限るため、上の表よりは各ID 数は小さい.図示するとへこみがある.
 

    

        率の、曝露度数ごと観察値     ↑発生率 →重複する曝露数


  曝露数2のところは少数ぶれであるため、色付き棒で起こりそうな範囲を示した.
  その幅は、詳しくはつぎの超幾何分布でみる.
  

     

           度数ごとの起こりやすさ n=12
                                                            nが小さいので階段が疎になっていること
                  横軸で6だと6/12=0.5 の率に相当する
     
  d12<-plot(dhyper(1:12,132,81,12),type="s") ♯ 均一な t1 から取り出したものとする
  which.max(d12) で起こりやすさ最大の番号は [1] 8となる.その両隣の確率密度を和すると、  
  sum(d12[7:9])  [1] 0.621124
  sum(d12[6:10])  [1] 0.8572838
  sum(d12[5:11])     [1] 0.9593948
なので、
 結局、t あり全体から12ID取り出すと、6-10が起こりやすい.
 観察した 6は、起こりやすい下限に近い.つまり、かなり小さめに現れている.これはnが小さな群に起こっているために、率のぶれがめだっているだけと考えられる.


■ 他の t1群について起こりやすさの範囲も広くみたい
 曝露重複した群のnと同じだけ、t1からランダムに取り出された時の率を超幾何分布から計算して、観察値がどうなっているかを調べる.


▲ データ限定するt1 記述  はじめから計算しなおす必要
   ye<-cbind( dr[,1], dr[,7]*(dr[,2]+dr[,3]+dr[,4]+dr[,5]+dr[,6]+dr[,8] )) 
dosdata<- NULL  ♯ ↑  
for(i in 1:8) {
   yi<- ye[ye[,2]==i,] #  
# 分母  yi内の ・・
   bo<- nrow(ye[ye[,2]==i,] ) 
# 分子 y1の計    yi[1,] の 和
   si<- sum(yi[,1]) 
# 率
   ri<- sum(yi[,1])/nrow(yi  )  
   ind <-c(bo,si,ri )  
   dosdata <-rbind( dosdata,ind)
   }
 rownames(dosdata)<-t(c(1:8))
 colnames(dosdata)<-c("ID","発生","率")
 -----
t1 描画 記述 
   dd<- dosdata   # としておく.
   if( dev.cur() > 1 ) dev.off() # 前の図を消す
     for ( i in 1:6) {
  bb <- dd[ i ,1]         #  i 番目の 分母 ;例 12 
   plot( 0,xlim=c(1,6),ylim=c(0,1),cex=0 )
   text(x=i ,  y=(1:bb-1 )/dd[i,1],"-" ,cex=dhyper(1:bb-1,132,81,bb)^0.5*10,col="gray" ) 
   text(x=i ,y=dd[i,3],"○")
  par(new = T )
     }


図 t1
       

                    ○  観察値
                    - 帯幅:確率密度
                      疎密 各群のn に応じる
                     n=0とnを除いてplot 


 各群のとりうる率とdhを図示し、観察と比較した.  


 曝露数2の他の群では、曝露度数が小さいほど、観察値は発生しやすい率を上回り、大きい時下回るから、曝露重複に応じた弱い抑制性がありうるとみる.


■ まとめ
・因子への重複曝露と発生の関係を記述し、t の生起性を抑制する弱い効果を調べる試み.
・調べる組み合わせとしてt1s0がありうる.
・取り上げていない因子が関係する可能性はある.

×

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