McNemar检验——为什么SPSS所算结果与教材中不同

作者:宇传华( yuchua@163.com

诊断试验评价与数据挖掘 http://statdtedm.6to23.com

McNemar检验英文全称为McNemar's test for correlated proportions,主要用于配对资料率的检验(相当于配对卡方检验)

一、 教材的计算

下面是教材中配对卡方检验的例子。

某抗癌新药的毒理研究中,将78大鼠按性别窝别、体重、年龄等因素配成39对,每对大鼠经随机分配分别接受甲剂量和乙剂量注射,实验结果见下表。试分析该新药两种不同剂量的毒性有无差异(例子来自“徐勇主编. 医学统计学. 高等教育出版社,2001p76”)。

 

  某抗癌新药两种剂量的毒理实验结果

甲剂量

乙剂量

合计

死亡(+)

生存(-)

死亡(+)

    6(a

   12(b

18

生存(-)

    3(c

   18(d

21

合计

    9

   30

39

 

b+c40时,应采用连续性校正公式本例已知b=12c=3,因此b+c=15,有,对应P值为0.0388=CHIDIST(4.27,1)】。

如果不校正,则有,对应P值为0.0201=CHIDIST(5.4,1)】。注意:我们的教材不允许对本例不作校正。

二、 SPSS的计算

1  数据格式

 

上述表格中数据在SPSS中的格式见图1

第一步:频数数据的说明

      Data> Weight Cases… > weight cases by frequency variable   频数  

第二步:分析

Analyze―> Descriptive Statistics ―> Crosstabs

4Row(s): 甲剂量

4Column(s): 乙剂量

Statistics…  þ McNemar

 

计算获得的结果为:P值=0.035(以下是SPSS输出结果)

 

Value

Exact Sig. (2-sided)

McNemar Test

 

.035(a)

N of Valid Cases

39

 

a  Binomial distribution used.

 

很明显SPSS计算出的概率P值=0.035 与教材中计算的P0.0388(校正)和(不校正算得的)P0.0201不同。

 

三、 原因及建议

 

SPSS软件计算时采用的是一种精确检验,这种检验可称为符号检验或二项检验。令bc为不同结果的频数),min为取最小函数)。对于双侧检验,可计算P值为:

其中

    

实例中12 + 3153。所以该例的双侧P值应该为:

 

原来SPSS软件出来的双侧P值就是这样计算出来的。

 

当在第二步分析中,选择 Exact  þ Exact”那么还可以获得单侧P值和点概率(见下表)。

 

 

Exact Sig. (2-sided)

Exact Sig. (1-sided)

Point Probability

McNemar Test

.035

.018

.014

N of Valid Cases

39

 

 

a  Binomial distribution used.

 

目前,在计算机如此普及的情况下,建议采用更精确的计算结果。