0

関数内でパッケージ quantreg の rq() を呼び出そうとしています。以下は、私の問題の簡単な説明です。

http://developer.r-project.org/model-fitting-functions.txtにある推奨事項に従うと、次の 行の後に設計行列が表示されます

x <- model.matrix(mt, mf, contrasts)

切片を作成するために、最初の列を 1 でいっぱいにします。

ここで、rq() を呼び出すときは、次のようなものを使用する必要があります

fit <- rq (y ~ x [,2], tau = 0.5, ...)

説明変数が複数ある場合に問題が発生します。自動的に書く方法を見つける方法がわかりません:

x [,2] + x [,3] + x [,4] + ...

完全な単純化されたコードは次のとおりです。

ao_qr <- function (formula, data, method = "br",...) {

cl <- match.call ()

## keep only the arguments which should go into the model 
## frame

mf <- match.call (expand.dots = FALSE)

m <- match (c ("formula", "data"), names (mf), 0)

mf <- mf[c (1, m)]

mf$drop.unused.levels <- TRUE

mf[[1]] <- as.name ("model.frame")

mf <- eval.parent (mf)

if (method == "model.frame") return (mf)

## allow model.frame to update the terms object before 
## saving it

mt <- attr (mf, "terms") 

y <- model.response (mf, "numeric")

x <- model.matrix (mt, mf, contrasts)

## proceed with the quantile regression

fit <- rq (y ~ x[,2], tau = 0.5, ...)

print (summary (fit, se = "boot", R = 100))
}

私は次のように関数を呼び出します:

ao_qr(pain ~ treatment + extra, data = data.subset) 

そして、データを取得する方法は次のとおりです。

require (lqmm)
data(labor)
data <- labor

data.subset <- subset (data, time == 90)
data.subset$extra <- rnorm (65) 

この場合、このコードでは、線形予測子には「処理」のみが含まれます。「追加」が必要な場合は、コード内の rq() の線形予測子に x[,3] を手動で追加する必要があります。これは自動ではなく、変数の数が不明な他のデータセットでは機能しません。誰もこれに取り組む方法を知っていますか?

どんな助けでも大歓迎です!!!

4

1 に答える 1

1

簡単な解決策を見つけました: x[,2:ncol(x)]

于 2012-07-09T14:57:29.083 に答える