2016-04-29 95 views
2

試圖實現穩健統計,而不是普通最小二乘法(OLS)配合,這樣的異常值是不是我配合這樣的問題。 我希望能夠在seaborn的pairplot函數中實現這一點,並且無法看到並且從AP文檔中添加這個方法的簡單方法,因爲似乎沒有適合的關鍵詞參數。穩健統計線性迴歸pairplot

來源:scipy lectures他們建議使用以下,但我使用

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

這裏猜測regplot多數民衆贊成在那裏你可以定義配合是一些示例代碼

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() 

提前感謝!

編輯:我發現了一個解決辦法,但鬆散的「色相」功能顯然,可以在pairplot來完成。這將是一個很好的功能,可以添加強大的選項到pairplot。 代碼:

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

我找到了一個解決辦法,但鬆散的「色相」功能顯然,可以在pairplot來完成。這將是一個很好的功能,可以添加強大的選項到pairplot。 代碼: def corrfunc(x,y,** kws): r,_ = stats.pearsonr(x,y) ax = plt.gca() ax.annotate(「r = {:.2f }。格式(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

在您的解決方法中,您可以包括g = sns.PairGrid(df1,hue ='species')的色調 – user4319496

回答

0

額外的關鍵字,例如「健壯=真」可以被傳遞通過plot_kws參數regplot:

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

NB:在這個例子中我也下降n_boot減少(請參閱regplot文檔中的「健壯」),因此置信區間可能不正確)。