"mvregress" does not do Multivariate Linear Regression?
1 visualización (últimos 30 días)
Mostrar comentarios más antiguos
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
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);
Respuesta aceptada
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():
3 comentarios
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
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.
Más respuestas (0)
Ver también
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!