1

多くの回帰モデルを自動的に実行し、これをテストして、元のファイルに適合および残差を保存したいと考えています。

つまり、データに対して考えられるすべての回帰モデルをテストしたいということです。

たとえば、X1=X2+X3...そして X2=X1+X3...そして X3=X1+X2...

次に、各モデルの近似値と残差値を追加します。

このようなファイルがあります。

test<-data.frame(X1=rnorm(50,mean=50,sd=10),
                 X2=rnorm(50,mean=5,sd=1.5),
                 X3=rnorm(50,mean=200,sd=25))
test$X1[10]<-5
test$X2[10]<-5
test$X3[10]<-530

考えられるすべての回帰モデルを実行します。

varlist <- names(test)

models <- lapply(varlist, function(x) {
    lm(substitute(i~., list(i = as.name(x))), data = data
})

各回帰モデルから適合と残差を取得しました。

lapply(models,residuals)
lapply(models, fitted)

ただし、すべての残差と適合値を元のデータに保存したいと思います。このような最終データを作成することは可能ですか?

X1 X2 X3 Residual1 Residual2 Residual3 Fitted1 Fitted2 Fitted3

つまり、それresidual1は からmodel1residual2からmodel2などです。

4

2 に答える 2

1

残念ながら、「考えられるすべての回帰モデルを実行する」の下のコードは正しく機能しませんが、これが単なる例であると仮定すると、 lapply(models,residuals) および lapply(モデル、適合) 変数として? 次に、列の数をループして、各変数から一度に 1 つずつバインドします。

models_residuals <- lapply(models,residuals)
models_fitted <- lapply(models, fitted)
for (i in 1:dim(models_residuals)[2])) {
    cbind(test, models_residuals[,i])
    cbind(test, models_fitted[,i])    
}

あなたが欲しいものについての私の考えが正しいかどうか教えてください!

于 2013-07-09T13:59:24.560 に答える