1

我正在尝试理解 R 中的模型矩阵(model.matrix),将分类变量转换为虚拟变量并遇到以下代码

# Option 2: use model.matrix() to convert all categorical variables in the data frame into a set of dummy variables. We must then turn the resulting data matrix back into 
# a data frame for further work.
xtotal <- model.matrix(~ 0 + REMODEL, data = df)
xtotal <- as.data.frame(xtotal)

有人可以帮我理解这里的“~0”是什么意思吗?代码试图做什么?

4

1 回答 1

2

+ 0表示模型不会有截距,即一列1s。在存在因子变量的情况下,当存在截距时,将删除其中一个级别,以确保模型矩阵是满秩的,这在普通最小二乘回归中是必需的。当截距不存在时,因子的所有水平都可以保留。

因此,此代码是一种将因子转换为矩阵的方法,其中存在所有级别的虚拟变量。省略+ 0将用一列 1 替换其中一个假人,这可能对您的目的没有用。

于 2020-01-12T07:55:16.980 回答