how to label the variance decomposition table

1 view (last 30 days)
Currently I have this code where I have 7 predictors Age, Weight, ...MaxPulse where Oxygen is the response variable
which gives the following output
However I want to modify the code such that in place of Var1, Var2, Var3, ....Var7 I have the predictors Intercept, Age, Weight, ....,MaxPulse.

Accepted Answer

Paul
Paul on 3 Jul 2024
Edited: Paul on 3 Jul 2024
Check the doc page collintest and review how to use the VarNames input. Or, instead of pulling all the variables out from data, and then stuffing those into an array, why not take advantage of the fact that collintest an accept a table as an input, and the DataVariables argument indicates which table variables are of interest.
collintest(data,DataVariables=["x0" "Age" etc])
Read the linked doc page for more information. Feel free to post a comment to this answer with the code if still having a problem.
  2 Comments
N/A
N/A on 3 Jul 2024
Hello Paul, when I tried doing this
I get the output
Paul
Paul on 3 Jul 2024
The VarNames argument is used if the input data is an array. The DataVariables argument is used if the input data is a table.
For the former
collintest(Predictors,VarNames=["Intercept", "Age", etc ])
For the latter
collintest(data,DataVariables=["Intercept", "Age", etc])
Again, read the doc page collintest to better understand those two usages. It's possible that the output arguments might be different as well.

Sign in to comment.

More Answers (1)

Umar
Umar on 3 Jul 2024

Hi Nafisa,

You asked, However I want to modify the code such that in place of Var1, Var2, Var3, ....Var7 I have the predictors Intercept, Age, Weight, ....,MaxPulse.

To answer your question, I need to update the variable names in the regression model. Below is a detailed example along with an explanation of how to accomplish this task:

Let us generate sample data with 100 samples and 7 predictors.

>> % Sample data for demonstration data = randn(100, 7); % Assuming 100 samples and 7 predictors response = randn(100, 1); % Response variable (Oxygen)

Then, create a table predictorTable with predictor variables named 'Intercept', 'Age', 'Weight', 'Var4', 'Var5', 'Var6', and 'MaxPulse'.

>> % Create a table with predictor variables predictorTable = array2table(data, 'VariableNames', {'Intercept', 'Age', 'Weight', 'Var4', 'Var5', 'Var6', 'MaxPulse'});

Then, fit a linear regression model lm using the fitlm function with the predictor table and the response variable.

>> % Fit a linear regression model lm = fitlm(predictorTable, response);

Finally, display the regression results using disp(lm).

>> % Display the regression results disp(lm);

Hope this will help resolve your problem.

  2 Comments
Paul
Paul on 3 Jul 2024
How does fitlm relate at all to this question?
Umar
Umar on 3 Jul 2024
Hi Paul,
It effectively uses specific predictor names in linear regression model. Hence, the reason. But it sounds like you have provided your input as well which is well appreciated. Thanks for your contribution towards resolving this problem.

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!