【发布时间】:2018-01-26 16:16:25
【问题描述】:
我是 R 新手,我正在尝试了解逻辑回归的解决方案。到目前为止所做的只是删除未使用的变量,将数据拆分为训练和测试数据集。我试图理解它谈论model.matrix的部分内容。我刚刚进入 R 和统计,我不确定什么是 model.matrix 和什么是合同。代码如下:
## create design matrix; indicators for categorical variables (factors)
Xdel <- model.matrix(delay~.,data=DataFD_new)[,-1]
xtrain <- Xdel[train,]
xnew <- Xdel[-train,]
ytrain <- del$delay[train]
ynew <- del$delay[-train]
m1=glm(delay~.,family=binomial,data=data.frame(delay=ytrain,xtrain))
summary(m1)
谁能告诉我model.matrix的用法?为什么我们不能直接创建分类变量的虚拟变量并将它们放入glm?我很迷惑。 model.matrix有什么用?
【问题讨论】:
-
您可以根据需要为分类变量创建虚拟变量,但通常不需要。只要您的分类变量被正确编码为因子,调用
glm(y ~ catvar1 + catvar2)将自动为catvar1和catvar2的每个级别使用虚拟编码系数,无需直接使用model.matrix。 -
谢谢。那么上面例子中的model.matrix有什么用呢?
-
如文档所述,它创建了一个设计矩阵。要了解这是什么,您可能需要深入研究建模数学。如果您要手动操作,您将需要它,但您真的不应该这样做。
glm照顾一切,此外,还有一堆辅助功能让您的生活更轻松。 -
谢谢。我对此很陌生,我觉得 model.matrix 很难理解。你能建议我用另一种方法在没有 model.matrix 的情况下完成这项工作吗?你能给我它的语法吗?
-
@Marius 的评论告诉你如何做到这一点。我将在答案中发布一些代码向您展示如何(刚刚发现我无法在此评论中发布代码...)
标签: r statistics logistic-regression