7
votes

When I run a quantile regression in R, using the quantreg package, and then I run summary(quantregObject), I get this error message:

Error in base::backsolve(r, x, k = k, upper.tri = upper.tri, transpose = transpose, : singular matrix in 'backsolve'. First zero in diagonal [1]

Any suggestion how could I fix this problem?

1
Did you google? Several similar questions incl. on SO, I didn't see a solution though at first glance. Maybe this should be asked on an R mailing list.Mörre
Most likely an error that tells you some linear equation inside the function cannot be solved. A singular matrix isn't invertible. en.wikipedia.org/wiki/Invertible_matrixkristang
Yes, I googled it but I did not find any satisfactory answer. Thanks for the suggestion, Someone.Alberto
If you expect debugging assistance the minimum requirements include code and data.IRTFM

1 Answers

8
votes

In short, try:

summary(quantregObject, se = "iid")

which puts a strong assumption on your residuals. Or if you need accuracy use a boot strap to get the standard errors:

summary(quantregObject, se = "boot")

If you call summary on a an object returned by quantreg:rq

summary(quantregObject)

This will call summary.rq.

From ?summary.rq.

You can see that there are 4 options to compute the standard errors (se). Depending on the sample size (N < 1000) the default is se = "rank" or se = "nid". "nid" does something which sounds complicated and may then yield a diagonal matrix which backsolve cannot handle.