Need help with Least Squares fit problem! Not overly difficult I don't believe.
5 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Grant Piephoff
el 8 de Oct. de 2017
Comentada: Star Strider
el 8 de Oct. de 2017
Hello, I am doing some homework for my computational methods class and need some help. We are covering linear regressions and least fit squares. So the problem I am doing is having me derive by hand the least fit squares for the equation y=a1x+e, meaning determine the slope that results from a straight line with a zero intercept. I did it by hand and got a slope of 0.61436, but was wondering how I would go about checking on matlab if this was correct?
The x and y data are as follows: X: 2 4 6 7 10 11 14 17 20 Y: 4 5 6 5 8 8 6 9 12 I understand basic plotting but am unsure of how to fit the line to it on here. Thanks!
0 comentarios
Respuesta aceptada
Star Strider
el 8 de Oct. de 2017
X = [2 4 6 7 10 11 14 17 20];
Y = [4 5 6 5 8 8 6 9 12];
a1_1 = X(:)\Y(:) % Using ‘mldivide,\’
You may want to check your calculations and derivation, since I get a different result from taking the first (partial) derivative of:
S = sum((Y - a1*X)^2)
with respect to ‘a1’, then setting it to zero and solving for ‘a1’:
a1_2 = sum(X.*Y)/sum(X.^2) % Using Computed Least Squares
My derivation result agrees with the mldivide result.
Plotting:
figure(1)
plot(X, Y, 'pg')
hold on
plot(X, a1_1*X, '-r')
hold off
grid
text(7, 11, sprintf('Y = %.3f\\cdotX', a1_1))
text(7, 13, sprintf('Y = %.3f\\cdotX', a1_2))
2 comentarios
Star Strider
el 8 de Oct. de 2017
As always, my pleasure!
I decided to do the derivation as well (by hand, not using the Symbolic Math Toolbox) to be certain I could get the same result.
Más respuestas (1)
Ver también
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!