Multilevel Modeling Using R 第三章

从这一章开始我们就来介绍下用R处理双层次的模型

R包

首先介绍一下在多层次模型中,可以用R包nlme的nlme()函数来实现建模,或者R包lme4的lmer()函数,接下来,我们就看一下这两个函数的用法:

lme(fixed, data, random, correlation, weights, subset, method, na.action, control, contrasts = NULL, keep.data = TRUE)

lmer(formula, data, family = NULL, REML = TRUE, control = list(), start = NULL, verbose = FALSE, doFit = TRUE, subset, weights, na.action, offset, contrasts = NULL, model = TRUE, x = TRUE,...)

下面我们就来看一下怎么具体使用这些函数

nlme包

1. 简单多层次模型

回顾下第二章的固定效应和随机效应



比如这个模型,β0j代表截距,属于随机效应,那么β0j即为随机截距,因为每一个类的截距都不一样;β1j代表斜率,也属于随机效应,不过是β1j = γ10(每个类斜率的均值),所以β1j是固定的
其中Var(εij) = σ^2组内方差;Var(U0j) = τ^2 组间方差
此例子的固定效应是主要研究阅读分数x与词汇分数y的线性关系;而随机效应则是对Level1的线性回归系数的影响

我们以第二章的例子,以学校聚类,阅读分数与词汇分数的相关性的例子为例

Model3.0 <- lme( fixed = geread~1, random = ~1|school, data = Achieve)

其中fixed代表固定效应,random代表随机效应。

Model3.0

我们可以看到结果,固定效应中仅有阅读分数,没有其他关系
而随机效应也仅有以学校作为分类的数据,无其他关系(这里的其他是指影响因素)
这是计算的结果,可以看到固定效应和随机效应的参数
就此,我们可以计算下ρΙ :



其中该例子的随机效应是不同的学校,即以学校作为分类
此时的τ^2 = 0.6257199(类间方差), σ^2 = 2.24611(残差,类内方差)

如果我们把模型改写一下:

Model3.1 <- lme( fixed = geread~gevocab , random = ~1|school, data = Achieve)

Model3.1

此时我们可以观察到固定效应的结果,形成了一元线性关系,而随机效应仍然还是和Model3.0一样,无其他关系
我们介绍下R2如何计算,因为这个模型是嵌套模型,所以R2应该分层次计算,首先对于Level1:
Model3.1 Level1 R^2

其中σ(M1)^2 = 1.940760,τ(M1)^2 = 0.3167654 这里的M1代表Model3.1中随机效应的σ2和τ2;σ(M0)^2 = 2.24611,τ(M0)^2 = 0.6257119 这里的M0代表Model3.0中随机效应的σ2和τ2
那么这里的Model3.0即为我们的null model ,Level1的R^2表示为大约Model3.1较Model3.0来说有21%的差异

对于Level2来说:

Model3.1 Level2 R^2

式子里面的B是10320/160 = 64.5,其中10320为总的观测值,160为分组的数目
其中σ(M1)^2 = 1.940760,τ(M1)^2 = 0.3167654 这里的M1代表Model3.1中随机效应的σ2和τ2;σ(M0)^2 = 2.24611,τ(M0)^2 = 0.6257119 这里的M0代表Model3.0中随机效应的σ2和τ2
Level2的R^2表示为大约Model3.1较Model3.0来说有48%的差异

下面我们来看下一个模型:

Model3.2 <- lme( fixed = geread~gevocab + senroll, random = ~1|school, data = Achieve)
Model3.2

此时的固定效应为二元线性关系,而随机效应还是像Model3.0和3.1
再来看

Model3.3 <- lme( fixed = geread~gevocab, random = ~gevocab|school, data = Achieve)
Model3.3

固定效应为一元线性关系,而随机效应有了交互作用即gevocab|school的交互项,因为有了交互,所以τ^2 = 0.5316640,σ^2 = 1.9146629

再来看随机效应为双因素影响的

Model3.4 <- lme(fixed = geread~gevocab + age, random = ~gevocab + age|school, data = Achieve)
Model3.4

固定效应为二元线性关系;而随机效应有两个因素,其中age|school 的随机方差系数为0.006388612,gevocab的随机方差系数为0.137974552,所以对于随机效应,gevocab(词汇成绩)的影响更大,准确说是对Level1的线性回归系数的影响更大一些

交互项

接下来我们考虑下固定效应模型中含有交互项的情况

Model3.5 <- lme(fixed = geread~gevocab + age + gevocab*age, random = ~1|school, data = Achieve)

