model.matrix R 中的解释

model.matrix explanation in R

我试图理解一些在 R 中构建模型矩阵的代码,但无法理解一些基本语法。

下面是一些可重现的代码:

test_df <- data.frame(category =c("Poetry", "Narrative Film", "Music"), 
                      country=c("GB", "US", "US"), usd_goal_real=c(1534,30000,45000),
                      time_int = c(59, 60, 45), state=c(0,0,0)
                      )
test_df2 <- data.frame(model.matrix( ~ . -1, test_df))
test_df3 <- data.frame(model.matrix( ~ . , test_df))

test_df2 <- data.frame(model.matrix( ~ . -1, test_df)) 中具体指定了什么?

具体来说,~ . -1 是什么意思?这是否从模型中排除了一个字段? iI 与下一行中的公式 ~ . , 有何不同?

最简单的答案是 model.matrix 中公式中的 -1 从模型中删除了 X 截距项。 data.frame(model.matrix( ~ . -1, test_df)) 产生:

  categoryMusic categoryNarrative.Film categoryPoetry countryUS usd_goal_real time_int state
1             0                      0              1         0          1534       59     0
2             0                      1              0         1         30000       60     0
3             1                      0              0         1         45000       45     0

data.frame(model.matrix( ~ . , test_df)) 产生:

  X.Intercept. categoryNarrative.Film categoryPoetry countryUS usd_goal_real time_int state
1            1                      0              1         0          1534       59     0
2            1                      1              0         1         30000       60     0
3            1                      0              0         1         45000       45     0

由于模型中有一个分类变量,您还会注意到当模型中存在 X 截距时该变量的 Music 水平消失,因为变量的第一水平用于截距和所有其他的都是从那里测量的。

有两种不同的模型参数化方法