Need help with Least Squares fit problem! Not overly difficult I don't believe.

6 次查看(过去 30 天)
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!

采纳的回答

Star Strider
Star Strider 2017-10-8
Use the MATLAB mldivide,\ (link) function to calculate the least-squares fit:
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 个评论
Star Strider
Star Strider 2017-10-8
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.

请先登录,再进行评论。

更多回答(1 个)

Kaushik Lakshminarasimhan

类别

Help CenterFile Exchange 中查找有关 Mathematics 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by