別事例oswデータで 因子選択 交互作用の組み方を試す【曝露-cRDプロット】
■ 因子選択と交互作用項の設定は 別事例データでも通じるか調べる
因子選択 ~ 曝露数、cRD 絶対値の大きなもの
交互作用項の設定 ~ それらの主な組み合わせのみによる
2重交互>3重交互
モデルは 切片≒0,MRsqはより大きいもの を基準に
・oswegoデータ
■ 曝露-cRDプロット
csv は OS・・
データ名 osd
colnames(osd)
[1] "y" "yakih" "spi" "pote" "cabe" "jero" "rol" "tyap"
[9] "milk" "cafe" "wat" "cake" "vice" "choco" "salad"
ncol(osd)
因子数は、ncol(osd)-1となるが、yをもまとめてあるため繰り返し計算の回数はncol(osd)
--------------------
# 曝露-cRDプロット
# この記述は、できるだけ汎用な記述で
aaos<-NULL
bbos<-NULL
ccos<-NULL
ddos<-NULL
bakua<-NULL
crdo<-NULL
# 繰り返し幅 # 曝露-cRDプロット
for ( j in 1:ncol(osd) ) {
# 度数;22table
aosw<-sum( osd[,1 ] * osd[, j ] )
bosw<- sum( (osd[,1 ] ) *(1- osd[, j ] ) )
cosw<- sum( (1-osd[,1 ]) * (osd[, j ] ) )
dosw<- sum( (1-osd[,1 ] )*(1-osd[, j ]) )
aaos<-c(aaos,aosw) # 曝露-cRDプロット
bbos<-c(bbos,bosw)
ccos<-c(ccos,cosw)
ddos<-c(ddos,dosw)
# 曝露数 生起因子との重複の大きさまではみず、選択
bakos<- aosw+cosw
print(bakos)
bakua<-c(bakua,bakos)
# cRD 曝露-cRDプロット
crdos <- aosw/(aosw+cosw)-bosw/(bosw+dosw)
crdo <- c(crdo,crdos)
} # 曝露-cRDプロット
# プロットしてみる
plot(bakua,crdo)
text(x=bakua,y=crdo,colnames(osd))
------------------------------------
図 曝露-cRDプロット
・ 一見して、生起因子があきらか、かつ曝露が大きい
・ cRD は+-相半ば
■ 因子選択と交互作用
・ vice以外の発生を担う因子
因子を絞るためには、すべての発生を取りこぼさないよう、生起性を説明できる因子を最小限入れる
sum((osd$y)*(1-osd$vice) ) # vice以外のy1数
[1] 3
sum( (osd$y)*(1-osd$vice) *osd$cake ) # vice以外のcake曝露の y1数
[1] 3
から、cakeをモデルに加える 必要がある; vice以外の発生をcakeに担わせる
このことで、IC = 0 付近のモデルをさがす
・ プロットから因子選び交互作用を
【生起因子との重複の大きそうな因子を選ぶ】
oswのデータで 重なりをみる
yakih spi cake choco は重なりが大きい cakeはここでも含まれる
* 因子の重複を記述:別記事
【交互作用は因子図の頂点を結ぶ;囲むように組む】
・モデリング ~交互作用モデルまでと評価
・独立モデル
oswd <- lm(formula = y ~ vice+yakih+choco+milk+wat+spi +cake ,data=osd)
(Intercept) 0.10729 Multiple R-squared: 0.3818
* 抑制因子は、milk spi choco となったが、上plotで選んだものに近い
・交互作用
oswca <- lm(formula = y ~ vice+yakih+choco+milk+wat+spi +cake+vice:milk+vice:choco + choco:milk ,data=osd)
(Intercept) -0.01570 Multiple R-squared: 0.4384 よい
しかし、異常係数1<がふくまれる !!!
oswca3 <- lm(formula = y ~ vice+yakih+choco+milk+wat+spi +cake+vice:milk+vice:choco + choco:milk+vice:choco:yakih ,data=osd)
(Intercept) 0.04603 Multiple R-squared: 0.4445 かなりよい
・・3重作用を2つ
oswca33 <- lm(formula = y ~ vice+yakih+choco+milk+wat+spi +cake+vice:milk+vice:choco + choco:milk+vice:choco:yakih+vice:cake:milk ,data=osd)
(Intercept) 0.04614 Multiple R-squared: 0.4449 なかなかよい
* 抑制因子は、独立モデルでの milk spi choco であって、変化ない
choco は交互作用を注意
なお、vice:choco:milk を加えると NA となる
sum(osd$vice*osd$choco*osd$milk) は [1] 2 であり、すべてy1
・交互作用の係数解釈
これらモデルでの因子の性格は、「vアイスは生起因子、ミルクなど抑制因子、チョコ:vアイスでチョコは抑制、ミルクは、チョコで阻止される」
■ まとめ
・曝露-cRDプロットから因子を選んだ
生起性のほとんどを説明しうる2因子を組み込んだ ;観光船事例と同じ
・上プロットを囲むような交互作用項を組んだ ;観光船事例と同じ
2重項個数>3重項個数 ;船事例でも
・・経験的
・この事例ではいずれのモデルも MRsqが大きい 発生率が極めて高いor 曝露の重複が小さいためか
■ 問題点
・囲むような交互作用項を組むとモデル全体が上手くいくのはなぜかはわからない
・異常な係数 1<がでてくることがある