quantreg lm.recursive.fit在简单回归中没有常数

时间:2017-04-29 11:00:11

标签: r regression

我尝试在R' lm.fit.recursive包中使用函数quantreg来构造一个简单回归的递归残差而不是常量。

以下是一种不起作用的方法的最小示例:

# some data
n <- 20
z <- rnorm(n)
x <- rnorm(n)
x.mat <- matrix(rnorm(2*n),ncol=2)

lm.fit.recursive(x, z, int=T) # works WITH intercept with one regressor
lm.fit.recursive(x.mat, z, int=F) # works WITHOUT intercept with two regressors
lm.fit.recursive(x, z, int=F) # what I actually want but which returns Error in 1:p : argument of length 0

我的预感是错误与回归矩阵有关,在这种情况下,回归矩阵不是矩阵而是向量,这导致R以不同方式处理这个变量。

这是正确的,还是我错误地使用了这个功能?

1 个答案:

答案 0 :(得分:0)

确实,

> lm.fit.recursive
function (X, y, int = TRUE) 
{
    if (int) 
        X <- cbind(1, X)
    p <- ncol(X)
    n <- nrow(X)
    D <- qr(X[1:p, ])
    ...
}

以便ncol(x)=0为向量。因此,

lm.fit.recursive(as.matrix(x,ncol=1), z, int=F)

提供了一种解决方法。