什么是虚拟编码模型矩阵的R算法



我注意到,当使用虚拟编码来拟合我的线性模型时,R在形成模型矩阵时排除了某些参数。做这个的R算法是什么?

没有详细记录,但它可以追溯到底层LAPACK代码使用的任何旋转算法:

从lm.fit的源代码:

z <- .Call(C_Cdqrls, x, y, tol, FALSE)
...
coef <- z$coefficients
pivot <- z$pivot
...
r2 <- if(z$rank < p) (z$rank+1L):p else integer()
if (is.matrix(y)) {
    ....
} else {
    coef[r2] <- NA
    ## avoid copy
    if(z$pivoted) coef[pivot] <- coef
    ...
}

如果您想进一步深入,您需要查看dqrdc2。F,它说(不管它值多少):

c dqrdc2使用住户转换来计算qr
n × p矩阵x的C分解,有限列
基于约简列2范数的C枢轴策略
C将范数接近零的列移动到
的右边缘C是x矩阵。这个策略意味着顺序的
C自由度效应可以用自然的方法计算。

在实践中我通常发现R消除了一组共线性预测变量的最后(最右)列…

最新更新