例えば、
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)