T检验
# [T 检验:](https://www.jianshu.com/p/5f377d43f8ef)
T检验是用于两个样本(或样本与群体)平均值差异程度的检验方法。它是用T分布理论来推断差异发生的概率,从而**判定两个平均数的差异是否显著**。
---
**T检验的适用条件:**
- 计量资料
- **小样本(<30)**(大样本需要用Z检验)
- 独立性、正态性或近似正态[为什么t检验要满足正态?](https://www.zhihu.com/question/397871872/answer/1250883065)、方差齐性(两小样本所对应的两总体方差相等,**一般用F检验**)
- 当样本例数较小时,要求样本取自正态总体;
>为什么小样本用T检验?从抽样研究所得的样本均数特点来看,只要样本量>60,(无论总体是否服从正态分布)抽样研究的样本均数服从或者近似服从正态分布;而如果样本量较小(参考样本量<100),抽样分布随着样本量的减小,与正态分布的差别越来越大。此时需要用小样本理论来解释样本均数的分布——而t分布就是小样本理论的代表。因此,小样本的检验需要用到T检验。
**T检验的用途**:
(1)样本均数与群体均数的比较看差异是否显著;
(2)两样本均数的比较看差异是否显著。
T 检验,有三种常用场景:
>1. **单一样本T检验**
>2. **配对样本T检验**
>3. **两样本T检验**
## 2.1 单一样本T检验:<font color=Blue>检验单样本的均值是否和已知总体的均值差异是否显著</font>
**应用场景举例:**
- 从某厂生产的零件中随机抽取若干件,检验其某种规格的均值是否与要求的规格相等(双侧检验)
- 在某偏远地区随机抽取若干健康男子,检验其脉搏均数是否高于全体健康男子平均水平(单侧检验)
- 检验某一线城市全体高三学生视力水平是否比全国全体高三学生视力水平低(单侧检验)
>其应用条件需要满足:**计量资料、小样本、正态分布**
>
>两小样本比较时还要求方差齐性,但因单样本t检验中不存在两个小样本,故无法检验方差齐性。
```python
#scipy.stats.ttest_1samp()检验数据总体的平均数是否可能等于给定值
# (严格来说是否观察值来自于给定总体平均数的正态分布)
#它返回一个T统计值以及p值
import scipy.stats
t, pval = scipy.stats.ttest_1samp(iris['petal_legth'], popmean=4.0)
print(t, pval)
# P=0.0959 > 5%, 接受原假设,即花瓣长度为4.0。
```
>**单侧检验与双侧检验**
• 在进行t检验时,如果其目的在于检验两个总体均数是否相等,即为双侧检验。 例如检验某种新降压药与常用降压药效力是否相同?就是说,新药效力可能比旧药好,也可能比旧药差,或者力相同,都有可能。
• 如果我们已知新药效力不可能低于旧药效力,例如磺胺药+磺胺增效剂从理论上推知其效果不可能低于单用磺胺药,这时,无效假设为H0:μ1=μ2, 备择假设为H1: μ1>μ2 , 统计上称为单侧检验。
>**详细见《深入浅出统计学》**
## 2.2 配对样本T检验:<font color=Blue>比较样本某个状况前后均值的对比有无差异</font>
**应用场景举例:**
- 例如,现在有10个糖尿病的病人,给他们都用同种控制糖尿病的药物,看看这组病人在用药前和用药后有无差异
- 配对的受试对象分别接受不同的处理(如将小白鼠配对为两组,分别接受不同的处理,检验处理结果的差异)
- 同一受试对象的自身前后对照(如检验癌症患者术前、术后的某种指标的差异
注:每个病人用药前后各自配对成一对,所以叫配对样本
>其应用条件需要满足:**计量资料、配对设计、小样本、正态分布**
```python
from scipy.stats import ttest_rel
import pandas as pd
x = [20.5, 18.8, 19.8, 20.9, 21.5, 19.5, 21.0, 21.2]
y = [17.7, 20.3, 20.0, 18.8, 19.0, 20.1, 20.0, 19.1]
# 配对样本T检验
print(ttest_rel(x, y))
# Ttest_relResult(statistic=1.8001958337730648, pvalue=0.1148515300576627)
# 结论: 因为p值=0.1149>0.05, 故接受原假设, 认为在70℃时的平均断裂强力与80℃时的平均断裂强力间无显著差别
```
## 2.3 两样本T检验(独立样本t检验):<font color=Blue>比较两组样本均值有无差异</font>
例如,现在有10男一组,10女一组,看看这不同性别的身高有无差异
>其应用条件需要满足:**计量资料、小样本、正态性之外,还需要方差齐性**
>做 T 检验之前,需要进行方差齐次性的验证,因 T 检验是基于正态总体之上的,正态总体的分布服从N(μ,σ^2),即标准差和均值定了,那分布也就确定了。
>
>**标准差确定了离散程度**,**均值确定了集中趋势**,离散程度定了,比较集中趋势是否一致,就能比较两个总体的差异程度。[为何T检验中要用到方差齐性检验? - 辛巴的回答 - 知乎 ](https://www.zhihu.com/question/28371660/answer/1166055330)
所以,在做 T 检验之前,需要做方差齐次性检验,一般用F检验,后面有机会会讲,如果方差非齐次性,则用Welch - t检验
```python
#取两个样本
iris_1 = iris[iris.petal_legth >= 2]
iris_2 = iris[iris.petal_legth < 2]
print(np.mean(iris_1['petal_legth']))
print(np.mean(iris_2['petal_legth']))
'''
H0: 两种鸢尾花花瓣长度一样
H1: 两种鸢尾花花瓣长度不一样
'''
import scipy.stats
t, pval = scipy.stats.ttest_ind(iris_1['petal_legth'],iris_2['petal_legth'])
print(t,pval)
'''
p<0.05,拒绝H0,认为两种鸢尾花花瓣长度不一样
'''
```
![5.png](https://cos.easydoc.net/17082933/files/kf9f7kda.png)
>**延伸:** 单样本T检验是一组数据跟一个数比较差异,是没办法计算出两个方差是否齐性的,配对样本T检验的两组样本数据本身即是来自同一总体,所以不用检验方差齐性。
> **延伸**:当方差不齐时,用近似T检验,具体见[python中的T检验](https://blog.csdn.net/yuqiuwang929/article/details/103821349)
**T检验的步骤**
T检验的步骤也是三板斧:a.建立假设;b.验证检验;c.接受/拒绝假设
> **[使用python进行AB测试/两独立样本t检验](https://zhuanlan.zhihu.com/p/137764490)**
文章这里它用样本总体近似正态分布来断言可用t检验,这里存疑。
转载:
[https://blog.csdn.net/qq_39306047/article/details/91397814](https://blog.csdn.net/qq_39306047/article/details/91397814)
[https://www.zhihu.com/topic/19622729/hot](https://www.zhihu.com/topic/19622729/hot)