Stata软件基本操作和数据分析入门第四讲 两组计量资料平均水平的统计检验一、配对设计的平均水平检验统计方法选择原则:
如果配对的差值服从近似正态分布(小样本)或大样本,则用配对t检验小样本的情况下,配对差值呈明显偏态分布,则用配对秩符号检验(matched-pairs signed-ranks test)。
例1 10例男性矽肺患者经克矽平治疗,其血红蛋白(g/dL)如下:
表 10例男性矽肺患者血红蛋白值(g/dL)
病例号
1
2
3
4
5
6
7
8
9
10
治疗前
11.3
15.0
15.0
13.5
12.8
10.0
11.0
12.0
13.0
12.3
治疗后
14.0
13.8
14.0
13.5
13.5
12.0
14.7
11.4
13.8
12.0
问:治疗前后的血红蛋白的平均水平有没有改变这是一个典型的前后配对设计的研究(但不提倡,因为对结果的解释可能会有问题)
Stata数据输入结构
X1
X2
11.3
14
15
13.8
15
14
13.5
13.5
12.8
13.5
10
12
11
14.7
12
11.4
13
13.8
12.3
12
操作如下:
gen d=x1-x2 产生配对差值的变量d
swilk d 正态性检验正态性检验结果如下:
,sktest d
Skewness/Kurtosis tests for Normality
------- joint ------
Variable | Pr(Skewness) Pr(Kurtosis) adj chi2(2) Prob>chi2
-------------+-------------------------------------------------------
d | 0.279 0.774 1.43 0.4885
正态性检验的无效假设为:资料正态分布相应的备选假设为:资料非正态分布
(=0.05,由于正态性检验的P值=0.40189>>(,故可以认为资料近似服从正态分布。
ttest d=0 配对t检验,H0:(d=0 vs H1:(d(0,(=0.05
结果如下:
One-sample t test
------------------------------------------------------------------------------
Variable | Obs Mean Std,Err,Std,Dev,[95% Conf,Interval]
---------+--------------------------------------------------------------------
d | 10 -.6799999,5204272 1.645735 -1.857288,4972881
------------------------------------------------------------------------------
Degrees of freedom,9
Ho,mean(d) = 0
Ha,mean < 0 Ha,mean ~= 0 Ha,mean > 0
t = -1.3066 t = -1.3066 t = -1.3066
P < t = 0.1119 P > |t| = 0.2237 P > t = 0.8881
P值=0.2237>(,故认为治疗前后的血红蛋白的平均数差异没有统计学意义。即:没有足够的证据可以认为治疗前后的血红蛋白的总体平均数不同。
如果已知差值的样本量,样本均数和样本标准差,可以用立即命令如下(如,已知样本量为10,差值的样本均数为-0.66,差值的标准差为1.65,则输入命令如下:
ttesti 样本量 样本均数 样本标准差 0
本例为,ttesti 10 -0.66 1.65 0
得到下列结果如下:
,ttesti 10,66 1.65 0
One-sample t test
------------------------------------------------------------------------------
| Obs Mean Std,Err,Std,Dev,[95% Conf,Interval]
---------+--------------------------------------------------------------------
x | 10,66,5217758 1.65 -.5203389 1.840339
------------------------------------------------------------------------------
Degrees of freedom,9
Ho,mean(x) = 0
Ha,mean < 0 Ha,mean ~= 0 Ha,mean > 0
t = 1.2649 t = 1.2649 t = 1.2649
P < t = 0.8812 P > |t| = 0.2377 P > t = 0.1188
结果解释与结论同上述相同。
如果对于小样本的情况下,差值不满足正态分布,则用Match-Sign-rank test,操作如下:
signrank 差值变量名=0
假如本例不满足正态分布(为了借用上例资料,而假定的,实际上本例满足正态分布)则
H0:差值的中位数=0
(其意义是治疗前的血红蛋白配大于治疗后的血红蛋白的概率=治疗前的血红蛋白小于治疗后的血红蛋白的概率)
H1:差值的中位数(0
(=0.05
本例为 signrank d=0
Wilcoxon signed-rank test
sign | obs sum ranks expected
-------------+---------------------------------
positive | 4 18 27
negative | 5 36 27
zero | 1 1 1
-------------+---------------------------------
all | 10 55 55
unadjusted variance 96.25
adjustment for ties 0.00
adjustment for zeros -0.25
----------
adjusted variance 96.00
Ho,d = 0
z = -0.919
Prob > |z| = 0.3583
P值=0.3583>>(,故没有足够的证据说明两个总体不同。
二、平行对照设计的两组资料平均水平统计检验统计方法选择原则:
如果两组资料的方差齐性和相互独立的,并且每组资料服从正态分布(大样本资料可以忽略正态性问题),则用成组t检验,否则可以用成组Wilcoxon秩和检验。
例2 为研究噪声对纺织女工子代智能是否有影响,一研究人员在某纺织厂随机抽取接触噪声95dB(A)、接触工龄5年以上的纺织女工及同一单位、条件与接触组相近但不接触噪声的女职工,其子女(学前幼儿)作为研究对象,按韦氏学前儿童智力量表(中国修订版)测定两组幼儿智商,结果如下。问噪声对纺织女工子代智能有无影响?(接触组group=0,不接触组group=1)
资料及其结果如下:
group
x
0
79
0
93
0
91
0
92
0
94
0
77
0
93
0
74
0
91
0
101
0
83
0
73
0
88
0
102
0
90
0
100
0
81
0
91
0
83
0
106
0
84
0
78
0
87
0
95
0
101
1
101
1
100
1
114
1
86
1
106
1
107
1
107
1
94
1
89
1
104
1
98
1
110
1
89
1
103
1
89
1
121
1
94
1
95
1
92
1
109
1
98
1
98
1
120
1
104
1
110
方差齐性检验
H0:(1=(2 vs H1:(1((2
(=0.1
两组方差齐性的检验命令(仅适合两组方差齐性检验)
sdtest x,by(group)
Variance ratio test
------------------------------------------------------------------------------
Group | Obs Mean Std,Err,Std,Dev,[95% Conf,Interval]
---------+--------------------------------------------------------------------
0 | 25 89.08 1.822928 9.11464 85.31766 92.84234
1 | 25 101.52 1.900982 9.504911 97.59657 105.4434
---------+--------------------------------------------------------------------
combined | 50 95.3 1.577456 11.1543 92.12998 98.47002
------------------------------------------------------------------------------
Ho,sd(0) = sd(1)
F(24,24) observed = F_obs = 0.920
F(24,24) lower tail = F_L = F_obs = 0.920
F(24,24) upper tail = F_U = 1/F_obs = 1.087
Ha,sd(0) < sd(1) Ha,sd(0) ~= sd(1) Ha,sd(0) > sd(1)
P < F_obs = 0.4195 P < F_L + P > F_U = 0.8389 P > F_obs = 0.5805
P值=0.8389>>(,因此可以认为两组方差齐性的。
正态性检验:H0:资料服从正态分布 vs H1:资料偏态分布
(=0.05
每一组资料正态性检验
,swilk x if group==1
Shapiro-Wilk W test for normal data
Variable | Obs W V z Prob>z
-------------+-------------------------------------------------
x | 25 0.97403 0.722 -0.667 0.74747
,swilk x if group==0
Shapiro-Wilk W test for normal data
Variable | Obs W V z Prob>z
-------------+-------------------------------------------------
x | 25 0.97199 0.778 -0.513 0.69588
P值均大于(,因此可以认为两组资料都服从正态分布
H0:(1=(2 vs H1:(1((2
(=0.05
ttest x,by(group)
Two-sample t test with equal variances
------------------------------------------------------------------------------
Group | Obs Mean Std,Err,Std,Dev,[95% Conf,Interval]
---------+--------------------------------------------------------------------
0 | 25 89.08 1.822928 9.11464 85.31766 92.84234
1 | 25 101.52 1.900982 9.504911 97.59657 105.4434
---------+--------------------------------------------------------------------
combined | 50 95.3 1.577456 11.1543 92.12998 98.47002
---------+--------------------------------------------------------------------
diff | -12.44 2.633781 -17.73557 -7.144429
------------------------------------------------------------------------------
Degrees of freedom,48
Ho,mean(0) - mean(1) = diff = 0
Ha,diff < 0 Ha,diff ~= 0 Ha,diff > 0
t = -4.7232 t = -4.7232 t = -4.7232
P < t = 0.0000 P > |t| = 0.0000 P > t = 1.0000
P值(<0.0001)<(,并且有(0-(1的95%可信区间为(-17.73557,-7.144429)可以知道,不接触组幼儿的平均智商高于接触组的幼儿平均智商,并且差别有统计学意义。
如果已知两组的样本量、样本均数和样本标准差,也可以用立即命令进行统计检验
ttesti 样本量1 样本均数1 样本标准差1 样本量2 样本均数2 样本标准差2
例如:本例第1组n1=25 均数1=89.08 标准差1=9.115
第2组 n2=25 均数2=101.52 标准差2=9.505
则ttesti 25 89.08 9.115 25 101.52 9.505
Two-sample t test with equal variances
------------------------------------------------------------------------------
| Obs Mean Std,Err,Std,Dev,[95% Conf,Interval]
---------+--------------------------------------------------------------------
x | 25 89.08 1.823 9.115 85.31751 92.84249
y | 25 101.52 1.901 9.505 97.59653 105.4435
---------+--------------------------------------------------------------------
combined | 50 95.3 1.577482 11.15448 92.12993 98.47007
---------+--------------------------------------------------------------------
diff | -12.44 2.633843 -17.7357 -7.144303
------------------------------------------------------------------------------
Degrees of freedom,48
Ho,mean(x) - mean(y) = diff = 0
Ha,diff < 0 Ha,diff ~= 0 Ha,diff > 0
t = -4.7231 t = -4.7231 t = -4.7231
P < t = 0.0000 P > |t| = 0.0000 P > t = 1.0000
结果解释同上。
方差不齐的情况,(小样本时,资料正态分布)还可以用t’检验命令:ttest 观察变量名,by(分组变量名) unequal
立即命令为 ttesti 样本量1 均数1 标准差1 样本量2 均数2 标准差2,unequal
假定本例的资料方差不齐(实际为方差不齐的),则要用t’检验如下
ttest x,by(group) unequal
Two-sample t test with unequal variances
------------------------------------------------------------------------------
Group | Obs Mean Std,Err,Std,Dev,[95% Conf,Interval]
---------+--------------------------------------------------------------------
0 | 25 89.08 1.822928 9.11464 85.31766 92.84234
1 | 25 101.52 1.900982 9.504911 97.59657 105.4434
---------+--------------------------------------------------------------------
combined | 50 95.3 1.577456 11.1543 92.12998 98.47002
---------+--------------------------------------------------------------------
diff | -12.44 2.633781 -17.73581 -7.144189
------------------------------------------------------------------------------
Satterthwaite's degrees of freedom,47.9159
Ho,mean(0) - mean(1) = diff = 0
Ha,diff < 0 Ha,diff ~= 0 Ha,diff > 0
t = -4.7232 t = -4.7232 t = -4.7232
P < t = 0.0000 P > |t| = 0.0000 P > t = 1.0000
结果解释同上。
t’检验有许多方法,这里介绍的Satterthwaite方法,主要根据两个样本方差差异的程度校正相应的自由度,由于本例的两个样本方差比较接近,故自由度几乎没有减少(t检验的自由度为48,而本例t’自由度为47.9159)。由于t检验要求的两组总体方差相同(称为方差齐性),以及由于抽样误差的原因,样本方差一般不会相等,但是方差齐性的情况下,样本方差表现为两个样本方差之比(1。(注意:两个样本方差之差很小,仍可能方差不齐。如:第一个样本标准差为0.1,样本量为100,第2个样本标准差为0.01,样本量为100,两个样本标准差仅差0.09,但是两个样本方差之比为100。故用方差齐性检验的结果如下:
方差齐性的立即命令为 sdtesti 样本量1,标准差1 样本量2,标准差2
sdtesti 100,0.1 100,0.01
Variance ratio test
-----------------------------------------------------------------------------
| Obs Mean Std,Err,Std,Dev,[95% Conf,Interval]
---------+-------------------------------------------------------------------
x | 100,,01,1,,
y | 100,,001,01,,
---------+-------------------------------------------------------------------
combined | 200,,,,,
-----------------------------------------------------------------------------
Ho,sd(x) = sd(y)
F(99,99) observed = F_obs = 100.000
F(99,99) lower tail = F_L = 1/F_obs = 0.010
F(99,99) upper tail = F_U = F_obs = 100.000
Ha,sd(x) < sd(y) Ha,sd(x) ~= sd(y) Ha,sd(x) > sd(y)
P < F_obs = 1.0000 P < F_L + P > F_U = 0.0000 P > F_obs = 0.0000
P值<0.0001,因此认为两组的方差不齐。故方差齐性是考察两个样本方差之比是否接近1。
如果本例的资料不满足t检验要求(注:实际是满足的,只是想用本例介绍成组秩和检验),则用秩和检验(Wilcoxon Ranksum test)。
H0:两组资料所在总体相同
H1:两组资料所在总体不同
(=0.05
命令:ranksum 观察变量名,by(分组变量)
本例为 ranksum x,by(group)
,ranksum x,by(group)
Two-sample Wilcoxon rank-sum (Mann-Whitney) test
group | obs rank sum expected
-------------+---------------------------------
0 | 25 437 637.5
1 | 25 838 637.5
-------------+---------------------------------
combined | 50 1275 1275
unadjusted variance 2656.25
adjustment for ties -3.70
----------
adjusted variance 2652.55
Ho,x(group==0) = x(group==1)
z = -3.893
Prob > |z| = 0.0001
P值<0.0001<(,故认为两个总体不同
练习题一,某地随机抽样调查了部分健康成人红细胞数和血红蛋白量,结果如下,请就此资料统计分析:
指标
性别
例数
均数
标准差
标准值
红细胞数(1012/L)
男
360
4.66
0.58
4.84
女
255
4.18
0.29
4.33
血红蛋白(g/L)
男
360
134.50
7.10
140.20
女
255
117.60
10.20
124.70
该地健康成年男女血红蛋白含量有无差别?
该地男女两项血液指标是否均低于上表的标准值(若测定方法相同)?
二,为了解聋哑学生学习成绩与血清锌含量的关系,某人按年龄、性别和班级在聋哑学校随机抽取成绩优、差的14对学生进行配对研究,得其结果如下。问聋哑学生学习成绩与血清锌含量有无关系?
表 14对学生的血清锌含量(μg/mL)
编号
优生组
差生组
编号
优生组
差生组
1
1.20
1.31
8
0.80
0.86
2
0.99
1.34
9
0.84
0.72
3
1.03
1.10
10
0.85
0.88
4
0.90
0.72
11
1.05
0.81
5
1.22
0.92
12
1.08
1.30
6
0.90
1.34
13
1.15
0.85
7
0.97
0.98
14
0.90
0.80
教学应用:考察影响t检验结果的各种因素首先把程序ttest2.ado和程序ttestexp.ado复制到stata所在的目录下\ado\base(例如:Stata软件安装在D:\stata,则把这两个程序复制到d:\stata\ado\base目录下。然后输入连接命令:在STATA环境下,输入 net set ado 路径\stata\ado\base。(路径表示Stata所在的盘符和目录)
程序ttest2.ado是模拟在正态总体中随机抽10000个样本,每个样本有2组,两组的样本量、正态分布的总体均数和标准差由读者选择输入,考察(=0.05的情况下,考察当两个总体均数相同时拒绝H0的比例(拒绝的频率估计第一类错误)是否接近0.05和当两个总体均数不同时接受H0的比例(估计发生第二类错误的概率)。
运行ttest2.ado的输入命令为:
ttest2 样本量1 均数1 标准差1 样本量2 均数2 标准差2
例如:考察两组样本量均为30,总体均数均为100,标准差均为6的拒绝H0((1=(2)比例,结果如下:
,ttest2 30 100 6 30 100 6
两样本t检验模拟程序输入 样本量1 均数1 标准差1 样本量2 均数2 标准差2
sig | Freq,Percent Cum.
------------+-----------------------------------
receive | 9506 95.06 95.06
refuse | 494 4.94 100.00
------------+-----------------------------------
Total | 10000 100.00
Variable | Obs Mean Std,Dev,Min Max
-------------+-----------------------------------------------------
average1 | 10000 99.99388 1.083106 95.77671 104.2778
sd1 | 10000 5.942067,7764423 3.245709 8.692573
average2 | 10000 99.99675 1.086406 95.91508 103.8237
sd2 | 10000 5.949536,7776711 3.276635 9.546211
t | 10000 -.003644 1.0035 -4.32787 3.602131
-- Binom,Interp,--
Variable | Obs Percentile Centile [95% Conf,Interval]
-------------+-----------------------------------------------------------
t | 10000 2.5 -2.001922 -2.077161 -1.955956
| 50 -.0115932 -.0389369,0137221
| 97.5 1.992317 1.933308 2.033179
average1 | 10000 2.5 97.85904 97.79236 97.93009
| 50 99.98936 99.96717 100.0172
| 97.5 102.1116 102.0614 102.1734
average2 | 10000 2.5 97.86119 97.80749 97.91781
| 50 99.9868 99.96412 100.0107
| 97.5 102.1835 102.1131 102.2403
在随机抽10000个样本中,计算了10000个t值,结果有494次拒绝H0((1=(2),因此非常接近(=0.05。
建议读者运行程序ttest2考察下列情况目的1:(1((2时,不同的样本量,考察下列不同情况下的接受H0的比例(估计()以及两组样本量之比不同的情况对检验结果的影响。
两组的总体标准差(=2
(1=100
(2=99
(1=100
(2=98
(1=100
(2=97
n1:n2
10:10
10:10
10:10
n1:n2
20:20
30:30
20:20
n1:n2
30:30
10:50
30:30
n1:n2
40:40
40:40
40:40
n1:n2
30:50
30:50
30:50
n1:n2
20:60
20:60
20:60
n1:n2
10:70
10:70
10:70
目的2:考察方差不齐对t检验(不是t’检验)结果的影响
(1=100
(2=100
(1=100
(2=98
(1=100
(2=97
(1=1
(2=9
(1=9
(2=1
(1=5
(2=5
n1:n2
40:10
40:10
40:10
n1:n2
10:40
10:40
10:40
n1:n2
60:30
60:30
60:30
n1:n2
30:60
30:60
30:60
n1:n2
30:30
30:30
30:30
n1:n2
40:40
40:40
40:40
n1:n2
40:40
40:40
40:40
目的3:通过运行程序ttestexp.ado,考察资料非正态分布对结果的影响。
程序ttestexp.ado是模拟在指数分布总体中随机抽10000个样本,每个样本有2组,两组的样本量和总体均数由读者选择输入,考察(=0.05的情况下,考察当两个总体均数相同时拒绝H0的比例(拒绝的频率估计第一类错误)是否接近0.05和当两个总体均数不同时接受H0的比例(估计发生第二类错误的概率)。
运行ttestexp.ado的输入命令为:
ttestexp 样本量1 均数1 样本量2 均数2
例如:考察两组样本量均为10,总体均数均为1的拒绝H0((1=(2)的比例,结果如下:
,ttestexp 5 1 5 1
指数分布输入 样本量1 均数1 样本量2 均数2
Variable | Obs Mean Std,Dev,Min Max
-------------+-----------------------------------------------------
average1 | 10000,9942006,444696,1223783 3.46752
sd1 | 10000,8637844,5004927,0310705 4.281092
average2 | 10000 1.007233,4560518,0613991 3.577513
sd2 | 10000,8707893,5053219,0353676 4.620248
t | 10000 -.0177069 1.115122 -5.645559 6.235384
sig | Freq,Percent Cum.
------------+-----------------------------------
receive | 9630 96.30 96.30
refuse | 370 3.70 100.00
------------+-----------------------------------
Total | 10000 100.00
-- Binom,Interp,--
Variable | Obs Percentile Centile [95% Conf,Interval]
-------------+-------------------------------------------------------------
t | 10000 2.5 -2.169495 -2.23945 -2.096289
| 50,0088744 -.0182028,0357137
| 97.5 2.089225 2.030593 2.155895
average1 | 10000 2.5,3240474,3139804,3349038
| 50,9310558,9198599,9414931
| 97.5 2.041828 2.010877 2.081691
average2 | 10000 2.5,3262316,3131719,3370006
| 50,9381162,9254703,9481275
| 97.5 2.092387 2.0545 2.14614
拒绝H0((1=(2)的比例为3.7%,离开(=0.05,较远。考察下列样本量情况与偏态分布造成的影响之间的关系。
n1:n2
n1:n2
n1:n2
n1:n2
n1:n2
(1=1,(2=1
5:5
10:10
30:30
20:40
60:60
(1=1.5,(2=1
5:5
10:10
30:30
20:40
60:60
(1=2,(2=1
5:5
10:10
30:30
20:40
60:60
您能从上述模拟结果可以得到下列结论
1)当(1((2时且方差齐性的正态分布情况下,n1=n2时,拒绝H0的比例比较高,可以证明t检验中,两组样本量为n1和n2,则其检验效能等价于每组样本量相同n=。特别当两组样本量之比为n:kn时,则样本量等价于,也就是说,如果一组的样本量为10,另一组的样本量再大,其检验效能也不会超过两组样本量相同且为20的统计检验效能。
2)当方差不齐时,且(1=(2,拒绝H0的比例偏离(,但是n1=n2时,方差不齐对结果的影响将下降。
3)资料偏态分布,则小样本时,偏态分布对结果有影响,大样本时,偏态分布对结果基本无影响。