Model3.6 <- lme( fixed = geread~gevocab + senroll + gevocab*senroll, random = ~1|school, data = Achieve)
Model3.5

这个模型的固定效应中加入了交互项gevocab:age,其系数为0.005027;随机效应与Model3.0和Model3.1相同
其中gevocab的系数p_value = 0.8814 > 0.5,统计学不显著


Model3.5 correlation

这一块衡量的是固定效应中各项的相关性

Model3.6

此例中交互项gevocab:senroll的系数为-0.0001356


Model3.6 correlation

固定效应中各项的相关性

中心化

如果我们对Model3.5的数据进行中心化

#中心化
Cgevocab <- Achieve$gevocab – mean(Achieve$gevocab) 
Cage <- Achieve$age – mean(Achieve$age)

#建模
Model3.5.C <- lme( fixed = geread~Cgevocab + Cage + Cgevocab*Cage, random = ~1|school, data = Achieve)
Model3.5 centering

中心化以后各项系数也会随之改变,并且各个系数显著性更加显著了,其中gevocab(Cgevocab的系数是显著的

lme4

接下来我们介绍一下lme4这个包的用法,其实结果与lme()是相同的

Model3.7 <- lmer(geread~gevocab +(1|school), data = Achieve)

这里的固定效应和随机效应写在一个式子里,随机效应项打括号写(1/school)


Model3.7

其实结果解读与lme()相似,这里就不再赘述,其中τ^2 = 0.31588(类间方差), σ^2 = 1.94074(残差,类内方差),不同软件算法有区别故值不同

添加MCMC元素去计算p_value和置信区间

library(coda) library(languageR) Mo del3.7.pvals<-pvals.fnc(Model3.7, nsim = 10000, withMCMC = TRUE)

固定效应:


Model3.7 fix

随机效应:


Model3.7 random

lower是下区间,upper为上区间,pMCMC为MCMC计算的p_value

类似的,我们再看一下多因素的随机效应表示:

Model3.10 <- lmer( geread~gevocab + age+(gevocab + age|school), Achieve)

Model3.11 <- lmer( geread~gevocab + age+ (gevocab|school) + age|school), Achieve)
Model3.10
Model3.11 上

Model3.11 下

总的来说,对于随机效应项lmer()比起lmer()多了随机截距的方差,随机斜率的变化性和随机截距与随机斜率的相关性(corr那一项)

参数估计

1.极大似然法

比方说对Model3.1的参数估计

Model3.12 <- lme( fixed = geread~gevocab, random = ~1|school, data = Achieve, method = "ML")
#REML = FALSE 即为ML
Model3.13 <- lmer( geread~gevocab + (1|school), data = Achieve, REML = FALSE

其中REML为 restricted maximum likelihood

2.控制估计

在参数估计的函数里面加参数

Model3.14 <- lme( fixed = geread~gevocab, random = ~1|school, data = Achieve, method = "ML", control = list(maxIter = 100, opt = "optim"))

Model3.15 <- lmer( geread~gevocab + (1|school), data = Achieve, REML = FALSE, control = list(maxIter = 100, opt = "optim"))

我们知道,大部分求解过程都是没有解析解的,只有数值解,所以常常用迭代的方法求解
其中 control = list(maxIter = 100, opt = "optim") 代表在求解参数最大的迭代次数为100

3.利用Chi squared test比较模型的拟合程度

我们知道,不同的方程,模型其对数据的拟合程度是不同的,那么我们可以利用检验方法选择最优的模型
其中可以利用AIC,BIC判断共线性
比较两个模型哪一个更优我们可以用anova()

Model3.1 <- lme( fixed = geread~gevocab, random = ~1|school, data = Achieve, method = "ML")

Model3.2 <- lme( fixed = geread~gevocab + senroll, random = ~1|school, data = Achieve, method = "ML")

anova(Model3.1, Model3.2)
结果

4.参数估计的置信区间

关于置信区间的内容我之前有推送介绍过
那么在模型中,我们可以利用函数intervals(),我们以Model3.3来做例子,这里求得是95%置信区间

#95%置信区间
intervals(Model3.3)

那么我们的固定效应和随机效应参数置信区间如下图所示:


Model3.3 intervals
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,928评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,192评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,468评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,186评论 1 286
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,295评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,374评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,403评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,186评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,610评论 1 306
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,906评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,075评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,755评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,393评论 3 320
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,079评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,313评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,934评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,963评论 2 351

推荐阅读更多精彩内容