繁体   English   中英

R中的model.matrix解释

[英]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 ~ . -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水平消失了,因为变量的第一个水平用于截距,而所有其他水平都是从中测量的.

这些是参数化模型的 2 种不同方式

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM