morの解析ブログ

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

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

メモ Rで練習 dhyperの非0からベクトルを作る

 hyper関数の結果、ベクトル要素に0が並ぶことも多い.非0ベクトルを作ればいい.


・題材 dh_158<-dhyper(80:158,98,76,158)


【目盛消す】  x軸目盛を消して、タイトルとして80:98を書き込む
   plot(dhyper(80:98,98,76,158),type="h",xaxt="n",x=80:98)

     

■ 【0でないデータの位置、長さ】


   which(dh_158>0) 
     [1] 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
 つまり、
     min(which(dh_158>0))
     [1] 3
     length(which(dh_158>0)) 
     [1] 17 
 なので、dhyperを更新して、0でない区間のdhyperを計算する.
   dhnew<-dhyper(83:97,98,76,158)

   

■ 別法
 【0でないデータをとりだす】
   dhhi <- dh_158>0       0でないデータかどうか ↓ 論理で現れる  
     [1] FALSE FALSE TRUE TRUE TRUE・・・
   dh1 <-  dh_158[dhhi]       TRUEのデータだけから ベクトル作る
   dh1             
     [1] 5.719778e-05 8.379818e-04 5.611485e-03 2.279803e-02
     [5] 6.289341e-02 1.249193e-01 1.847765e-01 2.076141e-01
     [9] 1.790671e-01・・・・・


  *hyperの結果、非0は隣り合った1つの山にまとまるので、0の両裾がカットされる.
           図 略

×

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