seaborn.lmplot を使うと、散布図と回帰直線を同時に描画できます。信頼区間も自動で付与されます。
import seaborn as sns
import matplotlib.pyplot as plt
tips = sns.load_dataset("tips")
g = sns.lmplot(
data=tips,
x="total_bill",
y="tip",
hue="time",
height=4,
aspect=1.2,
scatter_kws={"alpha": 0.6, "s": 40},
)
g.fig.suptitle("会計額とチップの関係(回帰線付き)", y=1.04)
g.fig.savefig("static/images/visualize/scatter/lm.svg")
読み方のポイント #
- 回帰線の傾きで関係性の強弱を判断できる。信頼区間が広い箇所はデータが少ない。
- カテゴリごとに色分けすることで、グループ間の傾向の違いが分かる。
- 非線形が疑われる場合は
order引数で多項式回帰を試してみる。