for ループを使用して、100 個の線形モデルと 100 個の二次モデルを同じ合成データに当てはめています。
(ランダムに) 5 つの線形近似と 5 つの二次近似を抽出し、これらの回帰関数を真のモデルの平均関数と共にプロットします。
これまでの私の考え:
- 乱数を10個選ぶ
- 10個のモデルを保持するコンテナ(データフレーム?)を作成します
- for ループに入り、フィットを取得します。i 回目の反復が乱数のセットからのものである場合は、そのモデルをコンテナーに保持します。
- ループを終了し、コンテナー内のすべての近似を真のモデルと一緒にプロットします
私が抱えている主な問題は、クラス「lm」の空のデータフレームを作成する方法を確認することです。
for ループの前に、コンテナーをビルドし、
fit.container.linear <- list()
fit.container.quadratic <- list()
そして、コンテナに入るモデルのインデックスをランダムに選択します
randy.linear <- sample(1:100,5,replace=F)
randy.quadratic <- sample(1:100,5,replace=F)
次に、for ループで、lm を使用して線形モデルと二次モデルを取得します。model.1 は線形です。model.2 は 2 次です。forループ内で、モデルをコンテナに保存します
for (k in 1:length(randy.linear)){
if (i == randy.linear[k]){
fit.container.linear <- list(fit.container.linear,model.1)
}
}
for (p in 1:length(randy.quadratic)) {
if (i == randy.linear[p]){
fit.container.quadratic <- list(fit.container.quadratic,model.2)
}
}
for ループを終了します。
ここで、係数を保持するコンテナーにアクセスし、すべてを 1 つのグラフにプロットします。