二项式数据的方差分析

机器算法验证 物流 方差分析 数据转换 二项分布 实验设计
2022-01-26 16:52:20

我正在分析一个实验数据集。数据由治疗类型的配对向量和二项式结果组成:

Treatment    Outcome
A            1
B            0
C            0
D            1
A            0
...

在结果栏中,1 表示成功,0 表示失败。我想弄清楚治疗是否会显着改变结果。有 4 种不同的处理,每个实验重复很多次(每个处理 2000 次)。

我的问题是,我可以使用 ANOVA 分析二元结果吗?还是我应该使用卡方检验来检查二项式数据?似乎卡方假设比例会平均分配,但事实并非如此。另一个想法是使用每种治疗的成功与失败的比例来总结数据,然后使用比例检验。

我很想听听您对对这类二项式成功/失败实验有意义的测试的建议。

4个回答

否 ANOVA,它假设一个正态分布的结果变量(除其他外)。有“老派”转换需要考虑,但我更喜欢逻辑回归(当只有一个自变量时相当于卡方,就像你的情况一样)。与卡方检验相比,使用逻辑回归的优势在于,如果您发现整体检验(类型 3)的显着结果,您可以轻松地使用线性对比来比较治疗的特定水平。例如 A 对 B、B 对 C 等。

为清楚起见添加了更新:

获取手头的数据(来自Allison的博士后数据集)并使用变量 cits 如下,这是我的观点:

postdocData$citsBin <- ifelse(postdocData$cits>2, 3, postdocData$cits)
postdocData$citsBin <- as.factor(postdocData$citsBin)
ordered(postdocData$citsBin, levels=c("0", "1", "2", "3"))
contrasts(postdocData$citsBin) <- contr.treatment(4, base=4) # set 4th level as reference
contrasts(postdocData$citsBin)
     #   1 2 3
     # 0 1 0 0
     # 1 0 1 0
     # 2 0 0 1
     # 3 0 0 0

# fit the univariate logistic regression model
model.1 <- glm(pdoc~citsBin, data=postdocData, family=binomial(link="logit"))

library(car) # John Fox package
car::Anova(model.1, test="LR", type="III") # type 3 analysis (SAS verbiage)
     # Response: pdoc
     #          LR Chisq Df Pr(>Chisq)
     # citsBin   1.7977  3     0.6154

chisq.test(table(postdocData$citsBin, postdocData$pdoc)) 
     # X-squared = 1.7957, df = 3, p-value = 0.6159

# then can test differences in levels, such as: contrast cits=0 minus cits=1 = 0
# Ho: Beta_1 - Beta_2 = 0
cVec <- c(0,1,-1,0)
car::linearHypothesis(model.1, cVec, verbose=TRUE) 

也许有些人认为它过时,但如果您只想测试所有组具有相同成功概率的原假设,那么您可以将 中的成功次数中的试验次数,估计组中的概率将是,然后对二项式使用方差稳定变换,即 这种方法是(有时) 对 Fisher 来说已经足够好了,所以今天也很有用!Xkknkkkp^k=Xk/nk

g(p)=arcsinp

然而,一些现代作者对反正弦变换持怀疑态度,例如参见http://www.mun.ca/biology/dschneider/b7932/B7932Final10Dec2010.pdf 但这些作者关心的是预测等问题,他们展示了反正弦会导致问题。如果您只关心假设检验,那应该没问题。更现代的方法可以使用逻辑回归。

我想与您对 Chi-Sq 测试的看法有所不同。即使数据不是二项式,它也适用。它基于 mle 的渐近正态性(在大多数情况下)。

我会做这样的逻辑回归:

logπ^1π^=β0+β1×D1+β2×D2

在哪里

D1是虚拟变量。D2D1=D2=0A,D1=1,D2=0B,D1=1D2=1C

Ho:β0=β1=β2=0

如果存在关系,ANOVA 是否等效。

Ho:β0=0

是测试是A有一定的效果。

Ho:β1β0=0

是测试是B有一些效果。

Ho:β2(β0+β12)=0

是测试是C有一些效果。

现在你可以做进一步的对比来找到你感兴趣的东西。它仍然是一个卡方检验,但具有不同的自由度(分别为 3、1、1 和 1)

我认为你是对的,不应该使用方差分析来分析二项式因变量。许多人使用它来比较二元响应变量 (0 1) 的均值,但不应使用它,因为这严重违反了正态性和等方差假设。卡方检验或逻辑回归最适合这些情况。