10-SAS 两样本均数的比较分析

作者

Simon Zhou

发布于

2025年5月31日

修改于

2025年5月31日

代码
%load_ext saspy.sas_magic

1 两样本均数的比较的概述

两均数比较有三种情况: 样本均数和总体均数比较﹑配对设计资料两样本均数的比较和非配对设计资料的两样本均数比较。

  • 前两种比较除了可用 meansunivariate 过程完成外,还能用 ttest 过程完成;
  • 而后者一般可用 ttest 过程完成.
  • 置信区间估计和假设检验在原理上无根本区别,只是考虑问题的角度不同,故也可以利用置信区间估计得到假设检验的结论.
  • 单一总体均数的置信区间估计可运用 means 过程完成.
  • 两独立样本总体均数的置信区间估计可运用 ttest 过程完成.

1.1 什么是 t test

用于评估来自至多两个样本的变量的均值间差异的统计学手段。变量必须是可量化的, 比如身高,产量,体重变化等等指标。

t test反映了基于期望的显著性水平,你所观察到的差异是否 “显著”。t test使用t分布来评估期望变异程度。

如果你的样本数量大于30,那么假定样本符合正态分布,也就是 z-test 的检验模型。

2 单样本均数的 t 检验

例 5-1 某医生测量 30 例从事铅作业男性工人的血红蛋白含量( g/L),具体数值如下:

171 79 135 78 118 175 122 105 111 140
138 132 142 140 168 113 131 145 128 124
134 116 129 155 135 134 136 113 119 132

问这批工人的血红蛋白是否不同于正常成年男性平均数140g/L?

代码
%%SAS
data prg5_1;
    input x @@;
datalines;
171 79 135 78 118 175 122 105 111 140
138 132 142 140 168 113 131 145 128 124
134 116 129 155 135 134 136 113 119 132
;
run;
proc ttest h0=140;
var x;
run;
SAS 输出

SAS 系统

TTEST 过程

 

变量: x

数目 均值 标准差 标准误差 最小值 最大值
30 129.9 21.9481 4.0072 78.0000 175.0
均值 95% 置信均值 标准差 95% 置信限标准差
129.9 121.7 138.1 21.9481 17.4796 29.5052
自由度 t 值 Pr > |t|
29 -2.51 0.0178
“x”的汇总面板
“x”的 Q-Q 图

2.1 结果说明

  1. 第一部分结果显示了分析变量 x 的一些描述性统计量,包括例数(N),均数(Mean),标准差(Std Dev),标准误( Std Err),最小值( Minimum )和最大值(Maximum )。
  2. 第二部分结果显示了分析变量 x 置信区间的情况,包括均数(Mean)及其95%置信区间(95%CL Mean)、标准差(Std Dev)及其置信区间(95%CL Std Dev)。
  3. 第三部分结果显示了 t 检验的结果,内容包括自由度(DF)检验统计量t值(t Value)和该值所对应的概率值(Pr> |t|)。
  4. 本例 t 检验的检验统计量等于 -2.51 ,所对应的P值为 0.0178<0.05 ,说明该样本均数和总体均数的差异有统计学意义,即从事铅工作的男性工人血红蛋白的含量要低于正常成人。

3 配对资料两样本均数比较的t检验

当配对资料原始变量值是已知的,可用 means、univariate 和 ttest 过程完成t检验。

例5-2 为比较两种方法对乳酸饮料中脂肪含量测定结果是否不同,某人随机抽取了10份乳酸饮料制品,分别用哥特里-罗紫法和脂肪酸水解法测定,其结果见表5-1。问两法测定结果是否不同?

方法 1 2 3 4 5 6 7 8 9 10
哥特里-罗紫法 0.840 0.591 0.674 0.632 0.687 0.978 0.750 0.730 1.200 0.870
脂肪酸水解法 0.580 0.509 0.500 0.316 0.337 0.517 0.454 0.512 0.997 0.506

3.1 means 过程

代码
%%SAS
/* programme 5-2*/
data prg5_2;
    input x1 x2 @@;
    d = x1 - x2;
datalines;
0.840 0.580 0.591 0.509 0.674 0.500 0.632 0.316 0.687 0.337 
0.978 0.517 0.750 0.454 0.730 0.512 1.200 0.997 0.870 0.506
;
run;
proc means n mean std stderr t prt;
    var d;
run;
SAS 输出

SAS 系统

MEANS PROCEDURE

分析变量: d
数目 均值 标准差 标准误差 t 值 Pr > |t|
10 0.2724000 0.1086812 0.0343680 7.93 <.0001

3.2 univariate 过程

代码
%%SAS
/* programme 5-3*/
proc univariate data = prg5_2;
    var d;
run;
SAS 输出

SAS 系统

UNIVARIATE 过程

变量: d

