zoukankan      html  css  js  c++  java
  • day-14 回归中的相关系数和决定系数概念及Python实现

      衡量一个回归模型常用的两个参数:皮尔逊相关系数和R平方

    一、皮尔逊相关系数

      在统计学中,皮尔逊相关系数( Pearson correlation coefficient),又称皮尔逊积矩相关系数(Pearson product-moment correlation coefficient,简称 PPMCC或PCCs),是用于度量两个变量X和Y之间的相关(线性相关),其值介于-1与1之间。

       

      实际可用如下公式进行计算:

      

      若大于0,表示正向相关,小于0,表示负向相关,等于0,表示不相关

    二、决定系数:R平方值

             定义:反应因变量的全部变异能通过回归关系被自变量解释的比例。

            

             特别的对于简单线性回归模型时

      其中(Sum square regression)表示所有预测值与平方值的变异量,(Sum square total)表示所有真实值与平方值的变异量,(Sum square regression)表示真实值与预测值的变异量

                

             例如当为0.8时,表示80%可以用模型来解释

             实际应用中,为了抵消样本数量对评估参数的影响,我们需要对R平方表示式进行修正为:

            

             表示样本的R平方值,表示样本大小,表示预测值数量

    三、python代码实现

      对于简单线性回归,分别计算相关系数和决定系数,并验证公式:

    import numpy as np
    import math
    
    x = np.array([1,3,8,7,9])
    y = np.array([10,12,24,21,34])
    
    # 计算相关度
    def computeCorrelation(x,y):
        xBar = np.mean(x)
        yBar = np.mean(y)
        SSR = 0.0
        varX = 0.0
        varY = 0.0
        for i in range(0,len(x)):
            diffXXbar = x[i] - xBar
            difYYbar = y[i] - yBar
            SSR += (diffXXbar * difYYbar)
            varX += diffXXbar**2
            varY += difYYbar**2
        SST = math.sqrt(varX * varY)
        return SSR/SST
    
    # 计算R平方
    def polyfit(x,y,degree):
        results = {}
        coeffs = np.polyfit(x,y,degree)
        results['polynomial'] = coeffs.tolist()
        p = np.poly1d(coeffs)
        yhat = p(x)
        ybar = np.sum(y)/len(y)
        ssreg = np.sum((yhat - ybar)**2)
        sstot = np.sum((y - ybar)**2)
        results['determination'] = ssreg/sstot
        return results
    
    result = computeCorrelation(x,y)
    r = result
    r_2 = result**2
    print("r:",r)
    print("r^2:",r*r)
    print(polyfit(x,y,1)['determination'])

      通过结果验证,简单线性回归模型中,成立

      

  • 相关阅读:
    etcd:从应用场景到实现原理的全方位解读
    open-falcon编写的整个脑洞历程
    开源还是商用?十大云运维监控工具横评
    我的后端开发书架2015 2.0版
    【MDCC 2015】友盟数据平台负责人吴磊:移动大数据平台的架构与实践
    Effective Go
    Airbnb JavaScript Style Guide
    Google HTML/CSS Style Guide
    nservicebus教程-目录
    测试
  • 原文地址:https://www.cnblogs.com/python-frog/p/8988030.html
Copyright © 2011-2022 走看看