using a forloop to create vertical lines between regression line and scatter plot
4 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
I have these X and Y variables
X=[1;2;3;4;5;6;7;8;9;10];
Y=[17;7;15;13;17;34;35;30;46;31];
I created a scatter plot using
scatter(X,Y,'+','r')
and this is the line of best fit (regression line)
Y =5.9333+3.3758*X;
i need to draw VERTICAL lines from the observed values given in the scatter plot to the fitted line, and measure their distance.
how can I do this using a forloop with MATLAB please? (was specifically asked to use a forloop)
Respuestas (1)
Voss
el 14 de Abr. de 2022
Editada: Voss
el 14 de Abr. de 2022
X=[1;2;3;4;5;6;7;8;9;10];
Y=[17;7;15;13;17;34;35;30;46;31];
% I created a scatter plot using
scatter(X,Y,'+','r')
% and this is the line of best fit (regression line)
% Y =5.9333+3.3758*X;
% calculate and plot the fitted line:
mb = polyfit(X,Y,1)
Y_fit = polyval(mb,X);
hold on
plot(X,Y_fit,'--b')
% construct and plot the vertical lines:
% (without for loop)
nans = NaN(numel(X),1);
xdata = [X X nans].';
ydata = [Y Y_fit nans].';
plot(xdata(:),ydata(:),'g');
% calculate the lengths of the vertical line segments:
len = abs(Y-Y_fit)
% (put the scatter plot on top of the others)
set(gca(),'Children',flip(get(gca(),'Children')))
2 comentarios
Star Strider
el 14 de Abr. de 2022
This is the complete solution to a homework problem.
Note that the regression equation is provided. It does not have to be calculated.
Voss
el 14 de Abr. de 2022
I wanted to make sure the provided equation was correct.
I'll edit it to remove the loop, thus rendering the solution incomplete.
Ver también
Categorías
Más información sobre Scatter Plots en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
