特征筛选第一步:T检验

本文介绍了如何使用Python库pandas和scipy.stats对两组数据(如阴性和阳性组)进行T检验,包括数据类型转换、方差齐性检测(Levene检验),以及在方差不齐时应用Welchs检验,以确定不同特征间的显著性差异。
摘要由CSDN通过智能技术生成
import pandas as pd
from scipy.stats import ttest_ind, levene

# 读取数据
xlsx_a = r'C:\Users\lyp\Desktop\tedata\data_a.xlsx'# 分别是阴性组
xlsx_b = r'C:\Users\lyp\Desktop\tedata\data_b.xlsx'# 阳性组
data_a = pd.read_excel(xlsx_a)
data_b = pd.read_excel(xlsx_b)

# 数据类型转换:将数据转换为数值类型
data_a = data_a.apply(pd.to_numeric, errors='coerce')
data_b = data_b.apply(pd.to_numeric, errors='coerce')

print(data_a.shape, data_b.shape)

# T检验
index = []
for colName in data_a.columns:  # 遍历所有特征
    if levene(data_a[colName], data_b[colName])[1] > 0.05:  # 如果P > 0.05说明有方差齐性
        if ttest_ind(data_a[colName], data_b[colName])[1] < 0.05:# 则进行t检验
            index.append(colName)  # 独立样本 T 检验结果具有显著性差异的加入 index 列表
    else:  # 如果不具有方差齐性,equal_var=False,执行Welch’s 检验
        if ttest_ind(data_a[colName], data_b[colName], equal_var=False)[1] < 0.05:
            index.append(colName)

print(len(index))
print(index)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值