有一个我正在处理的数据集,它只包含作为预测值的多级因子和一个二元响应变量。这当前是一个数据帧。我想在set上运行glmnet,所以我需要构建一个模型矩阵(model.matrix)。我在这里读到All Levels of a Factor in a Model Matrix in R,每个因素的某个水平被认为是水平。然而,我不知道这是不是因为在这种情况下有数值变量和因子变量?在任何情况下,有人能大致告诉我如何从MASS中的mtcars数据集构建模型矩阵吗
发布于 2014-12-18 06:25:05
这只是一个猜测,因为您还没有描述您正在使用的函数。我的直觉是,您正在使用一种“机器学习”--需要您提供单独的响应向量和预测器矩阵的算法。(如果我在这件事上错了,那么你肯定需要提供更多的细节。)
假设您将使用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将是引用所有因子变量的共享基础级别。
https://stackoverflow.com/questions/27535371
复制相似问题