由于与丹尼尔进行了长时间的交谈,我完全改变了我的答案。我将尝试提供一些背景信息,以便感兴趣的读者能够理解我的回答。
据我了解这个问题,丹尼尔试图评估 no.Green 对实验中受试者选择红色概率的影响。no.Green 是球的数量(1、2、3 或 4)。并且实验是在几个条件下进行的,nameley:在no.Red下等于5、7和9;在消息为蓝色且消息为红色的情况下。所以,我们总共有 4 * 3 * 2 = 24 个条件(4 个来自 no.Green 的条件,3 个来自 no.Red 的条件和 2 个来自消息蓝色或红色的条件)。
一个包含所有交互项的单一回归解释起来非常复杂。然而,他的主要任务相当简单,即:证明 no.green 对选择红色的概率有影响。所以,我的建议是对 message == blue 和 message == red 条件进行单独的回归,并对每个 no.red 条件进行单独的回归。此外,我将通过假设 no.Green 是连续的来简化事情(似乎可以将其视为连续的,或者至少是一个区间变量)。在 R 中,对于 message == blue case,只需执行以下操作:
fit.1 = glm(DecisionasReceiver ~ no.GREEN, family=binomial, data=subset(lue, messagereceived=="blue" & no.RED==5) )
fit.2 = glm(DecisionasReceiver ~ no.GREEN, family=binomial, data=subset(lue, messagereceived=="blue" & no.RED==7) )
fit.3 = glm(DecisionasReceiver ~ no.GREEN, family=binomial, data=subset(lue, messagereceived=="blue" & no.RED==9) )
现在,为了正确评估 no.green 的影响,您必须考虑估计的不确定性。查看标准错误,您会发现 no.green 很重要。但是,仅寻找标准误差并不能让您正确理解不确定性的范围。例如,假设您有兴趣知道与 no.green == 1 的受试者相比,no.green == 2 的受试者(在条件 no.red ==5 下)选择红色的可能性有多大。回答这个问题类型的问题,我认为看预测概率会更好,但要考虑到估计的不确定性。为此,我将使用 arm 包的“sim”功能。
require(arm)
n.sims = 1000
sim.1 = sim(fit.1, n.sims)
with(subset(lue, messagereceived=="blue" & no.RED==5), plot(no.GREEN,jitter(DecisionasReceiver, .1),
ylab="Probability of Choosing Red", xlab="Number of Green",
main="Effect of Green under no.Red equals 5"))
for (s in 1:100)
curve(invlogit(coef(sim.1)[s,1] +coef(sim.1)[s,2]*x), col="gray", xlim=c(1,4), add=T)
结果是一个包含 100 条逻辑曲线的图形。每条曲线代表 no.green 对选择红色概率的可能影响。从图中,我们可以看到对于 no.green 的每个值,哪个是最可能的预测概率范围。
我希望它有所帮助。