数目 10 权重总和 10
均值 0.2724 观测总和 2.724
标准差 0.10868119 方差 0.0118116
偏度 -0.0337503 峰度 0.06565577
未校平方和 0.848322 校正平方和 0.1063044
变异系数 39.8976451 标准误差均值 0.03436801
基本统计测度
位置 变异性
均值 0.272400 标准差 0.10868
中位数 0.278000 方差 0.01181
众数 . 极差 0.37900
    四分位间距 0.14700
位置检验: Mu0=0
检验 统计量 p 值
Student t t 7.925976 Pr > |t| <.0001
符号 M 5 Pr >= |M| 0.0020
符号秩 S 27.5 Pr >= |S| 0.0020
分位数(定义 5)
水平 分位数
100% 最大值 0.4610
99% 0.4610
95% 0.4610
90% 0.4125
75% Q3 0.3500
50% 中位数 0.2780
25% Q1 0.2030
10% 0.1280
5% 0.0820
1% 0.0820
0% 最小值 0.0820
极值观测
最小值 最大值
观测 观测
0.082 2 0.296 7
0.174 3 0.316 4
0.203 9 0.350 5
0.218 8 0.364 10
0.260 1 0.461 6

3.3 ttest 过程

代码
%%SAS
/* programme 5-4*/
proc ttest data = prg5_2;
    var d;
run;
SAS 输出

SAS 系统

TTEST 过程

 

变量: d

数目 均值 标准差 标准误差 最小值 最大值
10 0.2724 0.1087 0.0344 0.0820 0.4610
均值 95% 置信均值 标准差 95% 置信限标准差
0.2724 0.1947 0.3501 0.1087 0.0748 0.1984
自由度 t 值 Pr > |t|
9 7.93 <.0001
“d”的汇总面板
“d”的 Q-Q 图

4 两样本均数比较的 t 检验

两样本均数比较的t检验—般用ttest过程。

例 5-3 欲考察牙周炎患者和正常人血清中肿瘤坏死因子-α(TNF-a,U/ml)平均含量是否不同。研究者随机选取了牙周炎患者和正常人各12例,所测定TNF-α的含量见表5-2。问牙周炎患者和正常人间血清中TNF-α平均含量是否不同。

分组 1 2 3 4 5 6
牙周炎患者 x₁ 9.71 10.58 11.00 7.10 7.55 8.65
(n₁ = 12) 8.87 9.02 9.88 8.68 10.52 11.02
正常人 x₂ 6.52 6.80 7.12 5.50 4.89 7.03
(n₂ = 12) 8.00 4.55 5.67 6.77 6.89 7.05
代码
%%SAS
/* programme 5-5*/
data prg5_3;
    input x num @@;
datalines;
9.71 1 10.58 1 11.00 1 7.10 1 7.55 1 8.65 1 
8.87 1 9.02 1 9.88 1 8.68 1 10.52 1 11.02 1 
6.52 2 6.80 2 7.12 2 5.50 2 4.89 2 7.03 2 
8.00 2 4.55 2 5.67 2 6.77 2 6.89 2 7.05 2
;
run;
proc ttest;
    var x;
    class num;
run;
SAS 输出

SAS 系统

TTEST 过程

 

变量: x

num 方法 数目 均值 标准差 标准误差 最小值 最大值
1   12 9.3817 1.2924 0.3731 7.1000 11.0200
2   12 6.3992 1.0222 0.2951 4.5500 8.0000
差 (1-2) 汇总   2.9825 1.1652 0.4757    
差 (1-2) Satterthwaite   2.9825   0.4757    
num 方法 均值 95% 置信均值 标准差 95% 置信限标准差
1   9.3817 8.5605 10.2028 1.2924 0.9155 2.1943
2   6.3992 5.7497 7.0487 1.0222 0.7241 1.7356
差 (1-2) 汇总 2.9825 1.9960 3.9690 1.1652 0.9011 1.6491
差 (1-2) Satterthwaite 2.9825 1.9930 3.9720      
方法 方差 自由度 t 值 Pr > |t|
汇总 等于 22 6.27 <.0001
Satterthwaite 不等于 20.892 6.27 <.0001
方差齐性
方法 分子自由度 分母自由度 F 值 Pr > F
折叠的 F 11 11 1.60 0.4491
“x”的汇总面板
“x”的 Q-Q 图

4.1 结果说明

  1. 第一部分是两个组的一些简单描述性统计量,包括每组的例数、均数、标准差、标准误、最小值和最大值,以及两组均数差值的均数、标准差和标准误。
  2. 第二部分是两组的均数和标准差及其置信区间,还分别用两种方法( Pooled 法和 Satterthwaite 法)计算的两组均数差值及其95%置信区间,以及用Pooled 方法计算两组标准差的差值及其95%置信区间。
  3. 第三部分是 t 检验的结果,该结果包括方差齐性和方差不齐两种情况下的结果。由于本例两组方差齐性(见第四部分说明),故在考察t检验的结果时,应选择方差齐性条件下( method 为 Pooled)的检验结果,本例为检验统计量 t=6.27,所对应的 P<0.000 1 ,可以认为两样本均数的差异有统计学意义,可认为牙周炎患者与正常人血清中TNF-α平均含量不同。
  4. 第四部分方差齐性检验的结果。本例方差齐性检验的检验统计量 F=1.60 ,其对应的 P=0.449 1 ,可以认为两方差是齐性的。

