## "mvregress" does not do Multivariate Linear Regression?

### Matthew (view profile)

on 16 Mar 2013

The documentation for function "mvregress" states that the return value "beta" is a vector of the regression coefficients. Looking deeper into "Multivariate Normal Regression", we see that matlab uses the same regression coefficients ("beta") for every dimension of the multivariate response variable Y

This is ludicrous. Of course each component of the response variable can have its own set of coefficients. THAT is multivariate linear regression.

Am I missing something? Is this just an inherent shortcoming in matlab's "mvregress" function? If so, what a bizarre design choice...

Is there some way to get real multivariate linear regression, i.e. get a matrix beta of regression coefficients?

## Products

No products are associated with this question.

### the cyclist (view profile)

on 16 Mar 2013
Edited by the cyclist

### the cyclist (view profile)

on 16 Mar 2013

You are missing something. See my answer in this thread for several examples of using design matrices with mvregress():

There are also examples from MathWorks here: http://www.mathworks.com/help/stats/mvregress.html

Tom Lane

### Tom Lane (view profile)

on 16 Mar 2013

Just to follow up on the cyclist's answer (from my MathWorks perspective), mvregress is admittedly confusing. You might be expecting a coefficient matrix such as you would get from B=X\Y. But mvregress requires that you set up X as a cell array to do this. A benefit of that is that you have more flexibility, so for example you can constrain some coefficients to be the same across the columns of Y. But there is a cost of a less-than-simple interface. Rest assured that it is multivariate, in that it takes into account covariance across the Y columns.

You want B to be a P-by-Q matrix. If you set things up properly, B will be a (P*Q)-by-1 vector with all the same elements that you want. You can reshape it to P-by-Q.

Let me know if the references the cyclist points out aren't sufficient to explain how to set up X. I'm hoping we will make mvregress simpler in the future.