"mvregress" does not do Multivariate Linear Regression?

1 visualización (últimos 30 días)
Matthew
Matthew el 16 de Mzo. de 2013
Comentada: Ricardo Arévalo el 18 de Oct. de 2016
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?
  2 comentarios
Ricardo Arévalo
Ricardo Arévalo el 18 de Oct. de 2016
try regress function
Ricardo Arévalo
Ricardo Arévalo el 18 de Oct. de 2016
If you use regress, remember to add a column of ones to indicate that there is a constant in your regression model.
I leave an example:
%Let lon, lat and alt be the independant variables of a model.
lon=[61;63;64;68;71;73;75];
lat=[139;140;129;128;140;141;128];
alt=[325;300;400;250;210;160;175];
%Let pre be the dependant variable of the model.
pre=[477;696;227;646;606;791;789];
%Adding a column of ones to get the constant.
predictors=[ones(size(lon)),lon,lat,alt];
%This will create a regression model of type:
% Pre=a0+(a1*lon)+(a2*lat)+(a3*alt), it also gives stats and residuals
[b,bint,r,rint,stats] = regress(pre,predictors);

Iniciar sesión para comentar.

Respuesta aceptada

the cyclist
the cyclist el 16 de Mzo. de 2013
Editada: the cyclist el 16 de Mzo. de 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
  3 comentarios
Anoosh
Anoosh el 23 de En. de 2016
Editada: Anoosh el 23 de En. de 2016
@thecyclist I am trying to use mvregress with the data I have with dimensionality of a couple of hundreds. (3~4). Using 32 gb of ram, I can not compute beta and I get "out of memory" message. I couldn't find any limitation of use for mvregress that prevents me to apply it on vectors with this degree of dimensionality, am I doing something wrong? is there any way to use multivar linear regression via my data?
the cyclist
the cyclist el 23 de En. de 2016
@Anoosh:
Although this is a perfectly sensible place to ask this question, you won't actually get much attention from a comment buried in a 3-year-old thread.
I suggest you ask a new question. If you can actually attach files with your data and code, that will help people diagnose your issue.

Iniciar sesión para comentar.

Más respuestas (0)

Etiquetas

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by