所以我有一个数据集,它是分子丰度作为物理参数的函数,我想确定两者之间的相互关系 . 这两个参数都跨越了几个数量级 .

因为两者不是线性相关的,所以我选择使用 scipy.stats.spearmanr 中的Spearman等级相关系数 . 但我的问题是结果有时没有意义,我无法弄清楚我做错了什么 .

下图是图,其中丰度被绘制为三个不同的时间(颜色) . 但奇怪的是,虽然黑线显示丰度下降,因此负相关系数,但另外两条线显示正相关,尽管它们与黑线没有那么不同!

这是我使用的代码,我排除了代码的化妆品部分 .

for t in range(0, len(times)):
    ax.loglog(parameter, abunds[t], color=colors[t])
    corr_coeffs[t] = stats.spearmanr(np.log10(parameter),np.log10(abundances[t,:])
    patches.append(mpatches.Patch(color=colors[t], label="r=" + str(("%.2f"%corr_coeffs[t,0])) + ", p=" + str(("%.2f"%corr_coeffs[t,1])) + " | " + time_label[t]))
legend  =   plt.legend(handles=patches, fontsize="large", loc='best')
plt.savefig('example.png')

如果有人能向我解释这种奇怪的行为,我将非常感激 .