2

データフレーム全体で 1 つの応答変数といくつかの説明変数の間にモデルを適用した後、各モデルを AIC スコアでランク付けしたいと思います。私がやりたいことを正確に行う非常によく似た質問に遭遇しました。 モデルのリストで lapply を使用していますが、うまくいかないようで、理由がわかりません。mtcars データセットを使用した例を次に示します。

lm_multiple <- lapply(mtcars[,-1], function(x) summary(lm(mtcars$mpg ~ x)))

上記のリンクからの承認された回答は、次のことを示唆しています。

sapply(X = lm_multiple, FUN = AIC)

しかし、これはうまくいきません。この警告メッセージが表示されます。

UseMethod("logLik") のエラー:
クラス "summary.lm" のオブジェクトに適用される 'logLik' に適用可能なメソッドがありません

これが元の質問からの回答です...

x <- seq(1:10)
y <- sin(x)^2
model.list <- list(model1 = lm(y ~ x), 
               model2 = lm(y ~ x + I(x^2) + I(x^3)))
sapply(X = model.list, FUN = AIC)
4

1 に答える 1

1

summaryこのように削除する必要があります

lm_multiple <- lapply(mtcars[,-1], function(x) lm(mtcars$mpg ~ x))
sapply(X = lm_multiple, FUN = AIC)
于 2015-07-07T09:54:52.587 に答える