2026a

# ttest2


双样本 t 检验

函数库: TyStatistics

# 语法

h,p,ci,stats = ttest2(x,y)

h,p,ci,stats = ttest2(x,y;alpha=0.05,tail="both",dim=Int[],vartype="equal")

# 说明

h,p,ci,stats = ttest2(x,y) 使用双样本 t 检验返回原假设的检验决策,该原假设假定向量 x 和 y 中的数据来自均值相等、方差相同但未知的正态分布的独立随机样本。备择假设是 x 和 y 中的数据来自均值不相等的总体。如果检验在 5% 的显著性水平上拒绝原假设,则结果 h 为 1.0,否则为 0.0。还返回检验的 p 值 p,x 的均值的置信区间 ci,以及包含检验统计量信息的结构体 stats。示例

h,p,ci,stats = ttest2(x,y;alpha=0.05,tail="both",dim=Int[] ,vartype="equal") 返回针对双样本 t 的检验决策,该检验使用由一个或多个名称-值对组参数指定的附加选项。例如,您可以更改显著性水平或进行无需假设方差齐性的检验。示例

# 示例

等均值的双样本 t 检验

加载样本数据。

using TyStatistics
x = [65,61,81,88,69,89,55,84,86,84,71,81,84,81,78,67,96,66,73,75,59,71,69,63,79,76,63,85,87,88,80,71,65,84,71,75,81,79,64,65,84,77,70,75,84,75,73,92,90,79,80,71,73,71,58,79,73,64,77,82,81,59,54,82,57,79,79,73,74,82,63,64,73,69,87,68,81,73,83,73,80,73,73,71,66,78,64,74,68,67,75,75,80,85,74,76,80,77,93,70,86,80,81,83,68,60,85,64,74,82,81,77,66,85,75,81,69,60,83,72];
y = [77,74,80,76,77,93,64,83,75,82,70,88,78,77,66,74,87,69,75,68,64,71,68,75,83,80,67,78,84,91,76,73,67,89,67,75,72,69,71,72,72,81,77,71,77,77,67,75,83,74,74,81,67,69,63,73,77,79,86,73,84,71,67,84,71,78,68,68,77,84,70,69,81,81,77,66,76,75,83,77,78,77,74,72,68,75,78,71,74,70,88,70,74,76,71,79,62,77,80,71,72,79,76,77,71,64,74,63,68,78,69,73,79,76,84,89,63,69,79,83];

检验原假设,即两个数据样本来自均值相等的总体。

h,p,ci,stats = ttest2(x,y)
h = 0.0

p = 0.9866518469825236

ci = 2-element Vector{Float64}:
 -1.9437717803952947
  1.9771051137286546

stats = TyStatistics.Ttest2
  tstat: Float64 0.016747797178430834
  df: Int64 238
  sd: Float64 7.708443295453089

返回值 h = 0.0 表明 ttest2 在默认的 5% 显著性水平上未拒绝原假设。

不假设方差齐性的等均值的 t 检验

加载样本数据。

using TyStatistics
x = [65,61,81,88,69,89,55,84,86,84,71,81,84,81,78,67,96,66,73,75,59,71,69,63,79,76,63,85,87,88,80,71,65,84,71,75,81,79,64,65,84,77,70,75,84,75,73,92,90,79,80,71,73,71,58,79,73,64,77,82,81,59,54,82,57,79,79,73,74,82,63,64,73,69,87,68,81,73,83,73,80,73,73,71,66,78,64,74,68,67,75,75,80,85,74,76,80,77,93,70,86,80,81,83,68,60,85,64,74,82,81,77,66,85,75,81,69,60,83,72];
y = [77,74,80,76,77,93,64,83,75,82,70,88,78,77,66,74,87,69,75,68,64,71,68,75,83,80,67,78,84,91,76,73,67,89,67,75,72,69,71,72,72,81,77,71,77,77,67,75,83,74,74,81,67,69,63,73,77,79,86,73,84,71,67,84,71,78,68,68,77,84,70,69,81,81,77,66,76,75,83,77,78,77,74,72,68,75,78,71,74,70,88,70,74,76,71,79,62,77,80,71,72,79,76,77,71,64,74,63,68,78,69,73,79,76,84,89,63,69,79,83];

检验原假设,即两个数据向量来自均值相等的总体,而不假设总体还具有方差齐性。

h,p, = ttest2(x,y; vartype="unequal")
h = 0.0    

p = 0.9866529443077211

返回值 h = 0.0 表明 ttest2 在默认的 5% 显著性水平上未拒绝原假设,即使没有假设方差齐性也是如此。

# 输入参数

x — 样本数据
向量 | 矩阵 | 多维数组

样本数据,指定为向量、矩阵或多维数组。ttest2 将 NaN 值视为缺失数据,并忽略它们。

  • 如果 x 和 y 指定为向量,则它们不需要长度相同。
  • 如果将 x 和 y 指定为矩阵,则它们必须具有相同的列数。ttest2 对每列执行单独的 t 检验并返回结果向量。
  • 如果将 x 和 y 指定为多维数组,则除了第一个非单一维度外,其他维度必须具有相同的大小。

数据类型: Float32 |Float64 |Int8 |Int16 |Int32 |Int64 |Int128 |UInt8 |UInt16 |UInt32 |UInt64 |UInt128 |Bool

