【发布时间】:2021-02-15 18:53:49
【问题描述】:
所以我正在学习我的第一门 Python 课程,并且在尝试计算数据集的相关系数时偶然发现了一些问题。我知道我可以只使用 np.coercoef 但我也希望能够“手动”完成。我尝试了以下代码的各种组合,但我得到的答案总是比 np.coercoef 给我的答案更高(大约为 0.62 与 0.57 相比)。
我希望这里有人可以帮助我找出代码中的问题?
最好的问候,
k_m = np.array([22, 48, 76, 10, 22, 4, 68, 44, 10, 76, 14, 56])
km = np.array([63, 39, 61, 30, 51, 44, 74, 78, 55, 58, 41, 69])
gns_k_m = 0
gns_km = 0
cov = 0
sum_k_m = 0
sum_km = 0
for k in range(len(k_m)):
gns_k_m += k_m[k]/len(k_m)
for k in range(len(km)):
gns_km += km[k]/len(km)
print(gns_k_m, gns_km)
for k in range(len(k_m)):
cov += (k_m[k]-gns_k_m)*(km[k]-gns_km)/(len(k_m)-1)
print(cov)
for k in range(len(k_m)):
sum_k_m += (k_m[k]-gns_k_m)**2
sa_k_m = np.sqrt(sum_k_m/len(k_m))
for k in range(len(km)):
sum_km += (km[k]-gns_km)**2
sa_km = np.sqrt(sum_km/len(km))
cor = cov/(sa_k_m*sa_km)
print(cor)
print(np.corrcoef(k_m,km))
【问题讨论】:
-
我认为这个问题是统计问题,而不是计算问题。简单看一下,为什么在计算方差时会有'-1'?
-
你确定你在比较相同的东西?
标签: python numpy for-loop correlation pearson-correlation