特征筛选利器:详解T-test(T检验)原理、参数分析、单\双尾检验选择

本文深入解析T-Test的概念,包括T值的计算公式、单双尾检验的选择、同方差与异方差的T-Test应用,以及如何利用T-Test进行特征筛选。同时,介绍了配对样本T检验的适用场景,并提供了R语言实战案例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

统计学nb。当笔者使用SPSS,或者调用很多sk-learn函数包时,常常会用并不是最难的,会选择包,会阅读结果,会得出统计学答案才是最难的。

T-Value

T-value 就是组间差异与组内差异的比值。
t = X ˉ A − X ˉ B S E ( X ˉ A − X ˉ B ) t=\frac{\bar{X}_{A}-\bar{X}_{B}}{S E\left(\bar{X}_{A}-\bar{X}_{B}\right)} t=SE(XˉAXˉB)XˉAXˉB
其中SE指Standard Error。

单样本T值

对于单样本来说
t = m − μ s / n t=\frac{m-\mu}{s / \sqrt{n}} t=s/n mμ
其中m为样本均值, μ \mu μ为理论均值,s是样本标准差,n是样本量。

阈值和结果阅读

如果第一组均值大于第二组均值,则t值将为正;如果较小,则t值将为负。
一旦T值确定,则必须在阅读t检验表(见附录)

α \alpha α选定0.05,自由度dF:
d f = n − 1 df=n-1 df=n1

T-test解释

t检验评估两组的均值是否在统计学上彼此不同。每当您想比较两组均值时,此分析都是合适的,尤其适合作为posttest-only two-group randomized experimental design.
在这里插入图片描述
但上图仅仅是一个理想分布,实际情况中,由于结果的可变范围不同,在相同的均值差下,可能看起来会有几乎完全不同的效果,如下图:
在这里插入图片描述

当我们查看两组分数之间的差异时,我们必须判断其均值相对于分数分布或变异性的差异。T检验就是这样做的。
在这里插入图片描述

T-Test单双尾检验选择

t -test 首先要服从正态分布,如果不服从正态分布,可以使用非参数检验
在这里插入图片描述

附录:T-test表

在这里插入图片描述
表格来源:http://www.sthda.com/english/wiki/t-distribution-table

扩展阅读

同方差(pooled variances)t-test

t = m A − m B S 2 n A + S 2 n B t=\frac{m_{A}-m_{B}}{\sqrt{\frac{S^{2}}{n_{A}}+\frac{S^{2}}{n_{B}}}} t=nAS2+nBS2 mAmB
其中
S 2 = ∑ ( x − m A ) 2 + ∑ ( x − m B ) 2 n A + n B − 2 S^{2}=\frac{\sum\left(x-m_{A}\right)^{2}+\sum\left(x-m_{B}\right)^{2}}{n_{A}+n_{B}-2} S2=nA+nB2(xmA)2+(xmB)2

异方差(separate variance)t-test

t = m A − m B s A 2 n A + S B 2 n B t=\frac{m_{A}-m_{B}}{\sqrt{\frac{s_{A}^{2}}{n_{A}}+\frac{S_{B}^{2}}{n_{B}}}} t=nAsA2+nBSB2 mAmB
其中
在这里插入图片描述

配对样本 T 检验(paired t-test)

如果对相同的人或事,有两个测量值(before/after)选择配对 T 检验。

要比较配对样本的均值,首先要计算出所有配对的差值 d。

在这里插入图片描述
m:d 的平均值;

s:d 的标准差;

n:d 的数量。

自由度: d f = n d − 1 df=n_{d}-1 df=nd1

机器学习中使用T-Test做特征筛选

机器学习中有三种特征筛选方法:

  • Filter approach和“任务”无关
  • Wrapper approach用predictor来评估参数,和任务有关
  • Embedding approach用predictor来构建一个模型,之后用模型来选择,Lasso也属于这里

使用T-test做二分类问题的参数选择如下图:右侧是比较好的特征
在这里插入图片描述

T-Test的R语言实战

https://zhuanlan.zhihu.com/p/38243421

参考文献

https://www.statisticshowto.datasciencecentral.com/probability-and-statistics/t-test/
http://www.sthda.com/english/wiki/t-test-formula
https://socialresearchmethods.net/kb/statistical-student-t-test/

在Python中执行样本双尾t检验(one-sample two-tailed t-test)的具体步骤如下: 1. **导入必要的库**:首先需要导入进行t检验所需的库,通常是`scipy`库中的`stats`模块。 2. **准备数据**:准备要进行t检验的数据集。 3. **定义假设**:定义原假设(null hypothesis)和备择假设(alternative hypothesis)。对于双尾t检验,原假设通常为样本均值等于某个特定值,备择假设为样本均值不等于该值。 4. **执行t检验**:使用`scipy.stats.ttest_1samp`函数进行样本t检验。 5. **解释结果**:根据p值和显著性水平(通常为0.05)来判断是否拒绝原假设。 以下是一个具体的代码示例: ```python import numpy as np from scipy import stats # 准备数据 data = [12, 15, 14, 10, 13, 15, 16, 14, 13, 12] # 定义假设 # 原假设:样本均值等于14 # 备择假设:样本均值不等于14 null_hypothesis_mean = 14 # 执行样本双尾t检验 t_statistic, p_value = stats.ttest_1samp(data, null_hypothesis_mean) # 输出结果 print(f"t-statistic: {t_statistic}") print(f"p-value: {p_value}") # 判断是否拒绝原假设 alpha = 0.05 if p_value < alpha: print("拒绝原假设:样本均值与假设均值有显著差异") else: print("无法拒绝原假设:样本均值与假设均值无显著差异") ``` 在这个示例中,我们首先导入了`numpy`和`scipy.stats`库,然后准备了数据并定义了原假设和备择假设。接着,我们使用`stats.ttest_1samp`函数执行样本双尾t检验,并输出t统计量和p值。最后,根据p值和显著性水平判断是否拒绝原假设。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值