y — 样本数据
向量 | 矩阵 | 多维数组

样本数据,指定为向量、矩阵或多维数组。ttest2 将 NaN 值视为缺失数据,并忽略它们。

  • 如果 x 和 y 指定为向量,则它们不需要长度相同。
  • 如果将 x 和 y 指定为矩阵,则它们必须具有相同的列数。ttest2 对每列执行单独的 t 检验并返回结果向量。
  • 如果将 x 和 y 指定为多维数组,则除了第一个非单一维度外,其他维度必须具有相同的大小。ttest2 基于第一个非单一维度进行检验。

数据类型: Float32 |Float64 |Int8 |Int16 |Int32 |Int64 |Int128 |UInt8 |UInt16 |UInt32 |UInt64 |UInt128 |Bool

# 键-值参数

将可选的参数对组指定为 Key1=Value1,...,KeyN=ValueN,其中 Key 是参数名称,Value 是对应的值。键-值参数必须出现在其他参数后,但参数对组的顺序无关紧要。

示例: tail = "right",alpha = 0.01,vartype = "unequal" 指定在 1% 显著性水平上的右尾检验,并且不假设 x 和 y 具有相等的总体方差。,

alpha — 显著性水平
0.05 (默认) | 范围 (0,1) 内的标量值

假设检验的显著性水平,指定为以等号连接的对组,其中包含 alpha 和范围 (0,1) 内的一个标量值。

示例: alpha = 0.01

数据类型: Float32 |Float64 |Int8 |Int16 |Int32 |Int64 |Int128 |UInt8 |UInt16 |UInt32 |UInt64 |UInt128

dim — 维度
第一个非单一维度 (默认) | 正整数值

用于检验均值的输入矩阵的维度,指定为以等号连接的对组,其中包含 dim 和一个正整数值。例如,指定 dim = 1 检验列均值,而 dim = 2 检验行均值。

示例: dim = 2

数据类型: Int8 |Int16 |Int32 |Int64 |Int128 |UInt8 |UInt16 |UInt32 |UInt64 |UInt128

tail — 备择假设的类型
"both" (默认) | "right" | "left"

要计算的备择假设的类型,指定为以等号连接的对组,其中包含 tail 和以下项之一:

  • "both" - 检验总体均值不相等的备择假设。

  • "right" - 检验 x 的总体均值大于 y 的总体均值的备择假设。

  • "left" - 检验 x 的总体均值小于 y 的总体均值。

ttest2 根据指定的备择假设检验总体均值相等的原假设。

示例: tail = "right"

vartype — 方差的类型
"equal" (默认) | "unequal"

方差类型,指定为以等号连接的对组,其中包含 vartype 和以下项之一。

类型 说明
"equal" 假设 xy 来自方差未知但具有齐性的正态分布,并对此假设进行检验。
"unequal" 假设 x 和 y 来自方差未知且不具有齐性的正态分布,并对此假设进行检验。这称为 Behrens-Fisher 问题。ttest2 使用 Satterthwaite 逼近计算有效自由度。

vartype 必须为单一方差类型,即使 x 是矩阵或多维数组也是如此。

示例: vartype = "unequal"

# 输出参数

h — 假设检验结果
1.0 | 0.0

假设检验结果,返回为 1.0 或 0.0。

  • 如果 h = 1.0,这表明在 alpha 显著性水平上拒绝原假设。

  • 如果 h = 0.0,这表明未能在 alpha 显著性水平上拒绝原假设。

p — p 值
范围 [0,1] 内的标量值

检验的 p 值,以 [0,1] 范围内的标量值形式返回。p 是观测到的检验统计量与原假设下观测到的值一样极端或更极端的概率。p 值较小会让人对原假设的有效性产生怀疑。

ci — 置信区间
向量

xy 的总体均值差的置信区间,,以二元素向量形式返回,其中包含 100 × (1 – alpha)% 置信区间的上下边界。

stats — 检验统计量
结构体

双样本 t 检验的检验统计量,以包含以下内容的结构体形式返回:

  • tstat - 检验统计量的值。

  • df - 检验的自由度。

  • sd - 总体标准差的合并估计(方差具有齐性时),或包含总体标准差的非合并估计的向量(方差具有非齐性时)。

# 详细信息

双样本 t 检验

单样本 t 检验是当总体标准差未知时位置参数的参数化检验。

检验统计量的计算公式为:

其中 是样本均值, 是样本标准差,n 和 m 是样本大小。

在假设两个数据样本来自具有方差齐性的总体的情况下,原假设下的检验统计量具有自由度为 n + m – 2 的 Student t 分布,样本标准差被替换为池化标准差

在不假设两个数据样本来自具有方差齐性的总体的情况下,原假设下的检验统计量具有近似 Student t 分布,其自由度的数目由 Satterthwaite 逼近给出。此检验有时称为 Welch t 检验。

多维数组

多维数组有两个以上的维度。例如,如果 x 是 1×3×4 数组,则 x 是三维数组。

第一个非单一维度

第一个非单一维度是其大小不等于 1 的数组的第一个维度。例如,如果 x 是 1×2×3×4 数组,则第二个维度是 x 的第一个非单一维度。

# 另请参阅

ttest | ztest