 京公网安备 11010802034615号
			经营许可证编号:京B2-20210330
 京公网安备 11010802034615号
			经营许可证编号:京B2-20210330
		数据分析之独立样本的T-Test分析
比较两个独立样本数据之间是否有显著性差异,将实验数据与标准数据对比,查看
实验结果是否符合预期。T-Test在生物数据分析,实验数据效果验证中很常见的数
据处理方法。- T-table查找表
独立样本T-test条件:
1. 每个样本相互独立没有影响
2. 样本大致符合正态分布曲线
3. 具有同方差异性
单侧检验(one-tail Test)与双侧检验(Two-Tail Test)
	
 
基本步骤:
1.双侧检验, 条件声明 alpha值设置为0.05
根据t-table, alpha = 0.05, df = 38时, 对于t-table的值为2.0244
	
 
2. 计算自由度(Degree of Freedom)
Df = (样本1的总数 + 样本2的总数)- 2
3. 声明决策规则
如果计算出来的结果t-value的结果大于2.0244或者小于-2.0244则拒绝
4. 计算T-test统计值
	
 
5. 得出结论
如果计算结果在双侧区间之内,说明两组样本之间没有显著差异。
可重复样本的T-Test计算
同样一组数据在不同的条件下得到结果进行比对,发现是否有显著性差异,最常见
的对一个人在饮酒与不饮酒条件下驾驶车辆测试,很容易得出酒精对驾驶员有显著
影响
算法实现:
对独立样本的T-Test计算最重要的是计算各自的方差与自由度df1与df2
	
 
对可重复样本的对比t-test计算
	
 
程序实现:
| 
							1
						 
							2
						 
							3
						 
							4
						 
							5
						 
							6
						 
							7
						 
							8
						 
							9
						 
							10
						 
							11
						 
							12
						 
							13
						 
							14
						 
							15
						 
							16
						 
							17
						 
							18
						 
							19
						 
							20
						 
							21
						 
							22
						 
							23
						 
							24
						 
							25
						 
							26
						 
							27
						 
							28
						 
							29
						 
							30
						 
							31
						 
							32
						 
							33
						 
							34
						 
							35
						 
							36
						 
							37
						 
							38
						 
							39
						 
							40
						 
							41
						 
							42
						 
							43
						 
							44
						 
							45
						 
							46
						 
							47
						 
							48
						 
							49
						 
							50
						 
							51
						 
							52
						 
							53
						 
							54
						 
							55
						 
							56
						 
							57
						 
							58
						 
							59
						 
							60
						 
							61
						 
							62
						 
							63
						 
							64
						 
							65
						 
							66
						 
							67
						 
							68
						 
							69
						 
							70
						 
							71
						 
							72
						 
							73
						 
							74
						 
							75
						 
							76
						 
							77
						 
							78
						 
							79
						 
							80
						 
							81
						 
							82
						 
							83
						 
							84
						 
							85
						 
							86
						 
							87
						 
							88
						 
							89
						 
							90
						 
							91
						 
							92
						 
							93
						 
							94
						 
							95
						 
							96
						 
							97
						 
							98
						 
							99
						 
							100
						 
							101
						 
							102
						 
							103
						 
							104
						 
							105
						 
							106
						 
							107
						 
							108
						 
							109
						 
							110
						 
							111
						 
							112
						 
							113
						 
							114
						 
							115
						 | 
								package com.gloomyfish.data.mining.analysis;
							 
								public class TTestAnalysisAlg {
							 
								    private double alpahValue = 0.05; // default
							 
								    private boolean dependency = false; // default
							 
								    public TTestAnalysisAlg() {
							 
								        System.out.println("t-test algorithm");
							 
								    }
							 
								    public double getAlpahValue() {
							 
								        return alpahValue;
							 
								    }
							 
								    public void setAlpahValue(double alpahValue) {
							 
								        this.alpahValue = alpahValue;
							 
								    }
							 
								    public boolean isDependency() {
							 
								        return dependency;
							 
								    }
							 
								    public void setDependency(boolean dependency) {
							 
								        this.dependency = dependency;
							 
								    }
							 
								    public double analysis(double[] data1, double[] data2) {
							 
								        double tValue = 0;
							 
								        if (dependency) {
							 
								            // Repeated Measures T-test.
							 
								            // Uses the same sample of subjects measured on two different
							 
								            // occasions
							 
								            double diffSum = 0.0;
							 
								            double diffMean = 0.0;
							 
								            int size = Math.min(data1.length, data2.length);
							 
								            double[] diff = new double[size];
							 
								            for(int i=0; i 
									            {
								 
									                diff[i] = data2[i] -data1[i];
								 
									                diffSum += data2[i] -data1[i];
								 
									            }
								 
									            diffMean = diffSum / size;
								 
									            diffSum = 0.0;
								 
									            for(int i=0; i 
										            {
									 
										                diffSum += Math.pow((diff[i] -diffMean), 2);
									 
										            }
									 
										            double diffSD = Math.sqrt(diffSum / (size - 1.0));
									 
										            double diffSE = diffSD / Math.sqrt(size);
									 
										            tValue = diffMean / diffSE;
									 
										        } else {
									 
										            double means1 = 0;
									 
										            double means2 = 0;
									 
										            double sum1 = 0;
									 
										            double sum2 = 0;
									 
										            // calcuate means
									 
										            for (int i = 0; i < data1.length; i++) {
									 
										                sum1 += data1[i];
									 
										            }
									 
										            for (int i = 0; i < data2.length; i++) {
									 
										                sum2 += data2[i];
									 
										            }
									 
										            means1 = sum1 / data1.length;
									 
										            means2 = sum2 / data2.length;
									 
										            // calculate SD (Standard Deviation)
									 
										            sum1 = 0.0;
									 
										            sum2 = 0.0;
									 
										            for (int i = 0; i < data1.length; i++) {
									 
										                sum1 += Math.pow((means1 - data1[i]), 2);
									 
										            }
									 
										            for (int i = 0; i < data2.length; i++) {
									 
										                sum2 += Math.pow((means2 - data2[i]), 2);
									 
										            }
									 
										            double sd1 = Math.sqrt(sum1 / (data1.length - 1.0));
									 
										            double sd2 = Math.sqrt(sum2 / (data2.length - 1.0));
									 
										            // calculate SE (Standard Error)
									 
										            double se1 = sd1 / Math.sqrt(data1.length);
									 
										            double se2 = sd2 / Math.sqrt(data2.length);
									 
										            System.out.println("Data Sample one - > Means :" + means1
									 
										                    + " SD : " + sd1 + " SE : " + se1);
									 
										            System.out.println("Data Sample two - > Means :" + means2
									 
										                    + " SD : " + sd2 + " SE : " + se2);
									 | 
 
                  数据分析咨询请扫描二维码
若不方便扫码,搜微信号:CDAshujufenxi
在 MySQL 数据查询中,“按顺序计数” 是高频需求 —— 例如 “统计近 7 天每日订单量”“按用户 ID 顺序展示消费记录”“按产品 ...
2025-10-31在数据分析中,“累计百分比” 是衡量 “部分与整体关系” 的核心指标 —— 它通过 “逐步累加的占比”,直观呈现数据的分布特征 ...
2025-10-31在 CDA(Certified Data Analyst)数据分析师的工作中,“二分类预测” 是高频需求 —— 例如 “预测用户是否会流失”“判断客户 ...
2025-10-31在 MySQL 实际应用中,“频繁写入同一表” 是常见场景 —— 如实时日志存储(用户操作日志、系统运行日志)、高频交易记录(支付 ...
2025-10-30为帮助教育工作者、研究者科学分析 “班级规模” 与 “平均成绩” 的关联关系,我将从相关系数的核心定义与类型切入,详解 “数 ...
2025-10-30对 CDA(Certified Data Analyst)数据分析师而言,“相关系数” 不是简单的数字计算,而是 “从业务问题出发,量化变量间关联强 ...
2025-10-30在构建前向神经网络(Feedforward Neural Network,简称 FNN)时,“隐藏层数目设多少?每个隐藏层该放多少个神经元?” 是每个 ...
2025-10-29这个问题切中了 Excel 用户的常见困惑 —— 将 “数据可视化工具” 与 “数据挖掘算法” 的功能边界混淆。核心结论是:Excel 透 ...
2025-10-29在 CDA(Certified Data Analyst)数据分析师的工作中,“多组数据差异验证” 是高频需求 —— 例如 “3 家门店的销售额是否有显 ...
2025-10-29在数据分析中,“正态分布” 是许多统计方法(如 t 检验、方差分析、线性回归)的核心假设 —— 数据符合正态分布时,统计检验的 ...
2025-10-28箱线图(Box Plot)作为展示数据分布的核心统计图表,能直观呈现数据的中位数、四分位数、离散程度与异常值,是质量控制、实验分 ...
2025-10-28在 CDA(Certified Data Analyst)数据分析师的工作中,“分类变量关联分析” 是高频需求 —— 例如 “用户性别是否影响支付方式 ...
2025-10-28在数据可视化领域,单一图表往往难以承载多维度信息 —— 力导向图擅长展现节点间的关联结构与空间分布,却无法直观呈现 “流量 ...
2025-10-27这个问题问到了 Tableau 中两个核心行级函数的经典组合,理解它能帮你快速实现 “相对位置占比” 的分析需求。“index ()/size ( ...
2025-10-27对 CDA(Certified Data Analyst)数据分析师而言,“假设检验” 绝非 “套用统计公式的机械操作”,而是 “将模糊的业务猜想转 ...
2025-10-27在数字化运营中,“凭感觉做决策” 早已成为过去式 —— 运营指标作为业务增长的 “晴雨表” 与 “导航仪”,直接决定了运营动作 ...
2025-10-24在卷积神经网络(CNN)的训练中,“卷积层(Conv)后是否添加归一化(如 BN、LN)和激活函数(如 ReLU、GELU)” 是每个开发者都 ...
2025-10-24在数据决策链条中,“统计分析” 是挖掘数据规律的核心,“可视化” 是呈现规律的桥梁 ——CDA(Certified Data Analyst)数据分 ...
2025-10-24在 “神经网络与卡尔曼滤波融合” 的理论基础上,Python 凭借其丰富的科学计算库(NumPy、FilterPy)、深度学习框架(PyTorch、T ...
2025-10-23在工业控制、自动驾驶、机器人导航、气象预测等领域,“状态估计” 是核心任务 —— 即从含噪声的观测数据中,精准推断系统的真 ...
2025-10-23