Scatter plot and curve fitting?
8 views (last 30 days)
Show older comments
Hello every one,
I have two set of vectors
X=[2,3,2,2,1,4,1,1,1,1,2,4,3,4,3,3,2,2,3,2,3,1];
Y=[9.14,38.66,0.72,0.79,1.96,0.68,7.58,0.83,2.37,3.44,2.17,1.6,21.98,5.19,0.71,25.35,17.65,7.78,14.38,4.77,2.5,29.26];
To find the correlation between X and Y, we have used Spearman rank correlation coefficient
[RHO]=corr(X.',Y.','type','spearman');
For fitting line to the data points, we have used polynomial of degree 1,
p=polyfit(X,Y,1);%This will generate the coefficients of polynomial of degree(1)
y=polyval(p,X);% This will give the fitted values for the desired values.
scatter(X,Y,'*');% This will create a scatter plot
hold on;
plot(X,y,'k-');% This will plot regression line.
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/200751/image.jpeg)
The Spearman rank correlation coefficient has negative value, but the regression line seems to represent positive correlation between X and Y. Any help regarding this issue will be highly appreciated.
Thanks
4 Comments
Rik
on 15 Jan 2019
They are both fairly close to 0. It wouldn't surprise me if there is a lot of overlap between the two confidence intervals.
Rik
on 17 May 2019
I had similar problem. I guess it's because the spearman corrlation which transformed the orignial data into ranks while the polyfit function finds the best linear fit based the original data. If this assumption is correct, my question would be how could we plot the fitting line for spearman correlation in matlab.
Answers (0)
See Also
Categories
Find more on Linear and Nonlinear Regression 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!