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
水平消失,因为变量的第一水平用于截距和所有其他的都是从那里测量的。
有两种不同的模型参数化方法
我试图理解一些在 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
水平消失,因为变量的第一水平用于截距和所有其他的都是从那里测量的。
有两种不同的模型参数化方法