def correlation_p_pearsonr2(data0, data1): r = stats.pearsonr(data0, data1) if math.isnan(r): return float('NaN') if r == 1.: return 0. n = len(data0) assert n == len(data1) # Compute observed t statistic. t = r * math.sqrt((n - 2) / (1 - r**2)) # Compute p-value for two-sided t-test. return 2 * stats.t_cdf(-abs(t), n - 2)
def correlation_p_pearsonr2(data0, data1): r = stats.pearsonr(data0, data1) if math.isnan(r): return float('NaN') if r == 1.: return 0. n = len(data0) assert n == len(data1) # Compute observed t statistic. t = r * math.sqrt((n - 2)/(1 - r**2)) # Compute p-value for two-sided t-test. return 2 * stats.t_cdf(-abs(t), n - 2)
def correlation_pearsonr2(data0, data1): r = stats.pearsonr(data0, data1) return r**2
def test_pearsonr(): assert math.isnan(stats.pearsonr([], [])) assert stats.pearsonr([1,2,3], [2,4,6]) == +1.0 assert stats.pearsonr([1,2,3], [-2,-4,-6]) == -1.0 assert stats.pearsonr([1,2,3], [6,4,2]) == -1.0 assert stats.pearsonr([1,2,3], [+1,-1,+1]) == 0.0
def correlation_pearsonr2(data0, data1): return stats.pearsonr(data0, data1)**2