morの解析ブログ

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

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

Rで 度数行列からriskの信頼性、quantileで起こりにくさをみる記述-- 因子の選択

 前記事;「Rで 因子の性質を逐次調べる 簡潔な記述 &例r1r2」で、おおまかに因子をながめた
 各因子効果を判断するために信頼性おこりにくさを見極める必要がある
 生起・抑制因子の存在下で調べ仕分けする記述を例示する 
・度数行列から信頼性のある因子層をみわける
  r1で<10度数 で率は不審、r2で平均値に漸近すること
・G内で、発生度数Y・ID数Nは固定されていて、ランダムな率のばらつきは曝露数から超幾何関数により決まる 観察値と比較する記述

■ 記述
   +++++++++++++++++++++++++++++++++++++++++++++++
     信頼性 ;度数の大きさ  から ”信頼性”をみる
   +++++++++++++++++++++++++++++++++++++++++++++++
前提
 生起因子2つ曝露かつ抑制因子2つが曝露するG ;を基本的な域とおいて記述する例
      

設けた前提:生起かつ抑制曝露のG

                     とある特殊な状況が生まれる:後述 
▼ 度数から行列をつくる記述                      
   rd_<- NULL            
      y1<- yos
      v1<- 1- (1-osd[,13])*(1-osd[,12])    #    vi または tyap   または12 cakeとしておく
      v2<- 1- (1-osd[,7])*(1-osd[,14])    #    r  または choco  だけとしておく 
       r1_<-NULL
       r2_<-NULL
  osmx <- matrix(nrow=5,ncol=15)   #  度数の行列をつくる 
   for (k in 1:15) 
   {        v3<-osd[,k]  
     r1<-sum( v1*v2*y1*v3)/sum( v1*v2*v3)     # 曝露群の発生率
     r2<-sum( v1*v2*y1*(1-v3))/sum( v1*v2*(1-v3))    # 非曝露群の発生率
                r1_<- c(r1_,r1)
                r2_<- c(r2_,r2)    
           osmx[1,k]<-sum( v1*v2*y1*v3)   #
           osmx[2,k]<-sum( v1*v2*v3)           #     曝露数 k1     
           osmx[3,k]<-sum( v1*v2*y1*(1-v3))
           osmx[4,k]<-sum( v1*v2*(1-v3))   # 非 曝露数 k2
      colnames(osmx)<- colnames(osd)    
            }
           生起抑制下の各因子度数

                   このGでの Y=21 N=26   平均 0.808 
                [1] 発生数 [2] k1 曝露数 [3] 非曝露発生数 [4]非曝露数 
・行列から信頼性を判断
 因子ごとの度数から即 信頼性を判定する
y yakih spi pote cabe jero rol tyap milk cafe wat cake vice choco salad

          ‐    _  _  _  ___   ___  _|  ___   ×  __  __ -   -   _|  ×

                                                                               前提 生起 vi,cake   抑制  r choco 
     × : 信頼性×  曝露k1が<10で残りk2のr2は平均に漸近  
     - : 初期前提条件 生起因子   
     | :   〃    抑制因子
  ・milk.saladは、曝露数 k<10で信頼性は薄い  ←→ 信頼性がある
 曝露数 k が  10 ~ N-10の間の因子の性質は信頼する
▼信頼性と起こりにくさをみる記述       

   +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    事例のデータY,Nから、起こりうる範囲の発生率を得て 観察した率と比べる  
   +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 観察値の信頼性は曝露数kによる大きさで表す; <10で小円
 曝露数に依存して;率がランダムに取りうる 振れ幅をquantileで表す
       plot( xlim=c(1,15),ylim=c(0,1),"")
