観測n
数が変数の数よりも小さいデータがありますp
。回答変数はバイナリです。例えば:
n <- 10
p <- 100
x <- matrix(rnorm(n*p), ncol = p)
y <- rbinom(n, size = 1, prob = 0.5)
このデータにロジスティック モデルを当てはめたいと思います。だから私はコードを使用しました:
model <- glmnet(x, y, family = "binomial", intercept = FALSE)
この関数は、さまざまな $\lambda$ 値 ( LASSO回帰のペナルティ パラメーター) に対して 100 個のモデルを返します。n - 1
パラメータも少ない(観測数よりも少ない)最大のモデルを選択したいと思います。選択したモデルがlambda_opt
.
model_one <- glmnet(x, y, family = "binomial", intercept = FALSE, lambda = lambda_opt)
ここで、2 番目のステップを実行したいと思いstep
ます。モデルに関数を使用して、BIC - ベイジアン情報量基準の観点から最適なサブモデルを選択します。残念ながら、関数はクラスstep
のオブジェクトに対しては機能しません。glmnet
step(model_one, direction = "backward", k = log(n))
どうすればそのような手順を実行できますか? glmnet
この特定のクラス ( ) に対して、私がやりたいことを行う他の関数はありますか?