线性混合模型的说明性图片是什么?

机器算法验证 混合模式
2022-02-16 09:52:52

假设您在统计系的图书馆中,并且您在首页看到一本书,上面有以下图片。

在此处输入图像描述

你可能会认为这是一本关于线性回归的书。

什么样的画面会让你想到线性混合模型?

3个回答

在演讲中,我使用了以下图片,该图片基于lme4包中的sleepstudy数据集。这个想法是为了说明来自特定主题数据(灰色)的独立回归拟合与来自随机效应模型的预测之间的差异,特别是(1)来自随机效应模型的预测值是收缩估计量,并且(2)个体轨迹共享具有仅随机截距模型(橙色)的公共斜率。主题截距的分布显示为 y 轴上的核密度估计(R 代码)。

在此处输入图像描述
(密度曲线超出了观测值的范围,因为观测值相对较少。)

下一个可能是更“传统”的图形,它来自 Doug Bates(可在R-forge 网站上获得 lme4,例如4Longitudinal.R),我们可以在每个面板中添加单独的数据。

在此处输入图像描述

所以一些不是“非常优雅”但也显示随机截距和斜率的东西。(我想如果也显示实际方程会更酷) 在此处输入图像描述

N =100; set.seed(123);


x1 = runif(N)*3; readings1 <- 2*x1 + 1.0 + rnorm(N)*.99;
x2 = runif(N)*3; readings2 <- 3*x2 + 1.5 + rnorm(N)*.99;
x3 = runif(N)*3; readings3 <- 4*x3 + 2.0 + rnorm(N)*.99;
x4 = runif(N)*3; readings4 <- 5*x4 + 2.5 + rnorm(N)*.99;
x5 = runif(N)*3; readings5 <- 6*x5 + 3.0 + rnorm(N)*.99;

X = c(x1,x2,x3,x4,x5);
Y = c(readings1,readings2,readings3,readings4,readings5)
Grouping  = c(rep(1,N),rep(2,N),rep(3,N),rep(4,N),rep(5,N))

library(lme4);
LMERFIT <- lmer(Y ~ 1+ X+ (X|Grouping))

RIaS <-unlist( ranef(LMERFIT)) #Random Intercepts and Slopes
FixedEff <- fixef(LMERFIT)    # Fixed Intercept and Slope

png('SampleLMERFIT_withRandomSlopes_and_Intercepts.png', width=800,height=450,units="px" )
par(mfrow=c(1,2))
plot(X,Y,xlab="x",ylab="readings")
plot(x1,readings1, xlim=c(0,3), ylim=c(min(Y)-1,max(Y)+1), pch=16,xlab="x",ylab="readings" )
points(x2,readings2, col='red', pch=16)
points(x3,readings3, col='green', pch=16)
points(x4,readings4, col='blue', pch=16)
points(x5,readings5, col='orange', pch=16)
abline(v=(seq(-1,4 ,1)), col="lightgray", lty="dotted");        
abline(h=(seq( -1,25 ,1)), col="lightgray", lty="dotted")   

lines(x1,FixedEff[1]+ (RIaS[6] + FixedEff[2])* x1+ RIaS[1], col='black')
lines(x2,FixedEff[1]+ (RIaS[7] + FixedEff[2])* x2+ RIaS[2], col='red')
lines(x3,FixedEff[1]+ (RIaS[8] + FixedEff[2])* x3+ RIaS[3], col='green')
lines(x4,FixedEff[1]+ (RIaS[9] + FixedEff[2])* x4+ RIaS[4], col='blue')
lines(x5,FixedEff[1]+ (RIaS[10]+ FixedEff[2])* x5+ RIaS[5], col='orange') 
legend(0, 24, c("Group1","Group2","Group3","Group4","Group5" ), lty=c(1,1), col=c('black','red', 'green','blue','orange'))
dev.off()

不是我的工作

这张取自nlmefit的 Matlab 文档的图表让我印象深刻,因为它非常明显地举例说明了随机截距和斜率的概念。可能在 OLS 图的残差中显示异方差组的东西也很标准,但我不会给出“解决方案”。