5

glmnetパッケージから使用しglmnetて LASSO 回帰を実行しようとしています。

次のコマンドを使用しています。

library(glmnet)
glmnet(a,b,family="binomial",alpha=1)

そしてエラーが発生しています:

> Error in if (!all(o)) { : missing value where TRUE/FALSE needed

a数値を含む行列です。 b値として係数を持つベクトルです。

ただし、bいくつかの欠損値があります。これがエラーの原因ではないかと疑っています。NAただし、 glmnet のドキュメントには sを除外するオプションがありません。

4

1 に答える 1

5

glmnet式を含む完全なデータ フレームを受け入れず (したがって、na.omit を使用しない)、別の応答行列と予測行列を使用するため、欠落している値を見つけてから、b予測行列をサブセット化してそれらの行を除外する必要があります。 .

library(glmnet)

set.seed(123)
a <- matrix(rnorm(100*20),100,20)
b <- as.factor(sample(0:1,100,replace = TRUE))

b[10] <- NA

na_index <- is.na(b)
res <- glmnet(a[!na_index, ], b[!na_index], family = "binomial", alpha = 1)
于 2015-01-27T15:22:51.220 に答える