尝试实现健壮的统计数据而不是普通的最小二乘法(OLS)拟合,以便异常值不适合我的问题。 我希望在seaborn的pairplot函数中实现这一点,并且无法从AP文档中看到并简单地添加它,因为它似乎不是拟合的关键字参数。
来自:scipy lectures他们建议使用以下内容,但我想这是regplot,您可以使用
定义合适度`fit = statsmodels.formula.api.rlm()`
以下是一些示例代码
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添加健壮的选项将是一个很好的功能。 代码:
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 :(得分:0)
可以通过plot_kws参数将额外的关键字(例如“robust = True”)传递给regplot:
sns.pairplot(df1,kind='reg',hue='species',plot_kws=dict(robust=True,n_boot=50))
注意:在这个例子中,我还减少了n_boot以减少运行时间(请参见regplot文档中的“robust”),因此置信区间可能不正确)。