Pandas⑯ (重回帰分析/散布図)

重回帰分析/散布図

前回記事で作成した重回帰モデルが適切かどうかを 散布図と直線 を使って確認します。

まず、x軸・y軸ともに 実測値(売上額) をとった直線をプロットします。(6~8行目)

(NumPyの linspace関数 では、等差数列を生成します。)

次に、x軸を 実測値(売上額)、y軸を 予測値(売上額) にとった 散布図 を描画します。(10~13行目)

予測した値が実測値とぴったりであれば、すべてのドットが 直線上 に乗ることになります。

[Google Colaboratory]

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
from matplotlib import pyplot as plt
%matplotlib inline

predict = model.predict(x)
# x=yの直線を描画
plt.plot(np.linspace(min(y),max(y)), # x軸: yの値
np.linspace(min(y),max(y)) # y軸: yの値
)
# 実測値をヨコ軸、予測値をタテ軸にとった散布図を描画
plt.plot(y, # x軸: yの値
predict, # y軸: 予測値
'o'
)
plt.xlabel('y') # x軸ラベル
plt.ylabel('predict(y)') # y軸ラベル

[実行結果]

予測なので実測値との間に 誤差 がありますが、予測値の分布 は実測値(直線)にだいたいフィットしたものとなっていることが確認できます。