R中model.matrix中有序因子的列名
我使用R中model.matrix中有序因子的列名,r,R,我使用model.matrix函数创建了一个设计矩阵 contr <- make.poly(n, scores) if (contrasts) { dn <- colnames(contr) dn[2:min(4, n)] <- c(".L", ".Q", ".C")[1:min(3, n - 1)] colnames(contr) <- dn contr[, -1, drop = FALSE] } 如果我使用有序因子数据,我会在列名中得到L、Q和C后缀
model.matrix
函数创建了一个设计矩阵
contr <- make.poly(n, scores)
if (contrasts) {
dn <- colnames(contr)
dn[2:min(4, n)] <- c(".L", ".Q", ".C")[1:min(3, n - 1)]
colnames(contr) <- dn
contr[, -1, drop = FALSE]
}
如果我使用有序因子数据,我会在列名中得到L
、Q
和C
后缀这些后缀是什么意思?它们是如何映射到因子级别的?模型的帮助文件对此问题不清楚
head( model.matrix( as.formula( ~ ps ),
model.frame( as.formula( ~ ps ),
data.frame(ps = factor( x = sample(x = c( 'none', '3XLT', '41X', '3X' ),
size = 50,
replace = TRUE ),
levels = c( '3X', '3XLT', '41X', 'none' ),
ordered = TRUE ) ) ) ) )
# (Intercept) ps.L ps.Q ps.C
# 1 1 -0.2236068 -0.5 0.6708204
# 2 1 0.6708204 0.5 0.2236068
# 3 1 0.6708204 0.5 0.2236068
# 4 1 0.2236068 -0.5 -0.6708204
# 5 1 0.6708204 0.5 0.2236068
# 6 1 -0.2236068 -0.5 0.6708204
如果我使用无序因子,我可以很容易地通过列名跟踪列的映射
head( model.matrix( as.formula( ~ ps ),
model.frame( as.formula( ~ ps ),
data.frame(ps = factor( x = sample(x = c( 'none', '3XLT', '41X', '3X' ),
size = 50,
replace = TRUE ),
levels = c( '3X', '3XLT', '41X', 'none' ) ) ) ) ) )
# (Intercept) ps3XLT ps41X psnone
# 1 1 0 0 1
# 2 1 1 0 0
# 3 1 0 0 1
# 4 1 1 0 0
# 5 1 0 0 0
# 6 1 1 0 0
我仍然不知道这些后缀的含义,可能是由于一些历史原因 调试
model.matrix
函数后,调用了其中的C\u modelmatrix
.External2(C_modelmatrix, t, data)
对于有序因子对比度。poly
用于使用此调用中定义的make.poly
函数获取设计矩阵。在得到设计矩阵后,列名被修改,并为第2-4列指定了那些奇怪的后缀。第一列将被忽略,如果超过4列,它们将保留由make.poly
函数定义的名称
contr <- make.poly(n, scores)
if (contrasts) {
dn <- colnames(contr)
dn[2:min(4, n)] <- c(".L", ".Q", ".C")[1:min(3, n - 1)]
colnames(contr) <- dn
contr[, -1, drop = FALSE]
}
contr
contr <- make.poly(n, scores)
Browse[6]> contr
# ^0 ^1 ^2 ^3 ^4
# [1,] 0.4472136 -0.6324555 0.5345225 -3.162278e-01 0.1195229
# [2,] 0.4472136 -0.3162278 -0.2672612 6.324555e-01 -0.4780914
# [3,] 0.4472136 0.0000000 -0.5345225 -4.095972e-16 0.7171372
# [4,] 0.4472136 0.3162278 -0.2672612 -6.324555e-01 -0.4780914
# [5,] 0.4472136 0.6324555 0.5345225 3.162278e-01 0.1195229
control
# ^0 ^1 ^2 ^3 ^4
#[1,]0.4472136-0.6324555 0.5345225-3.162278e-01 0.1195229
#[2,]0.4472136-0.3162278-0.26726126.3245555E-01-0.4780914
#[3,]0.4472136 0.0000000-0.5345225-4.095972e-16 0.7171372
#[4,]0.44721360.3162278-0.2672612-6.3245555E-01-0.4780914
#[5,]0.4472136 0.6324555 0.5345225 3.162278e-01 0.1195229
编辑:
有序因子对比矩阵中L、Q、C的展开式对应于线性项、二次项和三次项。多项式项次数(大于3)的命名由该多项式项次数的数值表示