【统计检验】T检验
统计检验必学T检验三种类型公式推导Python代码机器学习实战T检验是统计学、数据分析、机器学习中最常用、最基础的均值检验方法专门用来判断两组数据的均值是否存在显著差异。一、T检验到底是什么一句话看懂T检验 小样本、总体标准差未知时比较“均值是否有显著差异”的统计检验它要回答的核心问题两组数据的均值不一样是真的有差别还是只是随机误差适用场景样本量n 30小样本总体标准差未知数据近似服从正态分布只比较均值不比较方差二、T检验的三种核心类型必考必用T检验一共只有3种对应3种不同业务场景一定要分清1. 单样本 T 检验用途一组样本 和 已知总体均值 比较例子某班平均分是否显著不等于全校平均分公式tX‾−μ0s/n t \frac{\overline{X} - \mu_0}{s/\sqrt{n}}ts/nX−μ02. 独立样本 T 检验用途两组完全独立的样本比较例子男生成绩 vs 女生成绩新方法 vs 旧方法公式tX‾1−X‾2Sp1n11n2 t \frac{\overline{X}_1 - \overline{X}_2}{S_p \sqrt{\frac{1}{n_1}\frac{1}{n_2}}}tSpn11n21X1−X2合并方差Sp(n1−1)s12(n2−1)s22n1n2−2 S_p\sqrt{\frac{(n_1-1)s_1^2(n_2-1)s_2^2}{n_1n_2-2}}Spn1n2−2(n1−1)s12(n2−1)s223. 配对样本 T 检验用途同一组对象前后两次测量比较例子减肥前体重 vs 减肥后体重训练前成绩 vs 训练后成绩思路先算差值再对差值做单样本T检验三、T分布是什么和正态分布有什么区别T分布是小样本下的正态分布形状由自由度 df决定T分布特点对称、钟形和正态分布很像自由度越小尾部越厚更能容忍小样本波动自由度越大越接近标准正态分布自由度公式单样本dfn−1df n-1dfn−1独立样本dfn1n2−2df n_1n_2-2dfn1n2−2四、Python 代码1T分布与正态分布对比可视化importnumpyasnpimportscipy.statsasstatsimportmatplotlib.pyplotasplt# 生成x轴数据xnp.linspace(-5,5,100)# 计算不同分布的密度t2stats.t.pdf(x,df2)t10stats.t.pdf(x,df10)normstats.norm.pdf(x)# 绘图plt.figure(figsize(8,5))plt.plot(x,t2,labelt-distribution df2,cred)plt.plot(x,t10,labelt-distribution df10,cblue)plt.plot(x,norm,labelNormal,cgreen,linestyle--)plt.title(T分布 vs 正态分布)plt.xlabel(x)plt.ylabel(Density)plt.legend()plt.grid(alpha0.3)plt.show()五、Python 代码2独立样本T检验最常用模拟两组成绩判断是否有显著差异importnumpyasnpimportscipy.statsasstatsimportseabornassnsimportmatplotlib.pyplotasplt# 生成数据np.random.seed(0)group1np.random.normal(60,10,30)# 方法Agroup2np.random.normal(65,12,30)# 方法B# 独立样本T检验t_stat,p_valuestats.ttest_ind(group1,group2)print(fT 统计量:{t_stat:.4f})print(fP 值:{p_value:.4f})# 分布对比图plt.figure(figsize(8,5))sns.histplot(group1,colorblue,kdeTrue,labelGroup1,statdensity,bins10)sns.histplot(group2,colorred,kdeTrue,labelGroup2,statdensity,bins10)plt.title(两组数据分布对比)plt.legend()plt.show()结果怎么看p 0.05差异显著拒绝原假设p ≥ 0.05差异不显著不能拒绝原假设六、Python 代码3机器学习中的应用——特征选择T检验及其等价的F检验是分类任务特征筛选神器判断特征在不同类别间是否有显著差异。fromsklearn.datasetsimportload_irisfromsklearn.feature_selectionimportf_classiffromsklearn.linear_modelimportLogisticRegressionfromsklearn.model_selectionimporttrain_test_splitfromsklearn.metricsimportaccuracy_score# 数据集dataload_iris()X,ydata.data,data.target# 方差分析F检验等价于多分类T检验f_vals,p_valsf_classif(X,y)print(特征F值,f_vals.round(2))print(特征P值,p_vals.round(4))# 筛选显著特征p0.05X_selectedX[:,p_vals0.05]# 建模X_train,X_test,y_train,y_testtrain_test_split(X_selected,y,test_size0.3,random_state42)modelLogisticRegression()model.fit(X_train,y_train)accaccuracy_score(y_test,model.predict(X_test))print(f筛选后特征数{X_selected.shape[1]})print(f模型准确率{acc:.4f})七、T检验使用步骤万能流程明确问题单样本/独立样本/配对样本检验正态性T检验要求数据近似正态计算 t 统计量查看 p 值下结论p 0.05 → 差异显著p ≥ 0.05 → 差异不显著八、超清晰总结背诵版T检验 小样本、方差未知时的均值检验三种类型单样本、独立样本、配对样本T分布自由度越小越扁尾越大越接近正态看 p 值判断显著性p 0.05 显著机器学习用途特征选择筛选显著差异特征
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2425928.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!