我通过glmnet
运行了一个logit模型。我从最小的lambda中提取系数,它给出了我期望的结果。但是我有一个具有九个唯一值的因子变量,glmnet
为此产生一个系数,这对于二元变量而言是预期的,但不是因子......
library(glmnet)
coef(model.obj, s = 'lambda.min')
#output:
TraumaticInj 2.912419e-02
Toxin .
OthInj 4.065266e-03
CurrentSTDYN 7.601812e-01
GeoDiv 1.372628e-02 #this is a factor variable w/ 9 options...
所以我的问题:
1)我应该如何解释glmnet
中的因子变量中的单个系数?
2)是否有一种方法来提取变量的不同因子的系数?
答案 0 :(得分:1)
Glmnet不处理因子变量。你必须使用例如模型将它们转换为假人。矩阵。因此,您看到的结果是glmnet将您的因子变量视为单个实变量。
答案 1 :(得分:0)
无法完成,b / c glmnet不会处理因子变量。这在这里得到了很好的回答:How does glmnet's standardize argument handle dummy variables?
@R_User在答案中的评论特别有见地:
@DTRM - 通常,不会将分类变量标准化为 保留估计的回归量的可解释性。但是,作为 Tibshirani在此指出: statweb.stanford.edu/~tibs/lasso/fulltext.pdf,"套索方法 需要初始标准化的回归量,以便 惩罚计划对所有回归者都是公平的。对于分类 回归量,用虚拟变量对回归量进行编码然后 标准化虚拟变量" - 所以虽然这会导致任意 在连续变量和分类变量之间进行缩放,它已经完成了 平等的惩罚待遇。 - R_User Dec 6
 13 at 1:20