Rの汎用記述 MHRDの総当たり計算 ~ osw事例データ
■ 事例データに汎用なMHRDを計算
■ 記述
----まずは、事例のデータを入れる;データの複写
t.data <- # 調べるデータ名を入れる 実例 oswの ” osd ” を入れる
----
【n×n因子 MHRD】
----カラム数、行列定義;枠作り、カラム名、データ埋め、保存
# カラム数
n.col<- ncol(t.data)
# 行列の枠づくり MH行列 曝露行列
matrix.mh <-matrix(0, nrow =n.col , ncol = n.col) # 行列を定義;MHわく
matrix.bak <-matrix(0, nrow =2 , ncol = n.col ) # 行列を定義;曝露数わく
colnames(matrix.mh)<- colnames(t.data) # 列名、行名を データから写す
rownames(matrix.mh)<- colnames(t.data)
case1mxmh<-matrix.mh # 事例ごとの行列の名前をふる
case1mxmh # データ入れる行列完成
# 枠づくりおわり
# --------- Rの汎用記述 MHRDの総当たり計算 -----------------
mhrd <-NULL # 【n×n因子MHRD】
tmhrd<-NULL
for (x in 1:n.col) { # x 全因子を調整対象とし、、、、
for (y in 1:n.col) { # y 因子固定することも
a1 <- sum( t.data[,1] *t.data[x]*t.data[y] ) # 曝露 サブg
b1 <- sum( t.data[,1] *(1-t.data[x]) *t.data[y]) #
c1 <- sum( (1-t.data[,1]) *t.data[x] *t.data[y])
d1 <- sum( (1-t.data[,1]) *(1-t.data[x])*t.data[y] )
a0<- sum( t.data[,1] *t.data[x]*(1-t.data[y]) ) # 非曝露 サブg
b0 <- sum( t.data[,1] *(1-t.data[x]) *(1-t.data[y] ) )
c0 <- sum( (1-t.data[,1]) *t.data[x] *(1-t.data[y]) )
d0 <- sum( (1-t.data[,1]) *(1-t.data[x])*(1-t.data[y]) )
# 式 ; ありなしによる、 の mhrd;【n×n因子MHRD】;
n1 <-a1+b1+c1+d1
n0 <-a0+b0+c0+d0
k11<-a1+c1 # 曝露数
k10<- b1+d1
k01<-a0+c0
k00<- b0+d0
rd1 <- a1/k11-b1/k10
rd0 <-a0/k01 -b0/k00
wei0 <- k01*k00/(k01+k00)
wei1 <- k11*k10/(k11+k10) # ↓ 【n×n因子MHRD】
# mhrd<- (wei0*rd1+wei1*rd0)/(wei0+wei1) ← まちがい?
mhrd <- ( wei0*rd0+wei1*rd1 )/(wei0+wei1) # ←
case1mxmh[x,y] <-round(mhrd,digits = 2) # 行列に入れる 有効数字制限
}
} # 」 総当たりMHRD 【n×n因子MHRD】 case1mxmh #
-----
# 保存データは、個別に変えておく
oswmh <- case1mxmh # osw事例なので、その総当たりMHRDであること
↑ 個別のデータ名でMH保存
-----
表示 Rの汎用記述 MHRDの総当たり計算
全体
coln<- colnames(tem.data) # のちの記述のため
別記事で グラフとして図示