5 ttest 过程常用选项和语句

运用 ttest 过程进行 t 检验时,可根据需求增加一些选项或语句,使得到的结果更加符合用户的要求。

5.1 ttest过程的基本格式

proc ttest <选项>;
    BOOTSTRAP </ options>;
    class 变量名;
    by 变量名1 <变量名2>...;
    var 变量名1 <变量名2>...<选项>;
    paired 变量名 <变量名2>...;
    freq 变量名;
    weight 变量名;
run;

5.2 ttest过程的常用选项

  1. alpha=value 选项将设置一个为 0~1 之间的任意值作为概率值( value ),也可用于指定统计量置信区间的置信水平,默认值为0.05。当此选项设置为0~1区间之外的值时,SAS将提示出错。
  2. CI = type 指定标准差的置信区间的类型,EQUAL(默认)为 equal-tailed 的置信区间,UMPU 为基于一致最优无偏检验的置信区间,NONE 不输出置信区间;
  3. SIDES = type 指定单侧、双侧检验,默认 type=2 为双侧检验,L 为左侧检验,U 右侧检验;
  4. cochran 选项用于指定在方差不齐情况下进行近似 t 检验时,使用 Cochran-Cox 近似法计算近似 t 统计量对应的概率值。

5.3 ttest过程的常用语句

  1. class 语句用于指定分组变量,该变量的取值将决定样本的分组情况。该语句后面只能跟一个变量名,且该变量必须是分类变量。
  2. by 语句用于按照某个变量的不同取值,分别进行 ttest 过程分析。
  3. paired 语句用于指定配对 t 检验中要进行比较的变量对。组成变量对的变量或变量列表之间可用 *: 连接。仅在配对 t 检验时使用,不能和 class 语句同时使用,数据格式为将要检验的变量对分成两列(即设置为两个变量)。对于每一个变量对, ttest 过程用 *: 左侧的变量减去右侧的变量,将所得的差值当做新的变量,执行单组样本均数比较的 t 检验。
  4. var 语句用于指定要进行 t 检验的变量,该语句后面可以跟一个或多个变量名,且这些变量必须是连续变量。
  5. freq 语句用于指定频数变量,该变量的值将作为每个观测值的权重,即每个观测值的频数。该语句后面只能跟一个变量名,且该变量必须是整数型。
  6. weight 语句用于指定权重变量,该变量的值将作为每个观测值的权重,即每个观测值的权重。该语句后面只能跟一个变量名,且该变量必须是连续型。

5.4 ttest 绘图

PROC TTEST DATA = DATASET PLOTS = (绘图类型);

可选的绘图类型:

  • ALLNONE: 绘制全部图形或不绘制任何图形;
  • BOXPLOT: 箱型图;
  • HISTOGRAM: 直方图(包括正态分布、核密度线);
  • INTERVALPLOT: 均值的置信区间的图形;
  • QQPLOT: QQ图;
  • SUMMARYPLOT: 在一张图中绘制直方图和盒形图;
  • AGREEMENTPLOT: AGREEMENT图;
  • PROFILESPLOT: PROFILESPLOT图.

注意:TTEST 过程步都默认绘制 QQ 图和 SUMMARYPLOT 图,配对 T 检验还默认绘制 AGREEMENTPLOT 图和 PROFILESPLOT 图。 另外,指定绘制图形类型之后,那些默认图仍然会绘制,除非加上( ONLY ):

PROC TTEST data = 数据集 PLOTS(ONLY) = (绘图类型);
RUN;
代码
%%SAS
/*test programme only plot*/
proc ttest data = prg5_2 plots(only) = boxplot;
    var d;
run;
SAS 输出

SAS 系统

TTEST 过程

 

变量: d

数目 均值 标准差 标准误差 最小值 最大值
10 0.2724 0.1087 0.0344 0.0820 0.4610
均值 95% 置信均值 标准差 95% 置信限标准差
0.2724 0.1947 0.3501 0.1087 0.0748 0.1984
自由度 t 值 Pr > |t|
9 7.93 <.0001
“d”的盒形图
代码
%%SAS
/*test programme multiple plots*/
PROC TTEST data = prg5_2 PLOTS = (BOXPLOT HISTOGRAM QQPLOT);
   var d;
RUN;
SAS 输出

SAS 系统

TTEST 过程

 

变量: d

数目 均值 标准差 标准误差 最小值 最大值
10 0.2724 0.1087 0.0344 0.0820 0.4610
均值 95% 置信均值 标准差 95% 置信限标准差
0.2724 0.1947 0.3501 0.1087 0.0748 0.1984
自由度 t 值 Pr > |t|
9 7.93 <.0001
“d”的汇总面板
“d”的直方图和密度
“d”的盒形图
“d”的 Q-Q 图