seaborn.regplot#
- seaborn.regplot(data=None, *, x=None, y=None, x_estimator=None, x_bins=None, x_ci='ci', scatter=True, fit_reg=True, ci=95, n_boot=1000, units=None, seed=None, order=1, logistic=False, lowess=False, robust=False, logx=False, x_partial=None, y_partial=None, truncate=True, dropna=True, x_jitter=None, y_jitter=None, label=None, color=None, marker='o', scatter_kws=None, line_kws=None, ax=None)#
データと線形回帰モデルの適合をプロットします。
回帰モデルを推定するための相互に排他的なオプションがいくつかあります。詳細については、チュートリアルを参照してください。
- パラメータ:
- x, y: 文字列、シリーズ、またはベクター配列
入力変数。文字列の場合、これらは
data
内の列名に対応する必要があります。pandasオブジェクトを使用する場合、軸はシリーズ名でラベル付けされます。- dataDataFrame
各列が変数で、各行が観測値である整然とした(「長形式」)データフレーム。
- x_estimatorベクトルをスカラーにマッピングする呼び出し可能オブジェクト、オプション
x
の一意の値ごとにこの関数を適用し、結果として得られる推定値をプロットします。これはx
が離散変数の場合に便利です。x_ci
が指定されている場合、この推定値はブートストラップされ、信頼区間が描画されます。- x_binsint またはベクトル、オプション
x
変数を離散的なビンに分割し、中心傾向と信頼区間を推定します。このビニングは、散布図がどのように描画されるかにのみ影響します。回帰は元のデータに適合されます。このパラメータは、均等なサイズ(必ずしも間隔が均等ではない)のビンの数またはビン中心の位置として解釈されます。このパラメータを使用すると、x_estimator
のデフォルトがnumpy.mean
であることを意味します。- x_ci"ci"、"sd"、[0, 100] の整数または None、オプション
x
の離散値をプロットするときに使用される中心傾向の信頼区間のサイズ。"ci"
の場合、ci
パラメータの値に従います。"sd"
の場合、ブートストラップをスキップし、各ビン内の観測値の標準偏差を表示します。- scatterbool、オプション
True
の場合、基礎となる観測値(またはx_estimator
の値)を含む散布図を描画します。- fit_regbool、オプション
True
の場合、x
変数とy
変数に関連する回帰モデルを推定してプロットします。- ci[0, 100] の整数または None、オプション
回帰推定値の信頼区間のサイズ。これは、回帰線の周りに半透明の帯を使用して描画されます。信頼区間はブートストラップを使用して推定されます。大きなデータセットの場合、このパラメータを None に設定して、その計算を避けることをお勧めします。
- n_bootint、オプション
ci
を推定するために使用されるブートストラップリサンプルの数。デフォルト値は時間と安定性のバランスを取ろうとします。プロットの「最終」バージョンでは、この値を大きくすることをお勧めします。- units
data
内の変数名、オプション もし
x
とy
の観測値がサンプリング単位内でネストしている場合、ここで指定できます。これは、ユニットと(ユニット内の)観測値の両方を再サンプリングする多段階ブートストラップを実行することで、信頼区間を計算する際に考慮されます。それ以外の場合、回帰がどのように推定または描画されるかに影響を与えることはありません。- seedint, numpy.random.Generator, または numpy.random.RandomState, optional
再現性のあるブートストラップのためのシードまたは乱数ジェネレーター。
- orderint, optional
order
が1より大きい場合、numpy.polyfit
を使用して多項式回帰を推定します。- logisticbool, optional
True
の場合、y
がバイナリ変数であると仮定し、statsmodels
を使用してロジスティック回帰モデルを推定します。これは線形回帰よりも計算負荷が大幅に大きいため、ブートストラップの再サンプル数(n_boot
)を減らすか、ci
をNoneに設定することをお勧めします。- lowessbool, optional
True
の場合、statsmodels
を使用してノンパラメトリックなLOWESSモデル(局所重み付き線形回帰)を推定します。現在、この種のモデルでは信頼区間を描画できないことに注意してください。- robustbool, optional
True
の場合、statsmodels
を使用してロバスト回帰を推定します。これにより、外れ値の重みが下げられます。これは標準的な線形回帰よりも計算負荷が大幅に大きいため、ブートストラップの再サンプル数(n_boot
)を減らすか、ci
をNoneに設定することをお勧めします。- logxbool, optional
True
の場合、y ~ log(x)の形式の線形回帰を推定しますが、散布図と回帰モデルを入力空間にプロットします。これが機能するためには、x
は正である必要があります。- {x,y}_partial
data
内の文字列または行列 プロットする前に
x
またはy
変数から回帰除去する交絡変数。- truncatebool, optional
True
の場合、回帰線はデータの限界で囲まれます。False
の場合、x
軸の限界まで拡張されます。- {x,y}_jitterfloat, optional
x
またはy
変数にこのサイズの均一なランダムノイズを追加します。ノイズは、回帰をフィッティングした後、データのコピーに追加され、散布図の見え方のみに影響します。これは、離散値を取る変数をプロットする場合に役立ちます。- labelstring
凡例で使用するために、散布図または回帰線(
scatter
がFalse
の場合)に適用するラベル。- colormatplotlib color
すべてのプロット要素に適用する色。
scatter_kws
またはline_kws
で渡された色によって上書きされます。- markermatplotlib マーカーコード
散布図のグリフに使用するマーカー。
- {scatter,line}_kws辞書
plt.scatter
とplt.plot
に渡す追加のキーワード引数。- axmatplotlib Axes, optional
プロットを描画するAxesオブジェクト。それ以外の場合は、現在のAxesを使用します。
- 戻り値:
- axmatplotlib Axes
プロットを含むAxesオブジェクト。
参考
注釈
regplot()
関数とlmplot()
関数は密接に関連していますが、前者は軸レベルの関数であり、後者はregplot()
とFacetGrid
を組み合わせた図レベルの関数です。regplot()
とJointGrid
またはPairGrid
をjointplot()
関数およびpairplot()
関数を介して組み合わせるのも簡単ですが、これらはregplot()
のすべてのパラメーターを直接受け入れるわけではありません。例
DataFrame内の2つの変数間の関係をプロットします
sns.regplot(data=mpg, x="weight", y="acceleration")
非線形トレンドを捉えるために、高次の多項式回帰をフィッティングします
sns.regplot(data=mpg, x="weight", y="mpg", order=2)
または、対数線形回帰をフィッティングします
sns.regplot(data=mpg, x="displacement", y="mpg", logx=True)
または、局所重み付き(LOWESS)平滑化を使用します
sns.regplot(data=mpg, x="horsepower", y="mpg", lowess=True)
応答変数がバイナリの場合は、ロジスティック回帰をフィッティングします
sns.regplot(x=mpg["weight"], y=mpg["origin"].eq("usa").rename("from_usa"), logistic=True)
外れ値の影響を軽減するために、ロバスト回帰をフィッティングします
sns.regplot(data=mpg, x="horsepower", y="weight", robust=True)
プロットを高速化するために、信頼区間を無効にします
sns.regplot(data=mpg, x="weight", y="horsepower", ci=None)
x
変数が離散的な場合に、散布図をジッターしますsns.regplot(data=mpg, x="cylinders", y="weight", x_jitter=.15)
または、個別の
x
値で集計しますsns.regplot(data=mpg, x="cylinders", y="acceleration", x_estimator=np.mean, order=2)
連続的な
x
変数で、ビン分割してから集計しますsns.regplot(data=mpg, x="weight", y="mpg", x_bins=np.arange(2000, 5500, 250), order=2)
さまざまな要素の外観をカスタマイズします
sns.regplot( data=mpg, x="weight", y="horsepower", ci=99, marker="x", color=".3", line_kws=dict(color="r"), )