今回は離散図にトレンドラインを描画してみます。
準備
グラフで回帰直線を描画するにはStatsmodelsをインストールしておく必要があります。
pip install statsmodels
もしplotlyとpandasをインストールしていない場合にはインストールしておいてください。
pip install plotly pandas
線形回帰
最小二乗回帰、もしくは線形回帰と呼ばれる方法です。プロットと直線の距離の二乗が最小になる直線を求めます。散布図でtrandline='ols'を指定することで最小二乗法を用いた回帰直線を簡単に描画することができます。
# -*- coding: utf-8 -*-
import plotly.express as px
import pandas as pd
data=[
['東京',13921,106238222]
,['大阪',8809,40069967]
,['愛知',7552,40299791]
,['神奈川',9198,35589833]
,['福岡',5112,19679224]
]
columns=['都道府県','人口','都道府県内総生産']
df=pd.DataFrame(data,columns=columns)
fig = px.scatter(df,x='人口',y='都道府県内総生産',trendline='ols',trendline_color_override='darkblue',size='人口')
fig.show()
実行結果
trendlineオプション
plotly.express packageを読んで見たところ、現在指定可能なplotlyの指定可能なtrendlineオプションは以下の2つしかななさそう。
trendline | 意味 | 説明 |
---|---|---|
ols | 線型回帰 | 直線回帰する(最小二乗法) |
lowess | 局所回帰 | 局所的な点の数を指定し局所点内での回帰曲線を描く |
もっと色々な回帰を用いる場合にはscikit-learnというライブラリを用いて回帰曲線を直に描画する必要があるようです(ML Regression)。
まとめ
今回はPlotlyExpressを用いた回帰線の描き方についてみてみました。回帰直線&曲線は奥が深いので少しずつ取り扱ってゆければとおもいます。
Comment on this article
コメントはまだありません。
Send comments