0
0

More than 1 year has passed since last update.

データフレームのままglmnetを使用する

Last updated at Posted at 2023-04-20

例えば、

set.seed(1)
epsilon <- rnorm(10)
dat <- data.frame(y = 1:10+epsilon,
                  x1 = rep(1,10),
                  x2 = 1:10,
                  x3 = (1:10)^2)

というデータフレームがあった場合、

y = \beta_0 + \beta_1 x_1 + \beta_2 x_2 + \beta_3 x_3

の形の線形回帰分析を行う際に、glmnetにおけるxの指定で、as.matrix関数を使用する方法のほかに、以下の方法が使用できる。

fml <- formula(y ~ .)
cv <- cv.glmnet(x = model.matrix(fml, dat)[,-1],
                y = model.frame(fml, dat)$y,
                family = "gaussian",
                alpha = 1)
lasso <- glmnet(x = model.matrix(fml, dat)[,-1],
                y = model.frame(fml, dat)$y,
                family = "gaussian",
                alpha = 1,
                lambda=cv$lambda.min)

0
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0