2

quantreg次のように、いくつかの分位点回帰直線(パッケージ)をプロットしたいと思います。

 library(quantreg)
 data(engel)
 attach(engel)
 plot(income, foodexp, cex = 0.25, type = "n",
      xlab = "Household Income", ylab = "Food Expenditure")
 points(income, foodexp, cex = 0.5, col = "blue")
 abline(rq(foodexp ~ income, tau = 0.5), col = "blue")
 abline(lm(foodexp ~ income), lty = 2, col = "red")
 taus <- c(0.05, 0.1, 0.25, 0.75, 0.9, 0.95)
 for (i in 1:length(taus)) {
   abline(rq(foodexp ~ income, tau = taus[i]),
          col = "gray")
 }
 detach(engel)

しかし、を使用してlattice、1つの回帰のみで試しましたが、機能しません。

require(lattice)
xyplot(foodexp~income , data =engel, 
   type = c("g"),
   auto.key=list(x=.8,y=.35,cex=.8,cex.title=.8, title="", points=TRUE), 
   scales=list(tck=-1),ylab=list("Food Expenditure",font=3),
   xlab=list("Household Income",font=3),
   panel=function(x,y){
     panel.xyplot(x,y)
     panel.grid()
     panel.abline(rq(foodexp ~ income, tau = 0.5))}
)
4

1 に答える 1

4

を使用する場合は、パネル関数内で使用latticeする必要がyあります。x

ここに画像の説明を入力してください

xyplot(foodexp~income , data =engel, 
       type = c("g"),
       auto.key=list(x=.8,y=.35,cex=.8,cex.title=.8, title="", points=TRUE), 
       scales=list(tck=-1),ylab=list("Food Expenditure",font=3),
       xlab=list("Household Income",font=3),
       panel=function(x,y,...){
         panel.xyplot(x,y)
         panel.grid()
         panel.abline(rq(y ~ x, tau = 0.5))
         panel.points(x, y, cex = 0.5, col = "blue")
         panel.abline(rq(y ~ x, tau = 0.5), col = "blue")
         panel.abline(lm(y ~ x), lty = 2, col = "red")
         taus <- c(0.05, 0.1, 0.25, 0.75, 0.9, 0.95)
         for (i in 1:length(taus)) {
           panel.abline(rq(y ~ x, tau = taus[i]),
                  col = "gray")
         }

       }
)
于 2013-03-23T09:18:10.420 に答える