美文网首页
用皮尔逊积描述变量的相关关系

用皮尔逊积描述变量的相关关系

作者: MrDcheng | 来源:发表于2018-11-24 21:22 被阅读0次

    摘要:记录了用皮尔逊积描述变量的相关关系的理论依据、计算方式以及在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智库网

    相关文章

      网友评论

          本文标题:用皮尔逊积描述变量的相关关系

          本文链接:https://www.haomeiwen.com/subject/wizyqqtx.html