精华内容
下载资源
问答
  • SPSS—回归多元线性回归结果分析(二)

    万次阅读 多人点赞 2014-03-19 17:57:28
    SPSS—回归多元线性回归结果分析(二) ... 接着上一期多元线性回归解析”里面内容,上一次,没有写结果分析,这次补上,结果分析如下所示: 结果分析1: 由于开始选择是“逐步”法,

    SPSS—回归—多元线性回归结果分析(二)

    ,最近一直很忙,公司的潮起潮落,就好比人生的跌岩起伏,眼看着一步步走向衰弱,却无能为力,也许要学习“步步惊心”里面“四阿哥”的座右铭:“行到水穷处”,”坐看云起时“。

        接着上一期的“多元线性回归解析”里面的内容,上一次,没有写结果分析,这次补上,结果分析如下所示:

    结果分析1:

    由于开始选择的是“逐步”法,逐步法是“向前”和“向后”的结合体,从结果可以看出,最先进入“线性回归模型”的是“price in thousands"   建立了模型1,紧随其后的是“Wheelbase"  建立了模型2,所以,模型中有此方法有个概率值,当小于等于0.05时,进入“线性回归模型”(最先进入模型的,相关性最强,关系最为密切)当大于等0.1时,从“线性模型中”剔除

    结果分析:

    1:从“模型汇总”中可以看出,有两个模型,(模型1和模型2)从R2 拟合优度来看,模型2的拟合优度明显比模型1要好一些

    (0.422>0.300)

    2:从“Anova"表中,可以看出“模型2”中的“回归平方和”为115.311,“残差平方和”为153.072,由于总平方和=回归平方和+残差平方和,由于残差平方和(即指随即误差,不可解释的误差)由于“回归平方和”跟“残差平方和”几乎接近,所有,此线性回归模型只解释了总平方和的一半,

    3:根据后面的“F统计量”的概率值为0.00,由于0.00<0.01,随着“自变量”的引入,其显著性概率值均远小于0.01,所以可以显著地拒绝总体回归系数为0的原假设,通过ANOVA方差分析表可以看出“销售量”与“价格”和“轴距”之间存在着线性关系,至于线性关系的强弱,需要进一步进行分析。


     

     结果分析:

    1:从“已排除的变量”表中,可以看出:“模型2”中各变量的T检的概率值都大于“0.05”所以,不能够引入“线性回归模型”必须剔除。

     

    从“系数a” 表中可以看出:

    1:多元线性回归方程应该为:销售量=-1.822-0.055*价格+0.061*轴距

    但是,由于常数项的sig为(0.116>0.1) 所以常数项不具备显著性,所以,我们再看后面的“标准系数”,在标准系数一列中,可以看到“常数项”没有数值,已经被剔除

    所以:标准化的回归方程为:销售量=-0.59*价格+0.356*轴距

    2:再看最后一列“共线性统计量”,其中“价格”和“轴距”两个容差和“vif都一样,而且VIF都为1.012,且都小于5,所以两个自变量之间没有出现共线性,容忍度和
    膨胀因子是互为倒数关系,容忍度越小,膨胀因子越大,发生共线性的可能性也越大

     

     

    从“共线性诊断”表中可以看出:

    1:共线性诊断采用的是“特征值”的方式,特征值主要用来刻画自变量的方差,诊断自变量间是否存在较强多重共线性的另一种方法是利用主成分分析法,基本思想是:如果自变量间确实存在较强的相关关系,那么它们之间必然存在信息重叠,于是就可以从这些自变量中提取出既能反应自变量信息(方差),而且有相互独立的因素(成分)来,该方法主要从自变量间的相关系数矩阵出发,计算相关系数矩阵的特征值,得到相应的若干成分。

    从上图可以看出:从自变量相关系数矩阵出发,计算得到了三个特征值(模型2中),最大特征值为2.847, 最小特征值为0.003

    条件索引=最大特征值/相对特征值 再进行开方 (即特征值2的 条件索引为 2.847/0.150 再开方=4.351)

    标准化后,方差为1,每一个特征值都能够刻画某自变量的一定比例,所有的特征值能将刻画某自变量信息的全部,于是,我们可以得到以下结论:

    1:价格在方差标准化后,第一个特征值解释了其方差的0.02, 第二个特征值解释了0.97,第三个特征值解释了0.00
    2:轴距在方差标准化后,第一个特征值解释了其方差的0.00, 第二个特征值解释了0.01,第三个特征值解释了0.99

    可以看出:没有一个特征值,既能够解释“价格”又能够解释“轴距”所以“价格”和“轴距”之间存在共线性较弱。前面的结论进一步得到了论证。(残差统计量的表中数值怎么来的,这个计算过程,我就不写了)


     

    从上图可以得知:大部分自变量的残差都符合正太分布,只有一,两处地方稍有偏离,如图上的(-5到-3区域的)处理偏离状态

        下班了,有时间继续写,百度空间发表文章,为什么过几分钟,就输入不了文字了啊

    展开全文
  • 回归分析

    千次阅读 2016-10-08 14:52:41
    1 原理 1、三条命令 polyfit(x,y,n)---拟合成一元幂函数(一元多) ...2、同个问题,这三条命令都可以使用,但结果肯定是不同,因为拟合近似结果,没有唯一标准答案。相当于咨询多个专家。 3、
    
    1 原理
    1、三条命令
    polyfit(x,y,n)---拟合成一元幂函数(一元多次)
    regress(y,x)----可以多元,              
    nlinfit(x,y,’fun’,beta0)  (可用于任何类型的函数,任意多元函数,应用范围最主,最万能的)
    2、同一个问题,这三条命令都可以使用,但结果肯定是不同的,因为拟合的近似结果,没有唯一的标准的答案。相当于咨询多个专家。
    3、回归的操作步骤:
    根据图形(实际点),选配一条恰当的函数形式(类型)---需要数学理论与基础和经验。(并写出该函数表达式的一般形式,含待定系数)------选用某条回归命令求出所有的待定系数。所以可以说,回归就是求待定系数的过程(需确定函数的形式)
    一、回归命令
    一元多次拟合polyfit(x,y,n);一元回归polyfit;多元回归regress---nlinfit(非线性)
    二、多元回归分析
    对于多元线性回归模型(其实可以是非线性,它通用性极高):
    
    设变量的n组观测值为
    记 ,,则 的估计值为排列方式与线性代数中的线性方程组相同(),拟合成多元函数---regress
    使用格式:左边用b=[b, bint, r, rint, stats]右边用=regress(y, x)或regress(y, x, alpha)
    ---命令中是先yx, 
    ---须构造好矩阵x(x中的每列与目标函数的一项对应)
    ---并且x要在最前面额外添加全1列/对应于常数项
    ---y必须是列向量
    ---结果是从常数项开始---polyfit的不同。)
    其中: b为回归系数,的估计值(第一个为常数项),bint为回归系数的区间估计,r: 残差 ,rint: 残差的置信区间,stats: 用于检验回归模型的统计量,有四个数值:相关系数r2F值、与F对应的概率p和残差的方差(前两个越大越好,后两个越小越好),alpha: 显著性水平(缺省时为0.05,即置信水平为95%),(alpha不影响b,只影响bint(区间估计)。它越小,即置信度越高,则bint范围越大。显著水平越高,则区间就越小)(返回五个结果)---如有n个自变量-有误(n个待定系数),则b 中就有n+1个系数(含常数项,---第一项为常数项)(b---b的范围/置信区间---残差r---r的置信区间rint-----点估计----区间估计 
    
    
     例116名成年女子的身高与腿长所得数据如下:
    身高  143 145 146 147 149 150 153 154 155 156 157 158 159 160 162 164
    腿长  88  85  88  91  92  93  93  95  96  98  97  96  98  99  100 102
    程序如下: 
    x=[143 145 146 147 149 150 153 154 155 156 157 158 159 160 162 164]';
     y=[88 85 88 91 92 93 93 95 96 98 97 96 98 99 100 102]';
      plot(x,y,'r+')
      z=x;
      x=[ones(16,1),x]; 
     [b,bint,r,rint,stats]=regress(y,x);  
     b,bint,stats
    
    运行结果得:
    b =
    
      -16.0730
        0.7194
    
    
    bint =
    
      -33.7071    1.5612
        0.6047    0.8340
    
    
    stats =
    
    0.9282  180.9531    0.0000    1.7437
    即;的置信区间为[-33.70171.5612], 的置信区间为[0.6047,0.834]; r2=0.9282, F=180.9531, p=0.0。p<0.05, 
    可知回归模型 y=-16.073+0.7194x 成立.
    即身高和腿长的关系式如下:y=-16.073+0.7194x
    残差分析:
    
    
    从残差图可以看出,除第二个数据外,其余数据的残差离零点均较近,且残差的置信区间均包含零点,这说明回归模型 y=-16.073+0.7194x能较好的符合原始数据,而第二个数据可视为异常点(而剔除)。
    预测及作图:
    plot(x,y,'r+')    
    hold on  
    a=140:165;    
     b=b(1)+b(2)*a; 
     plot(a,b,'g')
    
    
    
    例2 
    观测物体降落的距离s与时间t的关系,得到数据如下表,求s关于t的回归方程
    t   (s) 1/30    2/30    3/30    4/30    5/30    6/30    7/30
    s   (cm)    11.86   15.67   20.60   26.69   33.71   41.93   51.13
    
    t   (s) 8/30    9/30    10/30   11/30   12/30   13/30   14/30
    s   (cm)    61.49   72.90   85.44   99.08   113.77  129.54  146.48
    
    方法一:
    程序如下:
    t=1/30:1/30:14/30;
     s=[11.86 15.67 20.60 26.69 33.71 41.93 51.13 61.49 72.90  85.44 99.08 113.77 129.54 146.48];
     [p,S]=polyfit(t,s,2)
     结果得:
    
    p =
    
      489.2946   65.8896    9.1329
    即回归模型为:
    
    
    方法二:
    t=1/30:1/30:14/30;
    s=[11.86 15.67 20.60 26.69 33.71 41.93 51.13 61.49 72.90  85.44 99.08 113.77 129.54 146.48];
      T=[ones(14,1), t', (t.^2)']  %???是否可行???等验证...----因为有三个待定系数,所以有三列,始于常数项
     [b,bint,r,rint,stats]=regress(s',T);
      b,stats
    得结果如下:
    b =
    
        9.1329
       65.8896
      489.2946
    
    
    stats =
    
       1.0e+07 *
    
        0.0000    1.0378    0.0000    0.0000
    得回归模型如下:
    
    
    与方法与相同
    例3
      设某商品的需求量与消费者的平均收入、商品价格的统计数据如下,建立回归模型,预测平均收入为1000、价格为6时的商品需求量.
    需求量 100 75  80  70  50  65  90  100 110 60
    收入  1000    600     1200    500 300 400 1300    1100    1300    300
    价格  5   7   6   6   8   7   5   4   3   9
    
    
    选择纯二次模型,即 
    用户可以任意设计函数
    程序如下:
    x1=[1000 600 1200 500 300 400 1300 1100 1300 300];
     x2=[5 7 6  6 8 7 5 4 3 9];
     y=[100 75 80 70 50 65 90 100 110 60]';
    X=[ones(10,1) x1' x2' (x1.^2)' (x2.^2)'];  %×¢Òâ¼¼ÇÉÐÔ??????
    [b,bint,r,rint,stats]=regress(y,X);  %ÕâÊÇÍòÄÜ·½·¨??????Ðè½øÒ»²½ÑéÖ¤
     b
     stats   
    
    运行得结果如下:
    b =
    
      110.5313
        0.1464
      -26.5709
       -0.0001
        1.8475
    
    
    stats =
    
        1.0000       Inf         0   20.5771
    故回归模型为:
    剩余标准差为4.5362, 说明此回归模型的显著性较好.
    
    --------(此题还可以用 rstool(X,Y)命令求解,详见回归问题详解)
    
    
    
    展开全文
  • 然后,借助R项目建立了可以说明列车PDR与影响因素之间相互作用的多元线性回归(MLR)模型。 模型诊断表明所有模型假设都是有效。 最后,通过系列延迟记录对模型进行验证,验证结果表明该模型能够很好地拟合验证...
  • 使用回归分析的好处良多。 具体如下: • 它表明自变量和因变量之间的显著关系 它表明多个自变量对个因变量的影响强度 回归分析也允许我们去比较那些衡量不同尺度的变量之间的相互影响,如价格...
  • 用MATLAB求解回归分析;例1解1输入数据 ;3残差分析作残差图 ;多 项 式 回 归 一一元;方法 直接作二多;法二化为多元线性回归t=1/;二多元二项式回归命令rs;例3 设某商品需求量与消费;在画面左下方下拉式菜单...
  • java实现多元线性回归

    2021-03-13 14:52:12
    为了估计服务时间和服务成本,约翰逊公司管理人员希望对顾客一次维修请求预测必要维修时间。所以,按小时计算维修时间是因变量。管理人员认为,维修时间依赖两个因素:从最近一次维修服务至今水过滤系统...

    一个例子

    约翰逊过滤股份公司对遍布南佛罗里达州的水过滤系统提供维修保养服务。当顾客的水过滤系统出现故障时,他们就要与约翰逊公司进行联系,请求公司对他们的水过滤系统进行维修。为了估计服务时间和服务成本,约翰逊公司的管理人员希望对顾客的每一次维修请求预测必要的维修时间。所以,按小时计算的维修时间是因变量。管理人员认为,维修时间依赖两个因素:从最近一次维修服务至今水过滤系统已经使用的时间和需要维修的故障类型。由10次维修服务组成一个样本,有关资料数据如下1

    维修服务请求 最近一次维修服务至今的时间(x1 维修的故障类型(x2 维修时间(y1
    1 2 1 2.9
    2 6 0 3.0
    3 8 1 4.8
    4 3 0 1.8
    5 2 1 2.9
    6 7 1 4.9
    7 9 0 4.2
    8 8 0 4.8
    9 4 1 4.4
    10 6 1 4.5

    分析计算

    我们计算利用的工具是Apache Commons Math2

    准备数据
    OLSMultipleLinearRegression oregression = new OLSMultipleLinearRegression();
    		double[] y = new double[]{2.9, 3.0, 4.8, 1.8, 2.9,4.9,4.2,4.8,4.4,4.5};
    		double[][] x = new double[10][2];
    		x[0] = new double[]{2, 1};
    		x[1] = new double[]{6, 0};
    		x[2] = new double[]{8, 1};
    		x[3] = new double[]{3, 0};
    		x[4] = new double[]{2, 1};
    		x[5] = new double[]{7, 1};
    		x[6] = new double[]{9, 0};
    		x[7] = new double[]{8, 0};
    		x[8] = new double[]{4, 1};
    		x[9] = new double[]{6, 1};
    

    y代表的是维修时间,为因变量;二维数组x代表最近一次维修服务至今的时间和故障类型,为自变量,其中数字10 表示维修服务的请求次数,也即样本的数量,数字2表示自变量的个数(这里例子中有2个变量:x1,x2),每个一维数组对应一组自变量的值。

    计算
    oregression.newSampleData(y, x);
    
    查看结果

    模型参数

    double[] beta = oregression.estimateRegressionParameters();
    for (double d : beta) {
    	System.out.println(d);
    }
    

    打印的结果:

    0.9304953560371505
    0.38761609907120753
    1.2626934984520124
    

    数组beta中的值按顺序依次代表回归方程中的常量、x1系数、x2系数,因此,最终的回归方程为:
    y=0.93+0.3876x1+1.263x2 y=0.93+0.3876x_1+1.263x_2
    该方程的标准差S:

    double s = oregression.estimateRegressionStandardError();
    

    判定系数R2:

    double rSquared = oregression.calculateRSquared();
    

    参考

    - [1] 《商务与经济统计》
    - [2] http://commons.apache.org/proper/commons-math/userguide/stat.html#a1.4_Simple_regression
    展开全文
  • 一次多元线性回归的估计以及参数和方程显著性进行了python实现。但是这些都是建立多元线性回归的几个假设基础之上: 模型符合线性模式 XXX满秩(无多重共线) 零均值价值:E(εi∣Xi)=0E(ε_i|X_i)=0E(εi...

    系列文章:

    1. 多元线性回归和显著性检验(参数估计、T检验、F检验、拟合优度)
    2. 多重共线性(导致结果、检验——方差膨胀因子、补救措施——岭回归)
    3. 异方差(导致结果、检验——White、补救措施——广义线性回归)
    4. 自相关(导致结果、检验——D-W、补救措施——广义线性回归)

    写的比较仓促,代码中如有错误欢迎指正!

    上一次对多元线性回归的估计以及参数和方程的显著性进行了python实现。但是这些都是建立多元线性回归的几个假设基础之上的:

    1. 模型符合线性模式
    2. XX满秩(无多重共线)
    3. 零均值价值:E(εiXi)=0E(ε_i|X_i)=0(自变量外生)
    4. 同方差:Var(εiXi)=σVar(ε_i|X_i)=σ
    5. 无自相关:cov(εi,εj)=0cov(ε_i, ε_j)=0
    6. 球形扰动:ε_i是正态分布

    若果模型违反了相应的假设就会犯对应的错误,我们在计量经济分析中的检验就是检验出是否可能犯了某一类错误,若果极有可能犯了一种错误时,我们应该怎么修正它,才能保证分析的结果是有效的。

    一、多重共线性

    先来考虑一个现实问题,我们在预测一个活动的KPI时,利用多个变量作为解释变量,历史KPI做被解释变量,如果解释变量中同时包含PV和UV,这样的回归是好还是坏?

    1.1.完全多重共线性与不完全多重共线性

    上面对于多元线性回归的假设中有一条是要求XX满秩,即:Rank(X)=kRank(X)=k,当X中存在一个变量完全可以由另一个变量表示的时候,变量间就出现了完全多重共线,即:

    λ1x1+λ2x2+...+λkxk=0λ_1x_1+λ_2x_2+...+λ_kx_k=0

    由秩的定义可知,此时XX不再满秩,即Rank(X)<kRank(X)<k,这违反了多元线性回归的基本假定。

    实际上当xix_ixjx_j之间存在很想的线性相关性时,对模型的估计(区间估计)和检验也是非常不利的。出现这种情况,我们称为不完全多重共线性

    1.2.多重共线性的原因
    由于经济和现实的生产过程中,许多变量往往是强相关和有相同变化趋势的。这就导致了多重共线性有事在所难免。实际上,多重共线性大多不是模型问题,而是数据问题。模型中我们大量的采用滞后变量或者变量选取不当,也会导致共线性的产生。

    1.3.完全多重共线性的后果
    当存在完全多重共线性时,多元线性回归可能存在一下后果:

    1. 模型参数无法估计
      比如x12x2=0x_1-2x_2=0,如果y=x1+2x2y=x_1+2x_2,则y可以表示成y=3x12x2y=3x_1-2x_2,此时参数是无法估计的
    2. 参数估计的方差无限大
      由于不满秩,导致参数的方差估计中的分母为0,方差无限大(参数的方差估计详见前一节)

    1.4.不完全多重共线性的后果

    1. 参数估计方差变大
      这与上面的完全多重共线性的参数估计方差无限大类似。
    2. t检验失效
      由于参数估计方差,我们构造的T统计量会变小(T统计量的分母就是参数估计方差除自由度开根号)。此时我们做的t检验,无法帮助我们判断参数是否显著。
      (不完全多重共线性时,参数的估计仍然是无偏的)

    1.4.多重共线性的检验

    1. 简单相关系数矩阵法、
      我们可以计算XX中每两个变量组合之间的相关系数,来确定变变量间是否存在很强的线性相关性,利用dataframe的df.corr()计算即可完成。

    2. 条件数
      计算(XX)(X'X)的最大特征根与最小特征根比值的平方根,当做条件数:
      条件数=max(λi)/min(λi)\sqrt{max(λ_i)/min(λ_i)}
      如果条件数超过20,即认为存在比较严重的多重共线性。(回想一下PCA的原理,和特征值λiλ_i的含义,其实条件数还是很直观的)
      在下面实际的python测试中,条件数达到了4573个!但是根据其他法则判断,共线性又不是十分的明显,个人感觉最好不要单一的用条件数去判断多重共线性。

    3. 方差膨胀因子
      偷懒一下,直接粘贴网上的定义吧
      在这里插入图片描述
      一般VIFiVIF_i大于10,我们即认为变量xix_i存在多重共线性。VIFVIF的优点是可以定位到存在共线性的变量,缺点是计算比较复杂。我们可以计算出方程的条件数,判断是否存在多重共线性,然后再利用X的相关系数矩阵定位存在多重共线性的变量(计算相关系数矩阵也是比较耗时的)。

    1.5.多重共线性的补救

    1. 增加样本量
      增加样本量可以达到减小参数估计方差的目的,在存在共线性时提高估计的可靠性

    2. 逐步回归法
      每种变量组合都进行一次回归,选出最好的组合,这种做法实在是太麻烦和耗时了

    3. PCA
      我们可以对变量数据XX做一次PCA,得到新的矩阵ZZ,Z中的主成分时正交的,完全没有共线性。但是这样缺点也很明显,回归是没有经济意义的,我偏离了我们做计量经济分析的初衷!

    4. 岭回归
      在机器学习领域我们知道有两种添加正则化的回归方式:岭回归和Lasso回归两种方式,对应着L2正则和L1正则。岭回归让参数变得很小,Lasso回归让变量变得系数,可用于特征选择。。。。
      在解决多重共线性中的岭回归办法和机器学习中添加L1正则的岭回归其实就是一个东西!。岭回归是最小二乘的一种改进方法,用岭回归时参数的估计变为:
      β=(XX+kI)1Xyβ=(X'X+kI)^{-1}X'y
      其中kk为岭回归参数(在机器学习中回应惩罚的力度),需要注意的是,岭回归的参数估计是有偏的,参数ββ的方差估计也需要跟着一起变。此时ββ的方差估计为:
      $Var(βk)=σ2(XX+kI)1(XX)(XX+kI)Var(β|k) = σ^2(X'X+kI)^{-1}*(X'X)*(X'X+kI) $
      对应的t检验的统计量也会跟着一起改变。

    二、多重共线性检验和补救的python实现

    我们任沿用上一节的多元线性回归代码,再其基础上进行添加,我们需要实现的有:计算被解释变量的相关系数矩阵、没个变量的反差膨胀因子VIF,方程拟合后的条件数、对方程惊醒岭回归。先把框架定义好:

    class mul_linear_model(object):
      #用于计算数据的相关系数矩阵
      def data_relation(self):
          pass
      #用于计算每个变量的VIF
      def VIF_cul(self, ind):
          pass
      #所有变量的分行差膨胀因子检验
      def VIF_test(self):
          pass
      #计算拟合的条件数
      def  condition_num(self):
      	  pass
      #岭回归
      def Ridge_fit(self, k = 0.1):
      	  pass
    

    下面就是完整的多重共线性的检验和补救方法。

    # -*- coding: utf-8 -*-
    """
    Created on Fri Apr  3 15:40:38 2020
    
    @author: nbszg
    """
    
    import numpy as np
    import pandas as pd
    import scipy.stats as st
    
    class mul_linear_model(object):
      #intercept定义是否有截距项,在计量经济分析中,基本都要有截距项,否则计算出的拟合优度是没有意义的
      def __init__(self, y, X, intercept=True):
          ...
      #拟合模型
      def fit(self):
         ...
          return self.b
      #预测函数
      def predict(self, X_p):
          ...
      #参数T检验
      def T_test(self, alpha):
         ...
      #拟合优度计算
      def R_square(self):
         ...
      #整体F检验
      def F_test(self, alpha):
          ...
      #用于计算数据的相关系数矩阵
      def data_relation(self):
          #需要区分有截距项和没有截距项的情况
          if self.intercept:
              return self.data_x.loc[:,self.data_x.columns!='intercept'].corr()
          else:
              return self.data_x.corr()
      #用于计算每个变量的VIF    
      def VIF_cul(self, ind):
          #使用最小二乘法(X'X)的逆成X'y
          yk = np.array(self.X[:, ind].T)
          #有截距项时:
          if self.intercept:
              Xk = self.X[:, [i for i in range(1,ind)]+[j for j in range(ind+1, self.K)]]
          #无截距项时:
          else:
              Xk = self.X[:, [i for i in range(ind)]+[j for j in range(ind+1, self.K)]]
          
          #直接调用自身的类方法记性计算其他Xj对Xk回归的可决系数
          vif_model = mul_linear_model(yk, pd.DataFrame(Xk), intercept=False)
          vif_model.fit(output=False)
          Rk_2 = vif_model.R_square()
          #计算方差膨胀因子
          VIF_k = 1/(1-Rk_2)
          return VIF_k
          
      #所有变量的分行差膨胀因子检验
      def VIF_test(self):
          #循环计算每个变量的方差膨胀因子
          for i in range(1, self.K):
              VIF_k = self.VIF_cul(i)
              print("variable {0}'s VIF estimate is : {1}".format(self.columns[i], VIF_k))
      
      #计算拟合的条件数
      def condition_num(self):
          #有截距项时
          if self.intercept:
              M = np.dot(self.XT[[i for i in range(1, self.K)],:], self.X[:, [j for j in range(1, self.K)]])
          else:
              M = np.dot(self.XT, self.X)
          #计算X'X的特征值与特征向量
          eigenvalue, eigenvector = np.linalg.eig(M)
          #计算条件数
          cond_num = np.sqrt(eigenvalue[0]/eigenvalue[-1])
          print("data X's condition number is: {0}".format(cond_num))
          
      
      #岭回归
      def Ridge_fit(self, k = 0.1, output=True):
          #使用岭回归(X'X+kI)的逆成X'y
          self.b = np.array(np.dot(np.dot(np.linalg.inv(np.dot(self.XT,self.X)+np.mat(np.eye(self.K))),self.XT),self.y).T)
          
          if output:
              for i in range(self.K):
                  print("variable {0}'s cofe estimate is: {1}".format(self.columns[i], self.b[i][0]))
          
          #计算t检验的因子需要跟着一起变动!!!
          self.S = np.array(np.dot(np.dot(np.linalg.inv(np.dot(self.XT,self.X)+np.mat(np.eye(self.K))), np.dot(self.XT,self.X)), np.linalg.inv(np.dot(self.XT,self.X)+np.mat(np.eye(self.K)))))
          
          return self.b
    

    利用上一节的数据和例子继续进行检验:

    print('data columns related coefficient is: \n{0}'.format(linear_model.data_relation()))
    print('\n')
    linear_model.VIF_test()
    print('\n')
    linear_model.condition_num()
    print('\n')
    linear_model.Ridge_fit()
    

    得到的检验结果和岭回归系数如下,可以看到条件数达到了4573个!但是根据其他法则判断,共线性又不是十分的明显,个人感觉最好不要单一的用条件数去判断多重共线性。
    在这里插入图片描述

    展开全文
  • 这种函数是一个或多个称为回归系数模型参数线性组合(自变量都是一次方)。只有一个自变量情况称为简单回归,大于一个自变量情况叫做多元回归。 优点:结果易于理解,计算上不复杂。 缺点:对非线性数据...
  • 这种函数是一个或多个称为回归系数模型参数线性组合(自变量都是一次方)。只有一个自变量情况称为简单回归,大于一个自变量情况叫做多元回归。 优点:结果易于理解,计算上不复杂。缺点:对非线性数据拟合...
  • 机器学习之线性回归

    2017-04-13 23:46:00
    这种函数是一个或多个称为回归系数模型参数线性组合(自变量都是一次方)。只有一个自变量情况称为简单回归,大于一个自变量情况叫做多元回归。 优点:结果易于理解,计算上不复杂。缺点:对非线性数据拟合...
  • 根据2002年4月5日河南省人工催化增雨作业数据,分别采用作业区域趋势对比双比分析评估方案、区域趋势相关回归评估方案、区域趋势协变量多元回归评估方案、FCM(浮动对比区历史回归)评估方案、以降水量为协变量CA-...
  • 提取时,针对每试数据从特征库中选择与当诱发脑电信号相关系数最高成分作为自变量开展多元线性回归分析,由回归分析结构重构出单诱发电位信号并自动提取潜伏期和幅值等关键特征.结果 与专家判定基准数值...
  • 统计学学习-Day2

    2020-03-09 17:12:43
    1、从下表可见受教育程度对于工资的影响比上一次做一因一果回归分析的时候第。原因在于原来做的一因一果线性回归分析出来的结果是受教育水平影响工资的毛重。而这里进行了多因素分析,其中受教育程度还会影响是不是...
  • 采用“三称重法”测定南方红豆杉(Taxus chinensis var.mairei(Lemee et level)Cheng et L K ru)换叶期蒸腾强度日变化、月变化,同步定点定位测定生态因子变化,运用一元线性回归、多元回归分析蒸腾强度与生态...
  • 应用2008年天津市14个自动气象站逐小时资料和6 h一次的地面常规资料,对天津城市热岛效应时空特征进行了分析结果表明:天津市热岛强度日变化、月变化和年、季特征显著,且天津市热岛强度与城郊站选择方法有...
  • 线性回归分析用于评估mMRC与Borg呼吸困难评分之间关​​系。 使用分数多项式回归分析mMRC和Borg评分与BMI关系。 结果:在单变量回归模型中,MMRC呼吸困难评分是肥胖人群运动后呼吸困难Borg评分有力预测指标...
  • 本文是第一次在收益率曲线预测背景下使用人工神经网络综合研究。 具体而言,两种模型用于预测欧洲收益率曲线:多元线性回归和多层感知器 (MLP),在五个预测范围内,从第二天到未来 20 天。 使用不同特征集...
  • 包括年龄,体重指数和睡眠参数在内的多元回归分析表明,运动唤醒指数是发生车祸风险最重要因素(β= 0.563,P = 0.017)以及ESS评分(β= 0.417,P) = 0.022)。 结论:睡眠中引起运动引起白天
  • Stata 9 很好统计软件

    热门讨论 2008-11-24 11:45:14
     相关与回归分析:简单相关,偏相关,典型相关,以及多达数十种的回归分析方法,如多元线性回归,逐步回归,加权回归,稳键回归,二阶段回归,百分位数 ( 中位数 ) 回归,残差分析、强影响点分析,曲线拟合,随机...
  • 背景:孕妇在卫生机构后期产前护理仍然是个重大公共卫生问题。 在全球范围内,每天约有830名妇女因与怀孕相关并发... 在多元逻辑回归分析中,在职业方面,有配偶失业妇女与晚期ANC出勤率比正式就业妇女增
  • 结果:在分析的人群中,有52%为80±8.1岁(平均±SD)的男性。 多药治疗(p = 0.002),使用精神药物(p = 0.007),止痛药(p = 0.034)和步行器(p = 0.006)与住院前6个月摔倒的发生率较高相关。 69名患者获得...
  • 5.可求解任意方程:一次方程,二次方程,三次方程,N次方程,无理方程,超越方程!解法均采用数形结合法,非常形像直观! 6.可求解任意不等式!解法均采用数形结合法,并以不同颜色标识结果,非常形像直观! 7.可...
  • EnableQ线性回归分析功能可得出多个变量间是否存在线性关系,并根据运算得到多元线性方程式。 EnableQ更提供多种样式精美分析数据图形,包含柱图、线图、条图、饼图、甜圈图、堆积图、簇状图、雷达图等。 多家...

空空如也

空空如也

1 2
收藏数 32
精华内容 12
关键字:

一次多元回归分析的结果