Seaborn配对图中的Pearsons P统计量

5

作为一个Python/seaborn/scipy.stats/matplotlib.pyplot等方面的初学者,我一直在完成数据分析任务。我想通过pearsons R score来展示我的变量之间的关系,所以看到了Seaborn Correlation Coefficient on PairGrid这个链接。然而,由于Pearsons测试的输出还应该有一个p值,以说明统计显著性,因此我正在寻找一种方法来将P值添加到我的图注中。

g = sns.pairplot(unoutlieddata, vars=['bia', 'DW', 'HW', 'jackson', 'girths'], kind="reg")

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

g.map(corrfunc)
sns.plt.show()

以下是翻译的结果:

这里展示了我按链接提供的格式编写的代码。 sps=scipy.stats. unoutlied data是一个数据框,已经过滤掉了异常值。

有什么想法将会很棒。

谢谢。


感谢编辑此问题的人,使其更加清晰易懂:抱歉,最初的格式有些混乱:这是我的第一个问题,正如我所说,我是个新手。 - Alastair
1个回答

10

不确定是否有人会看到这个,但在与一位更了解的人交谈后,答案如下:

代码

import matplotlib.pyplot as plt
import seaborn as sns
from scipy.stats import pearsonr

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

df = sns.load_dataset("iris")
df = df[df["species"] == "setosa"]
graph = sns.pairplot(df)
graph.map(corrfunc)
plt.show()

结果

seaborn pairplot


如果您附加输出图表以进行说明,将会非常有帮助。 - Amey Dahale

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接