点二列相关分析是一种用于衡量一个二元变量(通常取值为0和1)与一个连续变量之间相关性的统计方法。它常用于教育学、心理学和社会科学等领域,以评估二元变量对连续变量的影响。
点二列相关系数是皮尔逊积矩相关系数的特例,由卡尔·皮尔逊(Karl Pearson)提出。皮尔逊在研究统计学理论时,发现传统的相关系数方法无法有效处理二元变量和连续变量的组合情况,因此提出了点二列相关系数,用于分析这类特殊数据的相关性。
点二列相关系数(Point-Biserial Correlation Coefficient)的计算公式如下:
r p b = X ˉ 1 − X ˉ 0 s n 1 n 0 n ( n − 1 ) r_{pb} = \frac{\bar{X}_1 - \bar{X}_0}{s} \sqrt{\frac{n_1 n_0}{n(n-1)}} rpb=sXˉ1−Xˉ0n(n−1)n1n0
其中:
点二列相关系数的计算基于连续变量的均值差异,标准差和样本数量的组合,能够有效评估二元变量和连续变量之间的关系。
点二列相关分析广泛应用于教育学、心理学和社会科学等领域,特别是在以下情况下:
假设我们有一组数据,包含学生是否通过考试(二元变量)和他们的学习时间(连续变量)。我们希望通过点二列相关分析评估这两个变量之间的关系。数据如下:
学生 通过考试(1=通过,0=未通过) 学习时间(小时)
A 1 10
B 0 5
C 1 8
D 0 3
E 1 7
F 0 4
G 1 9
数据准备:
学生 通过考试 学习时间(小时)
A 1 10
B 0 5
C 1 8
D 0 3
E 1 7
F 0 4
G 1 9
计算均值:
X ˉ 1 = 10 + 8 + 7 + 9 4 = 8.5 \bar{X}_1 = \frac{10 + 8 + 7 + 9}{4} = 8.5 Xˉ1=410+8+7+9=8.5
X ˉ 0 = 5 + 3 + 4 3 = 4 \bar{X}_0 = \frac{5 + 3 + 4}{3} = 4 Xˉ0=35+3+4=4
计算标准差:
s = ( 10 − 7 ) 2 + ( 5 − 4 ) 2 + ( 8 − 7 ) 2 + ( 3 − 4 ) 2 + ( 7 − 7 ) 2 + ( 4 − 4 ) 2 + ( 9 − 7 ) 2 7 − 1 = 2.29 s = \sqrt{\frac{(10-7)^2 + (5-4)^2 + (8-7)^2 + (3-4)^2 + (7-7)^2 + (4-4)^2 + (9-7)^2}{7-1}} = 2.29 s=7−1(10−7)2+(5−4)2+(8−7)2+(3−4)2+(7−7)2+(4−4)2+(9−7)2=2.29
计算点二列相关系数:
r p b = 8.5 − 4 2.29 4 × 3 7 × 6 = 0.87 r_{pb} = \frac{8.5 - 4}{2.29} \sqrt{\frac{4 \times 3}{7 \times 6}} = 0.87 rpb=2.298.5−47×64×3=0.87
结果表明,学习时间与通过考试之间有较强的正相关关系。
使用Python进行点二列相关系数计算,可以使用scipy
库中的pointbiserialr
函数:
import numpy as np
from scipy.stats import pointbiserialr
# 数据准备
passed = np.array([1, 0, 1, 0, 1, 0, 1])
study_time = np.array([10, 5, 8, 3, 7, 4, 9])
# 计算点二列相关系数
corr, _ = pointbiserialr(passed, study_time)
print(f"通过考试与学习时间的点二列相关系数: {corr}")
使用R进行点二列相关系数计算,可以使用cor
函数并指定方法为pearson
:
# 数据准备
passed <- c(1, 0, 1, 0, 1, 0, 1)
study_time <- c(10, 5, 8, 3, 7, 4, 9)
# 计算点二列相关系数
corr <- cor(passed, study_time, method = "pearson")
print(paste("通过考试与学习时间的点二列相关系数:", corr))
点二列相关分析是一种灵活且有效的统计方法,特别适用于评估二元变量与连续变量之间的关系。通过对这两种变量之间关系的分析,可以帮助研究者更好地理解数据,为教育学、心理学和社会科学等领域的研究和决策提供有力支持。