在r中提取glmnet或lars包选择的变量

在r中提取glmnet或lars包选择的变量,r,R,我正在处理一个大p小n问题(p>1000,n=150),并决定使用glmnet和LAR来选择可能的解释变量(据我所知,这是它们的功能),而不是手动操作 我从函数中得到了一个lars和一个glmnet对象,但是现在我不知道如何从这些对象中提取函数选择的系数/最佳模型的名称 任何帮助都将不胜感激 这就是coef函数的作用。有关更多详细信息,请参见?coef.glmnet # fit a glmnet object obj <- glmnet(x, y) # matrix of coeffic

我正在处理一个大p小n问题(p>1000,n=150),并决定使用glmnet和LAR来选择可能的解释变量(据我所知,这是它们的功能),而不是手动操作

我从函数中得到了一个lars和一个glmnet对象,但是现在我不知道如何从这些对象中提取函数选择的系数/最佳模型的名称


任何帮助都将不胜感激

这就是
coef
函数的作用。有关更多详细信息,请参见
?coef.glmnet

# fit a glmnet object
obj <- glmnet(x, y)

# matrix of coefficients
# each row is a variable, each column is one step in the glmnet path
coef(obj)

# coefficients for a specific model in the glmnet sequence
coef(obj, s=obj$lambda[1])
coef(obj, s=0.01)
#适合glmnet对象

obj我也认为这应该更容易,但是这里有一种方法假设你知道你想要使用的正则化路径的哪一个点,即你知道感兴趣的Lambda

mod <- glmnet(x, y)
LambdaIndex <- 50 # just randomly picking one of the 100 Lambas tried
nonZerosIndices <- mod$beta[, LambdaIndex]!=0 
nonZeroVars <- names(mod$beta[nonZerosIndices, LambdaIndex])

mod对不起,我犯了一个错误,我的意思是变量而不是系数!哎呀!