model.matrix
位于 stats
包(package)。 说明
model.matrix
创建一个设计(或模型)矩阵,例如,通过将因子扩展到一组虚拟变量(取决于对比)并类似地扩展交互。
用法
model.matrix(object, ...)
## Default S3 method:
model.matrix(object, data = environment(object),
contrasts.arg = NULL, xlev = NULL, ...)
## S3 method for class 'lm'
model.matrix(object, ...)
参数
object |
|
data |
使用 |
contrasts.arg |
一个列表,其条目是用作 |
xlev |
如果 |
... |
传入或传出其他方法的进一步参数。 |
细节
model.matrix
根据 terms(object)
中给出的说明创建一个设计矩阵,使用 data
中的数据,该矩阵必须提供与调用 model.frame(object)
创建的变量同名,或者更准确地说,通过评估 attr(terms(object), "variables")
。如果data
是一个 DataFrame ,可能还有其他列,列的顺序并不重要。任何字符变量都被强制为因子。强制转换后,公式右侧使用的所有变量都必须是逻辑、整数、数字或因子。
如果contrasts.arg
为一个因子指定它会覆盖该变量的默认因子编码以及任何"contrasts"
属性设置为C
或者contrasts
。而无效contrasts.arg
s 总是被忽略,从那时起他们就被警告R版本3.6.0。
在交互作用项中,水平变化最快的变量是第一个出现在公式中(而不是项中)的变量,因此在 ~ a + b + b:a
中,交互作用将使 a
变化最快。
按照惯例,如果响应变量也出现在公式的右侧,则该变量将被删除(并带有警告),但涉及该项的交互作用将被保留。
值
具有指定公式和数据的 regression-like 模型的设计矩阵。
有一个属性 "assign"
,它是一个整数向量,矩阵中的每一列都有一个条目,给出了产生该列的公式中的项。值 0
对应于截距(如果有),正值对应于与 object
对应的 terms
结构的 term.labels
属性给出的顺序中的项。
如果模型中存在任何因子,则会有一个属性 "contrasts"
,这是一个命名列表,其中每个因子都有一个条目。这指定了将在通过对比对因子进行编码的术语中使用的对比(在某些术语中可以使用虚拟编码),作为命名函数的字符向量或数字矩阵。
例子
ff <- log(Volume) ~ log(Height) + log(Girth)
utils::str(m <- model.frame(ff, trees))
mat <- model.matrix(ff, m)
dd <- data.frame(a = gl(3,4), b = gl(4,1,12)) # balanced 2-way
options("contrasts") # typically 'treatment' (for unordered factors)
model.matrix(~ a + b, dd)
model.matrix(~ a + b, dd, contrasts.arg = list(a = "contr.sum"))
model.matrix(~ a + b, dd, contrasts.arg = list(a = "contr.sum", b = contr.poly))
m.orth <- model.matrix(~a+b, dd, contrasts.arg = list(a = "contr.helmert"))
crossprod(m.orth) # m.orth is ALMOST orthogonal
# invalid contrasts.. ignored with a warning:
stopifnot(identical(
model.matrix(~ a + b, dd),
model.matrix(~ a + b, dd, contrasts.arg = "contr.FOO")))
参考
Chambers, J. M. (1992) Data for models. Chapter 3 of Statistical Models in S eds J. M. Chambers and T. J. Hastie, Wadsworth & Brooks/Cole.
也可以看看
model.frame
, model.extract
, terms
sparse.model.matrix
来自包 Matrix
,用于创建稀疏模型矩阵,这在大维度上可能更有效。
相关用法
- R model.tables 计算 Aov 模型拟合的结果表
- R model.extract 从模型框架中提取组件
- R model.frame 从公式或拟合中提取模型框架
- R mood.test 情绪二样本量表检验
- R monthplot 绘制时间序列中的季节性或其他子序列
- R medpolish 矩阵的中值波兰(稳健双向分解)
- R mcnemar.test 计数数据的麦克尼马尔卡方检验
- R mantelhaen.test 计数数据的 Cochran-Mantel-Haenszel 卡方检验
- R mahalanobis 马哈拉诺比斯距离
- R manova 多变量方差分析
- R make.link 为 GLM 家庭创建链接
- R median 中值
- R makepredictcall 用于安全预测的实用函数
- R mauchly.test 莫奇利球形度检验
- R mad 中值绝对偏差
- R stlmethods STL 对象的方法
- R naprint 调整缺失值
- R summary.nls 总结非线性最小二乘模型拟合
- R summary.manova 多元方差分析的汇总方法
- R formula 模型公式
- R nls.control 控制 nls 中的迭代
- R aggregate 计算数据子集的汇总统计
- R deriv 简单表达式的符号和算法导数
- R kruskal.test Kruskal-Wallis 秩和检验
- R quade.test 四方测试
注:本文由纯净天空筛选整理自R-devel大神的英文原创作品 Construct Design Matrices。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。