単回帰直線を計算したりグラフを描いたり

データから単回帰直線を求めるには、
1)最小二乗法
2)偏微分
のふたつのアプローチがある。

ためしに「10,40,82」を、手書き計算で求めるてみると、
y=36x−28となる。

最小二乗法、偏微分、両方でやってみたけれど、えらく時間がかかったという。

一方、Pandasのライブラリーを使うと、「10,40,82」の単回帰直線はカンタン出来てしまう。

計算により得た直線と、Pandasのライブラリーによる直線を重ねてみると、オー、ぴったり合致してる〜!

ちなみに直線の周りの淡いブルーは信頼区間となっている。

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns

df=pd.DataFrame({'x':[1,2,3],'y':[10,40,82]})
df



fig=plt.figure()
ax=fig.add_subplot(111)
ax.set_xticks([1,2,3])
plt.xlim(0.95,3.05)
sns.regplot(x='x',y='y',data=df)
x=np.arange(1,4)
y=36*x-28
plt.plot(x,y,linewidth=0.9,color='red')
plt.show()

気づいたことを、お気軽に。
公開まで、やや時間がかかりまーす!