linear regression on excel dataset
7 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
I am new in MATLAB and have tried to do a linear regression with the code:
>> filename = 'C:\Users\Troels\Dropbox\Analyse & Resultater\MATLAB\Danmark OX.xls';
>> ds = xlsread(filename) // the dataset "Danmark OX.xls" is printet
>> mdl = LinearModel.fit(ds)
Error using classreg.regr.TermsRegression/handleDataArgs (line 629) Y argument is required unless X is a dataset.
Error in LinearModel.fit (line 891) [X,y,haveDataset,otherArgs] = LinearModel.handleDataArgs(X,varargin{:});
Have also tried the code:
>> ds = dataset('XLSFile','C:\Users\Troels\Dropbox\Analyse & Resultater\MATLAB\Danmark OX.xls','ReadObsNames',true);
Warning: Variable names were modified to make them valid MATLAB identifiers.
> In @dataset\private\genvalidnames at 56
In @dataset\private\setvarnames at 40
In dataset.readXLSFile at 49
In dataset.dataset>dataset.dataset at 352
>> mdl = LinearModel.fit(ds);
Warning: Regression design matrix is rank deficient to within machine precision.
> In TermsRegression>TermsRegression.checkDesignRank at 98
In LinearModel.LinearModel>LinearModel.fit at 944
Am I on the right track in any of my 2 attempts? And can anyone tell me from the above what I do wrong?
1 comentario
dpb
el 28 de Jul. de 2013
Please reformat the code and remove the excess lines for legibility...
But, the first fails because the LinearModel requires a dataset and the result of xlsread() isn't one...
Second effort is ok from that standpoint but the error/warning indicates your data are poorly scaled -- lookfor "rank deficiency" in the online documentation for what that is if you don't know and possible workarounds.
Better would be to fix that problem w/ better design matrix but sometimes that's not possible.
Respuesta aceptada
Shashank Prasanna
el 28 de Jul. de 2013
mdl = LinearModel.fit(ds)
assumes, ds is a dataset (Your second approach) and the last column of ds is the response variable. Is the true in your case?
If you want to pass data as a matrix then you have to do so this way:
mdl = LinearModel.fit(X,y)
I urge you to read the documentation of LinearModel.fit to understand how to call it. This will save you a lot of time later on. There are plenty of examples there:
0 comentarios
Más respuestas (1)
T27667
el 28 de Jul. de 2013
1 comentario
Shashank Prasanna
el 28 de Jul. de 2013
Editada: Shashank Prasanna
el 28 de Jul. de 2013
I've never used OxMetrics, but you may want to check the documentation of LinearModel.fit for all the calculated goodness of fit statistics. If you don't find a specific one it may be available separately in the Statistics Toolbox.
Ver también
Categorías
Más información sobre Hypothesis Tests en Help Center y File Exchange.
Productos
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!