数据分析参数估计与统计推断(3)两样本T检验和相关分析

信用卡客户消费预测的例子

信用卡部门拥有客户的个人信息和信用卡支出信息。这些数据存放在“CREDITCARD_EXP”表中。Acc 字段表示是否有开卡,目前尚有一些客户注册后没有开卡,部门业务人员希望能够预测其开卡后的消费情况

import pandas as pd
creditcard= pd.read_csv(r'creditcard_exp.csv', skipinitialspace=True)

我们想研究客户的收入对他是否开卡有没有影响,给定分类变量(是否开卡),看连续变量(收入)的均值是否有差异即可

creditcard['Income'].groupby(creditcard['Acc']).describe()


Out[5]: 
     count      mean       std    ...          50%       75%       max
Acc                               ...                                 
0     30.0  3.149333  1.406482    ...     2.905000  3.807500   8.40000
1     70.0  7.424706  3.077986    ...     6.443525  8.494237  16.90015


# - 第一步:方差齐次检验

# In[12]:
from scipy import stats

Suc0 = creditcard[creditcard['Acc'] == 0]['Income']
Suc1 = creditcard[creditcard['Acc'] == 1]['Income']
leveneTestRes = stats.levene(Suc0, Suc1, center='median')
print('w-value=%6.4f, p-value=%6.4f' %leveneTestRes)
# - 第二步:T-test

# In[13]: 实际上做不做方差齐性的F检验并不能对结论造成影响 equal_var 为 True 和 False 都一样
stats.stats.ttest_ind(Suc0, Suc1, equal_var=False)


Out[8]: Ttest_indResult(statistic=-9.529516968736448, pvalue=1.3263066753296544e-15)


stats.stats.ttest_ind(Suc0, Suc1, equal_var=True)


Out[9]: Ttest_indResult(statistic=-7.2734332066230225, pvalue=8.690094133636065e-11)

这里我们的假设H0:μ0 = μ1,H1:μ0 != μ1,H1 为备择假设,α 取 5%,t = ( ( X1_ - X0_ ) - ( μ1 - μ0 ) ) / S_( X1_ - X0_ ),然后再用 t 求出 p_value,注意 S_X1_ - S_X0_ 和 S_( X1_ - X0_ ) 是不同的

这里做方差齐性的F检验

当F 约等于 1,假设 H0 成立 ,F 远大于 1,假设 H1 成立

但实际上做不做方差齐性的F检验并不能对结论造成影响,所以一般都不会用

研究两个连续变量之间的关系,比如年收入越高,开卡后的月均支出是否越高?

明显第四幅图表示这两个变量没关系

相关关系是一种不完全确定的随机关系,当一个或几个变量的数值被确定后,与之相应的另一个变量的值虽然不能确定,但是仍按照某种依赖关系在一定的范围内变化。简单相关分析是研究两个变量之间相关关系的方法 

三种常用相关系数:

  • PEARSON相关系数:参数方法、连续变量之间的相关
  • SPEARMAN相关系数:非参方法、又称秩相关系数
  • KENDALL相关系数:非参方法,序数变量之间的相关系数

Pearson 相关系数的计算

creditcard.plot(x='Income', y='avg_exp', kind='scatter')

像线性关系 ,有点发散,画直方图的话,应该是右偏的

 

#当发现散点图有发散的趋势时,首先需要对Y取对数,而且还应该尝试对X也取对数

creditcard.plot(x='Income', y='avg_exp_ln', kind='scatter')

不发散了 

相关系数 0.63489,还挺高的,中度相关

creditcard[['avg_exp_ln', 'Income']].corr(method='pearson')


Out[13]: 
            avg_exp_ln   Income
avg_exp_ln     1.00000  0.63489
Income         0.63489  1.00000

 相关系数一般不需要作检验,因为即使相关系数不大,只要样本量足够大,p 值也是显著的,所以就直接看线性相关程度

当变量比较少的时候,如几十个,可以直接放入线性回归的,但当变量比较多的时候,比如好几百个,上百个变量的时候,逐步回归法就失效了,几十个变量还可以。变量多了,我们就要把每个变量 x 和 y 分别作检验,留下相关的、显著的变量去建模

猜你喜欢

转载自blog.csdn.net/HAIYUANBOY/article/details/89526055