欢迎光临散文网 会员登陆 & 注册

R语言分层线性模型案例

2020-12-25 23:22 作者:拓端tecdat  | 我要投稿

 原文 http://tecdat.cn/?p=3740

有许多分层数据的例子。例如,地理数据通常按层次分组,可能是全球数据,然后按国家和地区分组 。一个生物学的例子是按物种分组的动物或植物的属性,或者属于一个级别的属性,然后是家族。一个商业例子可能是业务部门和细分的员工满意度。每个学科都有许多例子,其中观察以某种形式的层次结构进行分组。

在这里,我想解释使用一个简单的例子, 如何使用R来构建分层线性模型。我在整个三组中使用简单的一维数据集。在每个组内,自变量x和因变量y之间存在强正相关关系。 



  1. geom_smooth(aes(x=x,y=y,group=group),method=lm,se=FALSE) +


  2. theme_bw() + theme(legend.position="null")


  3. g + geom_smooth(aes(x=x,y=y),method=lm,se=TRUE)

这些组有不同的颜色 。 在本文的其余部分,我将展示如何使用层次模型来模拟这种情况,该模型确实考虑了组信息。

建议的分层线性模型的一个包是arm,它具有与lm()函数非常相似的函数lmer()。

 

  1. lmer.both <- lmer(y~1+x+(1+x|group),data=df)


  2. # 固定效应是顶层截距和斜率

  3. # (Intercept) x

  4. # 1.978652 1.144952

  5. # 截距组随机效应

  6. #

  7. > ranef(lmer.alpha)


  8. # $group


  9. # (Intercept)


  10. # 1 3.4386106


  11. # 2 -0.8360106


  12. # 3 -2.6026000


  13. # > group.alpha


  14. # [1] 4.2883814 1.2134493 -0.5410049


  15. # > ranef(lmer.alpha)$group[,1] + fixef(lmer.alpha)[1]


  16. # [1] 5.4172624 1.1426413 -0.6239482




  17. group.alpha


  18. # 固定效果是顶层截距


  19. # (Intercept)


  20. # 5.788223


  21. # 对截距和斜率进行分组随机影响


  22. # (Intercept) x


  23. # 1 -1.740225 0.518047


  24. # 2 -4.564296 1.415710


  25. # 3 -6.354477 1.231584


  26. # > group.alpha


  27. # [1] 4.2883814 1.2134493 -0.5410049


  28. # > ranef(lmer.beta)$group + fixef(lmer.


  29. # [1] 4.0479981 1.2239268 -0.5662542


  30. fixef(lmer.beta)


  31. ranef(lmer.b

  32. group.beta


  33. # > fixef(lmer.both)


  34. # (Intercept) x


  35. # 1.578741 1.059370


  36. # > ranef(lmer.both)


  37. # $group


  38. # (Intercept) x


  39. # 1 2.500014 -0.5272426


  40. # 2 -0.355365 0.3545068


  41. # 3 -2.144649 0.1727358


  42. fixef(lmer.both)


  43. ranef(lmer.both)


  44. #我们简单地运行3个回归,每组一个


  45. coef(lm(y~x,data=df[group==1,]))


  46. coef(lm(y~x,data=df[group==2,]))


  47. coef(lm(y~x,data=df[group==3,]))


  48. # (Intercept) x


  49. # 4.0653645 0.5259707


  50. # 1.227969 1.428500


  51. # -0.570280 1.225905


  52. # true values for group.alpha are


  53. # 4.2883814 1.2134493 -0.5410049


  54. (ranef(lmer.alpha)$group[,1]) + fixef(lmer.alpha)[1]


  55. (ranef(lmer.beta)$group[,1]) + fixef(lmer.beta)[1]


  56. # Alpha随机效应图


  57. fit.lines <- data.frame(cbind(intercept=(ranef(lmer.al


  58. g.alpha


  59. # beta随机效应图




  60. fit.lin


  61. iplot(g.alpha

结果显示有三个图,第一个是截距(alpha)依赖于组,第二个是斜率(β)依赖于组,第三个是截距和斜率依赖组。你可能在想为什么不是做三个单独的线性回归,因为第三个例子产生的系数非常接近于此。原因是基于这样的假设:alphas和beta是从顶层分布中提取的,因此是相关的。这意味着我们可以在组之间汇集信息,如果我们为其中一个组提供的数据非常少 。 

术语回归系数是“固定效应”,组别称为“随机效应”。



  1. # 现在执行3个单独的线性回归(每组一个)

  2. lm.mcmc.1 <- MCMCglm(y~1+x,data=df2[df2$group=="1"

  3. g.sim.mcmc <- g2 + ta=fit.lines.mcmc,alpha=.2) +

结果如下所示。 每组只有一个单独的线性回归。对于蓝色和红色组,线条在大多数情况下非常适合数据,但对于只有三个数据点的绿色组,线条遍布整个地方,因为没有任何先验信息,估计数据的斜率和偏移量非常不确定。右侧的图表显示 因为该模型假设所有三组的斜率和偏移都是从一个分布中得出的,所以可以合理地假设斜率是正的。我们知道这适用于这个例子,因为我们设计了数据生成过程。

 

还有问题吗? 联系我们!

最受欢迎的见解

1.基于R语言的lmer混合线性回归模型

2.R语言用Rshiny探索lme4广义线性混合模型(GLMM)和线性混合模型(LMM)

3.R语言线性混合效应模型实战案例

4.R语言线性混合效应模型实战案例2

5.R语言线性混合效应模型实战案例

6.线性混合效应模型Linear Mixed-Effects Models的部分折叠Gibbs采样

7.R语言LME4混合效应模型研究教师的受欢迎程度

8.R语言中基于混合数据抽样(MIDAS)回归的HAR-RV模型预测GDP增长

9.使用SAS,Stata,HLM,R,SPSS和Mplus的分层线性模型HLM


R语言分层线性模型案例的评论 (共 条)

分享到微博请遵守国家法律