Loading [MathJax]/jax/output/CommonHTML/jax.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >r语言 固定效应模型_r语言coef函数

r语言 固定效应模型_r语言coef函数

作者头像
全栈程序员站长
发布于 2022-11-17 02:11:02
发布于 2022-11-17 02:11:02
5.9K00
代码可运行
举报
运行总次数:0
代码可运行

大家好,又见面了,我是你们的朋友全栈君。

线性混合模型与普通的线性模型不同的地方是除了有固定效应外还有随机效应。

笔者认为一般统计模型中的横截面回归模型中大致可以分为两个方向:一个是交互效应方向(调节、中介效应)、一个是随机性方向(固定效应、随机效应)。

两个方向的选择需要根据业务需求:

交互效应较多探究的是变量之间的网络关系,可能会有很多变量,多变量之间的关系;

而随机性探究的是变量自身的关联,当需要着重顾及某变量存在太大的随机因素时(这样的变量就想是在寻在内生变量一样,比如点击量、不同人所在地区等)才会使用。具体见:

笔记︱横截面回归模型中的两大方向(交互效应+随机性)

___________________________________________________________________________________

一、线性混合模型理论

普通的线性回归只包含两项影响因素,即固定效应(fixed-effect)和噪声(noise)。噪声是我们模型中没有考虑的随机因素。而固定效应是那些可预测因素,而且能完整的划分总体。例如模型中的性别变量,我们清楚只有两种性别,而且理解这种变量的变化对结果的影响。

那么为什么需要 Mixed-effect Model?因为有些现实的复杂数据是普通线性回归是处理不了的。例如我们对一些人群进行重复测量,此时存在两种随机因素会影响模型,一种是对某个人重复测试而形成的随机噪声,另一种是因为人和人不同而形成的随机效应(random effect)。如果将一个人的测量数据看作一个组,随机因素就包括了组内随机因素(noise)和组间随机因素(random effect)。这种嵌套的随机因素结构违反了普通线性回归的假设条件。

你可能会把人员(组间的随机效应)看作是一种分类变量放到普通线性回归模型中,但这样作是得不偿失的。有可能这个factor的level很多,可能会用去很多自由度。更重要的是,这样作没什么意义。因为人员ID和性别不一样,我们不清楚它的意义,而且它也不能完整的划分总体。也就是说样本数据中的路人甲,路人乙不能完全代表总体的人员ID。因为它是随机的,我们并不关心它的作用,只是因为它会影响到模型,所以不得不考虑它。因此对于随机效应我们只估计其方差,不估计其回归系数。

混合模型中包括了固定效应和随机效应,而随机效应有两种方式来影响模型,一种是对截距影响,一种是对某个固定效应的斜率影响。前者称为 Random intercept model,后者称为 Random Intercept and Slope Model。Random intercept model的函数结构如下

Yij = a0 + a1*Xij + bi + eij

a0: 固定截距 a1: 固定斜率 b: 随机效应(只影响截距) X: 固定效应 e: 噪声

混合线性模型有时又称为多水平线性模型或层次结构线性模型由两个部分来决定,固定效应部分+随机效应部分.

(以上内容来源于数据挖掘入门与实战公众号)

1、模型简述

混合线性模型有时又称为多水平线性模型或层次结构线性模型由两个部分来决定,固定效应部分+随机效应部分。

2、协方差结构

来源于论文混合线性模型的应用(该论文涉及到两个案例),为了减少混合线性模型中方差协方差矩阵中参数的个数,统计学家提供了一些方差协方差矩阵(Y)的系统结构模式供实际工作应用。 常见的协方差结构有:

