6
$\begingroup$

How can I fit reduced-rank regression with continuous response in R?

I found the package VGAM but it only fits for discrete distributions...

$\endgroup$
4
  • $\begingroup$ I do not know R, but reduced-rank regression has an explicit solution via standard regression and SVD, so it should not be difficult to implement manually. $\endgroup$
    – amoeba
    Commented Nov 27, 2014 at 0:07
  • 3
    $\begingroup$ I'd be surprised is VGAM didn't do this; it has plenty of continuous distribution family functions (though note I haven't looked in detail at the RRR function in VGAM recently). You can also do something that is known as reduced rank regression with the vegan package. We call this Redundancy Analysis (RDA) but it also goes by the name reduced rank regression. And as @amoeba says, RDA can be computed by doing fit <- fitted(lm(Y ~ X, data = foo)) then prcomp(fit). If this is what you want, then rda() in vegan would be a good start. $\endgroup$ Commented Nov 27, 2014 at 14:29
  • 1
    $\begingroup$ @amoeba we may be talking about slightly different methods - RDA gets called a lot of things. We implement it in rda() via QR decomposition and SVD for efficiency, but that method gets the same result as the R code I showed in the comment earlier. Which makes me think what we do, which has been called reduced rank regression, is not the reduced rank regression the OP is looking for :-) $\endgroup$ Commented Nov 27, 2014 at 18:03
  • $\begingroup$ Thank you all, I'll try to use this. I'm still trying to understand the rank reduced model $\endgroup$ Commented Nov 28, 2014 at 11:02

2 Answers 2

2
$\begingroup$

A set of S functions for least-squares reduced-rank can be found in the StatLib archive. See the file rrr.s and this paper:

Splus function for reduced-rank regression and softly shrunk reduced-rank regression. Submitted by Magne Aldrin ([email protected]). [19/Apr/99][8/Mar/00] (14k)

$\endgroup$
2
$\begingroup$

There are now R packages for reduced-rank regression: rrpack, rrr.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.