曝露パターン一致のものを比べる: w;第3の因子
■ 集まったデータ内で、ある因子wに注目するとき、その効果を調べるには、それ以外の因子への曝露が一致するものを探して比較するとよいのではないか.Rの記述は、やっかいになりそうだが・・.
▼ wは、「第3の因子・・」で浮かんだ1つの因子であり、別角度で調べる.ctrl gとして同じ条件にしたい.w1のなかでw以外の曝露状況を調べる、それらに一致するw0を探しだして比べるのがよいだろう.
w1 取り出すw0
1010 1010
1001 1001
1100 1001 w1 の2番目に一致するから採用
1100 〃 3 〃
wを含めデータは7因子に絞っている*.w0は、すべてを探し出して計数する.下の3から8の”曝露状況*をそろえる. *年齢性別などは省いている.
・name [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8]
[1,] "y" "wat" "tya" "mesi" "tori" "sake" "tam" "potesara"
・抽出
w1をまず、抽出する
リストアップする
dr[dr[,2]==1,] # w1 を抽出 26 ID のリスト
これを
dofw # w1である ID たち
としておく
# 何行目か ;ID番号 を調べるには・・
idw<- rownames(dr[dr[,2]==1,]) # w1である、ID番号 羅列
IDがわかる; ”ID”
ちなみに、 数値にするには・・
as.numeric(idw[ i ]) # IDを 数値とした
for(i in 1:26){ # 該当ID 行数を全部書き出せる
print(as.numeric(idw[ i ]))
}
# [1] 6 12 37 54 59 60 75 77 93 106
# [11] 121 136 144 152 153 158 160 171 180 181
# [21] 208 209 212 241 249 263
・w1での発生率 11 / 26
w1は、w1のdf リストである
sum(w1[,1])/nrow(w1) # 11 / 26
0.4230769
これは2×2表の 曝露での発生率そのもの.
------------------
■ w1のIDたちと同じ曝露のIDをさがす
・同じ曝露状況であるとは ・・・・・ 差の絶対値の和が 0 である
w1のIDの 3:8 の値が 一致すること
・dofw;w1を構成するIDとデータである
・w1のIDをkにより呼び出し、元データdrとの差の絶対値和を計算する
kabs<- NULL # k番目に対する 絶対値和 全員分 vec
alb<- NULL
for( k in 1:26 ) {
kabs <- abs(dr[ ,3]-dofw[k,3] ) +abs(dr[,4]-dofw[k,4])+abs(dr[,5]-dofw[k,5])+abs(dr[,6]-dofw[k,6])+abs(dr[,7]-dofw[k,7])+abs(dr[,8]-dofw[k,8] )
alb<-cbind(alb,kabs) }
・ kabs は 、kに対する絶対値和 の 全ID分の vector
・ albは、kごとの絶対値和がならんだdf
colnames(alb)<- idw # w1の各ID を列名にする 下図ではvk
‥ ・・・ 26列
:
[258]
全員
・alb
行は 全員のID 列はw1のもののID名、中身数値が、それぞれの絶対値和
* ID同士で比べると、3と9など曝露状況が一致するものがある.
w0 のID=232 個
idw0<- rownames( dr[dr[,2]==0,] ) # ID 羅列
IDが出せる; これは数値ではない
粗なtableのs0に一致
w0のなかの 曝露一致のものが ほしい
,,,,
yall は、yを含んだ、曝露数を網羅する 固定データ表
yall<-cbind(dr[,1],alb)
yall からw1とw0を比較するために、drの2列目w曝露をつなげておく.これを
yw
とする.28列目が、wである.
参考:
例 sum(yw[,k+1]==0) # kに対応する絶対値和0 のID数
■ いずれかが絶対値0
いずれかが絶対値0 つまり、w1に対応するIDは、
%in% :”含まれる” を用いて zerodf として取り出す
zerodf<- NULL
for (i in 1:258) {
zeroy<- yw[ i ,3:27]%in% 0 # true か false
zerodf<-rbind(zerodf,sum(zeroy)) # 全ID分 絶対値0の個数 df
}
rownames(zerodf)<- rownames(dr)
zerodfは、IDごとの”w1と同じ曝露パターン”と 何個 同じかをもつvec
概要 zerodfの・・
max( zerodf) 10 最大10 重複している
sum(zerodf!=0) 191 w1のどれかと曝露が一致するID数
* 0でない;重複する因子がある
w1との比較 w0:w1のいずれかの曝露状況と一致するもの
zerodf!=0 の2×2表
w1 w0
y1 dr[,1]*(dr[,2])*(zerodf!=0) 11 dr[,1] * (1-dr[,2])*(zerodf!=0) 99 110
y0 dr[,1]*(dr[,2])*(zerodf!=0) 15 (1-dr[,1]) * (1-dr[,2])*(zerodf!=0) 66 81
165 191
sum () を省略
OR 0.4889
■ w0
w0は多い.
zerodf[zerodf[,1]>0],]
■ リスク値
wに関する粗tableでは、w0は y1;128、y0;104 だから
cOR : 0.596
となる.
総当たりMHORでは、
MHOR : 0.52 <
であった.上のように絞ったtableでは、抑制性がより明らかな値で、
OR : 0.49
となった.
▼ RD
粗なtable 絞ったtable
11/26-128/(128+104) 11/26 - 99/165
-0.1286 -0.177
■ まとめ
・曝露群に対して、最も似た非曝露群を用意してw効果を調べた.世には症例群に対して対照群を設けるやり方があるが・・.
曝露状況のそろえ方は、元のもののいずれのIDの状況に一致するものとしたので、曝露パターンに偏りないとの前提を付けたと同じ.
影響があるかどうかわからない因子効果をも打ち消すような試行となる.
あえて例数を減らしてでも、対照を選べば、他の不明な因子の影響を避けることができそうだ.
・wは「第3の因子・・」で特徴は垣間見えていたが、対照群に工夫すると、抑制性がはっきりしたと思える.
■ 記述
ネタとして、
as.numeric
yw[ i ,3:27]%in% 0
f!=0
計算
曝露数を度数にし、一致するものから計算する記述
abs(dr[ ,3]-dofw[k,3] ) ;絶対値の和