動作しません:私はplot(x, a*x + b);
をコメントアウトするときホールドは私が最小二乗回帰をテストするには、以下のMATLABコードを書かれている適切
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);
scatter
機能が正常に動作します。それは次のようになります。
しかし、私は私の推定ラインをプロットするplot(x, a*x + b);
を追加する場合、出力は次のようになります。
私の推測では、イムはhold on
権利を使用していないということです。この問題を解決するにはどうすればよいですか?
あなたの回帰係数を確認してください: 'A'は' 1.0706e + 04'で、 'B'は '-3.7458e + 04'である - これはあなたが表示さ青色の円のマーカーデータのために正しいこと、およびその代わりなければならないことはできませんあなたの回帰コードではなく、プロットに誤りがあります。 – mikkola
あなたのy軸を見てください。それはあなたの問題です。 – MZimmerman6
しかし確かに彼らはそうしています。 'x'と' y'の値を使って回帰係数 'a'と' b'を計算し、それを赤線をプロットするのに使います。 – mikkola