1

現在、非常に多くの変数を持つデータセットを扱っています。したがって、SGL パッケージに実装されている疎群 LASSO 変数選択手法を使用することにしました。

私の問題は、このパッケージを使用して構築できるモデルの 1 つであるロジスティック回帰問題です。ただし、使用しようとすると、エラー メッセージが表示されます。私のデータ フレームは N と呼ばれ、バイナリ ベクトルは y と呼ばれます。

> x <- as.matrix(N)
> y <- as.matrix(Y)
> data <- list(x, y=y)
> sgl_small <- cvSGL(data, groups, type="logit")

Error: NA/NaN/Inf in foreign function call (arg 1)

前の状況では、Y は 0 と 1 のバイナリ数値ベクトルだったので、問題は Y が因数ではないことだと思い、もう一度試しました。

> x <- as.matrix(N)
> y <- as.factor(Y))
> data <- list(x, y=y)
> sgl_small <- cvSGL(data, groups, type="logit")

Error in seq.default(log(max.lam), 
  log(min.lam), (log(min.lam) -   log(max.lam))/(nlam -  : 
'from' cannot be NA, NaN or infinite
 In addition: Warning messages:
 1: In mean.default(y) : argument is not numeric or logical: returning NA
 2: In mean.default(y) : argument is not numeric or logical: returning NA
 3: In Ops.factor(y, m.y) : '-' not meaningful for factors

したがって、このエラー メッセージは、y が因数であってはならないことを示しているようです。特に、y を数値バイナリ ベクトルと見なして cvSGL 関数を実行すると、ロジット モデルではなく線形モデルを構築するため (線形モデルは私にとって意味のあるものではありませんが)、何が問題なのかわかりません。実際に動作し、エラーは発生しません。

私はこれを適用することに言及しています:

> y <- as.matrix(Y)
> data <- list(x, y=y)
> sgl_small <- cvSGL(data, groups, type="linear")

他の誰かがこのパッケージを使用してロジットモデルを構築しようとした場合、私は助けに感謝します.

4

1 に答える 1

1

cvSGL のヘルプページでこの例を見つけました

set.seed(1)
n = 50; p = 10;
X = matrix(rnorm(n * p), ncol = p, nrow = n)
beta = (-2:2)
y = sample(c(0,1),50, replace = T)
data = list(x = X, y = y)
cvFit = cvSGL(data, type = "logit")

ご覧のとおり、パラメーター "index" (グループと呼んでいました) は、この状況では使用されませんでした。あなたの場合、インデックスをどのように定義したかわかりません。問題は、要素リストの名前を定義する必要があることだと思います

data <- list(x = x, y=y)
于 2016-06-09T09:34:53.953 に答える