3、与普通线性回归模型以及广义线性模型的区别(参考经管之家论坛帖子

(1)线性回归模型,适用于自变量X和因变量Y为线性关系,具体来说,画出散点图可以用一条直线来近似拟合。一般线性模型要求观测值之间相互独立、残差(因变量)服从正态分布、残差(因变量)方差齐性

(2)线性混合模型,在线性模型中加入随机效应项,消了观测值之间相互独立和残差(因变量)方差齐性的要求。

(3)广义线性模型,是为了克服线性回归模型的缺点出现的,是线性回归模型的推广。首先自变量可以是离散的,也可以是连续的。离散的可以是0-1变量,也可以是多种取值的变量。广义线性模型又取消了对残差(因变量)服从正态分布的要求。残差不一定要服从正态分布,可以服从二项、泊松、负二项、正态、伽马、逆高斯等分布,这些分布被统称为指数分布族。

关于分布:因变量的分布有放宽,但是自变量没有分布的要求

与线性回归模型相比较,有以下推广:

a、随机误差项不一定服从正态分布,可以服从二项、泊松、负二项、正态、伽马、逆高斯等分布,这些分布被统称为指数分布族。

b、引入联接函数g()。因变量和自变量通过联接函数产生影响。根据不同的数据,可以自由选择不同的模型。大家比较熟悉的Logit模型就是使用Logit联接、随机误差项服从二项分布得到模型。

(4)与分层线性模型(HLM)的区别。

介于线性模型与分层线性模型之间,线性混合模型平行地以加入解释变量的形式加入了随机效应,分层线性模型是以系数项为二层回归引入了随机效应。分层线性模型较之线性混合模型更具随机性。

___________________________________________________________________________________

二、R语言中的线性混合模型

来自博客R中的线性混合模型介绍(翻译博客)(来自科学网邓飞博客)原来来自:http://www.r-bloggers.com/linear-mixed-models-in-r/

1、nlme lme4 Asreml包

R中有很多软件包可以做混合线性模型,这里我只介绍nlme、lme4和ASreml(对!ASreml是商业版,但是还有对应的R包),这些都是基于Reml的算法,当然还有一些包是基于贝叶斯的算法,这部分在其他章节介绍。

几个包的介绍:

优点

缺点

nlme

这是一个比较成熟的R包,是R语言安装时默认的包,它除了可以分析分层的线性混合模型,也可以处理非线性模型。在优势方面,个人认为它可以处理相对复杂的线性和非线性模型,可以定义方差协方差结构,可以在广义线性模型中定义几种分布函数和连接函数。

它的短板:1、随机效应的定义过于呆板2、数据量大时速度很慢3、默认情况下不能处理系谱数据4、不能处理多元数据。

lme4

lme4包是由Douglas Bates开发,他也是nlme包的作者之一,相对于nlme包而言,它的运行速度快一点,对于睡觉效应·随机效应的结构也可以更复杂一点,但是它的缺点也和nlme一样

1、不能处理协方差和相关系数结构2、它可以与构建系数的包连接,比如mmpedigree包,但是结合比较脆弱。

ASReml-R

ASReml-R是ASReml的R版本,它的优点:1、可以处理复杂的随机因子结构2、可以处理多元数据3、可以处理系谱数据4、可以处理大批量的数据

主要的缺点:1、它是收费的,当然它对于不发达国家的科研机构是免费的,不过需要申请和被审核。它的用户主要是育种公司、科研机构等,它可以在各种平台上运行,包括Windows、Linux、OS X等。

2、R语言案例

数据来源:一个传统的裂区数据来说明不同软件包的用法,这个数据oats是在MASS包中,是研究大麦品种和N肥处理的裂区试验,其中品种为主区,肥料为裂区。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
library(MASS)
data(oats)
names(oats) = c('block', 'variety', 'nitrogen', 'yield')

3、nlme包

用这个包很简单,y-变量写在左边,然后是固定因子,然后是随机因子,注意1|block/mainplot是裂区试验残差的写法,因为里面有两个残差。代码如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
library(nlme)
m1.nlme = lme(yield ~ variety*nitrogen,
                     random = ~ 1|block/mainplot,
                     data = oats)
 
summary(m1.nlme)

方差分析结果为:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
anova(m1.nlme)
                numDF denDF   F-value p-value
(Intercept)          1    45 245.14333  <.0001
variety              2    10   1.48534  0.2724
nitrogen             3    45  37.68561  <.0001
variety:nitrogen     6    45   0.30282  0.9322

如果假设认为这些调查对象是同质的,也就是个体间没有差异性,那么可以将数据完全汇集(complete pooling)到一起,直接利用lm函数进行回归。但这个混合效应模型的同质假设往往不成立,数据汇集导致过度简化。另一种思路是假设研究的异质性,将不同的个体分别进行回归,从而得到针对特定个体的估计值,这称为不汇集(no pooling)。但这种方法导致每个回归所用到的样本减少,从而难以估计统计量的标准差。

多层回归模型的思路是前两者的折中,所以又称为部分汇集(partial pooling)。在R语言中我们使用mgcv包中的lmer函数来完成这项工作。首先载入faraway包以便读取psid数据集,然后加载mgcv包,再将年份数据中心化以方便解释模型,最后用lmer函数进行建模。

4、lme4包

lme4包的语法也相似,随机效应有着和nlme相同的语法,不同的是lme4包它的结果给出了随机效应的标准差,而不是方差。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
library(lme4)
m1.lme4 = lmer(yield ~ variety*nitrogen + (1|block/mainplot),
                      data = oats)
 
summary(m1.lme4)
anova(m1.lme4)

lmer函数使用和lm是类似的,一般变量表示固定效应,括号内竖线右侧的person表示它是一个随机效应,它与模型中其它变量相加,而且与年份cyear变量相乘,影响其斜率。这就是一个随机效应模型。如果认为随机效应只影响模型截距,那么固定效应回归模型可以用下面的公式

5、ASReml-R包

它的功能很强大,用在这里有些杀鸡用牛刀的感觉。 代码如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
library(asreml)
m1.asreml = asreml(yield ~ variety*nitrogen,
                  random = ~ block/mainplot,
                  data = oats)
summary(m1.asreml)$varcomp
wald(m1.asreml)

___________________________________________________________________________________

三、线性混合模型解读

1、难点

建模前提:数据服从正态分布的假设;

固定、随机效应变量选择:哪些变量归类到随机效应(相关性比较强,而且不是主要研究对象,同时自身存在一定随机性,比如搜索点击数据,自身就不受控制,存在很多随机因素);固定效应(主要研究的解释变量)。

协方差结构的选择:可以利用AIC、BIC指标来判断,常见的有8个协方差结构。

2、案例一:论文《混合线性模型的应用》的案例解读

模型为:成绩(被解释变量)=性别(固定效应)+地区(随机效应)

协方差结构的选择:将随机参数向量的方差协方差矩阵设置为无结构型。

剩余误差ε的方差估计值为105.06,地区随机效应的方差估计值g=25.95,但无统计学意义,表示地区间的变异不大( 由于样本含量较小之故)。比较这 2 个值的大小反映考试成绩在同一地区内学生间的变异大于地区间的变异。为了更好地解释模型,仍将地区随机效应保留在模型中。

一个学生的考试成绩的总方差为105.06+25.95,可以估计出组内相关系ρ=25.95/(105.06+25.95)=0.1980,这表示同一 地区学生考试成绩的聚集性达到近,20%。

固定效应变量性别对学生考试影响的参数估计值为9.911,具有统计学意义。男生的平均成绩预报值为69.4分,女生的平均成绩预报值为69.4+9.91=79.31分。这一预报值是控制地区变异后的结果,不同于模型中的条件平均预报值。

3、案例二:分析不同手术方案病人的前蛋白含量在手术前后变化情况(论文《混合线性模型的应用》的案例解读)

协方差结构的选择:在分析协变量的效应前,先要选择一个合适的方差协方差矩阵。 在配合的8种协方差结构中, 综合考虑协方差参数个数及信息量指标值,特别是BIC以具有2个参数AR(1)的 ,AR(1)效果最好。 故选用AR(1)作为本例的方差协方差结构。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/224131.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年10月29日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
R语言实现混合模型
普通的线性回归只包含两项影响因素,即固定效应(fixed-effect)和噪声(noise)。噪声是我们模型中没有考虑的随机因素。而固定效应是那些可预测因素,而且能完整的划分总体。例如模型中的性别变量,我们清楚只有两种性别,而且理解这种变量的变化对结果的影响。 那么为什么需要 Mixed-effect Model?因为有些现实的复杂数据是普通线性回归是处理不了的。例如我们对一些人群进行重复测量,此时存在两种随机因素会影响模型,一种是对某个人重复测试而形成的随机噪声,另一种是因为人和人不同而形成的随机
机器学习AI算法工程
2018/03/14
4.5K0
R语言广义线性模型(GLM)、全子集回归模型选择、检验分析全国风向气候数据
我们正和一位朋友讨论如何在R软件中用GLM模型处理全国的气候数据。本文获取了全国的2021年全国的气候数据(点击文末“阅读原文”获取完整代码数据)。
拓端
2023/11/17
3650
R语言广义线性模型(GLM)、全子集回归模型选择、检验分析全国风向气候数据
R语言广义线性模型(GLM)、全子集回归模型选择、检验分析全国风向气候数据|附代码数据
我们正和一位朋友讨论如何在R软件中用GLM模型处理全国的气候数据。本文获取了全国的2021年全国的气候数据
拓端
2023/02/10
9920
基于R语言混合效应模型(mixed model)案例研究|附代码数据
在本文中,我们描述了灵活的竞争风险回归模型。回归模型被指定为转移概率,也就是竞争性风险设置中的累积发生率
拓端
2023/02/10
1.4K0
混合线性模型学习笔记5
这篇文档,是为那些想了解混合线性模型的人准备的。这里面很多部分,可以在很多领域中使用 。我们假定大家对一些矩阵和线性回归的理论有所了解,但是更高级的知识只有模糊的认识,希望对你有所帮助。
邓飞
2020/05/14
1.4K0
R语言建立和可视化混合效应模型mixed effect model
该模型以珊瑚覆盖层为因变量(elkhorn_LAI),草食动物种群和深度为固定效应(c。urchinden,c.fishmass,c.maxD)和调查地点作为随机效应(地点)。 。 注意:由于食草动物种群的测量规模存在差异,因此我们使用标准化的值,否则模型将无法收敛。我们还使用了因变量的对数。我正在根据这项特定研究对数据进行分组。
拓端
2023/08/31
3750
R语言建立和可视化混合效应模型mixed effect model
数据分享|R语言逐步回归模型对电影票房、放映场数、观影人数预测可视化
本文通过利用回归模型帮助客户对电影的票房数据(以及放映场数,观影人数)进行了研究,确定了决定电影的票房的重要因素(点击文末“阅读原文”获取完整代码数据)。
拓端
2023/11/23
3650
数据分享|R语言逐步回归模型对电影票房、放映场数、观影人数预测可视化
育种数据分析神器:线性混合模型
这里使用sleepstudy数据集,看一下免费的R包lme4和付费包asreml如何处理不同的混合线性模型,以加深对混合线性模型的理解。
邓飞
2022/12/13
9310
育种数据分析神器:线性混合模型
R语言、SAS潜类别(分类)轨迹模型LCTM分析体重指数 (BMI)数据可视化|附代码数据
最近我们被客户要求撰写关于潜类别(分类)轨迹模型LCTM的研究报告,包括一些图形和统计输出。
拓端
2023/01/03
7670
混合线性模型 | 常用模型与代码演示
看报错,应该是Rcpp版本过低导致的,我建议老师重新安装一下lme4和Rcpp,如果还不成功,那就回到lib目录,手动删除这两个包,然后再重新安装,毕竟之前写过经验贴:R包安装失败之粗暴解决方法,以及不用砸电脑成功安装R包的方法。
邓飞
2021/12/06
9420
混合线性模型 | 常用模型与代码演示
R语言LME4混合效应模型研究教师的受欢迎程度|附代码数据
文中本教程对多层_回归_模型进行了基本介绍(点击文末“阅读原文”获取完整代码数据) 。
拓端
2022/10/31
8750
R语言 线性混合效应模型实战案例
首先,请注意,围绕多级模型的术语非常不一致。例如,多级模型本身可以称为分级线性模型,随机效应模型,多级模型,随机截距模型,随机斜率模型或汇集模型。根据学科,使用的软件和学术文献,许多这些术语可能指的是相同的一般建模策略。
拓端
2020/08/10
1.8K0
R语言建立和可视化混合效应模型mixed effect model|附代码数据
我们已经学习了如何处理混合效应模型。本文的重点是如何建立和_可视化_ 混合效应模型的结果
拓端
2023/02/07
1.9K0
用SPSS估计HLM多层(层次)线性模型模型|附代码数据
作为第一步,从一个不包含协变量的空模型开始 ( 点击文末“阅读原文”获取完整代码数据******** )。
拓端
2022/11/18
2.7K0
如何用潜类别混合效应模型(Latent Class Mixed Model ,LCMM)分析老年痴呆年龄数据|附代码数据
线性混合模型假设 N 个受试者的群体是同质的,并且在群体水平上由独特的曲线 Xi(t)β 描述 。
拓端
2023/01/12
1.1K0
R语言线性混合效应模型(固定效应&随机效应)和交互可视化3案例|附代码数据
线性混合效应模型是在有随机效应时使用的,随机效应发生在对随机抽样的单位进行多次测量时。来自同一自然组的测量结果本身并不是独立的随机样本。因此,这些单位或群体被假定为从一个群体的 "人口 "中随机抽取的。示例情况包括
拓端
2022/12/27
1.8K0
R语言如何解决线性混合模型中畸形拟合(Singular fit)的问题
在这里,我们观察到奇异拟合,因为截距和x随机效应之间的相关性是-1。处理该模型的一种方法是删除高阶随机效应(例如X:ConditionB),并查看在测试奇异性时是否有区别另一种是使用贝叶斯方法,例如blme软件包以避免奇异性。
拓端
2020/08/05
4.7K0
我为什么不用ANOVA?
ANOVA(Analysis of variance)是Fisher在1918年发明的一种方差分析方法。因为我们多数人在数理统计入门时重点学习过,所以最常使用。ANOVA有三大要求,使用前要逐一检验:
邓飞
2019/06/13
1.7K0
混合线性模型如何检测固定因子和随机因子的显著性以及计算R2
很多朋友写信问我, 像要知道固定因子的显著性和随机因子的显著性如何计算,他们使用的是lme4这个R包, 但是这个包使用anova时没有P值,还要手动计算, 随机因子也需要自己计算loglikehood值, 然后使用LRT的卡方检验进行显著性检验, 其实lme4包有扩展的包可以非常友好的做这件事情.
邓飞
2019/07/07
4.3K0
混合线性模型如何检测固定因子和随机因子的显著性以及计算R2
R语言用线性混合效应(多水平/层次/嵌套)模型分析声调高低与礼貌态度的关系|附代码数据
线性混合效应模型与我们已经知道的线性模型有什么不同 ( 点击文末“阅读原文”获取完整代码数据******** ) ?
拓端
2023/06/01
7010
推荐阅读
R语言实现混合模型
4.5K0
R语言广义线性模型(GLM)、全子集回归模型选择、检验分析全国风向气候数据
3650
R语言广义线性模型(GLM)、全子集回归模型选择、检验分析全国风向气候数据|附代码数据
9920
基于R语言混合效应模型(mixed model)案例研究|附代码数据
1.4K0
混合线性模型学习笔记5
1.4K0
R语言建立和可视化混合效应模型mixed effect model
3750
数据分享|R语言逐步回归模型对电影票房、放映场数、观影人数预测可视化
3650
育种数据分析神器:线性混合模型
9310
R语言、SAS潜类别(分类)轨迹模型LCTM分析体重指数 (BMI)数据可视化|附代码数据
7670
混合线性模型 | 常用模型与代码演示
9420
R语言LME4混合效应模型研究教师的受欢迎程度|附代码数据
8750
R语言 线性混合效应模型实战案例
1.8K0
R语言建立和可视化混合效应模型mixed effect model|附代码数据
1.9K0
用SPSS估计HLM多层(层次)线性模型模型|附代码数据
2.7K0
如何用潜类别混合效应模型(Latent Class Mixed Model ,LCMM)分析老年痴呆年龄数据|附代码数据
1.1K0
R语言线性混合效应模型(固定效应&随机效应)和交互可视化3案例|附代码数据
1.8K0
R语言如何解决线性混合模型中畸形拟合(Singular fit)的问题
4.7K0
我为什么不用ANOVA?
1.7K0
混合线性模型如何检测固定因子和随机因子的显著性以及计算R2
4.3K0
R语言用线性混合效应(多水平/层次/嵌套)模型分析声调高低与礼貌态度的关系|附代码数据
7010
相关推荐
R语言实现混合模型
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验