对不起,如果这个问题有点基本。
我希望将 LASSO 变量选择用于 R 中的多元线性回归模型。我有 15 个预测变量,其中一个是分类变量(这会导致问题吗?)。设置我的和后,我使用以下命令:
model = lars(x, y)
coef(model)
我的问题是当我使用coef(model)
. 这将返回一个包含 15 行的矩阵,每次添加一个额外的预测变量。但是,没有关于选择哪种型号的建议。我错过了什么吗?有没有办法让 lars 包只返回一个“最佳”模型?
还有其他帖子建议使用glmnet
,但这似乎更复杂。尝试如下,使用相同的和。我在这里错过了什么吗?:
cv = cv.glmnet(x, y)
model = glmnet(x, y, type.gaussian="covariance", lambda=cv$lambda.min)
predict(model, type="coefficients")
最后的命令返回我的变量列表,虽然有些是=0,但大多数带有系数。这是LASSO选择的“最佳”模型的正确选择吗?然后,如果我用所有具有系数的变量拟合线性模型,not=0
我会得到非常相似但略有不同的系数估计值。这种差异有原因吗?用 LASSO 选择的这些变量重新拟合线性模型并将其作为我的最终模型是否可以接受?否则我看不到任何显着性的 p 值。我错过了什么吗?
做
type.gaussian="covariance"
确保glmnet
使用多元线性回归?
变量的自动归一化是否会影响系数?有没有办法在 LASSO 程序中包含交互项?
我希望将此过程更多地用作演示如何使用 LASSO,而不是用于任何实际用于任何重要推理/预测的模型(如果这会改变任何东西)。
感谢您抽出时间来阅读。对 LASSO/lars/glmnet 的任何一般性评论也将不胜感激。