我寫了下面的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