次のような単純な線形回帰をデータフレームで実行しようとしています。実際のデータセットには、より多くの因子とより多くの予測子(x)があり、すべてyを予測しようとしています。
f1 f2 x y
x a 1 3.3
x a 2 3.2
x a 3 3.04
x b 1 4.5
x b 2 4.9
x b 3 8
y a 1 20.1
y a 2 20.3
y a 3 21.9
y b 1 101.2
y b 2 201.8
y b 3 332.8
f1とf2の組み合わせごとに、傾向が異なることに注意してください。私がやりたいのは、f1とf2の組み合わせごとにlmモデルを作成し、それをある種のリストに保存することです。そうすれば、predictを呼び出すと、適切なモデルを使用して、xに基づいてyを予測できるはずです。以下に示すように、モデルのリストを作成するにはldplyを使用する必要があると思います
lm.model.list = ldply(x,.(f1,f2),function(x) {
fit = lm(x$y ~ x$x)
return(fit)
}
これはエラーになります、
Error: attempt to apply non-function
また、すべてをリストに入れると仮定しますが、その後、predictをどのように処理しますか?
編集:モデリング自体の要素にインジケーター変数を使用できることに気付きましたが、これは避けたいと思います。