1、前言

   变量分析分为单变量分析,两变量分析,多变量分析。

2、单变量分析

 仅对一项数据进行分析,是最简单的变量分析。从取值上看有均值、中位数、分位数;从离散程度上看,指标有极差、四分位数、方差、标准差、协方差、变异系数;从分布上看,有偏度、峰度等。还要考虑极大值、极小值、频数和构成比;常用的展示方式有柱状图、直方图、箱线图、饼图、频率多边形图等。
 以上这些概念在我之前的博客都能找到,咱不过多介绍。

3、 两变量分析

 两变量分析常见的为单个自变量X与因变量Y之间的关系分析,该分类专栏前面的方法大多都是介绍两变量分析,也不过多赘述。

4、多变量分析

多变量分析的方法有很多,如树模型、多元线性回归模型、逻辑回归、聚类分析等。

4.1 多元线性回归模型

4.1.1 使用场景

 下面介绍最常用的多元线性回归模型,当因变量Y受到多个自变量X的影响时,多元线性回归模型用于计算各个自变量对因变量的影响程度,可以认为是对多为空间中的点做线性拟合。多元线性回归原假设为回归系数都为0,所以指标的p-values越小越好。
本例使用Statsmodels库的最小二乘法(OLS)分析ccard数据集中自变量‘AGE’,‘INCOME’,‘INCOMESQ’,‘OWNRENT’对因变量‘AVGEXP’的影响。

4.1.2 代码实现

import statsmodels.api as sm
data = sm.datasets.ccard.load_pandas().data
model = sm.OLS(endog=data['AVGEXP'],exog=data[['AGE','INCOME','INCOMESQ','OWNRENT']]).fit()
print(model.summary())
OLS Regression Results                                
=======================================================================================
Dep. Variable:                 AVGEXP   R-squared (uncentered):                   0.543
Model:                            OLS   Adj. R-squared (uncentered):              0.516
Method:                 Least Squares   F-statistic:                              20.22
Date:                Wed, 08 Sep 2021   Prob (F-statistic):                    5.24e-11
Time:                        15:39:35   Log-Likelihood:                         -507.24
No. Observations:                  72   AIC:                                      1022.
Df Residuals:                      68   BIC:                                      1032.
Df Model:                           4                                                  
Covariance Type:            nonrobust                                                  
==============================================================================
                 coef    std err          t      P>|t|      [0.025      0.975]
------------------------------------------------------------------------------
AGE           -6.8112      4.551     -1.497      0.139     -15.892       2.270
INCOME       175.8245     63.743      2.758      0.007      48.628     303.021
INCOMESQ      -9.7235      6.030     -1.613      0.111     -21.756       2.309
OWNRENT       54.7496     80.044      0.684      0.496    -104.977     214.476
==============================================================================
Omnibus:                       76.325   Durbin-Watson:                   1.692
Prob(Omnibus):                  0.000   Jarque-Bera (JB):              649.447
Skew:                           3.194   Prob(JB):                    9.42e-142
Kurtosis:                      16.255   Cond. No.                         87.5
==============================================================================

4.1.3 返回值解读

主要介绍中间的参数

  • coef:自变量系数
  • std err系统估计的标准误差
  • t:相关系数
  • P>|t|:t检验的 P值(Prob(t-Statistic)),反映每个自变量 xi 与因变量 y 的相关性假设的显著性。如果 p<0.05,可以理解为在0.05的显著性水平下变量xi与y存在回归关系,具有显著性。
  • [0.025 0.975]:回归系数的置信区间(Confidence interval)的下限、上限,某个回归系数的置信区间以 95%的置信度包含该回归系数 。注意并不是指样本数据落在这一区间的概率为 95%。

由上例可知INCOME的显著性最高,因为p-value < 0.05

4.2、逻辑回归

4.2.1 使用场景

在上面,我们介绍了因变量Y为连续型的情况,而当Y为二分类变量时,可以用相应的逻辑回归分析各个自变量对因变量的影响程度。
本例中使用的为ccard数据集,将‘AVGEXP’,‘AGE’,‘INCOME’,‘INCOMESQ’作为自变量X,将‘OWNRENT’作为因变量Y,使用Statsmodels库的Logit方法实现逻辑回归。

4.2.2 代码介绍

import statsmodels.api as sm
data = sm.datasets.ccard.load_pandas().data
model = sm.Logit(endog=data['OWNRENT'],exog=data[['AVGEXP','AGE','INCOME','INCOMESQ',]]).fit()
print(model.summary())
   Logit Regression Results                           
==============================================================================
Dep. Variable:                OWNRENT   No. Observations:                   72
Model:                          Logit   Df Residuals:                       68
Method:                           MLE   Df Model:                            3
Date:                Wed, 08 Sep 2021   Pseudo R-squ.:                  0.2368
Time:                        16:49:17   Log-Likelihood:                -36.354
converged:                       True   LL-Null:                       -47.633
Covariance Type:            nonrobust   LLR p-value:                 4.995e-05
==============================================================================
                 coef    std err          z      P>|z|      [0.025      0.975]
------------------------------------------------------------------------------
AVGEXP         0.0002      0.001      0.228      0.820      -0.002       0.002
AGE            0.0853      0.042      2.021      0.043       0.003       0.168
INCOME        -2.5798      0.822     -3.137      0.002      -4.191      -0.968
INCOMESQ       0.4243      0.126      3.381      0.001       0.178       0.670
==============================================================================

4.2.3 返回值解读

这里的话,注意到后三个指标的p-values都是小于0.05的,所以均认为是有意义的指标。(这里书上写的是,AGE显著性最高,我有点不太理解)

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