[R] odd behaviour in quantreg::rq

roger koenker rkoenker at uiuc.edu
Wed Jul 1 00:25:02 CEST 2009


Admittedly this seemed quite peculiar....  but if you look at the  
entrails
of the following code you will see that with the weights the first and
second levels of your x$method variable have the same (weighted) median
so the contrast that you are estimating SHOULD be zero.  Perhaps
there is something fishy about the data construction that would have
allowed us to anticipate this?  Regarding the "fn" option, and the
non-uniqueness warning,  this is covered in the (admittedly obscure)
faq on quantile regression available at:

	http://www.econ.uiuc.edu/~roger/research/rq/FAQ

# example:
library(quantreg)

# load data
x <- read.csv(url('http://169.237.35.250/~dylan/temp/test.csv'))

# with weights
summary(rq(sand ~ method, data=x, weights=area_fraction, tau=0.5),  
se='ker')

#Reproduction with more convenient notation:

X0 <- model.matrix(~method, data = x)
y <- x$sand
w <- x$area_fraction
f0 <- summary(rq(y ~ X0 - 1, weights = w),se = "ker")

#Second reproduction with orthogonal design:

X1 <- model.matrix(~method - 1, data = x)
f1 <- summary(rq(y ~ X1 - 1, weights = w),se = "ker")

#Comparing f0 and f1 we see that they are consistent!!  How can that  
be??
#Since the columns of X1 are orthogonal estimation of the 3 parameters  
are separable
#so we can check to see whether the univariate weighted medians are  
reproducible.

s1 <- X1[,1] == 1
s2 <- X1[,2] == 1
g1 <- rq(y[s1] ~ X1[s1,1] - 1, weights = w[s1])
g2 <- rq(y[s2] ~ X1[s2,2] - 1, weights = w[s2])

#Now looking at the g1 and g2 objects we see that they are equal and  
agree with f1.


url:    www.econ.uiuc.edu/~roger            Roger Koenker
email    rkoenker at uiuc.edu            Department of Economics
vox:     217-333-4558                University of Illinois
fax:       217-244-6678                Urbana, IL 61801



On Jun 30, 2009, at 3:54 PM, Dylan Beaudette wrote:

> Hi,
>
> I am trying to use quantile regression to perform weighted- 
> comparisons of the
> median across groups. This works most of the time, however I am  
> seeing some
> odd output in summary(rq()):
>
> Call: rq(formula = sand ~ method, tau = 0.5, data = x, weights =
> area_fraction)
> Coefficients:
>                   Value    Std. Error t value  Pr(>|t|)
> (Intercept)        45.44262  3.64706   12.46007  0.00000
> methodmukey-HRU     0.00000  4.67115    0.00000  1.00000
> 				  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>
> When I do not include the weights, I get something a little closer  
> to a
> weighted comparison of means, along with an error message:
>
> Call: rq(formula = sand ~ method, tau = 0.5, data = x)
> Coefficients:
>                   Value    Std. Error t value  Pr(>|t|)
> (Intercept)        44.91579  2.46341   18.23318  0.00000
> methodmukey-HRU     9.57601  9.29348    1.03040  0.30380
> Warning message:
> In rq.fit.br(x, y, tau = tau, ...) : Solution may be nonunique
>
>
> I have noticed that the error message goes away when specifying  
> method='fn' to
> rq(). An example is below. Could this have something to do with  
> replication
> in the data?
>
>
> # example:
> library(quantreg)
>
> # load data
> x <- read.csv(url('http://169.237.35.250/~dylan/temp/test.csv'))
>
> # with weights
> summary(rq(sand ~ method, data=x, weights=area_fraction, tau=0.5),  
> se='ker')
>
> # without weights
> # note error message
> summary(rq(sand ~ method, data=x, tau=0.5), se='ker')
>
> # without weights, no error message
> summary(rq(sand ~ method, data=x, tau=0.5, method='fn'), se='ker')
>
> -- 
> Dylan Beaudette
> Soil Resource Laboratory
> http://casoilresource.lawr.ucdavis.edu/
> University of California at Davis
> 530.754.7341
>
> ______________________________________________
> R-help at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.




More information about the R-help mailing list