在混合线性模型中遗漏一个重要的预测变量是否违反了独立性假设?

机器算法验证 混合模式 独立 假设
2022-03-20 20:13:01

我有来自3 组实验的数据,在4 个时间点测量,每个受试者执行一项任务,其中操纵 2 个因素:效价(3 个水平)可预测性(2 个水平)

我知道化合价对结果变量有很大的影响。我想了解其他变量(组、时间点、可预测性)的影响及其相互作用。

有人向我建议,我可以建立一个具有group * timepoint * predictability的混合模型,而忽略 valence。然而,我担心这会违反用于我将在模型上运行的测试(例如方差分析)的独立性假设。也就是说,如果我有两个相同价的样本,我可以预测它们将比两个不同值的样本更相似。这是正确的还是我把事情搞混了?

抱歉,如果我混淆了概念或术语,我对分析数据还是陌生的。我也没有设计实验。

4个回答

如果我们对因果效应感兴趣并且设计不是正交的,我们不应该遗漏任何具有(显着)影响的变量。

如果一个变量被遗漏并且该变量与包含变量相关,则包含变量的系数包括被遗漏变量的部分影响。这是辛普森悖论中典型教科书案例的标准缺失混杂、 遗漏变量问题

“也就是说,如果我有两个相同价的样本,我可以预测它们会比两个不同值的样本更相似。”

这是匹配估计器背后的想法,例如倾向得分匹配,因为我们希望通过仅比较相似的个体来消除遗漏混杂因素的影响。

另一方面,如果设计与被遗漏的变量正交,即那些与包含的变量不相关,则对包含的系数没有扭曲影响。

首先,独立性与删除或添加变量无关;请记住,没有这样的测试来证明独立性假设,因为它与您的实验设计有关。想象一下这个愚蠢的(但说明性的)例子:“一位政治学家对人们对她所在县下一次选举候选人的看法感兴趣。在这项研究中,随机选择了 100 名参与者,他们在会议室中分别接受了最多 5 分钟的采访和记录。在研究期间,参与者被要求在不同的时间到达,因为候诊室只能容纳 15 人。此外,等候室的参与者可以在会议室听取当时正在录制的人的意见。” 在这种情况下,独立性假设被完全违反,因为参与者的意见显然会受到前一个意见的影响。如您所见,数据分析甚至还没有开始,独立性假设已经被破坏。因此,请记住,独立性与您的实验设计有关,而不是与您的变量有关。

另一方面,如果您想删除变量 Valence,您可以这样做,并且不会违反独立性假设,但是您可能会丢失有价值的信息。假设您找到一个模型“A”,它使用了所有变量:化合价、组、时间点、可预测性以及它们的一些交互作用(都显着)。假设您还获得了另一个模型“B”,它只降低了化合价,您还观察到效果和交互作用的系数是显着的。从理论上讲,这两种模型都是解释响应变量可变性的有效方法。哪一个会更好?您必须分析“A”中的自变量解释了多少可变性,然后对“B”重复相同的操作,

就个人而言,我会使用逐步回归测试更多模型。最后,如果您有多个模型,您还可以检查 AIC 或 R 2等拟合优度指标,以确定哪一个更适合您。

我希望这对你有用。

祝你好运。

即使在模型中保留效价,您仍然可以看到组 + 时间点 + 可预测性的影响及其相互作用。请记住,解释连续变量的交互项非常难以解释。

独立的条件是我们假设我们的数据是来自感兴趣人群的随机样本。作为与此条件的对比,假设我们对拼图游戏中的块数以及完成它所需的时间感兴趣。如果我们所有的数据都来自一个人(例如,多个拼图),那么他恰好非常擅长拼图。那么我们对这条线的估计会比它应该的低很多,因为这个人会很快完成所有的谜题,即小值是的一世. 然而,如果我们的数据是独立的,那么我们也有机会找到一个非常不擅长拼图游戏的人,甚至以某种方式解决问题。

所以你需要问自己的是,遗漏化合价是否违反了从感兴趣的总体中获取随机样本的可能性?(答案是不。)

如果您的目标是建立一个线性模型,我建议您只执行某种类型的子集模型选择。antoniom 建议逐步回归,这将工作......

library(MASS)
fit <- lm(y~(x1+x2+x3)^2 + x4, data = mydata)
step <- stepAIC(fit, direction="both")
step$anova # display results

其他选项可能是嵌套的 F 测试向后选择...

lm1 <- lm(y~(x1+x2+x3)^2 + x4, data = mydata)
drop1(lm1, test = "F")

如果您的目标是预测,您可以使用最佳子集进行 CV...

library(leaps)
regfit.best=regsubsets(y~(x1+x2+x3)^2 + x4,data=Hitters[train ,], nvmax=)
test.mat=model.matrix(Salary∼.,data=Hitters [test ,])
val.errors =rep(NA ,nvmax)
for(i in 1:nvmax){coefi=coef(regfit.best ,id=i)
pred=test.mat[,names(coefi)]%*%coefi
val.errors[i]=mean(( Hitters$Salary[test]-pred)^2)
}
which.min(val.errors)

这给出了最佳子集模型的系数数量,然后找到模型......

coef(regfit.best ,which.min(val.errors))

所有这些方法都会告诉你关于变量之间关系的有价值的信息,而不必在一开始就去除化合价。

不,省略因变量并不违反任何独立性假设。

考虑一个非常简单的例子,我正在检查身高、体重、棒球击球率对每场篮球比赛得分的影响。我们知道身高是篮球技术的一个很好的预测指标,但也许我们想看看击球率和体重如何作为预测指标。没有禁止删除任何数量的变量以建立一个检查两个变量之间关系的模型。

可以这样想:有数以百万计的数据可以预测我的收入、身高、体重和出生国家等信息,但是,可以建立一个高度准确的模型,您可以在其中用非常少的数据或有大量数据。那里可能有一个“价”可以完美地预测我的身高或出生国家!

一般来说,关于建模/预测要记住的是,您的目标是做出比随机预测更好的预测。如果您正确地完成了该部分(即交叉验证,对“野生”数据进行测试),那么您已经达到了任务的目标。