我正在处理一个数据集,它只包含多级因子作为预测变量和二元响应变量。这是目前的数据框架。我想在集合上运行glmnet,所以我需要构建一个模型矩阵(model.matrix)。我在这里读到
All Levels of a Factor in a Model Matrix in R
每个因素的某个等级被视为等级。但是,我不知道这是否是因为在这种情况下有数字和因子变量?在任何情况下,有人可以粗略地告诉我如何从MASS的mtcars
数据集构建模型矩阵
答案 0 :(得分:1)
这是猜测,因为您还没有描述您正在使用的功能。我的预感是你正在使用一种机器学习算法,它要求你提供单独的反应向量和预测矩阵。 (如果我在这个问题上错了,那么你肯定需要提供更多细节。)
假设您使用mpg
作为"结果" Y变量,仅使用第二和第三变量并构造"虚拟变量"只有第一个,这将是一个可以构建适当的X对象的model.matrix调用:
> model.matrix(~as.factor(cyl)+disp, mtcars[2:3])
(Intercept) as.factor(cyl)6 as.factor(cyl)8 disp
Mazda RX4 1 1 0 160.0
Mazda RX4 Wag 1 1 0 160.0
Datsun 710 1 0 0 108.0
Hornet 4 Drive 1 1 0 258.0
Hornet Sportabout 1 0 1 360.0
Valiant 1 1 0 225.0
Duster 360 1 0 1 360.0
Merc 240D 1 0 0 146.7
Merc 230 1 0 0 140.8
Merc 280 1 1 0 167.6
Merc 280C 1 1 0 167.6
Merc 450SE 1 0 1 275.8
##########Snipped remainder of output.
公式对象指定模型的性质。 (拦截)-term将是所有因子变量被引用的共享基础级别。