Pearson correlation graph between variables

40 views (last 30 days)
Hi
There are 6 variables (10,000 of each) which I am importing from excel and then using these, I am calculating a new variable let us say, Y (again, 10,000 iterations). How do I plot Pearson correlelation coeffcient between Y and each of 6 variables as tornado plots?
Thanks in advance

Accepted Answer

Shubham
Shubham on 30 Aug 2024
Edited: Shubham on 30 Aug 2024
Hi Sunil,
To create a tornado plot of Pearson Correlation Coefficients between a dependent variable ( Y ) and six independent variables, follow these steps:
  1. Use the "corr" function to calculate correlation between ( Y ) and each independent variable. Below is the MATLAB code snippet to achieve this:
% List of variable names
variables = {'Var1', 'Var2', 'Var3', 'Var4', 'Var5', 'Var6'};
correlations = zeros(1, length(variables));
% Calculate correlations
for i = 1:length(variables)
correlations(i) = corr(data.(variables{i}), Y);
end
2. Use the "barh" function to create a horizontal bar chart for the tornado plot.
barh(correlations, 'FaceColor', [0.5, 0.7, 1]);
Refer to the following MathWorks documentation link for more information on "corr":
Hope this helps.
  4 Comments
Shubham
Shubham on 3 Sep 2024
Hi Sunil,
This issue may be due to Field Names mismatch. Ensure that your "data" structure actually contains a field named "C".
You can check the fields of "data" using:
fieldnames(data)
Hope this helps.
Sunil
Sunil on 4 Sep 2024
Hi Shubham
Thanks a lot! It worked.

Sign in to comment.

More Answers (1)

KSSV
KSSV on 30 Aug 2024
clc; clear ;
R = zeros(6,1) ;
for i = 1:6
X = rand(100,1) ;
y = rand(100,1) ;
R(i) = regression(X',y') ;
end
barh(R)
  1 Comment
Sunil
Sunil on 30 Aug 2024
I want to find Pearson correlation not regression relationships. Thanks

Sign in to comment.

Categories

Find more on Discrete Data Plots in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!