2016-04-29 18 views
2

Der Versuch, robuste Statistiken statt gewöhnliche Kleinste Quadrate (OLS) Fitting zu implementieren, so dass Ausreißer nicht so ein Problem für meine Passungen sind. Ich hatte gehofft, dies in der Pairplot-Funktion von Seaborn zu implementieren und kann nicht sehen und einfach Weg, dies aus der AP-Dokumentation hinzuzufügen, da es kein Schlüsselwort Argument für die Anpassung scheint.Robuste Statistiken lineare Regression in Seaborn pairplot

Von: scipy lectures Sie folgendes empfehlen die Verwendung, aber ich denke, das ist für regplot, wo Sie den Sitz

`fit = statsmodels.formula.api.rlm()` 

Hier verwenden definieren kann, ist ein Beispielcode

import seaborn as sns; sns.set(style="ticks", color_codes=True) 
import matplotlib.pyplot as plt 
%matplotlib inline 
iris = sns.load_dataset("iris") 
sns.pairplot(iris, kind="reg")#, robust = True) 
plt.show() 

Vielen Dank im Voraus!

Edit: Ich habe einen Workaround gefunden, aber die 'Hue' Funktion offenbar verlieren, die auf dem Paarplot getan werden könnte. Wäre ein nettes Feature, um eine robuste Option zum Pairplot hinzuzufügen. Code:

def corrfunc(x, y, **kws): 
    r, _ = stats.pearsonr(x, y) 
    ax = plt.gca() 
    ax.annotate("r = {:.2f}".format(r), xy=(.1, .9), xycoords=ax.transAxes) 

g = sns.PairGrid(df1, palette=["red"]) 
g.map_upper(sns.regplot, robust = True) 
g.map_diag(sns.distplot, kde=True) 
g.map_lower(sns.kdeplot, cmap="Blues_d") 
g.map_lower(corrfunc) 
+0

Ich habe einen Workaround gefunden, aber die "Farbton" -Funktion verloren, die anscheinend auf dem Paarplot getan werden konnte. Wäre ein nettes Feature, um eine robuste Option zum Pairplot hinzuzufügen. Code: 'def corrfunc (x, y, ** KWS): r, _ = stats.pearsonr (x, y) = ax plt.gca() ax.annotate (" r = {: .2f }“. Format (r), xy = (. 1, .9), xycoords = ax.transAxes) g = sns.PairGrid (DF1, palette = [ "red"]) g.map_upper (SNS. regplot, robust = True) g.map_diag (sns.distplot, kde = Wahr) g.map_lower (sns.kdeplot, cmap = "Blues_d") g.map_lower (corrfunc) ' –

+0

In Ihrer Problemumgehung können Sie einschließen der Farbton mit g = sns.PairGrid (df1, hue = 'species') – user4319496

Antwort

0

zusätzliche Schlüsselwörter wie "robust = True" kann übergeben werden über das plot_kws Argument regplot:

sns.pairplot(df1,kind='reg',hue='species',plot_kws=dict(robust=True,n_boot=50)) 

NB: In diesem Beispiel habe ich auch verringert n_boot die reduzieren Laufzeit (siehe "robust" in Regplot-Dokumentation), so dass die Konfidenzintervalle möglicherweise falsch sind).

Verwandte Themen