统计假设检验报告了假设观察结果的可能性,例如,变量之间没有关联或集合之间没有差异。
如果关联或差异具有统计学意义,则假设检验不会评估效果的大小。这突出了对计算和报告结果的标准方法的需求。
效应量方法是指用于量化实验结果中效应量的一套统计工具,可用于补充统计假设检验的结果。
在本教程中,你将发现用于量化结果大小的效应量和效应量的度量。
完成本教程后,你将了解:
- 在实验结果中计算和报告效应量的重要性。
- 影响变量之间关联效应量度量,例如Pearson相关系数。
- 用于量化集合差异的效应量度量,例如Cohen’s d度量。
让我们开始吧。
本教程分为三个部分:
- 报告效应量的需求
- 什么是效应量?
- 如何计算效应量
报告效应量的需求
一旦从业者熟悉统计方法,通常会专注于量化结果的可能性。
通常,我们可以通过p值和统计假设检验计算和描述的结果找到答案。
在结果呈现中经常被忽略的一个方面是实际量化差异或关系,这称为效应(effect)。我们很容易忘记,实验的目的是量化一个效应。
研究调查的主要产品是效应量的一个或多个度量,而不是P值。
- Things I have learned (so far), 1990。
统计测试只能描述是否存在影响的可能性。无法描述效应的大小。实验结果可能有意义,但影响可能小到几乎没有。
这是可能的而且常见的,结果在统计学上是显著的但并不重要。结果在统计上也可能是非显著但很重要。
- The Essential Guide to Effect Sizes: Statistical Power, Meta-Analysis, and the Interpretation of Research Results,第4页,2010年。
忽略效应所表现出的问题在于它可以使用特别措辞来计算,或者甚至完全忽略留给读者去解释。这是一个很大的问题,因为量化效应的量对于解释结果至关重要。
什么是效应量?
效应量是指预期在群体中发生的效果或结果的量或量级。
效应量是根据数据样本估算的。
效应量方法是指用于计算效应量的统计工具的集合。通常,效应量测量领域被简称为“ 效应量”。
根据要量化的效应类型,将效应量统计方法分组。计算效应量的两组主要方法有:
- Association。用于量化变量之间关联的统计方法(例如,相关性)。
- Difference。量化变量之间差异的统计方法(例如均值之间的差异)。
效应可以是在集合(例如处理集合和未处理集合)之间的比较中显示的处理结果,或者它可以描述两个相关变量(例如治疗剂量和健康)之间的关联程度。
- The Essential Guide to Effect Sizes: Statistical Power, Meta-Analysis, and the Interpretation of Research Results,第5页,2010年。
效应量计算的结果必须能够解释,并且它取决于所使用的具体统计方法。必须根据解释的目标选择其中一项。三种计算结果包括:
- 标准化结果。效应量具有标准比例,使它无论应用如何都可以被解释(例如,Cohen’s d)。
- 原始单位结果。效应量可以使用变量的原始单位,这可以有助于在领域内进行解释(例如,两个样本均值之间的差异)。
- 无单位结果。效应量可能不具有诸如计数或比例(例如,相关系数)的单位。
因此,效应量可以指集合平均值的原始差异,或绝对效应量,以及标准化的效果度量,其被计算以将效应转换为易于理解的度量。当研究中的变量具有内在意义(例如,睡眠小时数)时,适用于绝对效应量。
- Using Effect Size—or Why the P Value Is Not Enough, 2012.
使用多种度量报告效应量以可以帮助不同类型的读者了解你的发现。
有时,为了便于读者理解,以及在将来的元分析中易于包含的一些标准化措施,结果最好报告在原始单元中。
- 第41页, Understanding The New Statistics: Effect Sizes, Confidence Intervals, and Meta-Analysis,2011。
效应量不会取代统计假设检验的结果,而是补充了它。一般来说,假设检验和效应量计算的结果将并排显示。
- 假设检验:根据假设(零假设)量化观察数据的可能性。
- 效应量:假设效应存在,量化其的大小。
如何计算效应量
效应量结果可以是样本均值的计算结果或两个均值之间的绝对差值。也可以是更精细的统计计算。
在本节中,我们将查看关联和差异的一些常见效应量的计算。这些仅作为示例,并不是包含所有;可能有100种方法可用于计算效应量。
计算关联效应量
变量之间的关联通常被称为效应量方法的“
r family ”。
这个名字或许来自于计算效应量的最常用方法,Pearson相关系数,也称为Pearson's r。
Pearson相关系数衡量两个实值变量之间的线性相关程度。它是一种无单位效应量度量,可以按如下标准方式解释:
- -1.0:完全负相关
- -0.7:强负相关
- -0.5:中等负相关
- -0.3:弱负相关
- 0.0:不相关
- 0.3:弱正相关
- 0.5:中等正相关
- 0.7:强正相关
- 1.0:完全正相关。
在Python中使用SciPy的函数pearsonr()计算Pearson相关系数。
下面的例子演示了Pearson相关系数的计算,以量化两个随机高斯数样本之间关联的大小,其中第一个样本与第二个样本有强相关。
# calculate the Pearson's correlation between two variables
from numpy.random import randn
from numpy.random import seed
from scipy.stats import pearsonr
# seed random number generator
seed(1)
# prepare data
data1 = 10 * randn(10000) + 50
data2 = data1 + (10 * randn(10000) + 50)
# calculate Pearson's correlation
corr, _ = pearsonr(data1, data2)
print('Pearsons correlation: %.3f' % corr)
运行该示例计算并打印两个数据样本之间的Pearson相关系数。我们可以看到效果显示样本之间存在强正相关。
Pearson’s correlation: 0.712
用于计算关联效应量的另一种非常流行的方法是r平方度量,r ^ 2,也称为决定系数。它总结了一个变量中由另一个变量解释的方差比例。
计算差异效应量
集合之间的差异通常被称为效应量方法的“
d family”。
这个名字来自于计算集合平均值之间差异的最常用方法,称为Cohen's d。
Cohen's d测量两个高斯分布变量的均值之差。它是一个标准分数,总结了标准差数量方面的差异。由于分数是标准化的,因此也有一个表格可以解释结果,如下:
- 小效应量:d = 0.20
- 中效应量:d = 0.50
- 大效应量:d = 0.80
Python中没有提供Cohen’s d的计算;我们可以手动计算。
计算两个样本的平均值之间的差如下:
d = (u1 - u2) / s
其中d是Cohen的d,u1是第一个样本的平均值,u2是第二个样本的平均值,s是两个样本的并合标准差。
两个独立样本的并合标准差可以计算如下:
s = sqrt(((n1 - 1) . s1^2 + (n2 - 1) . s2^2) / (n1 + n2 - 2))
其中s是并合标准差,n1和n2是第一个样本和第二个样本的大小,s1 ^ 2和s2 ^ 2是第一个和第二个样本的方差。减法是对自由度数量的调整。
下面的函数将计算两个实值变量样本的Cohen d度量。NumPy函数mean()和var()分别用于计算样本均值和方差。
# function to calculate Cohen's d for independent samples
def cohend(d1, d2):
# calculate the size of samples
n1, n2 = len(d1), len(d2)
# calculate the variance of the samples
s1, s2 = var(d1, ddof=1), var(d2, ddof=1)
# calculate the pooled standard deviation
s = sqrt(((n1 - 1) * s1 + (n2 - 1) * s2) / (n1 + n2 - 2))
# calculate the means of the samples
u1, u2 = mean(d1), mean(d2)
# calculate the effect size
return (u1 - u2) / s
下面的例子计算了两个具有不同均值的随机高斯变量样本的Cohen d度量。
该实例被设计为使得均值是半个标准差,并且两个样本具有相同的标准差。
# calculate the Cohen's d between two samples
from numpy.random import randn
from numpy.random import seed
from numpy import mean
from numpy import var
from math import sqrt
# function to calculate Cohen's d for independent samples
def cohend(d1, d2):
# calculate the size of samples
n1, n2 = len(d1), len(d2)
# calculate the variance of the samples
s1, s2 = var(d1, ddof=1), var(d2, ddof=1)
# calculate the pooled standard deviation
s = sqrt(((n1 - 1) * s1 + (n2 - 1) * s2) / (n1 + n2 - 2))
# calculate the means of the samples
u1, u2 = mean(d1), mean(d2)
# calculate the effect size
return (u1 - u2) / s
# seed random number generator
seed(1)
# prepare data
data1 = 10 * randn(10000) + 60
data2 = 10 * randn(10000) + 55
# calculate cohen's d
d = cohend(data1, data2)
print('Cohens d: %.3f' % d)
运行该示例计算并打印Cohen’s d的效应量。
我们可以看到,正如预期的那样,均值之间的差异是标准差的一半,被解释为中效应量。
Cohen's d: 0.500
量化差异效应量的另外两种流行方法是:
- 优势比。测量一种处理与另一种处理相比产生结果的几率。
- 相对风险率。测量一种处理方法与另一种处理方法相比的结果发生的几率。
拓展阅读
如果您希望深入了解,本节将提供有关该主题的更多资源。
论文
- Using Effect Size—or Why the P Value Is Not Enough, 2012.
- Things I have learned (so far), 1990.
链接:https://www.ncbi.nlm.nih.gov/pmc/articles/PMC3444174/
链接:https://tech.me.holycross.edu/files/2015/03/Cohen_1990.pdf
书
- The Essential Guide to Effect Sizes: Statistical Power, Meta-Analysis, and the Interpretation of Research Results, 2010.
- Understanding The New Statistics: Effect Sizes, Confidence Intervals, and Meta-Analysis, 2011.
- Statistical Power Analysis for the Behavioral Sciences, 1988.
API
- scipy.stats.pearsonr() API
- numpy.var() API
- numpy.mean() API
总结
在本教程中,你了解了效应量和效应量度量,用于量化结果的量级。
具体来说,你学到了:
- 在实验结果中计算和报告效应量的重要性。
- 影响变量之间关联效应量度量,例如Pearson相关系数。
- 用于量化集合差异的效应量度量,例如Cohen’s d度量。