从glmnet中的因子变量解释/提取系数

时间:2014-08-12 19:39:52

标签: r extract glmnet coefficients

我通过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)是否有一种方法来提取变量的不同因子的系数?

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