morの解析ブログ

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

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

発生度数から phyper 起こりやすさ で因子を分けてみる 《 超幾何関数を使ったplotシリーズ》ver 1.0

度数ベース で起こりやすさを調べる  超幾何関数を使ったplotシリーズの1つ
・phyperから因子を選択
■ 調べ方
 観察した、ある因子の曝露数はその発生数に対応する また、その曝露数、事例のNとY発生数から超幾何関数により発生数ごとの起こりやすさdhyperが対応する 因子発生数に対する起こりやすさの累積確率phyperが得られる 以下累積確率もおこりやすさと表現する
▼ 因子ごとの起こりやすさ
・曝露数から決まり、想定する範囲の発生数によって離散な値をとる
 累積確率なので、1に近いものと0に近いものの起こりやすさは小さい
phyper(oamz[1,1:15] ,37,16,oamz[2,1:15] )
y yakih spi pote cabe jero

1.0000000 0.7438876 0.4218412 0.5423578 0.7542633 0.6934652 
rol tyap milk cafe wat cake
0.4686631 0.8075626 0.3499018 0.5822086 0.3139147 0.3481803
vice choco salad
0.9995383 0.3178896 0.4798673     
kの大きさに注意;n<10のものをみるべきではある 
 これを ph15 <- に入れておく 
▼ 因子を選ぶ
 起こり難い因子を選ぶため起こりやすい因子をphyperではじく 
 両端の因子を選ぶには、
 sort(1-phyper( oamz[1,1:15],37,16,oamz[2,1:15]) )
           y            vice                   tyap               cabe                yakih 
0.0000000000 0.0004616987 0.1924373791 0.2457366737 0.2561124471
jero cafe pote salad rol
0.3065347869 0.4177914145 0.4576422288 0.5201326975 0.5313369114
spi milk cake choco wat
0.5781587722 0.6500981815 0.6518197272 0.6821104341 0.6860852888
                      n小な因子は salad,milk
 から、
① 生起方向のvice,tyap,抑制方向のchoco,wat を挙げる 
    (8,11,13,14) 
  ph22<-ph15 
   ph22[1:15]<-c(0,0,0,0,0,0,0,1,0,0,1,0,1,1,0) #  2個 2個
 seln<- ph22
また、機械的に数値で選ぶなら、
② 累積確率と起こりやすさの関係から、
 (2*ph15-1) /(1-0.6)       # 甘い 足切り  α =0.6
 とするとき、起こりにくい因子では、1を超える

  abs((2*ph15-1) /(1-0.6))    

  floor( abs((2*ph15-1) /(1-0.6)) )  # 切り捨てを利用して   
         y yakih   spi  pote  cabe  jero   rol  tyap  milk  cafe   wat 
2 1 0 0 1 0 0 1 0 0 0
cake vice choco salad
0 2 0 0
1,2を示すのが 選択された因子
 seln<-floor( abs((2*ph15-1)/(1-0.6)))>0 #  足切りで正の数を示す因子のvec
 文字の大きさ指定にも使える
▼ 限定した因子の表示

 曝露数に応じた 発生数と起こりやすさ因子ごと発生数・発生率*をみる ;r1
選択する因子を表示するには、

   ph22<-ph15 
   ph22[1:15]<-c(0,0,0,0,0,0,0,1,0,0,1,0,1,1,0) #  2個 2個
   seln<- ph22

  または
seln<-floor( abs((2*ph15-1)/(1-0.6)))>0 # としたうえで・・
   for (i in 1:15 ){    # 度数を横軸に、起こりやすさをみる
ph<-phyper( 1:53,37,16,oamz[2,i]) # ↓ step

   plot(xlim=c(1,53),ylim=c(0,1),ph,type="s",col=7+seln[i],lty=2 ,lwd=1+seln[i])  #  alfa=0.8, alfa  透明度 lty 2 点線   +i/1500  lwd 太さ
       par (new=T) }     #  ↓ r1 ■ 
    xloc<-oamz[1,1:15]*(oamz[1,1:15]*seln>0) +0.5
         yloc<-oamz[5,1:15]*(oamz[5,1:15]*seln>0)
 text(   x=xloc ,y=yloc  ,"■",cex=0.7,col="gray") # 発生数による r1  

