Seaborn regplot で回帰式を表示する方法


関数 seaborn regplotを使用して、データ セットに適合する線形回帰モデルをプロットできます。

残念ながら、Seaborn には直線から回帰式を抽出する組み込み機能がありませんが、 scipy.stats.linregress関数を使用して回帰係数をすばやく見つけることができます。

 import scipy
import seaborn as sns

#create regplot
p = sns. regplot (data=df, x=df. x , y=df. y )

#calculate slope and intercept of regression equation
slope, intercept, r, p, sterr = scipy. stats . linregress (x= p.get_lines ()[0] .get_xdata (),
                                                       y=p. get_lines ()[0]. get_ydata ())

次の例は、この構文を実際に使用する方法を示しています。

例: Seaborn Regplot で回帰式を表示する

さまざまな学生の学習時間と最終試験の得点に関する情報を含む次のパンダ データフレームがあるとします。

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' hours ': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10],
                   ' score ': [77, 79, 84, 80, 81, 89, 95, 90, 83, 89]})

#view DataFrame
print (df)

   hours score
0 1 77
1 2 79
2 3 84
3 4 80
4 5 81
5 6 89
6 7 95
7 8 90
8 9 83
9 10 89

データ点をプロットし、近似回帰直線をデータに追加するとします。

これを行うには、次の構文を使用できます。

 import scipy
import seaborn as sns

#create regplot
p = sns. regplot (data=df, x=df. hours , y=df. score )

#calculate slope and intercept of regression equation
slope, intercept, r, p, sterr = scipy. stats . linregress (x= p.get_lines ()[0] .get_xdata (),
                                                       y=p. get_lines ()[0]. get_ydata ())

#display slope and intercept of regression equation
print (intercept, slope)

77.39999999999995 1.3272727272727356

結果から、回帰直線には次の方程式があることがわかります。

y = 77.4 + 1.327

この方程式を seaborn regplotに表示したい場合は、 matplotlib text()関数を使用できます。

 import matplotlib. pyplot as plt
import scipy
import seaborn as sns

#create regplot
p = sns. regplot (data=df, x=df. hours , y=df. score )

#calculate slope and intercept of regression equation
slope, intercept, r, p, sterr = scipy. stats . linregress (x= p.get_lines ()[0] .get_xdata (),
                                                       y=p. get_lines ()[0]. get_ydata ())

#add regression equation to plot
plt. text (2, 95, ' y = ' + str(round(intercept,3)) + ' + ' + str(round(slope,3)) + ' x ') 

Seaborn の再プロット方程式

回帰式がプロットの左上隅に表示されることに注意してください。

text()関数では、回帰式が (2, 95) の (x, y) 座標から表示されるように指定していることに注意してください。

これらの座標を自由に変更して、独自のプロット内のどこにでも回帰式を表示できます。

: seaborn regplot関数の完全なドキュメントは ここで見つけることができます。

追加リソース

次のチュートリアルでは、Seaborn で他の一般的なタスクを実行する方法を説明します。

Seaborn プロットの図のサイズを調整する方法
Seaborn でレジェンドの位置を変更する方法
Seaborn プロットの軸ラベルを変更する方法

コメントを追加する

メールアドレスが公開されることはありません。 が付いている欄は必須項目です