Mar*_*ion 5 r linear-regression
假设 x2-x4 是连续预测变量,在使用 R 中的 lm() 创建的设计矩阵中各占据一列。我想包含 x1 一个具有 3 个级别的分类变量。
回归R代码:
fit <- lm(y~as.factor(x1)+x2+x3+c4,data=mydata)
如何从 R 中的 lm() 打印设计矩阵以及它会是什么样子?我需要知道 R 中使用的默认编码,以便我可以正确编写对比语句。
我认为该model.matrix()功能就是您所追求的。
正如kjetil b halvorsen所说,您可以在参数中指定模型。或者您可以只提供model.matrix定义的模型。
fit <- lm(y~as.factor(x1)+x2+x3+c4,data=mydata)
model.matrix(fit)
Run Code Online (Sandbox Code Playgroud)
您甚至可以获得新数据的设计矩阵:model.matrix(fit, data=newdata)
kjetil b halvorsen 的评论对我帮助最大:
res <- lm()使用参数调用,x=TRUE然后设计矩阵将在模型对象中返回res,然后调用str(res)以查看 的结构res,现在您将了解如何从中获取设计矩阵。但更容易的是model.matrix(y ~ x + f, data=...)使用您在 中使用的相同模型公式进行调用lm。