费舍尔精确检验#

[1]中,研究了乙酰唑胺预防急性高原反应的有效剂量。该研究显著得出结论:

每日 250 毫克、500 毫克和 750 毫克的乙酰唑胺均能有效预防急性高原反应。乙酰唑胺 250 毫克是目前有证据支持的该适应症的最低有效剂量。

下表总结了实验结果,其中一些参与者每日服用 250 毫克乙酰唑胺,而另一些则服用安慰剂。

急性高原反应病例记录如下:

乙酰唑胺

对照组/安慰剂组

急性高原反应

7

17

15

5

是否有证据表明 250 毫克乙酰唑胺能降低急性高原反应的风险?

我们首先提出一个零假设 \(H_0\)

服用乙酰唑胺治疗后发生急性高原反应的几率与服用安慰剂后发生的几率相同。

让我们用费舍尔检验来评估这一假设的合理性。

from scipy.stats import fisher_exact
res = fisher_exact([[7, 17], [15, 5]], alternative='less')
res.statistic
np.float64(0.13725490196078433)
res.pvalue
np.float64(0.0028841933752349743)

使用 5% 的显著性水平,我们将拒绝零假设,转而支持备择假设:“服用乙酰唑胺治疗后发生急性高原反应的几率低于服用安慰剂后发生急性高原反应的几率。”

#

由于费舍尔精确检验的零分布是在行和列总和均固定的假设下形成的,因此当应用于行总和不固定的实验时,检验结果是保守的。

在这种情况下,列总和是固定的;每组有 22 名受试者。但急性高原反应的病例数在实验进行前不是(也无法)固定的。它是一个结果。

Boschloo 检验不依赖于行总和固定的假设,因此,在这种情况下它提供了更强大的检验。

from scipy.stats import boschloo_exact
res = boschloo_exact([[7, 17], [15, 5]], alternative='less')
res.statistic
np.float64(0.0028841933752349743)
res.pvalue
np.float64(0.0015141406667567101)

我们验证了 p 值小于 fisher_exact 的结果。

参考文献#