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 ')
回帰式がプロットの左上隅に表示されることに注意してください。
text()関数では、回帰式が (2, 95) の (x, y) 座標から表示されるように指定していることに注意してください。
これらの座標を自由に変更して、独自のプロット内のどこにでも回帰式を表示できます。
注: seaborn regplot関数の完全なドキュメントは ここで見つけることができます。
追加リソース
次のチュートリアルでは、Seaborn で他の一般的なタスクを実行する方法を説明します。
Seaborn プロットの図のサイズを調整する方法
Seaborn でレジェンドの位置を変更する方法
Seaborn プロットの軸ラベルを変更する方法