r - 基于模型的递归划分模型是否来自混合效应模型家族?

标签 r tree lme4 mixed-models party

我想知道说基于模型的递归分区模型(mob,package partykit)是否正确 混合效应模型系列。

我的观点是,混合效应模型为每个随机效应提供了不同的参数,暴民模型也是如此。我看到的主要区别在于,暴民将随机效应自行划分。

这是一个例子:

library(partykit); library(lme4)
set.seed(321)

##### Random data
V1 <- runif(100); V2 <- sample(1:3, 100, replace=T)
V3 <- jitter(ifelse(V2 == 1, 2*V1+3, ifelse(V2==2, -1*V1+2, V1)), amount=.2) 

##### Mixed-effect model
me <- lmer(V3 ~ V1 + (1 + V1|V2))
coef(me) #linear model coefficients from the mixel effect model

#$V2
#  (Intercept)         V1
#1  2.99960082  1.9794378
#2  1.96874586 -0.8992926
#3  0.01520725  1.0255424

##### MOB
fit <- function(y, x, start = NULL, weights = NULL, offset = NULL)  lm(y ~ x)
mo <- mob(V3 ~ V1|V2, fit=fit) #equivalent to lmtree
coef(mo) #linear model (same) coefficients from the mob

#      (Intercept) x(Intercept)        xV1
#2  2.99928854           NA  1.9804084
#4  1.97185661           NA -0.9047805
#5  0.01333292           NA  1.0288309

最佳答案

不,这种基于线性回归的 MOB (lmtree) 不是混合效应类型的模型。但是,您使用 MOB 树来估计交互模型(或嵌套效应),实际上混合效应模型也可以用于此目的。

您的数据生成过程为 V2 的每个级别实现不同的截距和 V1 斜率。如果此交互已知,则可以通过具有交互作用的合适的线性回归轻松恢复它(但 V2 应该为此分类因子变量)。

V2 <- factor(V2)
mi <- lm(V3 ~ 0 + V2 / V1)
matrix(coef(mi), ncol = 2)
##            [,1]       [,2]
## [1,] 2.99928854  1.9804084
## [2,] 1.97185661 -0.9047805
## [3,] 0.01333292  1.0288309

请注意,模型拟合等同于 lm(V3 ~ V1 * V2),但对系数使用不同的对比度编码。

上面获得的估计与 lmtree() 输出完全相同(或手动使用 mob() + lm() 作为你在你的帖子中做了):

coef(lmtree(V3 ~ V1 | V2))
##   (Intercept)         V1
## 2  2.99928854  1.9804084
## 4  1.97185661 -0.9047805
## 5  0.01333292  1.0288309

主要区别在于您必须准确地告诉 lm() 要考虑的交互。另一方面,lmtree() 以数据驱动的方式“学习”交互。不可否认,在这种情况下,没有太多要学习的东西……但是 lmtree() 可以决定不进行任何拆分或进行两次拆分,而不是执行所有可能的拆分。

最后,您的 lmer(V3 ~ V1 + (1 + V1 | V2)) 规范还估计了嵌套(或交互)效应。然而,它使用了一种不同的估计技术,具有随机效应而不是完全固定效应。此外,您必须在此处预先指定交互。

简而言之:lmtree() 可以被认为是一种以数据驱动的方式寻找交互效果的方法。但这些相互作用不是用随机效应估计的,因此不是混合效应模型。

P.S.:lmtree()lmer() 可以结合使用,但那是另一回事了。如果您有兴趣,请参阅包裹 https://CRAN.R-project.org/package=glmertree以及随附的论文。

关于r - 基于模型的递归划分模型是否来自混合效应模型家族?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49128466/

相关文章:

r - 如何添加到文件,而不是使用 write.csv 覆盖

r - 对于具有奇点的模型,具有稳健标准误差的 aprstable

雷达图外围标签截止

r - GLMER 模型对相同数据为 Fitted.values() 和 Predict() 生成不同的值

r - 相当于 R 中混合的 SAS 过程

R 将字符串 "Jan\n1990"转换为日期格式

algorithm - 从列表和 isDescendant 和 isAscendant 函数构建树

java - java中的FTP上传目录树

java - Zk:如何创建具有数据绑定(bind)交互的 "load on demand"树?

r - 对 R 中的多个数据子集执行线性混合模型