3

1つの回帰子と1つの回帰子を持つ分位点回帰モデルがあります。回帰子がすべての分位数で等しいという仮説検定を行います。私が考えたアプローチの1つは、{0.01,0.02、....、0.99}を超えるすべてのタウをテストすることです。ただし、次のように書く必要があります。

anova(model1,model2,model3,.......,model99)、各モデルは異なるタウに対応します。質問:手動で入力せずに、anova()で大量のタイプのモデルを受け入れるにはどうすればよいですか?rq


解決策としての私の試みは、これを行うことでした。

y = rnorm(100)
x = rnorm(100)

rqs_object <- rq(y~x,tau=1:99/100)
anova(rqs_object)

ただし、残念ながら、anova明らかにオブジェクトタイプは使用せずrqs、タイプのみを使用します。rq


問題に対して大きなプログラミング/スペシャリスト要素があると私が判断するまで、ここにクロス投稿しました。

4

1 に答える 1

2

私は質問1に集中し、プログラミングの部分だけに集中します。

いくつかのデータ:

set.seed(65465)
y = rnorm(100)
x = rnorm(100)

ここで、タウを入力として受け取り、近似を行う関数を定義します。

rqfits <- function(tau) {
  require(quantreg)
  rq(y~x,tau=tau)
}

次に、この関数をtausのベクトルに適用できます。

taus <- 1:5/10
fits <- lapply(taus,rqfits)

結果はモデルのリストです。これで、モデルを次do.callの宛先に渡すために使用できます。anova

do.call(anova,fits)

Quantile Regression Analysis of Deviance Table

Model: y ~ x
Joint Test of Equality of Slopes: tau in {  0.1 0.2 0.3 0.4 0.5  }

  Df Resid Df F value Pr(>F)
1  4      496  1.0388 0.3866
Warning:
In summary.rq(x, se = se, covariance = TRUE) : 2 non-positive fis
于 2012-08-25T09:14:52.993 に答える