假设x2-x4是连续的预测变量,在使用R中的lm()创建的设计矩阵中每个占一列。我想将x1包括三个级别的类别变量。
回归R代码如下所示:
适合<-lm(y〜as.factor(x1)+ x2 + x3 + c4,data = mydata)
如何从R中的lm()中打印出设计矩阵,它是什么样的?我需要知道R中使用的默认编码,以便可以正确编写对比语句。
MM
答案 0 :(得分:0)
我认为 model.matrix()
函数正是您所追求的。
正如 kjetil b halvorsen 所说,您可以在参数中指定模型。或者,您可以直接提交 model.matrix
定义的模型。
fit <- lm(y~as.factor(x1)+x2+x3+c4,data=mydata)
model.matrix(fit)
您甚至可以获得新数据的设计矩阵:model.matrix(fit, data=newdata)
答案 1 :(得分:-1)
使用参数x = TRUE调用res <-lm(),然后将在模型对象res中返回设计矩阵。然后调用str(res)来查看res的结构,现在您将如何获取设计矩阵。但是更简单的方法是使用与lm中使用的相同模型公式调用model.matrix(y〜x + f,data = ...)。 – kjetil b halvorsen