精华内容
下载资源
问答
  • sklearn实战-乳腺癌细胞数据挖掘(博客主亲自录制视频教程) ...amp;utm_campaign=commission&utm_source=cp-400000000398149&utm_medium=share     多元共线性   在一个回归...

    sklearn实战-乳腺癌细胞数据挖掘(博客主亲自录制视频教程)

    https://study.163.com/course/introduction.htm?courseId=1005269003&utm_campaign=commission&utm_source=cp-400000000398149&utm_medium=share

     

     

    多元共线性

     

    在一个回归方程中,假如两个或两个以上解释变量彼此高度相关,那么回归分析的结果将有可能无法分清每一个变量与因变量之间的真实关系。例如我们要知道吸毒对SAT考试分数的影响,我们会询问对象是否吸收过可卡因或海洛因,并用软件计算它们之间的系数。

    虽然求出了海洛因和可卡因额回归系数,但两者相关性发生重叠,使R平方变大,依然无法揭开真实的情况。
    因为吸食海洛因的人常常吸食可卡因,单独吸食一种毒品人很少。

    当两个变量高度相关时,我们通常在回归方程中只采用其中一个,或创造一个新的综合变量,如吸食可卡因或海洛因。

    又例如当研究员想要控制学生的整体经济背景时,他们会将父母双方的受教育程度都纳入方程式中。

    如果单独把父亲或母亲的教育程度分离考虑,会引起混淆,分析变得模糊,因为丈夫和妻子的教育程度有很大相关性。

     
    多元共线性带来问题:
    (1)自变量不显著
    (2)参数估计值的正负号产生影响
     

    共线性统计量:
    (1)容忍度tolerance
             tolerance<0.1 表示存在严重多重共线
    (2)方差扩大因子 variance inflation factor (VIF)
             VIF>10表示存在严重多重共线性

     

     自变量为x1和x2时

     

    spss共线性诊断

    spss导入excel数据

     

    条件指数第三个为30.866,大于10,说明共线性很高

    F检验是对整个模型而已的,看是不是自变量系数不全为0,这里F检验值23,对应P概率=0,P<0.05,H1成立,说明显著性非常高

    t检验则是分别针对某个自变量的,看每个自变量是否有显著预测效力。这里t检验对应概率大于0.05,为0.23和0.48,说明显著性很差

     

     x1 的t分数p值0.232,P值>0.05,不否定H0假设,显著性不高

      x2 的t分数p值0.487,P值>0.05,不否定H0假设,显著性不高

     

     

     

     

    Python脚本分析

    condition num=670 ,未能检测出共线性

    Python目前支持2D和3D绘图,可解决两元回归绘图。但目前没发现4D绘图,即解决三元回归及其以上绘图

     

    # -*- coding: utf-8 -*-
    """
    Created on Fri Feb 23 16:54:54 2018
    
    @author: Administrator
    """
    
    # Import standard packages
    import numpy as np
    import matplotlib.pyplot as plt
    import pandas as pd
    import seaborn as sns
    from sklearn import datasets, linear_model
    from matplotlib.font_manager import FontProperties 
    font_set = FontProperties(fname=r"c:\windows\fonts\simsun.ttc", size=15)  
    # additional packages
    import sys
    import os
    sys.path.append(os.path.join('..', '..', 'Utilities'))
    
    try:
    # Import formatting commands if directory "Utilities" is available
        from ISP_mystyle import showData 
        
    except ImportError:
    # Ensure correct performance otherwise
        def showData(*options):
            plt.show()
            return
    
    # additional packages ...
    # ... for the 3d plot ...
    from mpl_toolkits.mplot3d import Axes3D
    from matplotlib import cm
    
    # ... and for the statistic
    from statsmodels.formula.api import ols
    #生成组合
    from itertools import combinations
    
    x1=[5,2,4,2.5,3,3.5,2.5,3]
    x2=[1.5,2,1.5,2.5,3.3,2.3,4.2,2.5]
    y=[96,90,95,92,95,94,94,94]
    
    
    #自变量列表
    list_x=[x1,x2]
    
    #绘制多元回归三维图
    def Draw_multilinear():
        
        df = pd.DataFrame({'x1':x1,'x2':x2,'y':y})
        # --- >>> START stats <<< ---
        # Fit the model
        model = ols("y~x1+x2", df).fit()
        param_intercept=model.params[0]
        param_x1=model.params[1]
        param_x2=model.params[2]
        rSquared_adj=model.rsquared_adj
        
        #generate data,产生矩阵然后把数值附上去
        x = np.linspace(-5,5,101)
        (X,Y) = np.meshgrid(x,x)
        
        # To get reproducable values, I provide a seed value
        np.random.seed(987654321)   
        Z = param_intercept + param_x1*X+param_x2*Y+np.random.randn(np.shape(X)[0], np.shape(X)[1])
    
        # 绘图
        #Set the color
        myCmap = cm.GnBu_r
        # If you want a colormap from seaborn use:
        #from matplotlib.colors import ListedColormap
        #myCmap = ListedColormap(sns.color_palette("Blues", 20))
        
        # Plot the figure
        fig = plt.figure("multi")
        ax = fig.gca(projection='3d')
        surf = ax.plot_surface(X,Y,Z, cmap=myCmap, rstride=2, cstride=2, 
            linewidth=0, antialiased=False)
        ax.view_init(20,-120)
        ax.set_xlabel('X')
        ax.set_ylabel('Y')
        ax.set_zlabel('Z')
        ax.set_title("multilinear with adj_Rsquare %f"%(rSquared_adj))
        fig.colorbar(surf, shrink=0.6)
        
        outFile = '3dSurface.png'
        showData(outFile)
    
        
    #检查独立变量之间共线性关系
    def Two_dependentVariables_compare(x1,x2):
        # Convert the data into a Pandas DataFrame
        df = pd.DataFrame({'x':x1, 'y':x2})
        # Fit the model
        model = ols("y~x", df).fit()
        rSquared_adj=model.rsquared_adj
        print("rSquared_adj",rSquared_adj)
        if rSquared_adj>=0.8:
            print("high relation")
            return True
        elif 0.6<=rSquared_adj<0.8:
             print("middle relation")
             return False
        elif rSquared_adj<0.6:
             print("low relation")
             return False
    
    #比较所有参数,观察是否存在多重共线
    def All_dependentVariables_compare(list_x):  
        list_status=[]
        list_combine=list(combinations(list_x, 2))
        for i in list_combine:
            x1=i[0]
            x2=i[1]
            status=Two_dependentVariables_compare(x1,x2)
            list_status.append(status)
        if True in list_status:
            print("there is multicorrelation exist in dependent variables")
            return True
        else:
            return False
        
            
    #回归方程,支持哑铃变量
    def regressionModel(x1,x2,y):
        '''Multilinear regression model, calculating fit, P-values, confidence intervals etc.'''
        # Convert the data into a Pandas DataFrame
        df = pd.DataFrame({'x1':x1,'x2':x2,'y':y})
        
        # --- >>> START stats <<< ---
        # Fit the model
        model = ols("y~x1+x2", df).fit()
        # Print the summary
        print((model.summary()))
        return model._results.params  # should be array([-4.99754526,  3.00250049, -0.50514907])
    
        
    # Function to show the resutls of linear fit model
    def Draw_linear_line(X_parameters,Y_parameters,figname,x1Name,x2Name):
        #figname表示图表名字,用于生成独立图表fig1 = plt.figure('fig1'),fig2 = plt.figure('fig2')
        plt.figure(figname)
        #获取调整R方参数    
        df = pd.DataFrame({'x':X_parameters, 'y':Y_parameters})
        # Fit the model
        model = ols("y~x", df).fit()
        rSquared_adj=model.rsquared_adj 
        
        #处理X_parameter1数据
        X_parameter1 = []
        for i in X_parameters:
            X_parameter1.append([i])
        
        # Create linear regression object
        regr = linear_model.LinearRegression()
        regr.fit(X_parameter1, Y_parameters)
        plt.scatter(X_parameter1,Y_parameters,color='blue',label="real value")
        plt.plot(X_parameter1,regr.predict(X_parameter1),color='red',linewidth=4,label="prediction line")
        plt.title("linear regression %s and %s with adj_rSquare:%f"%(x1Name,x2Name,rSquared_adj))
        plt.xlabel('x', fontproperties=font_set)  
        plt.ylabel('y', fontproperties=font_set)  
        plt.xticks(())
        plt.yticks(())
        plt.legend()
        plt.show()      
        
    
    #绘制多元回归三维图
    Draw_multilinear()  
    #比较所有参数,观察是否存在多重共线
    All_dependentVariables_compare(list_x)              
    Draw_linear_line(x1,x2,"fig1","x1","x2")
    Draw_linear_line(x1,y,"fig4","x1","y")
    Draw_linear_line(x2,y,"fig5","x2","y")
    regressionModel(x1,x2,y)
    

      

     

     

     

    当自变量为x1,x2,x3三个时

     

    spss分析

     

     

    python脚本

    程序运行后,cond.no数值过高,提醒有多重共线可能

     

    可视化分析

    x1和y成线性关系

     

    x2和y成线性关系

    x3和y成非线性关系,所以x3变量应该剔除,和y没啥关系

     

     

    x1和x2成线性关系,这引起了多重共线性问题

     

    x1和x3成非线性关系

    x2和x3成非线性关系

     

     

     

    multiLinearIsBetterThanSimpleLinearRegression1.py

    从excel调取数据,适用于数据量百万级分析

    # -*- coding: utf-8 -*-
    """
    Created on Fri Feb 23 16:54:54 2018
    
    @author: Toby QQ:231469242
    多元回归的多重共线性检测,数据可视化
    """
    
    # Import standard packages
    import matplotlib.pyplot as plt
    import pandas as pd
    from sklearn import linear_model
    from matplotlib.font_manager import FontProperties 
    font_set = FontProperties(fname=r"c:\windows\fonts\simsun.ttc", size=15)  
    # ... and for the statistic
    from statsmodels.formula.api import ols
    #生成组合
    from itertools import combinations
    
    
    df=pd.read_excel("旅行公里-投递数量-行驶时间.xlsx")  
    array_values=df.values
    x1=[i[0] for i in array_values]
    x2=[i[1] for i in array_values]
    x3=[i[2] for i in array_values]
    y=[i[3] for i in array_values]
    sample=len(x1)
    #自变量列表
    list_x=[x1,x2]
    
    
    #检查独立变量之间共线性关系,如果两个变量有共线性返回TRUE,反之返回FALSE
    def Two_dependentVariables_compare(x1,x2):
        # Convert the data into a Pandas DataFrame
        df = pd.DataFrame({'x':x1, 'y':x2})
        # Fit the model
        model = ols("y~x", df).fit()
        rSquared_adj=model.rsquared_adj
        print("rSquared_adj",rSquared_adj)
        if rSquared_adj>=0.8:
            print("high relation")
            return True
        elif 0.6<=rSquared_adj<0.8:
             print("middle relation")
             return False
        elif rSquared_adj<0.6:
             print("low relation")
             return False
    
    #比较所有参数,观察是否存在多重共线
    def All_dependentVariables_compare(list_x):  
        list_status=[]
        #对变量列表的多个自变量进行组合,2个为一组
        list_combine=list(combinations(list_x, 2))
        for i in list_combine:
            x1=i[0]
            x2=i[1]
            status=Two_dependentVariables_compare(x1,x2)
            list_status.append(status)
        if True in list_status:
            print("there is multicorrelation exist in dependent variables")
            return True
        else:
            return False
        
            
    #回归方程,支持哑铃变量,这个函数是有三个自变量,自变量个数可以自己改
    def regressionModel(x1,x2,x3,y):
        '''Multilinear regression model, calculating fit, P-values, confidence intervals etc.'''
         
        # Convert the data into a Pandas DataFrame
        df = pd.DataFrame({'x1':x1, 'x2':x2,'x3':x3,'y':y})
         
        # --- >>> START stats <<< ---
        # Fit the model
        model = ols("y~x1+x2+x3", df).fit()
        # Print the summary
        print((model.summary()))
        # --- >>> STOP stats <<< ---
        return model._results.params  # should be array([-4.99754526,  3.00250049, -0.50514907])
    
        
    # Function to show the resutls of linear fit model
    def Draw_linear_line(X_parameters,Y_parameters,figname,x1Name,x2Name):
        #figname表示图表名字,用于生成独立图表fig1 = plt.figure('fig1'),fig2 = plt.figure('fig2')
        plt.figure(figname)
        #获取调整R方参数    
        df = pd.DataFrame({'x':X_parameters, 'y':Y_parameters})
        # Fit the model
        model = ols("y~x", df).fit()
        rSquared_adj=model.rsquared_adj 
        
        #处理X_parameter1数据
        X_parameter1 = []
        for i in X_parameters:
            X_parameter1.append([i])
        
        # Create linear regression object
        regr = linear_model.LinearRegression()
        regr.fit(X_parameter1, Y_parameters)
        plt.scatter(X_parameter1,Y_parameters,color='blue',label="real value")
        plt.plot(X_parameter1,regr.predict(X_parameter1),color='red',linewidth=4,label="prediction line")
        plt.title("linear regression %s and %s with adj_rSquare:%f"%(x1Name,x2Name,rSquared_adj))
        plt.xlabel('x', fontproperties=font_set)  
        plt.ylabel('y', fontproperties=font_set)  
        plt.xticks(())
        plt.yticks(())
        plt.legend()
        plt.show()      
        
    
    
    #比较所有参数,观察是否存在多重共线
    All_dependentVariables_compare(list_x)  
    #两个变量散点图可视化            
    Draw_linear_line(x1,x2,"fig1","x1","x2")
    Draw_linear_line(x1,x3,"fig2","x1","x3")
    Draw_linear_line(x2,x3,"fig3","x2","x3")
    Draw_linear_line(x1,y,"fig4","x1","y")
    Draw_linear_line(x2,y,"fig5","x2","y")
    Draw_linear_line(x3,y,"fig6","x3","y")
    #回归分析
    regressionModel(x1,x2,x3,y)
    

     

     

    多元回归共线性详细解释

    多元回归是一元回归升级版,含有多个变量

     

    overffiting:过多独立变量不一定会让模型更好,事实上可能更糟

    multicollinearity:变量之间互相关联,造成多重共线

     

    理想模型是所有独立变量和依赖变量都相关,但独立变量之间不能相互关联,独立变量必须独立

     

    多元回归有很多事前工作做,包括发行overffitng和multilinear

     

     

    独立变量之间有潜在的多重共线可能

     

    如果有四个变量,就有十种关系考虑

     

    总结

     

     

     

     

     

    x1和x2有多重共线性

     

     

     

     

    python风控评分卡建模和风控常识(博客主亲自录制视频教程)

     

     

    展开全文
  • 当选择好因变量和自变量之后,选择右上角的【Statistics...】,然后在弹出的新对话框里选定【共线性诊断】   红色框所标出的条件指数高达23.973(>10),可见共线性是确凿无疑的了!    python代码 ...

     

     

    欢迎关注博主主页,学习python视频资源,还有大量免费python经典文章

    sklearn实战-乳腺癌细胞数据挖掘

     https://study.163.com/course/introduction.htm?courseId=1005269003&utm_campaign=commission&utm_source=cp-400000000398149&utm_medium=share

     

     

    在一个回归方程中,假如两个或两个以上解释变量彼此高度相关,那么回归分析的结果将有可能无法分清每一个变量与因变量之间的真实关系。例如我们要知道吸毒对SAT考试分数的影响,我们会询问对象是否吸收过可卡因或海洛因,并用软件计算它们之间的系数。

    虽然求出了海洛因和可卡因额回归系数,但两者相关性发生重叠,使R平方变大,依然无法揭开真实的情况。
    因为吸食海洛因的人常常吸食可卡因,单独吸食一种毒品人很少。

    当两个变量高度相关时,我们通常在回归方程中只采用其中一个,或创造一个新的综合变量,如吸食可卡因或海洛因。

    又例如当研究员想要控制学生的整体经济背景时,他们会将父母双方的受教育程度都纳入方程式中。

    如果单独把父亲或母亲的教育程度分离考虑,会引起混淆,分析变得模糊,因为丈夫和妻子的教育程度有很大相关性。

     
    多元共线性带来问题:
    (1)自变量不显著
    (2)参数估计值的正负号产生影响
     

    共线性统计量:
    (1)容忍度tolerance
             tolerance<0.1 表示存在严重多重共线
    (2)方差扩大因子 variance inflation factor (VIF)
             VIF>10表示存在严重多重共线性


     http://blog.csdn.net/baimafujinji/article/details/49799409

    回归分析是数据挖掘中最基本的方法,其中基于普通最小二乘法的多元线性回归要求模型中的特征数据不能存在有多重共线性,否则模型的可信度将大打折扣。但是就是技术而言,如何确定模型中的各各特征之间是否有多重共线性呢?

    先来看一组数据

     

    然后单击菜单栏上的【分析】->【回归】->【线性...】,则进入如下图所示的线性回归对话框。当选择好因变量和自变量之后,选择右上角的【Statistics...】,然后在弹出的新对话框里选定【共线性诊断】

     

    红色框所标出的条件指数高达23.973(>10),可见共线性是确凿无疑的了!

     

     python代码

    # -*- coding: utf-8 -*-
    """
    Created on Thu Feb 22 17:12:03 2018
    
    @author: Administrator
    """
    import pandas as pd
    from statsmodels.formula.api import ols
    
    df=pd.read_excel("工农业产值与货运量-存在共线性.xlsx")  
    
    #多元回归函数
    def MulitiLinear_regressionModel(df):
        '''Multilinear regression model, calculating fit, P-values, confidence intervals etc.'''
        # --- >>> START stats <<< ---
        # Fit the model
        model = ols("y ~ x1 + x2", df).fit()
        # Print the summary
        print((model.summary()))
        # --- >>> STOP stats <<< ---
        return model._results.params  # should be array([-4.99754526,  3.00250049, -0.50514907])
    
    MulitiLinear_regressionModel(df)
    

     

     

    condition num=192

    R **2  为0.992,和spss的结果一致

     

    x1和x2, x1和y,x2和y的相关系数对比

    # -*- coding: utf-8 -*-
    """
    Created on Thu Feb 22 11:35:50 2018
    
    @author: Administrator
    """
    import pandas as pd
    import scipy.stats as stats
    
    
    df=pd.read_excel("工农业产值与货运量-存在共线性.xlsx")  
    array_values=df.values
    x1=[i[0] for i in array_values]
    x2=[i[1] for i in array_values]
    y=[i[2] for i in array_values]
    sample=len(x1)
    
    
    print("use Pearson,parametric tests x1 and x2")
    r,p=stats.pearsonr(x1,x2)
    print("pearson r**2:",r**2)
    print("pearson p:",p)
    if sample<30:
        print("when sample <30,pearson has no mean")
    print("-"*100)
        
    print("use Pearson,parametric tests x1 and y")
    r,p=stats.pearsonr(x1,y)
    print("pearson r**2:",r**2)
    print("pearson p:",p)
    if sample<30:
        print("when sample <30,pearson has no mean")    
    print("-"*100)
    
        
    print("use Pearson,parametric tests x2 and y")
    r,p=stats.pearsonr(x2,y)
    print("pearson r**2:",r**2)
    print("pearson p:",p)
    if sample<30:
        print("when sample <30,pearson has no mean")       
    print("-"*100)    
      
    

    程序结果:

    x1和x2的R平方0.83,相关性强  -------暗示变量多重共线性问题

    x1和y的R平方0.98,相关性强

    x2和y的R平方0.897,相关性强

      

     

     

     

     

     

     

     

     

     

     

    例子2

    我们能否用这组数据来建立多元线性回归模型呢?同样再来绘制散点图如下,自变量之间似乎还是有点共线性,但是又不像上面例子中的那么明显,现在该怎么办?

    所以我们还是建议采用一种更加能够便于量化的方法来描述问题的严重性,而不是仅仅通过肉眼观察来做感性的决定。下面我演示在SPSS 22中检验多重共线性的方法。首先导入数据,如下所示

     

    然后单击菜单栏上的【分析】->【回归】->【线性...】,则进入如下图所示的线性回归对话框。当选择好因变量和自变量之后,选择右上角的【Statistics...】,然后在弹出的新对话框里选定【共线性诊断】

    回到上图左边的对话框之后,选择确定,SPSS给出了线性回归分析的结果。我们来看其中共线性诊断的部分,如下所示,如果有条件指数>10,则表明有共线性。现在最大的是9.659,仍然处于可以接受的范围。

    Python脚本

    # -*- coding: utf-8 -*-
    """
    Created on Thu Feb 22 17:12:03 2018
    
    @author: Administrator
    """
    import pandas as pd
    from statsmodels.formula.api import ols
    
    df=pd.read_excel("土壤沉淀物吸收能力采样数据-不存在共线性.xlsx")  
    
    #多元回归函数
    def MulitiLinear_regressionModel(df):
        '''Multilinear regression model, calculating fit, P-values, confidence intervals etc.'''
        # --- >>> START stats <<< ---
        # Fit the model
        model = ols("y ~ x1 + x2", df).fit()
        # Print the summary
        print((model.summary()))
        # --- >>> STOP stats <<< ---
        return model._results.params  # should be array([-4.99754526,  3.00250049, -0.50514907])
    
    MulitiLinear_regressionModel(df)

     

      

    condition num=566

    R平方=0.948,和spss一样准确

     

    x1和x2, x1和y,x2和y的相关系数对比

    # -*- coding: utf-8 -*-
    """
    Created on Thu Feb 22 11:35:50 2018
    
    @author: Administrator
    """
    import pandas as pd
    import scipy.stats as stats
    
    
    df=pd.read_excel("土壤沉淀物吸收能力采样数据-不存在共线性.xlsx")  
    array_values=df.values
    x1=[i[0] for i in array_values]
    x2=[i[1] for i in array_values]
    y=[i[2] for i in array_values]
    sample=len(x1)
    
    
    print("use Pearson,parametric tests x1 and x2")
    r,p=stats.pearsonr(x1,x2)
    print("pearson r**2:",r**2)
    print("pearson p:",p)
    if sample<30:
        print("when sample <30,pearson has no mean")
    print("-"*100)
        
    print("use Pearson,parametric tests x1 and y")
    r,p=stats.pearsonr(x1,y)
    print("pearson r**2:",r**2)
    print("pearson p:",p)
    if sample<30:
        print("when sample <30,pearson has no mean")    
    print("-"*100)
    
        
    print("use Pearson,parametric tests x2 and y")
    r,p=stats.pearsonr(x2,y)
    print("pearson r**2:",r**2)
    print("pearson p:",p)
    if sample<30:
        print("when sample <30,pearson has no mean")       
    print("-"*100)    
    

    程序结果:

    x1和x2的R平方0.63,相关性弱

    x1和y的R平方0.825,相关性强

    x2和y的R平方0.874,相关性强

     

     

     

    案例

    # -*- coding: utf-8 -*-
    """
    Created on Thu Feb 22 11:35:50 2018
    
    @author: Administrator
    """
    import pandas as pd
    import scipy.stats as stats
    
    
    df=pd.read_excel("两元回归测试.xlsx")  
    array_values=df.values
    x1=[i[0] for i in array_values]
    x2=[i[1] for i in array_values]
    y=[i[2] for i in array_values]
    sample=len(x1)
    
    if sample<500:
        print("the sample size are:",sample)
        print("The p-values are not entirely reliable but are probably reasonable for datasets larger than 500 or so.")
    print("use Pearson,parametric tests x1 and x2")
    r,p=stats.pearsonr(x1,x2)
    print("pearson r**2:",r**2)
    print("pearson p:",p)
    if sample<30:
        print("when sample <30,pearson has no mean")
    print("-"*100)
        
    print("use Pearson,parametric tests x1 and y")
    r,p=stats.pearsonr(x1,y)
    print("pearson r**2:",r**2)
    print("pearson p:",p)
    if sample<30:
        print("when sample <30,pearson has no mean")    
    print("-"*100)
    
        
    print("use Pearson,parametric tests x2 and y")
    r,p=stats.pearsonr(x2,y)
    print("pearson r**2:",r**2)
    print("pearson p:",p)
    if sample<30:
        print("when sample <30,pearson has no mean")       
    print("-"*100)    
        
       
        
    

      

     

     

     

    展开全文
  • UA MATH571A 多元线性回归III 模型诊断Add-one Plot异常值监测Studentized Detected Residual投影矩阵影响值样本数据影响力的度量DFFITSCook' s DistanceDFBETAS方差膨胀因子(Variance Inflation Factor,VIF)异...

    Add-one Plot

    Add-one Plot与序贯方差分析类似,可以考察某个变量是否应该加入到多元回归模型中。其原理是如果这个变量与残差有特定的关系,那么残差中还有可以被这个变量解释的信息。假设已有模型为
    Yi=β0+i=1p1βiXi+ϵi Y_i = \beta_0 + \sum_{i=1}^{p-1} \beta_i X_i + \epsilon_i
    要考虑是否加入的变量为XpX_p,做残差e(YiX1,...,Xp1)=YiY^ie(Y_i|X_1, ..., X_{p-1}) = Y_i-\hat{Y}_i关于XpX_p的图像,若图像表现出明显的结构性趋势,那么XpX_p应该被加入到模型中。这类图叫add-one plot。

    异常值监测

    有时样本中的某些数据会明显偏离拟合方程,这些数据叫做样本的异常值(outlying)。异常值偏离拟合方程有三种可能的方式,解释变量值异常(X-outlying),被解释变量值异常(Y-outlying或者residual outlying),或者解释变量与被解释变量均异常。以下给出了侦测样本数据异常值的方法。

    Studentized Detected Residual

    根据之前博文的分析,残差可以写成
    e=(INH)Y e = (I_N-H)Y
    在多元回归的假设下,残差相当于某个正态总体的一组样本,基于区间估计的思想,残差应该位于置信区间内才是合理的,在置信区间外的残差对应的样本数据应该被视为被解释变量异常值。
    Var(e)=(INH)Var(Y)(INH)T=(INH)σ2 Var(e)=(I_N-H)Var(Y)(I_N-H)^T = (I_N-H)\sigma^2
    MSEMSE作为方差的估计值,可以得到
    se2(ei)=(1hii)MSE se^2(e_i) = (1-h_{ii})MSE
    由此可以将残差studentized(学生化,但我觉得这个太难听了,就直接用英语吧)
    ri=ei(1hii)MSEt(Np) r_i = \frac{e_i}{\sqrt{(1-h_{ii})MSE}} \sim t(N-p)
    这种残差叫内学生化残差(internally studentized residual)。上一篇博文里提到PRESS的时候用LOO的思路计算的残差叫侦测残差(detected residual)
    di=YiY^i(i)=ei1hii d_i = Y_i - \hat{Y}_{i(i)} = \frac{e_i}{1-h_{ii}}
    第二个等式给出的等价关系可以避免在计算侦测残差时再跑一次回归。
    se2(di)=MSE(i)(1+Xi(X(i)TX(i))1XiT)=MSE(i)1hii se^2(d_i) = MSE_{(i)}(1+X_i(X_{(i)}^TX_{(i)})^{-1}X_i^T)=\frac{MSE_{(i)}}{1-h_{ii}}
    利用以上两个等式可以构造t统计量
    ti=dise(di)=eiMSE(i)(1hii) t_i = \frac{d_i}{se(d_i)}=\frac{e_i}{\sqrt{MSE_{(i)}(1-h_{ii})}}
    这种残差叫做外学生化残差(externally studentized residual),与内学生化残差相比,外学生化残差计算时用的是LOO的思想,考察的是被留下的第ii个样本数据能不能被模型很好的预测出来。内学生化残差考察的则是第ii个样本数据能不能被模型较好地拟合。根据SSE的分布特性可以得出如下等价关系
    MSEi(Np)=MSE(i)(Np1)+ei21hiiχ2(Np) MSE_i(N-p)=MSE_{(i)}(N-p-1)+\frac{e_i^2}{1-h_{ii}} \sim \chi^2(N-p)
    由此可以将外学生化残差简化为
    ti=ei[(Np1)SSE(1hii)ei2]1/2t(Np1) t_i=e_i[\frac{(N-p-1)}{SSE(1-h_{ii}) - e_i^2}]^{1/2} \sim t(N-p-1)
    虽然表达式看上去更复杂了,但实际上用这个表达式计算可以避开跑额外的回归。基于学生化外残差可以检测异常值,假设置信水平为1α1-\alpha,检测异常值时要同时对NN个数据点做推断,需要做Bonferroni调整,因此学生化外残差的置信区间为
    t(α/2N,Np1)tit(1α/2N,Np1) t(\alpha/2N,N-p-1) \le t_i \le t(1-\alpha/2N,N-p-1)

    投影矩阵杠杆值

    投影矩阵杠杆值(Hat Matrix Leverage Value)是侦测解释变量异常值的一种方法。投影矩阵由解释变量计算得到
    H=X(XTX)1XT H = X(X^TX)^{-1}X^T
    并且具有如下性质
    i=1Nhii=tr(H)=p,hii[0,1] \sum_{i=1}^N h_{ii} = tr(H)=p, h_{ii} \in [0,1]
    根据线性回归的几何含义
    Y^=HY \hat{Y} = HY
    拟合值Y^\hat{Y}本质上是样本数据YY的线性组合,hiih_{ii}的含义是在拟合值Y^i\hat{Y}_i的线性构成中,样本数据YiY_i的权重。因此hiih_{ii}越大说明样本数据YiY_i对于拟合值Y^i\hat{Y}_i的决定就越重要。而hiih_{ii}完全由解释变量决定,因此它能代表解释变量样本数据对于拟合值的影响。根据前面的推导,hiih_{ii}越大残差会越小,因此hiih_{ii}越大说明拟合值和真实值就越靠近。这个值被称为是投影矩阵杠杆值。
    那么怎么用这个值来识别解释变量异常值呢?根据上面提到那条性质,
    hˉ=1Ni=1Nhii=pN \bar{h} = \frac{1}{N} \sum_{i=1}^N h_{ii} = \frac{p}{N}
    有一条经验法则:如果hii>2hˉ=2pNh_{ii}>2\bar{h}=\frac{2p}{N},那么第ii个样本数据应该被视为解释变量异常值。这是因为如果样本点和拟合方程都靠得比较近,那么大家的杠杆值就会比较均匀,但如果有样本点偏离拟合方程比较远,就能凭一己之力把拟合直线拖向他,导致它的影响力就很大,所以当hiih_{ii}比较大的时候,就可以认定对应样本点为解释变量异常值。当模型维数较高时这个方法并不适用,比如样本数量为300,模型参数有200个,那么2pN=4/3>1\frac{2p}{N}=4/3>1,这样就永远不会有异常值了。

    样本数据影响力的度量

    上面已经提到了样本数据对拟合值影响力的概念,现在给出样本数据对拟合值的影响力的度量方式。知道了这个影响力有多大以后可以帮助我们更好地判断判断样本数据的质量。

    DFFITS

    ii个样本数据对第ii个拟合值的影响力度量为DFFITS
    DFFITSi=diMSE(i)hii DFFITS_i = \frac{d_i}{\sqrt{{MSE_{(i)}h_{ii}}}}
    用之前给出的did_iMSE(i)MSE_{(i)}的公式将上式化简
    DFFITSi=ei[(Np1)SSE(1hii)ei2]1/2(hii1hii)2=ti(hii1hii)2 DFFITS_i = e_i [\frac{(N-p-1)}{SSE(1-h_{ii}) - e_i^2}]^{1/2} (\frac{h_{ii}}{1-h_{ii}})^2 = t_i (\frac{h_{ii}}{1-h_{ii}})^2
    其中tit_i是外学生化残差,衡量样本数据中被解释变量的影响,(hii1hii)2(\frac{h_{ii}}{1-h_{ii}})^2与杠杆值成正比,衡量样本数据中解释变量的影响。

    Cook’ s Distance

    ii个样本数据对所有拟合值的影响力度量为Cook距离
    Di=j=1N(YjYj(i))2pMSE D_i = \frac{\sum_{j=1}^N (Y_j - Y_{j(i)})^2}{pMSE}
    不加证明地给出其等价表达式
    Di=ei2pMSE[hii(1hii)2] D_i = \frac{e_i^2}{pMSE} [\frac{h_{ii}}{(1-h_{ii})^2}]
    使用这个表达式可以避免跑额外的回归。

    DFBETAS

    ii个样本数据对回归系数βk\beta_k的影响力度量是DFBETAS
    DFBETASk(i)=β^kβ^k(i)MSE(i)ckk DFBETAS_{k(i)} = \frac{\hat{\beta}_k - \hat{\beta}_{k(i)}}{\sqrt{MSE_{(i)}c_{kk}}}
    之前推导过βk\beta_k的最小二乘估计值的方差是σ2(XTX)1\sigma^2 (X^TX)^{-1}ckkc_{kk}(XTX)1(X^TX)^{-1}的对角元。
    se2(β^k)=σ2ckk se^2(\hat{\beta}_k) = \sigma^2c_{kk}

    方差膨胀因子(Variance Inflation Factor,VIF)

    方差膨胀因子是判断解释变量是否存在多重共线性(multicollinearity)的一个指标。多重共线性指的是某一个或一些解释变量能被其他解释变量线性表示。存在多重共线性时,XTXX^TX接近奇异值,计算出来的回归系数截断误差较大结果会不准确。之前讨论过回归模型标准化,基于标准化后的模型分析
    se2(β^k)=σ2rXX1 se^2(\hat{\beta}_k^*)=\sigma^{*2} r_{XX}^{-1}
    其中rXXr_{XX}是解释变量的相关性系数矩阵。定义方差膨胀因子VIFkVIF_k是相关性系数矩阵第kk个对角元。根据相关性系数与可决系数之间的关系
    VIFk=11Rk2 VIF_k = \frac{1}{1-R_k^2}
    其中Rk2R_k^2是用除XkX_k以外的其他解释变量对XkX_k回归的可决系数。利用方差膨胀因子判断多重共线性的经验法则是
    maxkVIFk>10  or  mean(VIF)>1 \max_{k} VIF_k>10\ \ or\ \ mean(VIF)>1
    以上两个法则均表示多重共线性会严重影响最小二乘估计。在第二个准则中,方差膨胀因子的平均值越大表示多重共线性越严重。由于
    E[k=1p1(β^kβk)2]=σ2k=1p1VIFk E[\sum_{k=1}^{p-1} (\hat{\beta}_k-\beta_k)^2] = \sigma^{*2} \sum_{k=1}^{p-1} VIF_k
    当不存在多重共线性时,VIFk=0VIF_k=0
    E[k=1p1(β^kβk)2]=σ2(p1) E[\sum_{k=1}^{p-1} (\hat{\beta}_k-\beta_k)^2] = \sigma^{*2} (p-1)
    以上两式相除,
    k=1p1VIFkp1=mean(VIF)=1 \frac{\sum_{k=1}^{p-1} VIF_k}{p-1} = mean(VIF) = 1
    事实上,mean(VIF)1mean(VIF) \ge 1,取等时表示不存在多重共线性,大于1则表示存在多重共线性。

    异方差——WLS(Weighted Least Square)

    如果检验发现存在异方差性,最小二乘法就不再适用了。多元回归模型中同方差性的假设被放松为允许异方差性存在。
    Y=Xβ+ϵ, ϵN(0,Λ)Λ=diag(σ12,σ22,...,σN2) Y=X\beta + \epsilon,\ \epsilon \sim N(0,\Lambda) \\ \Lambda = diag(\sigma_1^2,\sigma_2^2,...,\sigma_N^2)
    Λ\Lambda已知时,可以用最大似然或者最小二乘法估计系数,两种方法会得出一样的估计量,这种估计量叫加权最小二乘估计(weighted least square estimate)。最大似然法估计只需做最大化
    maxβL=(2π)NΛN/2exp{12[(YXβ)TΛ1(YXβ)]} \max_{\beta} L = (2\pi)^{-N}|\Lambda|^{-N/2} \exp{\{-\frac{1}{2}[(Y-X\beta)^T\Lambda^{-1}(Y-X\beta)]\}}
    似然函数中影响似然值的只有指数函数的输入,因此这个最大化等价于最小化
    minβQ=(YXβ)TΛ1(YXβ) \min_{\beta} Q = (Y-X\beta)^T\Lambda^{-1}(Y-X\beta)
    定义权重
    wi=1σi2 w_i = \frac{1}{\sigma_i^2}
    (YXβ)TΛ1(YXβ)=i=1Nwi(Yiβ0β1X1i...βp1Xp1,i)2 (Y-X\beta)^T\Lambda^{-1}(Y-X\beta) = \sum_{i=1}^{N} w_i(Y_i - \beta_0 - \beta_1X_{1i} - ... - \beta_{p-1}X_{p-1,i})^2
    这就好像给普通最小二乘中每一个点到直线的距离赋予了权重,所以估计量才会叫加权最小二乘估计
    β^=(XTΛ1X)1(XTΛ1Y) \hat{\beta}=(X^T\Lambda^{-1}X)^{-1}(X^T\Lambda^{-1}Y)
    Λ\Lambda未知时,需要先对方差进行估计。一个比较初等的估计方法是画出普通最小二乘回归的残差图,看残差与哪些变量有关,用这些变量回归残差得到拟合值,用拟合值作为Λ\Lambda的估计值。

    多重共线性——岭回归(Ridge Regression)

    当出现多重共线性时,系数的最小二乘估计值
    β^=(XTX)1XTY \hat{\beta} = (X^TX)^{-1}X^TY
    其中XTXX^TX接近奇异值,由于数值误差,β^\hat{\beta}有被高估的可能,并且β^\hat{\beta}的方差σ2(XTX)1\sigma^2(X^TX)^{-1}也会比较大。因此在估计系数时需要限制系数的大小,可以在目标函数中加入系数的L2L_2范数作为惩罚项(penalty)
    minβQ=(YXβ)2+cβ22 \min_{\beta} Q = (Y-X\beta)^2 + c||\beta||_2^2
    其中cc是惩罚项的参数。
    Qβ=2XT(YXβ)+2cIpβ=0β^R=(XTX+cIp)1(XTY) \frac{\partial Q}{\partial \beta} = -2X^T(Y-X\beta) + 2cI_p \beta = 0 \\ \hat{\beta}_R = (X^TX+cI_p)^{-1}(X^TY)
    上式是系数岭回归估计量,这个估计量是系数的有偏估计。根据偏差与方差的关系
    MSE=bias2+VarE[(β^Rβ)2]=[E(β^R)β]2+E[(β^RE(β^R))2] MSE=bias^2+Var \\ E[(\hat{\beta}_R-\beta)^2]=[E(\hat{\beta}_R)-\beta]^2+E[(\hat{\beta}_R-E(\hat{\beta}_R))^2]
    岭回归估计量的作用是在牺牲无偏性以降低方差,惩罚项的系数cc衡量的就是偏差的大小,cc越大,偏差越大。常用的选择cc的方法有两种,ridge trace和方差膨胀因子。通常cc在0和1之间取值,当随着cc增加,系数变化比较缓慢后,说明这时的cc就可以用了,这是ridge trace的思想。当随着cc增加,VIF下降比较缓慢后,这时的cc也符合要求了。一般可以综合这两种方法进行选择。

    稳健回归(Robust Regression)

    当有部分样本数据对拟合值能造成较大影响时,可以用稳健回归方法来平衡这些数据对回归结果造成的影响。比较常用的稳健回归方法有最小绝对离差回归(Least Absolute Deviation Regression,LAD),最小中位平方回归(Least Median of Square Regression,LMS),迭代再加权最小二乘回归(Iterative Reweighted Least Square,IRLS)等。

    LAD回归

    最小绝对离差回归的目标是
    minβQ=YXβL1=i=1NYiβ0k=1p1βkXk,i \min_{\beta} Q = ||Y-X\beta||_{L_1}=\sum_{i=1}^{N} |Y_i-\beta_0 - \sum_{k=1}^{p-1}\beta_k X_{k,i}|
    因为异常值在L1L_1范数下对QQ的影响小于在L2L_2范数下对QQ的影响,所以绝对离差回归对异常值不如最小二乘回归敏感,因此当存在对拟合值影响较高的样本数据时可以采用最小绝对离差回归。LAD一般用线性规划估计系数。

    LMS回归

    最小中位平方回归的目标是
    minβQ=median[(Yiβ0k=1p1βkXk,i)2] \min_{\beta} Q = median[(Y_i-\beta_0 - \sum_{k=1}^{p-1}\beta_k X_{k,i})^2]
    即用残差平方的中位数替换残差平方和。

    IRLS回归

    IRLS回归总结为以下步骤:

    1. 选择权重函数并计算得到每个样本的初始权重
    2. 基于初始权重做WLS并计算残差
    3. 用残差计算权重再做WLS

    重复第二、三步直到拟合值与残差变化相对较小时,认定结果收敛。常用的权重函数有两种,Huber函数和Bisquare函数。Huber函数
    w=I(u1.345)+1.345uI(u>1.345) w=I(|u| \le 1.345) + \frac{1.345}{|u|} I(|u|>1.345)
    Bisquare函数
    w=[1(u4.685)2]2I(u4.685) w=[1-(\frac{u}{4.685})^2]^2I(|u| \le 4.685)
    其中uu是比例残差(Scaled Residual),MAD是中位绝对离差(median absolute deviation)
    ui=eiMADMAD=10.6745median{eimedian(ei)} u_i = \frac{e_i}{MAD} \\ MAD = \frac{1}{0.6745}median\{|e_i - median(e_i)|\}

    非参数回归

    非参数回归的作用在于探索被解释变量和解释变量之间的关系。这里讨论局部加权回归(Local Weighted Regression)和回归树(Regression Tree)。

    LOWESS

    LOWESS方法全称是Local Weighted Scatterplot Smoothing,但现在一般叫局部加权回归。基于点XhX_h邻近点的局部加权回归分为三个步骤:1)计算距离;2)计算权重;3)局部拟合。对于样本点XiX_i,它与XhX_h的距离一般用欧氏距离表示
    di=XiXh2 d_i = ||X_i-X_h||_2
    样本点XhX_h的邻域被定义为离XhX_h最近的NqNq个样本点,qq是一个需要自行定义的比例。假设d(i)d_{(i)}did_i的次序统计量,则dq=d(Nq)d_q = d_{(Nq)}。常用的权重函数是Tricube函数
    wi=[1(didq)3]3I(di<dq) w_i = [1-(\frac{d_i}{d_q})^3]^3 I(d_i < d_q)
    对样本点XhX_h的领域内的点,计算其权重,并基于这个权重在领域内用一阶模型或二阶模型做WLS。一阶模型包括所有可能的解释变量,二阶变量包括所有可能的解释变量的二次项与两两的交互项。遗憾的是局部回归方法并不能给出一个全局的回归方程,只能在局部对样本数据进行拟合。

    展开全文
  • 文章目录变量的多重共线性诊断特征根分析法条件数法方差扩大因子法直观判定法举个例子(R语言) 变量的多重共线性诊断 多元线性回归模型的一个基本假设,就是要求自变量矩阵X列满秩,即秩rank(X)=p,也就是要求X的列...

    鄙人学习笔记
    参考文献:《计量经济学模型及R语言应用》-王斌会



    变量的多重共线性诊断

    多元线性回归模型的一个基本假设,就是要求自变量矩阵X列满秩,即秩rank(X)=p,也就是要求X的列向量之间线性无关。如果X的列不满秩,则(X’X)-1将不存在,于是基于最小二乘回归系数估计,b = (X’X)-1X’y将不存在,所以很难得出稳定的结果。

    考虑线性回归模型:

    这里假定自变量矩阵X已中心标准化,且rank(X)=p, 这时X’X/(n-1)为相关矩阵R。
    下面给出几个常用的复共线性诊断方法。

    特征根分析法

    条件数法

    方差扩大因子法

    一般标准:
    ①当0<VIF≤5时,没有复共线性;
    ②当5<VIF≤10时,有较弱的复共线性;
    ③当10<VIF≤100时,有中等或较强的复共线性;
    ④当VIF>100时,有严重的复共线性。

    由于VIF=1/TOL (TOL称为容忍度),所以也可以用TOL来诊断复共线性。

    直观判定法

    举个例子(R语言)

    数据:

    输入:

    Xdf <- testdf[, -1]
    Xscale <- scale(Xdf, T, T)
    #scale(data, center=T,scale=T)
    #1.center和scale默认为TRUE 
    #2.center为TRUE 表示数据中心化 
    #3.scale为TRUE 表示数据标准化
    Rtest <- (t(as.matrix(Xscale)) %*% as.matrix(Xscale))/14
    # * 是表示两个矩阵中对应的元素的乘积
    # %*% 表示通常意义下的矩阵乘积,要求第一个矩阵的列数与第二个矩阵行数相等。
    #相关矩阵 =  t(scale(X))*scale(X)/(n-1)
    #备注:X为解释变量矩阵,维度是n*p;n为样本量
    (Rtest)
    (R01 <- cor(Xscale))
    #查看我们自制的相关矩阵和R给出的相关矩阵是否一样
    
    #1.特征分析法
    (lamda = eigen(Rtest)$value)
    #本次实验的相关系数矩阵最小特征根为0.1626082 >0.1 则不存在复共线性
    #2.条件数法
    (CN = max(lamda)/min(lamda))
    #本次实验中CN = 11.53401,0<= CN <= 30, 则不存在多重共线性
    #3.方差扩大因子法(VIF)
    R2 <- summary(lm(x2 ~ x1 + x3, data = testdf))$r.sq
    (VIF1 <- 1/(1 - R2))
    #本次实验中VIF = 3.383924,0<= VIF <-5,同样没有复共线性
    
    

    输出:

    展开全文
  • 以闪络电压为因变量,以所加电压、加压时间、泄露电流为自变量,分别建立3种污闪的多元线性回归模型和广义线性回归模型。对比各个模型,提取出7个故障特征,其中5个可用于判断故障类型。据此设计的判别方法是用所测...
  • 选择共线性诊断用于判断多个变量之间是否相互关联以及关联的程度德宾-沃森(Durbin-Watson)DW用来检验回归分析中的残差项是否存在自相关(序列相关)现象“DEPENDNT”:因变量“ZPRED”:标准化预测值“ZRESID”:标准...
  • SPSS 多元线性回归结果重要参数解读

    万次阅读 多人点赞 2019-03-27 15:26:33
    选择共线性诊断用于判断多个变量之间是否相互关联以及关联的程度 德宾-沃森(Durbin-Watson)DW用来检验回归分析中的残差项是否存在自相关(序列相关)现象 “DEPENDNT”:因变量“ZPRED”:标准化预测值...
  • 针对徐州雾霾情况,通过搜集徐州市2017年365天的日空气质量指数AQI数据,其9个...通过拟合优度检验、显著性检验、多重共线性诊断和异常值残差诊断后,绘制出拟合对比图,验证了所得四元线性回归模型的准确性和实用性。
  • 共线性诊断多元回归分析中的VIF<3或者5 新增变量对解释因变量的贡献程度看R方的变化,建议使用分层回归:在回归模型选择变量的时候点击下一个即可。 二次项回归 分类变量回归(自变量为分类变量) ...
  • 回归分析是数据挖掘中最基本的方法,其中基于普通最小二乘法的多元线性回归要求模型中的特征数据不能存在有多重共线性,否则模型的可信度将大打折扣。但是就是技术而言,如何确定模型中的各各特征之间是否有多重...
  • (2)多重共线性检验 (3)自相关检验 (4)异常值检测  回归分析是研究两个变量之间的不确定性关系,考察变量之间的数量变化规律,通过回归方程的形式描述和反映这种关系,帮助人们挖掘出变量之间隐藏的规律。 ...
  • 案例3 线性回归之汽车贷款(代码)7 线性回归模型与诊断Step1、导入数据和数据清洗Step2、相关性分析Step3、线性回归算法1、简单线性回归3、多元线性回归3.1 多元线性回归的变量筛选Step4、残差分析Step5、强影响点...
  • 上篇对共线性问题的诊断以及消除做了详尽的介绍,那么如何与实际场景结合呢? (1)数据来源 该数据来源于《1994年统计摘要》1978-1993年的中国民航客运量统计数据。 (2)变量介绍 Y——民航客运量(万人) X1——...
  • 掌握回归分析中自变量的选择原则与逐步回归方法掌握关于异方差性问题自相关性问题和多重共线性问题的诊断与处理 二本课程要求学生完成的工作 1对实际问题进行数据分析 1建立数学模型包括回归分析的建模检验和应用 2...
  • 【炼数成金-机器学习笔记】

    千次阅读 2016-02-20 15:04:23
    1.相关系数 2.虚拟变量 ...3.做回归之前要用样本检验函数看看是否符合正态分布,如果不符合是不能做回归的。...多重共线性(Multicollinearity)是指线性回归模型中的解释变量之间由于存在精确相关关系或高
  • Stata 9 很好的统计软件

    热门讨论 2008-11-24 11:45:14
     相关与回归分析:简单相关,偏相关,典型相关,以及多达数十种的回归分析方法,如多元线性回归,逐步回归,加权回归,稳键回归,二阶段回归,百分位数 ( 中位数 ) 回归,残差分析、强影响点分析,曲线拟合,随机...
  • DPS数据处理系统

    2013-07-19 16:06:15
    各种回归分析、聚类分析、主成分分析、判别分析、因子分析、典型相关分析、对应分析等多元分析技术;非线性回归模型参数估计、模型模拟技术;单目标和多目标线性规划、非线性规划等运筹学方法;以及状态方程、数值...
  • 四、多变量线性回归(Linear Regression with Multiple Variables) 4.1 多维特征 4.2 多变量梯度下降 4.3 梯度下降法实践1-特征缩放 4.4 梯度下降法实践2-学习率 4.5 特征和多项式回归 4.6 正规方程 4.7 正规方程及不...

空空如也

空空如也

1 2
收藏数 21
精华内容 8
关键字:

多元回归共线性诊断