Least squares fitting where we pre-determine the slope
4 次查看(过去 30 天)
显示 更早的评论
Hello all,
I have a set of data, say on a scatter plot, and I have a line that has a pre-determined slope (i.e. not determined by the data on the scatter plot but determined by ideal calculations). I would like to move the line through the data until it has the least amount of offset (like least-squares fitting) but without changing the slope of the line. Is there a least-squares fitting function that lets you pre-determine the slope?
Cheers!
0 个评论
采纳的回答
Ameer Hamza
2018-5-16
编辑:Ameer Hamza
2018-5-16
Yes, you can do that following the pattern of the linear regression fitting with little modification. In linear regression, we fit the equation
a*x+b = y
and in MATLAB we write it as
[x_vector ones(size(x_vector))]\y_vector
to get a and b. But since you already know slope a, your equation become
b = y-a*x
so in MATLAB use
ones(size(x_vector))\[y_vector-a*x_vector]
it will give you the value of b which minimize the least square error.
5 个评论
Curtis Baden
2018-8-12
Thank you for the thorough, concise explanation! I'm hoping to perform a similar calculation, except I'd like to employ a weighted least squares regression (using inverse variances associated with my dependent variable as weights). How will this calculation change in this case?
Ameer Hamza
2018-8-13
For weighted least square you can use lscov(). In term of the backslash operator, you can use the following
(X.'*W*X)\(X.'*W*y)
where W is a diagonal matrix containing the weights.
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Descriptive Statistics 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!