使用绝对值和相对值的 Pearson 相关方法

数据挖掘 Python 统计数据 相关性
2022-03-07 09:32:20

我有一个包含每个城市的选举结果和犯罪率的数据集。对于每个变量,我都有一个绝对值(即总票数、总犯罪率)和一个相对值(即百分比票数)

我想计算一些变量的相关系数,但在这个过程中我有一个问题,我需要使用什么值,如果是相对值还是绝对值。

首先我计算z score了绝对值,然后我使用 excel 计算了相关性。我还在python中使用了pandas.DataFrame.corr()and pearsonrfrom scipy.stats.stats,以证实结果。

例如,如果我使用绝对值,我将在候选 1候选 2之间得到正相关。

x = df['Abs Cand 1'].tolist()
y = df['Abs Cand 2'].tolist()

print (pearsonr(x,y))
(0.95209664861187004, 0.0)

但是,如果我使用相对的,我会得到负相关:

x = df['Rel Cand 1'].tolist()
y = df['Rel Cand 2'].tolist()

print (pearsonr(x,y))
(-0.99704737036262991, 0.0)

当我看到这两个结果时我很困惑,现在我需要一些方向来理解这些差异。

提前致谢!

1个回答

一般来说,相关系数是“不变的,以区分两个变量中位置和规模的变化”特别是,您可以将相对值与绝对值混合使用。

但是,只有在全局缩放变量时才有效。您无法扩展每个单独的数据点(此处为城市级别)。如果这是全县范围的选举,您可以按县人口来衡量城市价值。

但听起来你的犯罪率是在每个城市的水平上的。在这种情况下,您还应该在城市级别上缩放选票以使它们具有可比性。这将改变相关系数并给出与绝对值不同的结果。我认为在您的情况下使用百分比更直观。