c, n = 0, 0
d = 0
while c < 1000:
a = random.sample(range(10), 10)
b = random.sample(range(10), 10)
n += 1
r, p = pearsonr(a, b)
if round(r, 4) >= 0.8:
c += 1
if d < round(p, 4):
d = round(p, 4)
print(d, n)
随便写了段代码测试,最后输出值为0.0049和290667,也就是说跑了29万轮,其中有1000次r值达到了0.8或以上,同时记录最大的p值,仅仅是0.0049,连标准的0.05的十分之一都没到。
也就是说只要r达到一定程度p必然小于0.05,这两个是负相关,并不会出现r小p也小的情况,p起不了检验的作用,那它存在意义是什么?pearsonr的p和统计学上的p是不是没什么关系?
实际上我只是想用pearsonr算法寻找相似度高的值,按测试结果来看似乎只要给r值设定一个阈值就够了。