07-t检验(t-test)

作者

Simon Zhou

发布于

2025年5月5日

代码
import stata_setup
stata_setup.config('C:/Program Files/Stata18', 'mp', splash=False)

0.1 数据导入

代码
%%stata
webuse auto.dta, clear
(1978 automobile data)

1 单样本 t 检验(one-sample t-test)

交互页面的操作更为简单和直观,直接选择数据集和变量即可。

当然通过代码也可以实现相同的功能,但是相对而言更考验用户的代码功底、统计知识储备和对数据的理解。

代码
%%stata
ttest price == 6000

One-sample t test
------------------------------------------------------------------------------
Variable |     Obs        Mean    Std. err.   Std. dev.   [95% conf. interval]
---------+--------------------------------------------------------------------
   price |      74    6165.257    342.8719    2949.496    5481.914      6848.6
------------------------------------------------------------------------------
    mean = mean(price)                                            t =   0.4820
H0: mean = 6000                                  Degrees of freedom =       73

   Ha: mean < 6000             Ha: mean != 6000               Ha: mean > 6000
 Pr(T < t) = 0.6844         Pr(|T| > |t|) = 0.6313          Pr(T > t) = 0.3156

语法:

ttest varname == # [if] [in] [,level(#)] [by(varname)]
  • varname:要进行 t 检验的变量名
  • #:要进行 t 检验的值
  • if:条件语句,表示只对满足条件的观测进行 t 检验
  • in:表示只对数据集中的某些观测进行 t 检验
  • level(#):置信水平,默认值为 95%,可以设置 # 为 90%、95% 或 99%
  • by:分组变量,表示对不同组进行 t 检验

1.1 独立样本 t 检验 (two-samples t-test)

语法:

ttest varname, by(groupvar) [if] [in] [,level(#)]
代码
%%stata
ttest price, by(foreign)

Two-sample t test with equal variances
------------------------------------------------------------------------------
   Group |     Obs        Mean    Std. err.   Std. dev.   [95% conf. interval]
---------+--------------------------------------------------------------------
Domestic |      52    6072.423    429.4911    3097.104    5210.184    6934.662
 Foreign |      22    6384.682    558.9942    2621.915     5222.19    7547.174
---------+--------------------------------------------------------------------
Combined |      74    6165.257    342.8719    2949.496    5481.914      6848.6
---------+--------------------------------------------------------------------
    diff |           -312.2587    754.4488               -1816.225    1191.708
------------------------------------------------------------------------------
    diff = mean(Domestic) - mean(Foreign)                         t =  -0.4139
H0: diff = 0                                     Degrees of freedom =       72

    Ha: diff < 0                 Ha: diff != 0                 Ha: diff > 0
 Pr(T < t) = 0.3401         Pr(|T| > |t|) = 0.6802          Pr(T > t) = 0.6599

1.2 两个变量的比较

1.2.1 非配对样本

ttest var1 == var2 [if] [in] ,unpaired [level(#)]
代码
%%stata
webuse fuel.dta, clear
ttest mpg1 == mpg2, unpaired

. webuse fuel.dta, clear

. ttest mpg1 == mpg2, unpaired

Two-sample t test with equal variances
------------------------------------------------------------------------------
Variable |     Obs        Mean    Std. err.   Std. dev.   [95% conf. interval]
---------+--------------------------------------------------------------------
    mpg1 |      12          21    .7881701    2.730301    19.26525    22.73475
    mpg2 |      12       22.75    .9384465    3.250874    20.68449    24.81551
---------+--------------------------------------------------------------------
Combined |      24      21.875    .6264476    3.068954    20.57909    23.17091
---------+--------------------------------------------------------------------
    diff |               -1.75    1.225518               -4.291568    .7915684
------------------------------------------------------------------------------
    diff = mean(mpg1) - mean(mpg2)                                t =  -1.4280
H0: diff = 0                                     Degrees of freedom =       22

    Ha: diff < 0                 Ha: diff != 0                 Ha: diff > 0
 Pr(T < t) = 0.0837         Pr(|T| > |t|) = 0.1673          Pr(T > t) = 0.9163

. 

1.2.2 配对样本 t 检验 (paired t-test)

语法:

ttest var1 == var2 [if] [in] ,[level(#)]
代码
%%stata
webuse fuel.dta, clear
ttest mpg1 == mpg2

. webuse fuel.dta, clear

. ttest mpg1 == mpg2

Paired t test
------------------------------------------------------------------------------
Variable |     Obs        Mean    Std. err.   Std. dev.   [95% conf. interval]
---------+--------------------------------------------------------------------
    mpg1 |      12          21    .7881701    2.730301    19.26525    22.73475
    mpg2 |      12       22.75    .9384465    3.250874    20.68449    24.81551
---------+--------------------------------------------------------------------
    diff |      12       -1.75    .7797144     2.70101    -3.46614   -.0338602
------------------------------------------------------------------------------
     mean(diff) = mean(mpg1 - mpg2)                               t =  -2.2444
 H0: mean(diff) = 0                              Degrees of freedom =       11

 Ha: mean(diff) < 0           Ha: mean(diff) != 0           Ha: mean(diff) > 0
 Pr(T < t) = 0.0232         Pr(|T| > |t|) = 0.0463          Pr(T > t) = 0.9768

.