2017-01-14 5 views
0

私はquantregパッケージを使用して分数回帰を計算しています。私はいくつかのtausの回帰に合っており、予測値と95%信頼区間を計算したいと考えています。 問題は、信頼限界を追加した場合、関数predict.qrが複数の分位を許可していないと思われることです。これまでのところ、私はループを使って問題を解決しましたが、それは私のコードをひどく長くしてしまいます。 最小例:quantregパッケージ:predict.rqは単一のタウだけを受け入れる

1)一つは分位数(0.5)は微細

# prediction data set 
pred.df <- data.frame(disp = 150:160) 

fit <- rq(mpg ~ disp, data = mtcars, tau = 0.5) 

predict.rq(fit, 
      newdata = pred.df, 
      interval = "confidence") 

2)複数の変位値だけ予測値(なしCI)も正常に動作しない動作

fit <- rq(mpg ~ disp, data = mtcars, tau = c(0.5, 0.6)) 
predict.rq(fit, 
      newdata = pred.df) 

3)複数のクォンタイル(0.5,0.75)およびciの場合、それ以上は機能しません。

fit <- rq(mpg ~ disp, data = mtcars, tau = c(0.5, 0.6)) 

predict.rq(fit, 
      newdata = pred.df, 
      interval = "confidence") 

したがって、私の質問: は、predict.rqとavoidループだけを使って、複数のquantile回帰の予測値と信頼区間を得ることは可能ですか?

答えて

1

あなたはループですが、実現するために迅速である、lapply()を使用することがあります。

lapply(c(0.5, 0.6), function(tau) { 

fit <- rq(mpg ~ disp, data = mtcars, tau = tau) 

predict.rq(fit, 
      newdata = pred.df, 
      interval = "confidence") 
}) 

また、あなたのコードのためのラッパー関数を作成して、そのようなのベクトル化バージョンを持っているVectorize()を使用することができますループの実装を必要とせずに将来その関数を使用するためには、引数にはtau引数が必要です。

関連する問題