Answers:
假设您的两个指标是1)二进制和2)重尾,则应避免假设正态分布的t检验。
我认为Mann-Whitney U是您最好的选择,即使您的分布接近正常,也应该足够有效。
关于第二个问题:
如果一项测试表明同类人群之间存在显着差异,而另一项测试表明存在显着性差异,将会发生什么?
如果统计差异处于临界点并且数据具有“混乱”的样本分布,这种情况并不少见。这种情况要求分析人员仔细考虑每个统计检验的所有假设和局限性,并最大程度地考虑违反假设次数最少的统计检验。
假设正态分布。有很多关于正常性的测试,但这还不是故事的结局。即使与正态性存在一些偏差,某些测试在对称分布上也能很好地工作,但在偏斜分布上却不能很好地工作。
作为一般经验法则,建议您不要在明显违反其任何假设的情况下进行任何测试。
编辑:对于第二个变量,将变量转换为正态分布(或至少接近)的变量可能是可行的,只要该转换是保留顺序的即可。您需要非常有信心,变换对于两个同类群都能产生正态分布。如果将第二个变量拟合为对数正态分布,则对数函数会将其转换为正态分布。但是,如果分布是帕累托(幂定律),则不会转换为正态分布。
对于实值数据,您可能还需要考虑根据数据的引导生成自己的测试统计信息。当您处理非正态总体分布时,或者试图围绕没有方便的解析解决方案的参数建立置信区间时,这种方法往往会产生准确的结果。(在您的情况下,前者是正确的。我仅在上下文中提及后者。)
对于实值数据,请执行以下操作:
获得该分布后,计算实际样本的均值差,然后计算p值。
我第二个@MrMeritology的答案。实际上,我想知道MWU测试是否会比独立比例测试更强大,因为我从中学到并曾经教过的教科书说MWU只能应用于序数(或间隔/比率)数据。
但是我的模拟结果(如下图所示)表明,MWU测试实际上比比例测试更强大,同时可以很好地控制I型错误(在组1的人口比例= 0.50时)。
第2组的人口比例保持在0.50。每个点的迭代次数为10,000。我在没有Yate校正的情况下重复了模拟,但是结果是相同的。
library(reshape)
MakeBinaryData <- function(n1, n2, p1){
y <- c(rbinom(n1, 1, p1),
rbinom(n2, 1, 0.5))
g_f <- factor(c(rep("g1", n1), rep("g2", n2)))
d <- data.frame(y, g_f)
return(d)
}
GetPower <- function(n_iter, n1, n2, p1, alpha=0.05, type="proportion", ...){
if(type=="proportion") {
p_v <- replicate(n_iter, prop.test(table(MakeBinaryData(n1, n1, p1)), ...)$p.value)
}
if(type=="MWU") {
p_v <- replicate(n_iter, wilcox.test(y~g_f, data=MakeBinaryData(n1, n1, p1))$p.value)
}
empirical_power <- sum(p_v<alpha)/n_iter
return(empirical_power)
}
p1_v <- seq(0.5, 0.6, 0.01)
set.seed(1)
power_proptest <- sapply(p1_v, function(x) GetPower(10000, 1000, 1000, x))
power_mwu <- sapply(p1_v, function(x) GetPower(10000, 1000, 1000, x, type="MWU"))