[英]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.