我有两个数据样本,一个基线样本和一个治疗样本。
假设是治疗样本的平均值高于基线样本。
两个样品的形状都是指数的。由于数据相当大,因此在运行测试时,我只具有每个样本的均值和元素数。
我如何检验该假设?我猜想这很容易,我遇到了使用F-Test的一些参考,但是我不确定参数如何映射。
我有两个数据样本,一个基线样本和一个治疗样本。
假设是治疗样本的平均值高于基线样本。
两个样品的形状都是指数的。由于数据相当大,因此在运行测试时,我只具有每个样本的均值和元素数。
我如何检验该假设?我猜想这很容易,我遇到了使用F-Test的一些参考,但是我不确定参数如何映射。
Answers:
您可以使用似然比检验(LR test)来测试均值参数是否相等,以防均值参数不相等。(但是,如果平均参数确实不同并且分布是指数分布,则这是比例偏移,而不是位置偏移。)
对于单尾测试(但仅在两尾情况下渐近),我认为LR测试等同于以下内容(以表明实际上与单尾LR测试相同)情况一需要显示LR统计量在是单调的:
假设我们将第一个指数中的第个观察参数设置为pdf,将第二个样本中的第个观察参数设置为pdf(在观察值和参数的明显范围内)。
(要清楚,我们这里使用的是均值形式,而不是费率形式;这不会影响计算结果。)1 / μ X EXP (- X 我/ μ X)Ĵ 1 / μ Ý EXP (- ý Ĵ / μ ÿ)
由于分布是伽马的一种特殊情况,,的总和的分布的,分布 ; 类似地,对于 s的和,为。 Γ (1 ,μ X)X 小号X Γ (Ñ X,μ X)ý 小号Ý Γ (Ñ Ý,μ ÿ)
由于伽马分布和卡方分布之间的关系,事实证明是。两个卡方在其自由度上的比率为F。因此,比率。
那么,在均值相等的零假设下,,并且在双向选择下,该值可能趋于小于或大于空值分布,因此您需要进行两尾测试。
通过仿真检查我们是否没有在代数中犯一些简单的错误:
在这里,我从具有相同均值的指数分布中模拟了1000个样本,其中大小为30,大小为20 ,并计算了上述均值统计。
以下是结果分布的直方图以及显示我们在零值下计算出的分布的曲线 :
示例,并讨论了两个尾部p值的计算:
为了说明计算,这里有两个来自指数分布的小样本。X样本来自平均值为10的总体的14个观测值,Y样本来自平均值为15的总体的17个观测值:
x: 12.173 3.148 33.873 0.160 3.054 11.579 13.491 7.048 48.836
16.478 3.323 3.520 7.113 5.358
y: 7.635 1.508 29.987 13.636 8.709 13.132 12.141 5.280 23.447
18.687 13.055 47.747 0.334 7.745 26.287 34.390 9.596
样本均值分别为12.082和16.077。均值比为0.7515
左边的区域很直接,因为它位于较低的尾巴(R中的计算):
> pf(r,28,34)
[1] 0.2210767
我们需要另一条尾巴的概率。如果分布是逆对称的,那么这样做很简单。
方差比F检验(相似的是两个尾部)的常见约定仅仅是使单尾p值加倍(实际上是这里发生的事情;例如,这似乎也是在R中完成的事情) ); 在这种情况下,其p值为0.44。
但是,如果使用正式的拒绝规则执行此操作,则通过在每条尾巴上放置一个的区域,您将获得此处所述的临界值。然后,p值是将导致拒绝的最大,这相当于将自由度互换时,将上面一个尾部的p值与另一尾部的一个尾部p值相加。在上面的示例中,p值为0.43。
作为@Glen_b答案的附录,似然比为 ,您可以将其排列为 其中。在处有一个最小值,因此F检验确实是针对相同分布的零假设的单边选择的似然比检验。
要对两边替代方案执行适当的似然比测试,您仍然可以使用F分布;您只需要找到样本均值比的其他值,其似然比等于观察到的比率,然后。对于此示例,&,的总体p值为,(与通过卡方近似得出的p值接近)对数似然比的两倍分布)。r E L R = 1.3272 Pr (R > r E L R)= 0.2142
但是,将一尾p值加倍可能是获得两尾p值的最常见方法:它等效于找到样本比值值,其尾部概率等于,然后找到。像这样解释,它似乎在让尾巴概率定义测试统计数据的极端性时处于领先地位,但是可以证明它实际上是两个多重测试的单尾测试(每个LRT)更正-人们通常会对声称或或。它也不必大惊小怪,并且即使是相当小的样本量,也能提供与两尾LRT相同的答案。
R代码如下:
x <- c(12.173, 3.148, 33.873, 0.160, 3.054, 11.579, 13.491, 7.048, 48.836,
16.478, 3.323, 3.520, 7.113, 5.358)
y <- c(7.635, 1.508, 29.987, 13.636, 8.709, 13.132, 12.141, 5.280, 23.447,
18.687, 13.055, 47.747, 0.334,7.745, 26.287, 34.390, 9.596)
# observed ratio of sample means
r.obs <- mean(x)/mean(y)
# sample sizes
n.x <- length(x)
n.y <- length(y)
# define log likelihood ratio function
calc.llr <- function(r,n.x,n.y){
n.x * log(n.x/n.y + 1/r) + n.y*log(n.y/n.x + r) + n.x*log(n.y/(n.x+n.y)) + n.y*log(n.x/(n.x+n.y))
}
# observed log likelihood ratio
calc.llr(r.obs,n.x, n.y) -> llr.obs
# p-value in lower tail
pf(r.obs,2*n.x,2*n.y) -> p.lo
# find the other ratio of sample means giving an LLR equal to that observed
uniroot(function(x) calc.llr(x,n.x,n.y)-llr.obs, lower=1.2, upper=1.4, tol=1e-6)$root -> r.hi
#p.value in upper tail
p.hi <- 1-pf(r.hi,2*n.x,2*n.y)
# overall p.value
p.value <- p.lo + p.hi
#approximate p.value
1-pchisq(2*llr.obs, 1)