四、假设检验

一、假设检验与单样本T检验

1.单样本假设检验

单样本假设检验:样本的均值是否等于某个值。

2.假设检验步骤

  • 1 先假设:原假设、备择假设(只做等值假设 μ= μ 0 μ_0 μ0,μ≠ μ 0 μ_0 μ0

  • 2 根据样本量选择显著度,样本量越小显著度越大

    • 样本量 < 100,显著度α 10%
    • 100 < 样本量 < 500, 显著度α 5%
    • 500 < 样本量 < 1000, 显著度α 1%
    • 样本量 ≈ 2000 ,显著度α 0.1%
  • 3 画出正态分布图像,得到均值分布,观察得到的均值 x − {\overset{-}{x}} x与假设的μ的差是几倍的标准误,也称之为 t 统计量。
    t = ( x − − μ ) / S x − t= ({\overset{-}{x}} - μ)/S_{\overset{-}{x}} t=(xμ)/Sx

    • 设样本量是150,则显著度选择5%,落在接受域的概率是95%,置信区间是 ( x − − 2 S x − , x − + 2 S x − ) ({\overset{-}{x} - 2S_{\overset{-}{x}}},{\overset{-}{x} + 2S_{\overset{-}{x}}}) (x2Sx,x+2Sx),即当 t S x − > 2 S x − tS_{\overset{-}{x}} > 2S_{\overset{-}{x}} tSx>2Sx拒绝。
  • 4 根据 t 统计量计算概率P,t值越大,p值越小。P < α,接受备择假设;P > α,接受原假设。

3.案例 - 北京房价同比增长

  • 1 导入数据
# p检验
import os
os.chdir(r'E:\脚本\6inference')

import pandas as pd
house_price_gr=pd.read_csv(r'house_price_gr.csv',encoding='gbk')
house_price_gr
  • 2 描述性统计
house_price_gr.describe(include='all')
get_ipython().magic('matplotlib inline')
import seaborn as sns
from scipy import stats

sns.distplot(house_price_gr.rate, kde=True, fit=stats.norm) # Histograph
  • 3 置信区间
se = house_price_gr.rate.std() / len(house_price_gr) ** 0.5  #计算标准误
LB = house_price_gr.rate.mean() - 1.98 * se#上限,百分之95对应的是1.98倍的标准差
UB = house_price_gr.rate.mean() + 1.98 * se#下限
(LB, UB)
Out[]:(0.10337882853175007, 0.11674316487209624)
#判断是否满足正态分布
import statsmodels.api as sm
from matplotlib import pyplot as plt

fig = sm.qqplot(house_price_gr.rate, fit=True, line='45')
fig.show()

在这里插入图片描述

  • 5 两样本T检验:假设μ=0.1,t 统计量为2.9812,p值为0.0034,自由度149
import statsmodels.api as sm
d1 = sm.stats.DescrStatsW(house_price_gr.rate)
print('t-statistic=%6.4f, p-value=%6.4f, df=%s' %d1.ttest_mean(0.1))

Out[]:t-statistic=2.9812, p-value=0.0034, df=149.0

综上,p值越小越好,p < α则拒绝。
根据样本量得到平均的北京市房屋价格的增长率是11%,根据样本得到的北京房屋价格增长率<=10%的概率是0.0017(p/2);若不采取措施,到年底不被问责的概率是0.0017,99%的概率是被问责的(原假设是10%)。

二、两变量关系检验方法综述

1.统计分析步骤

  • 步骤一:首先看x、y的统计类型,根据统计类型在下面的表中选择统计方法。
分类变量连续变量
分类变量交叉表分析 卡方检验两样本T检验(二分类)方差分析(多分类)
连续变量两样本T检验(二分类)方差分析(多分类)相关分析
  • 步骤二:从python中找出相应的检验

2.两样本T检验(二分类)

2.1案例 - 客户收入是否对开卡有影响

import os
import pandas as pd

os.chdir(r'E:\脚本\6inference')
creditcard = pd.read_csv(r'creditcard_exp.csv',encoding='gbk')
creditcard

在这里插入图片描述
两样本T检验:给定一个分类变量,看连续变量的均值是否有差异

#一:收入描述统计
creditcard['Income'].groupby(creditcard['Acc']).describe()
#二:两样本T检验
from scipy import stats
Suc0 = creditcard[creditcard['Acc'] == 0]['Income']  #未开卡的人的收入
Suc1 = creditcard[creditcard['Acc'] == 1]['Income']  #开卡人的收入
stats.stats.ttest_ind(Suc0,Suc1,equal_var=False)

在这里插入图片描述

  • 方差齐次性检验:实战中一般不需要关心方差齐次性检验,不影响结论。
#第一步:方差齐次检验,看两组样本方差是否为齐性的
from scipy import stats
Suc0 = creditcard[creditcard['Acc'] == 0]['Income']  #未开卡的人的收入
Suc1 = creditcard[creditcard['Acc'] == 1]['Income']  #开卡人的收入
leveneTestRes = stats.levene(Suc0,Suc1,center='median')
print('a-value=%6.4f,p-value=%6.4f'%leveneTestRes)

Out[]:a-value=7.1829,p-value=0.0086

p值 < 显著度,方差不相等。

3.方差分析(分类变量+连续变量)

1、原假设:所有教育等级支出是一样的
备择假设:只要有两个教育等级的月均支出是有差异的
2、连续变量的变异
2.1 总变异: ∑ i = 1 n ( x i − x − ) 2 , x − 是 总 的 均 值 \sum_{i=1}^{n}(x_i - \overset{-}{x})^2,\overset{-}{x}是总的均值 i=1n(xix)2x
2.2 组内变异SSE:代表分组情况 ∑ i = 1 n ( x i − x − ) 2 , x − 是 各 自 组 内 的 均 值 \sum_{i=1}^{n}(x_i - \overset{-}{x})^2,\overset{-}{x}是各自组内的均值 i=1n(xix)2x
在这里插入图片描述
2.3 组间变异SSM:组的均值偏离总体的均值 ∑ i = 1 n m ∗ ( x 1 − − x 2 − ) 2 , 组 间 变 异 是 每 个 组 的 均 值 − 总 的 均 值 , m 是 各 组 的 样 本 数 \sum_{i=1}^{n}m*(\overset{-}{x_1}- \overset{-}{x_2})^2,组间变异是每个组的均值 - 总的均值,m是各组的样本数 i=1nm(x1x2)2,m
在这里插入图片描述
2.4 F ( S S M , S S E ) = M S M M S E F(SSM,SSE) = \frac{MS_M}{MS_E} F(SSM,SSE)=MSEMSM
M S M = S S M 分 组 数 量 MS_M = \frac{SSM}{分组数量} MSM=SSM
M S E = S S E n − 分 组 数 MS_E = \frac{SSE}{n - 分组数} MSE=nSSE
F越大,越偏向于正态分布函数。

3.1案例-看教育等级对月均支出是否有影响

import os
os.chdir(r"E:\脚本\6inference")
import pandas as pd

house_price_gr = pd.read_csv(r'house_price_gr.csv', encoding='gbk')
house_price_gr.head()

在这里插入图片描述

  • 检验教育等级对月均支出是否有作用
利用回归模型中的方差分析

import statsmodels.api as sm #方差分析
from statsmodels.formula.api import ols# 线性回归
sm.stats.anova_lm(ols('avg_exp ~ C(edu_class)',data=creditcard).fit())# 线性回归
# anova_lm :方差分析
# ols('avg_exp ~ C(edu_class)':ols(y~C(x)),若为分类变量则前面加上C,连续变量前面不变

在这里插入图片描述
p值很小,p值 < 0.05,所以接受备择假设:教育等级对月均支出是有明显的作用的。

4.相关分析(两连续变量关系检验)

判断两个变量之间是否有关系
- Pearson相关系数:判断线性关系 ρ = C o v ( X , Y ) D ( x ) D ( y ) ρ = \frac{Cov(X,Y)}{\sqrt{D(x)}\sqrt{D(y)}} ρ=D(x) D(y) Cov(X,Y)
- spearman相关系数:有关系但是没有拐点
- kendall相关系数:有关系且有拐点

  • 1 散点图:判断有无关系
#散点图:呈现线性关系且发散
creditcard.plot(x='Income', y='avg_exp', kind='scatter')

在这里插入图片描述

  • 2 散点图是发散的,代表其对应的直方图是右偏函数,所以对其取对数
#取对数后,不发散
creditcard.plot(x='Income', y='avg_exp_ln', kind='scatter')

在这里插入图片描述

  • 3 计算相关系数:相关系数的p值检验没有意义
    • |r|<0.3,两变量之间没有相关性
    • |r|>0.8,两变量高度相关
#pearson相关系数

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

在这里插入图片描述

5卡方检验(两分类变量关系)

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值