text( x=xloc , y=yloc *0.8,colnames(oamz),cex=seln+0.01 )

# ↑ 発生数の位置に 名  この+0.5 はスペース用   ↓ +  

kloc <-oamz[2,1:15]*(oamz[2,1:15]*seln>0)

 text ( x=xloc , y=phyper ( xloc ,37,16, kloc ) ,"+" ) # x_発生数 y_phy 交点に 十

 

  図 選択した因子の起こりやすさ

            選択因子:① 生起方向のvice,tyap,抑制方向のchoco,wat 

       ■: xが観察発生数のとき、yは曝露発生率

       +: 発生数に対応した起こりやすさ;累積確率+ 

       線: 各因子曝露数に応じた起こりやすさの累積確率

 一般に因子名は、/線 の順に必ずしも一致しないことに注意;観察発生数の起こり難さ交点下に因子名  

▼ コホート Y,N-Y が一定

     度数         phyper      率   

    曝露数 k1     f(a,Y,N-Y,k1)   a/k1 ; r1

    発生数  a



    

dhyperで起こりやすさ・・《2》度数ベースで曝露非曝露plotしてみる ver1.0

 度数ベースで k に応じた 起こりやすさと観察値を比べる
 因子選択の第3の方法と思える
                  曝露数
      Y     因子   ・・・・              
 k1    37       38.       37       32      22.       21
▼度数ベースで k に応じた 起こりやすさをみる記述

dhを概観する

       plot(xlim=c(1,53 ),ylim=c(0,1),"") # 曝露度数を横軸に、起こりやすさをみる

par (new=T)

   for (i in 1:15 ){

  plot(xlim=c(1,53 ),ylim=c(0,1),dh[1:53, i ],type="l")

  par (new=T)

   }

    

dhyperは概して凸な分布をし、形は似る
▼度数ベースでplotする 観察値と起こりやすさも
 縦軸に因子(順)、dhで起こりやすさを ● grayでplotする
   いったん 非ゼロすべてを●で表す 
 観察発生数を ■で 示す                 
   plot(xlim=c(-5,40),ylim=c(1,15),"")

    for (i in 1:53){
        for(j in 1:15) {
          text (x= i ,y=j ,"",cex=(dh[i,j]+0.001)*5,col="gray") # 曝露群  
             text (x= -3,  y= j ,colnames(dh)[j] ,cex=1 )  # colnames
        #   text (x= 37/53*oamz[2,j] ,y=j, "▲") # 曝露・発生数 平均
   text (x= oamz[1,j] ,y=j, "",col="purple") # 観察値
  text (x= i ,y=j , "", cex=(dh2[ i , j ] +0.001)*5  ,col="pink") # 非曝露群  
     text (x= oamz[3,j] ,y=j, "",col="red",cex=0.7)
          }    }
    text (x= 40  ,y=13,      "_",cex=0.8)  # ”有意”水準 下
  text (x= 40  ,y=13+0.05*5, "_",cex=0.8)  # ”有意”水準 上
    text (x= 37  ,y=13, "《有意》性→",cex=0.8)  # ”有意”水準凡例
  


                        図 度数ベースの 起こりやすさ と 観察値

    ●;起こりやすさ に対応する大きさ  グレー:曝露 ピンク:非曝露
    ■;観察値               紫 :〃   赤 : 〃
      《有意》性→=  ; =の高さは0.05に相当する   起こりやすさと比較する
▼ 図からの読み方;例
 ”viceでは、観察の位置が、”有意”の高さより小さな●の右;大きい方にあるので、有意性をもって、発生が多い”と判断する
▼ 因子選択に使う       
 起こりやすさからのかけ離れ具合、で”有意性”を視覚化できるようなので・・

・まずは、小nに注意する salad、milkは明らかに曝露数が少ないのではじく
・曝露群;灰色の●で示す起こりやすさ から観察値■紫 が明確に離れた、viceがある
・ついで、yakihが少し右寄り;発生多め 
 曝露+抑制のGであるから、これは生起でなく阻止となる
・ほかに起こりやすい域を外れる因子はないが、多くの因子の観察値はわずかに低めとなっている