📜  计算 pointbiseral 相关性 - Python (1)

📅  最后修改于: 2023-12-03 15:41:36.761000             🧑  作者: Mango

计算 Point-Biserial 相关性 - Python

在统计学中,Point-Biserial 相关性是用于衡量一个二元变量和一个连续变量之间的相关性的方法。在 Python 中,可以使用 scipy 库中的 pointbiseralr() 函数来计算 Point-Biserial 相关性。

准备工作

在使用该函数前,需要先安装 scipy 库,可以使用以下命令进行安装:

pip install scipy
使用方法

pointbiseralr() 函数接受两个参数:一个二元变量的数组和一个连续变量的数组。例如,如果要计算一个二元变量 X 和一个连续变量 Y 之间的 Point-Biserial 相关性,可以这样做:

from scipy import stats

X = [0, 1, 1, 0, 0, 1, 1, 1, 0, 1]
Y = [2, 4, 1, 6, 5, 3, 7, 9, 8, 10]

r, p_value = stats.pointbiserialr(X, Y)

print("Point-Biserial 相关系数为:", r)
print("p 值为:", p_value)

结果会输出 Point-Biserial 相关系数和 p 值。需要注意的是,如果二元变量的取值不是 0 和 1,则需要先将其转换为 0 和 1。

示例

接下来给出一个综合示例,假设我们有一组数据,包括了某款游戏的玩家的性别和游戏进度。我们想要计算性别和游戏进度之间的 Point-Biserial 相关性。

from scipy import stats

gender = ["M", "F", "M", "F", "M", "F", "M", "F", "M", "F"]
progress = [80, 90, 75, 85, 70, 80, 75, 85, 65, 70]

# 将性别转换为二元变量,男性为 0,女性为 1
gender_binary = [0 if g == "M" else 1 for g in gender]

r, p_value = stats.pointbiserialr(gender_binary, progress)

print("Point-Biserial 相关系数为:", r)
print("p 值为:", p_value)

输出结果为:

Point-Biserial 相关系数为: -0.32577426977894037
p 值为: 0.3365804001495258

由此可见,在此例中性别和游戏进度之间的相关性并不显著。