我写了下面的MATLAB代码来测试最小二乘回归:当我注释掉plot(x, a*x + b);
保持在不能正常工作
x = [1 2 3 4 5 6];
y = [1 4 9 16 25 36];
hold on
scatter(x, y);
hold on
%Linear_regrassion
n = length(x);
a = (n*sum(x.*y) - sum(x)*sum(y))/n*sum(x.^2) - (sum(x))^2
b = mean(y) - a * mean(x)
%end
x = 1:8;
plot(x, a*x + b);
但是当我添加plot(x, a*x + b);
绘制我的推算线,输出看起来是这样的:
我的猜测是,我不是用hold on
权。我能做些什么来解决这个问题?
检查你的回归系数:'了''是+ 1.0706e 04','B'是'-3.7458e + 04' - 这不可能是适合你显示的蓝色圆圈标记数据,而必须在回归代码中出现错误而不是在绘图中。 – mikkola
看看你的Y轴。那是你的问题。 – MZimmerman6
但的确如此。您正在使用'x'和'y'值来计算回归系数'a'和'b',然后用它们来绘制红线。 – mikkola