R に当てはめている複雑なセミパラメトリック モデルがあります。理論に基づくモデルから始めます。相互作用用語がたくさんあります。各交互作用項または相互作用しない主効果を 1 つずつ削除し、AIC をチェックして、最小の AIC を与えるモデルを保持します。次に、保持されたモデルで手順を繰り返したいと思います。
簡単な例を次に示します。
set.seed(42)
library(mgcv)
N=220
fac = ceiling(runif(N)*2)
a = rnorm(N); b = rnorm(N); c = rnorm(N); d = runif(N); e = rnorm(N);
y = a^fac + b*e + d/(e+1)
m1 = gam(y~ as.factor(fac)
+ s(a)
+ s(b)
+ s(c)
+ s(d)
+ te(a,b,c)
+ te(a,d,by=as.factor(fac))
)
m2 = gam(y~ as.factor(fac)
+ s(a)
+ s(b)
+ s(c)
+ s(d)
+ te(b,c)
+ te(a,d,by=as.factor(fac))
)
m3 = gam(y~ as.factor(fac)
+ s(a)
+ s(b)
+ s(c)
+ s(d)
+ te(a,c)
+ te(a,d,by=as.factor(fac))
)
m4 = gam(y~ as.factor(fac)
+ s(a)
+ s(b)
+ s(c)
+ s(d)
+ te(a,b)
+ te(a,d,by=as.factor(fac))
)
m5 = gam(y~ as.factor(fac)
+ s(a)
+ s(b)
+ s(c)
+ s(d)
+ te(a,b,c)
+ te(d,by=as.factor(fac))
)
m6 = gam(y~ as.factor(fac)
+ s(a)
+ s(b)
+ s(c)
+ s(d)
+ te(a,b,c)
+ te(a,by=as.factor(fac))
)
m7 = gam(y~ as.factor(fac)
+ s(a)
+ s(b)
+ s(c)
+ s(d)
+ te(a,b,c)
+ te(a,d)
)
selection = AIC(m1,m2,m3,m4,m5,m6,m7)
selection
df AIC
m1 14.53435 1626.611
m2 12.52501 1622.635
m3 12.54566 1622.615
m4 12.52652 1622.633
m5 13.14108 1620.759
m6 10.99684 1621.156
m7 10.98136 1622.229
m5は最高です
m5 = gam(y~ as.factor(fac)
+ s(a)
+ s(b)
+ s(c)
+ s(d)
+ te(a,b,c)
+ te(d,by=as.factor(fac))
)
m5.1 = gam(y~ as.factor(fac)
+ s(a)
+ s(b)
+ s(c)
+ s(d)
+ te(b,c)
+ te(d,by=as.factor(fac))
)
m5.2 = gam(y~ as.factor(fac)
+ s(a)
+ s(b)
+ s(c)
+ s(d)
+ te(a,c)
+ te(d,by=as.factor(fac))
)
m5.3 = gam(y~ as.factor(fac)
+ s(a)
+ s(b)
+ s(c)
+ s(d)
+ te(a,b)
+ te(d,by=as.factor(fac))
)
m5.4 = gam(y~ as.factor(fac)
+ s(a)
+ s(b)
+ s(c)
+ s(d)
+ te(a,b,c)
#+ te(d,by=as.factor(fac))
)
selection.2 = AIC(m5,m5.1,m5.2,m5.3,m5.4)
selection.2
df AIC
m5 13.363029 1621.183
m5.1 9.671656 1617.641
m5.2 9.730047 1617.549
m5.3 9.706424 1617.569
m5.4 9.857504 1620.028
5.2がベスト
...等々。次に、m5.2 で各相互作用項または非相互作用主効果を試してみます。質問は、これを自動化するにはどうすればよいですか? モデル (私の場合は m1) から始めて、このアルゴリズムによる「より良い」モデルがなくなるまでこのアルゴリズムを実行した後、R に最適なモデルを提供してもらいますか?
現時点では手動で行うことができますが、時間の経過とともにデータを追加すると、モデルの選択が変わる可能性があります。
ヒントをお寄せいただきありがとうございます。