(10)数据分析-变量分析
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显著性最高,我有点不太理解)
更多推荐
所有评论(0)