摘要:记录了用皮尔逊积描述变量的相关关系的理论依据、计算方式以及在Java环境的代码示例,同时也说明了约束条件、缺点。
相关系数(Correlation coefficient)
-
相关表和相关图可反映两个变量之间的相互关系及其相关方向,但无法确切地表明两个变量之间相关的程度。
-
著名统计学家卡尔·皮尔逊设计了统计指标——相关系数。相关系数是用以反映变量之间相关关系密切程度的统计指标。相关系数是按积差方法计算,同样以两变量与各自平均值的离差为基础,通过两个离差相乘来反映两变量之间相关程度;着重研究线性的单相关系数。
-
依据相关现象之间的不同特征,其统计指标的名称有所不同。如将反映两变量间线性相关关系的统计指标称为相关系数(相关系数的平方称为判定系数);将反映两变量间曲线相关关系的统计指标称为非线性相关系数、非线性判定系数;将反映多元线性相关关系的统计指标称为复相关系数、复判定系数等。
相关系数的计算方法
相关系数的计算方法- 相关系数的值介于–1与+1之间,即–1≤r≤+1。其性质如下:
- 当r>0时,表示两变量正相关,r<0时,两变量为负相关。
- 当|r|=1时,表示两变量为完全线性相关,即为函数关系。
- 当r=0时,表示两变量间无线性相关关系。
- 当0<|r|<1时,表示两变量存在一定程度的线性相关。且|r|越接近1,两变量间线性关系越密切;|r|越接近于0,表示两变量的线性相关越弱。
- 相关系数一般可按三级划分:|r|<0.4为低度线性相关;0.4≤|r|<0.7为显著性相关;0.7≤|r|<1为高度线性相关。
使用案例
广告费与月平均销售额相关表,单位:万元
年广告费投入 | 月均销售额 |
---|---|
12.5 | 21.2 |
15.3 | 23.9 |
23.2 | 32.9 |
26.4 | 34.1 |
33.5 | 42.5 |
34.4 | 43.2 |
39.4 | 49.0 |
45.2 | 52.8 |
55.4 | 59.4 |
60.9 | 63.5 |
相关系数为0.9942,说明广告投入费与月平均销售额之间有高度的线性正相关关系。
代码示例
public class Pearson {
/**
* 计算两组数据的皮尔逊积相关性
* @param firstRow 第一组数据
* @param secondRow 第二组数据
* @return
*/
public static double GetPearson(List<String> firstRow, List<String> secondRow) {
// 两组数据平均值
double averageFirst = 0.0;
double averageSecond = 0.0;
// 分子
double sumNumerator = 0.0;
// 分母
double sumDenominator = 0.0;
// 若两列数据长度不同,仅取较短长度进行计算
int compareLenth = firstRow.size() > secondRow.size() ? secondRow.size() : firstRow.size();
for (int tempValue = 0; tempValue < compareLenth; tempValue++) {
averageFirst += Double.valueOf(firstRow.get(tempValue));
averageSecond += Double.valueOf(secondRow.get(tempValue));
}
//计算平均值
averageFirst = averageFirst / compareLenth;
averageSecond = averageSecond / compareLenth;
// 分子
for (int tempValue = 0; tempValue < compareLenth; tempValue++) {
sumNumerator += (Double.valueOf(firstRow.get(tempValue)) - averageFirst) * (Double.valueOf(secondRow.get(tempValue)) - averageSecond);
}
// 分母
double tempA = 0;
double tempB = 0;
for (int tempValue = 0; tempValue < compareLenth; tempValue++) {
tempA += Math.pow((Double.valueOf(firstRow.get(tempValue)) - averageFirst), 2);
tempB += Math.pow((Double.valueOf(secondRow.get(tempValue)) - averageSecond), 2);
}
sumDenominator = Math.sqrt(tempA) * Math.sqrt(tempB);
return sumNumerator / sumDenominator;
}
}
皮尔逊相关系数的约束条件
- 两个变量间有线性关系
- 变量是连续变量
- 变量均符合正态分布,且二元分布也符合正态分布
- 两变量独立。在实践统计中一般只输出两个系数,一个是相关系数也就是计算出来的相关系数大小(在-1到1之间),另一个是独立样本检验系数,用来检验样本一致性。
相关系数的缺点
-
需要指出的是,相关系数有一个明显的缺点,即它接近于1的程度与数据组数n相关,这容易给人一种假象。因为,当n较小时,相关系数的波动较大,对有些样本相关系数的绝对值易接近于1;当n较大时,相关系数的绝对值容易偏小。特别是当n=2时,相关系数的绝对值总为1。因此在样本容量n较小时,我们仅凭相关系数较大就判定变量x与y之间有密切的线性关系是不妥当的。
-
例如,就我国深沪两股市资产负债率与每股收益之间的相关关系做研究。发现1999年资产负债率前40名的上市公司,二者的相关系数为r=–0.6139;资产负债率后20名的上市公司,二者的相关系数r=0.1072;而对于沪、深全部上市公司(基金除外)结果却是,r沪=–0.5509,r深=–0.4361,根据三级划分方法,两变量为显著性相关。这也说明仅凭r的计算值大小判断相关程度有一定的缺陷。
参考文献
- 郭红霞.相关系数及其应用.武警工程学院学报.2010年3月,第26卷第2期
- 王爱莲.统计学.第七章 相关与回归分析.第一节 相关分析.西安石油大学.经济管理学院
- 使用案例参考了MBA智库网
网友评论