python假设检验和区间估计_推断统计分析(三):python实现假设检验

推断统计分析:

假设检验:通过正态分布、中值极限定理、参数估计等原理,推断样本与总体的差异

一、基础概念

进行假设检验之前,你必须先要了解一些假设检验的基础概念,比如:小概率事件、显著性水平、p-value等小概念。

另外,关于检验方式的选择、假设检验的步骤我也在这个导图中一并总结了。

image%2Feditor%2F76079630-c124-44cf-bd9f-a42fc3d3c06f.png

补充:什么是p-value?

p-value即为拒绝域,我们各种检验最终都是求拒绝域的大小,当拒绝域大于我们设置的阈值(显著性水平),那么置信水平就没有那么大了,那么就要放弃原假设,改而支持备择假设了。

image%2Feditor%2F9e862e0c-c220-4561-8371-466f3e8ba2ce.png

二、假设检验

看了上面基础理论知识,我们开始学习常见的这四种假设检验理论、应用场景以及python实现。

适用条件

1、总体呈正态分布

2、总体方差已知

4、样本容量较大(>=30)

数学公式

image%2Feditor%2F24fe4b05-f9b9-42f2-b52f-e695cbd83b79.png

python实现案例

案例:检验牛奶是否掺水

已知条件:纯牛奶密度mean, std = -0.545, 0.08

假设检验:

1、原假设:mean >= -0.545 (掺水了);备择假设:mean <= -0.545 (没掺水)

2、显著性水平:α = 0.05

3、符合正太分布、标准差已知–>选择单边Z检验;

import numpy as np

from scipy import stats

# 买了10瓶牛奶,密度如下

data = np.array([-0.547, -0.532, -0.548, -0.531, -0.535])

# 总体均值,标准差

mean, std = -0.545, 0.008

# 样本均值

sample_mean = data.mean()

# 样本容量

sample_len = len(data)

# 计算Z统计值

Z = (sample_mean - mean) / (std / np.sqrt(sample_len))

print('Z值为:', Z)

# 计算P值

P = stats.norm.cdf(Z) # 牛奶掺水的拒绝域是牛奶没掺水,所以拒绝域在左边,使用cdf

print('P-value值为:', P)

alpha = 0.05

if P >= alpha:

print('支持原假设:牛奶掺水了')

else:

print('支持备择假设:牛奶没掺水')

image%2Feditor%2F61b782de-65a5-4519-a0af-4defe6f36b9e.png

适用条件

1、样本容量>=30

2、np>=5 且 (1-np)>=5 (p为样本比率)

数学公式

image%2Feditor%2Fcf7683f3-ead0-4e25-a8b2-a2b3295c3263.png

python实现案例

案例:广告优化后是否达到月均点击率10%的目标

已知条件:是否达到10%,即总体比率为10%

假设检验:

1、原假设:比率>= 10% (完成目标了);备择假设:比率< 10% (未完成目标)

2、显著性水平:α = 0.05

3、检验方式:单边比率检验

import numpy as np

from scipy import stats

# 总体比率

ratio = 0.1

# 样本比率(访问量是500,点击量是45)和样本容量

sample_ratio = 45 / 500

sample_len = 500

Z = (sample_ratio - ratio) / np.sqrt(ratio * (1 - ratio) / sample_len)

print('Z值为:', Z)

P = stats.norm.cdf(Z)

print('P值为:', P)

alpha = 0.05

if P >= alpha:

print('支持原假设:完成目标了')

else:

print('支持被择假设,没有完成目标')

image%2Feditor%2Fca28669a-fb72-46a6-97a2-e57e3cc69f52.png

适用条件

1、总体呈正态分布

2、总体方差未知

3、样本容量较小(<30)

数学公式

image%2Feditor%2F78e2926b-2f5a-4cdc-897d-623a8ab019fc.png

python实现案例

案例:小刘是否完成月销售量50的任务目标

已知条件:目标均值50,即假设总体均值为50

假设检验:

1、原假设:mean >= 50 (完成了目标);备择假设:mean <= 50 (没完成目标)

2、显著性水平:alpha = 0.05

3、检验方式:符合正太分布、标准差未知–>单边T检验

import numpy as np

from scipy import stats

# 小刘最近一周的销售量如下

data = np.array([50, 48, 50, 47, 46, 48, 51])

# 总体均值

mean = 50

# 样本均值、标准差、容量

sample_mean = data.mean()

sample_std = data.std()

sample_len = len(data)

# T值

T = (sample_mean - mean) / (sample_std / np.sqrt(sample_len))

print('T值为:', T)

# P值

P = stats.t.cdf(T, df=sample_len-1) # 原假设是>(右边),所以拒绝域在左边,使用cdf

print('P值为:', P)

alpha = 0.05

if P >= alpha:

print('支持原假设:小刘完成了目标')

else:

print('支持备择假设:小刘未完成目标')

image%2Feditor%2F88eabc17-678a-465b-8226-e02692f93d34.png

适用条件

1、符合t分布的条件

2、两组数据分别是受试者在处理前与处理后的数据 或者 受试者经过两种不同方式处理方式,产生的数据

数学公式

image%2Feditor%2F727df51e-fb10-459e-8230-9e726f3fd07d.png

python实现案例

案例:10名员工减肥是否有效果

已知条件:是否显著是看与0的差距,即总体均值假设为0

image%2Feditor%2F1da9995e-b464-4b79-81f7-2a6ccf577e0f.png

假设检验:

1、原假设:mean(after-before) <= 0 (有效果:有效果是体重降低,所以小于0);备择假设:mean(after-before)> 0 (没效果)

2、显著性水平:alpha = 0.05

3、检验方式:两组数之差满足T检验要求–>单边配对T检验

import numpy as np

from scipy import stats

# 员工减肥前&后体重

train_before = np.array([98.8, 92.0, 94.9, 101.2, 99.3, 85.1, 94.8, 89.2, 89.5, 92.1])

train_after = np.array([88.4, 92.4, 90.3, 88.4, 89.3, 89.0, 92.5, 87.4, 88.9, 85.4])

# 总体均值

mean = 0

# 计算差值

data = train_after - train_before

# 差值样本的均值和标准差和容量

sample_mean = data.mean()

sample_std = data.std()

sample_len = len(data)

# T值

T = sample_mean / (sample_std / np.sqrt(sample_len))

print('T值为:', T)

# P值

P = stats.t.sf(T, df=sample_len-1) # 原假设是>(左边),所以拒绝域在右边,使用sf

print('P值为:', P)

alpha = 0.05

if P >= alpha:

print('支持原假设:减肥有效果')

else:

print('支持被择假设,减肥没有效果')

image%2Feditor%2F216e2884-5f45-4ee1-b648-acb9e404eb58.png

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值