for (i in 1:15) {     # 信頼性係数 sk logistic関数で;観察値plotの大きさ ばらつきに応じて
       sk<-  1/(1+exp((  osmx[2,i]-10  )/10) )       
    text(x=i+0.02 ,y=osmx[1,i]/osmx[2,i] ,"◇",cex=sk+0.7 ,col="orange") # obs 非信頼性の程   
 # text(x=i ,y=(osmx[1,i]+1)/osmx[2,i] ,"△",cex=sk+0.5 ,col="red")   # 観察値+1
    # text(x=i ,y=(osmx[1,i]-1)/osmx[2,i] ,"▽",cex=sk+0.5 ,col="red")   # 観察値-1
text(x=i ,y=(qhyper(0.5,37,16,osmx[2,i]) / osmx[2,i] ,"--",cex=0.5,col="black")  # ≧0.5の点
      text(x=i ,y=(qhyper(0.2,37,16,osmx[2,i])  -1) / osmx[2,i]  ,"-",cex=1,col="blue")  
    text(x=i ,y=(qhyper(0.8,37,16,osmx[2,i]) +1 )  /osmx[2,i]  ,"-",cex=1,col="red")   
  text(x=i ,y=0.14,colnames(osmx)[i],cex=0.7)
        text(x=i ,y=0.19,i,cex=0.7)
   }   #     ( qh-1 )/k    曝露発生率の 20%以上確率で
・描画

   

               因子による観測値と、曝露数で異なる振れ幅
                                                                                 前提 生起 vi,cake   抑制  r choco
                     ◇ :観測値  characterが大きいほど信頼性低い 
                  ー    :k曝露数による とりうる 幅;  quantile 0.2,0.8 
・起こりにくさに従った、因子の性質 ・・傾向を甘めに判断すると
y yakih spi pote cabe jero rol tyap milk cafe wat cake vice choco salad

          ‐    _  _     _  ___     ___     _|  ___  ×      __    __  -   -   _|  ×
   ・  無関   微抑? 無関  無関    無関      阻止   ・  無関 微抑? 微抑?  ・      ・        ・  
前提 生起 vi,cake   抑制  r choco         
          × : 信頼性× 
          - : 初期前提条件 生起因子   
          | :   〃    抑制因子    抑制

   

■ r1r2plotに判定を書き込む

 

            r1r2plot 結果判定付き
前提による特殊な意味
 r1r2においても、普通の因子;前提4因子以外を調べて、r2= vi cake rol choco の下で、となるのだった 曝露G の設定は、4つの因子が関わり、それ自身が調べる標的となるという特殊な状況になる その 下でリスク値を構成する因子は、
r2’が 他の因子を調べる場合とは違った意味になる
   因子                r1'        r2'             ベン図   意味   
     rol    抑制前提  vi cake rol choco   vi cake      choco  r1の一部 rolは抑制
  cake 生起前提  vi cake rol choco   vi     rol choco    r1の
一部 第二性質抑制
   vice 生起前提     vi cake rol choco    cake rol choco  r1外部r2の一部
   choco 抑制前提    vi cake rol choco   vi  cake rol       r1の一部                           

 ・・・ ・・・ ・・・
▼ r1r2plotでは、・・
 非信頼性を除いてみると概して右下がりに並び、さらに両端で性質が現れて自然にみえる
 milk.saladは、曝露数 k<10で信頼性は薄い  
 kがいずれも中ほどなものは、 信頼性がある 発生に対して効果は はっきりとない:poteなど と発生に効果がはっきりとあるものに分けられる
  quantile内の因子がめだつが、その中で、tya;生起性はない が幾分高めにとどまり、阻止を疑える milkは信頼性がない wat、chocoは抑制側かわからない spiは僅かに抑制側
 cakeは 前提とした生起なのに低めな点は、・・・ 
 vice非存在下では、生起性がある しかし上の前提;vise存在下+抑制因子下では抑制性を示す ということ
■ memo ばらつきの方向

r1r2プロットで ばらつきは、多くの因子で右下がりになる
 ばらつきの描画記述;8番目の因子 を例に
 前記事 記述; ▼ riskを生起、抑制、阻止にわたって逐次調べる記述▼▼▼ ;実行後
  --- ばらつきの例示 記述 ---
  plot(xlim=c(.6,0.8),ylim=c(0.6,0.8),"")  # わく
  text(x=r1_[8],y=r2_[8],"+",cex=1,col="purple")    # 観察値
  text(x=r1_[8]+0.01,y=r2_[8], "ty" ,cex=0.7,col="red") #項目
 text(  x= qhyper( 0.2,34,16,osmx[2, 8 ] ) / osmx[2, 8 ]  ,  y=  (34-qhyper(0.2,34,16,osmx[2, 8 ] ) )/  (50-osmx[2, 8 ])     ,"+" , cex=1,col="red")  
  text(  x=qhyper( 0.8,34,16,osmx[2, 8 ] ) / osmx[2, 8 ]  , y=  (34-qhyper(0.8,34,16,osmx[2, 8 ] )) /(50-osmx[2, 8 ])  ,"+" , cex=1,col="blue")  
  --- ばらつきの例示 記述 ---

         

tyを例にした、率の取りうる範囲  

                                                    quantile0.2、0.8
 この傾きは、因子の曝露数と、このGの発生率平均によって変わる
■ 信頼性と因子の効果による仕分け
  2面から考えた
  Ⅰ 観察値がもつあいまいさ ~ 曝露数kによる
        ~ 観察因子の曝露数kは小さいとき、急激にばらつく
      ・・ロジスティック関数で表現した
       もう一方のGで率は平均に漸近する 
  Ⅱ コホートデータとして度数がとりうるばらつき ~ 事例の発生数、母数は一定
       ランダムな曝露数kに依存したqhyperに従う

       非曝露率 (Y-a)/(N-k) から、r1とr2は関連
       観察値とのかけ離れ具合をみることができる
■ まとめ
 コホートデータについて粗な生起性から生起因子とし、適当な抑制因子の存在下で調べた
 信頼性のあやしさを大きさとして
曝露度数の少ない因子<10 を非信頼性とみなしplotし、一方事例のNと発生数Yからとりうる幅を超幾何関数quantile;k曝露数に依存  から率へと計算してplotした 
 因子の性質は、甘めに判別すると生起因子は生起因子下では、ときに抑制性を現し、生起抑制下で阻止因子が現れうる

×

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