R数据分析:二分类因变量的混合效应,多水平logistics模型介绍
今天给大家写广义混合效应模型Generalised Linear Random Intercept Model的第一部分 ,混合效应logistics回归模型,这个和线性混合效应模型一样也有好几个叫法:
Mixed Effects Logistic Regression is sometimes also called Repeated Measures Logistic Regression, Multilevel Logistic Regression and Multilevel Binary Logistic Regression .
之后如果你遇到重复测量logistics回归,多水平logistics回归,你就应该知道他们都是指的是混合效应logistics回归模型这一个东西。
模型介绍
重复测量和嵌套数据是科研中很常见的,此时需要考虑多水平模型来更好地分解变异,因变量是二分类变量的时候我们会用logistics回归,多水平模型和logistics模型两个一结合就是非常经典的广义线性混合模型之一-----------多水平logistics回归。
就是这么简单。
为了更好地帮助大家理解,我们先回顾一下混合效应的一般写法,以随机截距为例子,当我们的因变量是连续的,此时我们可以做混合效应模型,比如我们的随机截距混合效应模型就是如下,其中uj就叫做随机截距(去翻翻之前的文章哈):
再扩展一下,当我们的因变量Y不是正态分布的时候,我们就有广义线性随机效应模型如下:
多了一个链接函数link funtion,其余都一样的。这个链接函数可以是logit,可以是probit等等。
那么具体到因变量是二分类的时候我们就要用logit链接函数了。
此时我们的混合logistics模型的图示如下:
左上角就是大家都知道的logistics回归模型,右上角是随机截距logistics模型,左下角是随机斜率logistics回归模型,右下角就是既有随机截距又有随机斜率的logistics模型啦,和之前给大家写的线性混合模型一模一样的。
然后对于这么一个随机截距模型,我们有固定效应部分的系数如下表:
其中β0就是截距,是x取0的时候y取1的log-odds(看不明白log-odds的同学去瞅瞅logistics机器学习的文章哈),β1是在控制了其余变量的情况下x每增长一个单位,log-odds的增长量;我们要报告的expβ1,这个就是odds ratio,就是论文中常见的风险相对于参考组增加多少多少倍的意思。
我们还有随机效应部分的系数:
此部分就体现出来整个模型的变异分解,Uj就是组(嵌套的高水平)j对log-odds的作用,这就体现了嵌套数据的影响。这个uj也是服从正态分布的,标准差σ就是组水平上的效应扰动。
模型设定
在R语言中具体的随机效应的设定,请大家参考下表(建议大家收藏起来,自己试试哈):
依然是给大家写一个例子:
实例解析
首先还是先介绍一下手上的数据,一个医院不同医生接诊的肺癌患者的数据库,很明显我们知道,病人是嵌套在医生水平的,我现在感兴趣病人病情恢复情况remission的相关因素,包括病人的特征和医生的特征:
数据大概长这样:
超级简单的一个示例数据哈,其中DID是医生编号,Experience是医生的经验,我现在简单的认为,医生经验和病人病情都会对恢复结局产生影响,我就想跑跑回归看看结果,考虑到数据的嵌套特性我得使用多水平模型,remission是一个二分类变量,于是我们得考虑用多水平的logistics模型。
拟合模型的代码如下:
m_ri <- glmer(remission ~ CancerStage * Experience +
(1 | DID), data = d, family = binomial, control = glmerControl(optimizer = "bobyqa"))
我们用到的函数是glmer,这个是专门的广义线性混合模型的拟合函数,其参数一般形式如下:
在使用该函数的时候,我需要在formula参数中设定模型的固定效应和随机效应,family参数用来设定模型链接函数的分布族,control参数用来设定模型优化器,nAGQ越大模型拟合越慢同时也越精确。
运行我们刚刚的代码输出结果如下图:
看固定效应的系数:Experience的系数是正的0.09,内在的意思就是提示我们看病的时候还是得去找老大夫。哈哈哈。
其实这个模型还是有交互项的,就是相同的病情在不同经验的大夫手上结果会不会有差异,看图:
plot_model(m_ri, type = "int")
我们的分析结果再一次应证了得肺癌了应该去看经验丰富的老大夫才好。
模型的输出结果中是有拟合优度指标的:
比如有同学好奇,这个数据我就用普通的logistics回归,它的结果和多水平logistics回归到底差异有多大?
好的,我们来把两个结果放一起看看:
m2 <- glm(remission ~ CancerStage * Experience, data = d, family = binomial)
从输出结果看,两个模型对系数的结论似乎都是一致的,但是,一定注意R方,多水平模型的R方是普通logistics回归的2倍,模型的AIC也小很多;ICC这个是看有没有嵌套的指标,此例中icc达到了快0.5,也提示组内相关很大,我们有必要考虑数据的嵌套特性。
上面的优势就导致多水平logistics回归的系数估计一定是比普通回归更为准确的。
当然,你还可以进行模型间的Likelihood ratio test似然比检验:
anova(m_ri, m2)
模型比较的结果也显示多水平模型是显著地优于普通logistics回归模型的。
以上就是多水平logistics模型的做法。上面的例子中我只跑了随机截距模型,大家可以用同样的设定自己跑跑随机斜率模型,然后进行模型比较,练练手。
小结
今天给大家写了logistics多水平模型的做法,希望能给大家以启发,感谢大家耐心看完,自己的文章都写的很细,代码都在原文中,希望大家都可以自己做一做,请转发本文到朋友圈后私信回复“数据链接”获取所有数据和本人收集的学习资料。如果对您有用请先收藏,再点赞分享。
也欢迎大家的意见和建议,大家想了解什么统计方法都可以在文章下留言,说不定我看见了就会给你写教程哦,另欢迎私信。
如果你是一个大学本科生或研究生,如果你正在因为你的统计作业、数据分析、模型构建等发愁,如果你在使用SPSS,R,Python,Mplus, Excel中遇到任何问题,都可以联系我。因为我可以给您提供最好的,最详细和耐心的数据分析服务。
如果你对Z检验,t检验,方差分析,多元方差分析,回归,卡方检验,相关,多水平模型,结构方程模型,中介调节,量表信效度等等统计技巧有任何问题,请私信我,获取详细和耐心的指导。
If you are a student and you are worried about you statistical #Assignments, #Data #Analysis, #Thesis, #Reports, #Composing, #Quizzes, Exams.. And if you are facing problem in #SPSS, #R-Programming, #Excel, Mplus, then contact me. Because I could provide you the best services for your Data Analysis.
Are you confused with statistical Techniques like z-test, t-test, ANOVA, MANOVA, Regression, Logistic Regression, Chi-Square, Correlation, Association, SEM, multilevel model, mediation and moderation etc. for your Data Analysis...??
Then Contact Me. I will solve your Problem...
往期精彩
R数据分析:随机截距交叉滞后RI-CLPM与传统交叉滞后CLPM
R数据分析:二分类因变量的混合效应,多水平logistics模型介绍的更多相关文章
- SPSS数据分析—二分类Logistic回归模型
对于分类变量,我们知道通常使用卡方检验,但卡方检验仅能分析因素的作用,无法继续分析其作用大小和方向,并且当因素水平过多时,单元格被划分的越来越细,频数有可能为0,导致结果不准确,最重要的是卡方检验不能 ...
- P,R,F1 等性能度量(二分类、多分类)
总结自<机器学习>周志华 2.3 目录 最常用的是查准率P(precision),查全率R(recall),F1 一.对于二分类问题 二.对于多分类问题 1.macro 2.micro 最 ...
- R数据分析:潜类别轨迹模型LCTM的做法,实例解析
最近看了好多潜类别轨迹latent class trajectory models的文章,发现这个方法和我之前常用的横断面数据的潜类别和潜剖面分析完全不是一个东西,做纵向轨迹的正宗流派还是这个方法,当 ...
- 《R包的分类介绍》
R分析空间数据(Spatial Data) R机器学习包(Machine Learning) R多元统计包(Multivariate Statistics) R药物(代谢)动力学数据分析包 R计算计量 ...
- R语言与分类算法的绩效评估(转)
关于分类算法我们之前也讨论过了KNN.决策树.naivebayes.SVM.ANN.logistic回归.关于这么多的分类算法,我们自然需要考虑谁的表现更加的优秀. 既然要对分类算法进行评价,那么我们 ...
- R数据分析:跟随top期刊手把手教你做一个临床预测模型
临床预测模型也是大家比较感兴趣的,今天就带着大家看一篇临床预测模型的文章,并且用一个例子给大家过一遍做法. 这篇文章来自护理领域顶级期刊的文章,文章名在下面 Ballesta-Castillejos ...
- R数据分析:临床预测模型中校准曲线和DCA曲线的意义与做法
之前给大家写过一个临床预测模型:R数据分析:跟随top期刊手把手教你做一个临床预测模型,里面其实都是比较基础的模型判别能力discrimination的一些指标,那么今天就再进一步,给大家分享一些和临 ...
- SPSS数据分析—多分类Logistic回归模型
前面我们说过二分类Logistic回归模型,但分类变量并不只是二分类一种,还有多分类,本次我们介绍当因变量为多分类时的Logistic回归模型. 多分类Logistic回归模型又分为有序多分类Logi ...
- 准确率(Accuracy), 精确率(Precision), 召回率(Recall)和F1-Measure(对于二分类问题)
首先我们可以计算准确率(accuracy),其定义是: 对于给定的测试数据集,分类器正确分类的样本数与总样本数之比.也就是损失函数是0-1损失时测试数据集上的准确率. 下面在介绍时使用一下例子: 一个 ...
随机推荐
- 跳表--怎么让一个有序链表能够进行"二分"查找?
对于一个有序数组,如果要查找其中的一个数,我们可以使用二分查找(Binary Search)算法,将它的时间复杂度降低为O(logn).那查找一个有序链表,有没有办法将其时间复杂度也降低为O(logn ...
- Java字符串的初始化与比较
Java字符串的初始化与比较 简单的总结:直接赋值而不是使用new关键字给字符串初始化,在编译时就将String对象放进字符串常量池中:使用new关键字初始化字符串时,是在堆栈区存放变量名和内容:字符 ...
- PHP审计之class_exists与任意实例化漏洞
PHP审计之class_exists与任意实例化漏洞 前言 发现PHP的一些漏洞函数挺有意思,跟着七月火师傅的文章来学习. class_exists函数 函数说明 class_exists:(PHP ...
- PowerDotNet平台化软件架构设计与实现系列(02):数据库管理平台
为了DB复用和简化管理,我们对常见应用依赖的DB模块进行更高级的提取和抽象. 虽然一些ORM可以简化DB开发,但是我们还是需要进行改进和优化,否则应用越多,后期管理运维越混乱. 根据常见开发需要,数据 ...
- Java入门基础,必读!Java单行、多行和文档注释!
在编写Java的过程中,我们需要对一些程序进行注释.除了方便自己阅读之外,我们还需要为他人更好地理解我们的程序.因此,我们需要对一些程序进行注释,这些注释可以是编程思想,也可以是程序的作用,可以说是J ...
- 使用Mybatis的一些基本配置及Mybatis与数据库交互测试验证
1.简介 什么是MyBatis? MyBatis 是一款优秀的持久层框架,它支持定制化 SQL.存储过程以及高级映射.MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集.My ...
- camera isp(Image Signal Processor)
1. 目标[52RD.com] 手机摄像头模组用ISP功能模块的市场走向及研发方向.为能够正确认识手机摄像模组行业提供技术及市场依据.[52RD.com] 2. ISP在模组上的应用原理[52RD.c ...
- 最小最大堆min-max Heap
(1)由性质5只能插在奇数层,即根节点处,7下沉到右堆的min level,10下沉到max level,插入后满足min-max heap性质,很容易画出: (2)由性质80也是向右堆插入,且插入到 ...
- Python课程笔记(六)
今天上课补上了上次未学完比较重点的鼠标和键盘事件,同时开始学习运用turtle进行绘图. 本次课程的代码: https://gitee.com/wang_ming_er/python_course_l ...
- hdu 3887 Counting Offspring(DFS序【非递归】+树状数组)
题意: N个点形成一棵树.给出根结点P还有树结构的信息. 输出每个点的F[i].F[i]:以i为根的所有子结点中编号比i小的数的个数. 0<n<=10^5 思路: 方法一:直接DFS,进入 ...