首页 > 其他分享 >数据分享|广义线性模型beta二项分布的淋巴结疾病风险预测可视化R语言实现

数据分享|广义线性模型beta二项分布的淋巴结疾病风险预测可视化R语言实现

时间:2024-05-06 23:55:07浏览次数:25  
标签:模型 淋巴结 beta 可视化 rho 拟合 二项分布 数据

全文链接:https://tecdat.cn/?p=36112

原文出处:拓端数据部落公众号

淋巴结疾病作为一类复杂的健康问题,其风险预测一直是临床和公共卫生领域的研究热点。随着统计学的进步和计算能力的提升,广义线性模型(GLM)成为了分析这类数据的有力工具。特别是当数据呈现比例特性时,beta二项分布作为广义线性模型的一个特例,为我们提供了一种灵活且强大的方法来建模和预测淋巴结疾病的风险。

在统计分析中,beta二项分布模型因其能够处理比例数据且能够同时考虑数据的均值和变异程度而备受关注。特别地,在医疗领域,当数据表现为成功次数与总次数的比例时,beta二项分布模型能够为我们提供一个强大的工具来分析这些比例数据的内在规律。

本文旨在帮助客户探讨beta二项分布模型在淋巴结疾病风险预测中的应用,并通过R语言实现数据的可视化分析。通过这一研究,我们期望能够为淋巴结疾病的风险预测提供新的视角和方法,并为临床医生和患者提供更有价值的决策支持。

数据集

本项研究使用的数据集包含17,659个观测值,涉及六个变量。展示了数据集的前六行,以便对数据的结构和内容有一个初步的了解。

   
head(data)

数据集前六行概览

image.png

CS.lymph.nodes表示淋巴结计数,Regional.nodes.examinedRegional.nodes.positive分别表示被检查的淋巴结数量和阳性淋巴结数量。此外,数据集还包括种族(Race.recode)、年龄(Age.recode.with.<1.year.olds)和性别(Sex)等分类变量。

数据结构描述

使用str()函数对数据结构进行进一步分析

image.png

数据结构描述

  • CS.lymph.nodes:数值型变量,表示淋巴结计数,共有17,659个观测值。
  • Regional.nodes.examined:数值型变量,表示被检查的淋巴结数量,共有17,659个观测值。
  • Regional.nodes.positive:数值型变量,表示阳性淋巴结数量,共有17,659个观测值。
  • Race.recode:字符型变量,表示种族信息,共有17,659个观测值。
  • Age.recode.with.<1.year.olds:字符型变量,表示年龄信息,共有17,659个观测值。
  • Sex:字符型变量,表示性别信息,共有17,659个观测值。

模型拟合

为了探究淋巴结数量及其阳性比例与可能的影响因素之间的关系,我们使用了beta二项分布模型进行拟合。beta二项分布模型是一种广义线性模型,特别适用于比例数据的建模。具体地,我们使用vglm()函数进行模型拟合,将Regional.nodes.examinedRegional.nodes.positive作为响应变量,betabinomial作为分布函数,data作为数据集,并设置trace = TRUE以显示迭代过程。模型拟合的代码如下:

   

egional.nodes.positive) ~ 1, betabinomial,

在模型拟合完成后,我们将对模型结果进行详细的分析和解释。

image.png

这表明模型在第五次迭代时收敛,并且对应的对数似然值为-33041.2181。这一数值将作为后续模型评估的重要依据。

模型结果分析

为了获取模型参数的估计值,我们使用了coef()函数,并设置了matrix = TRUE以矩阵形式展示结果:

image.png 这里的logit(mu)logit(rho)分别表示beta二项分布中均值(mu)和分散参数(rho)的logit变换后的估计值。为了更容易地解释这些值,我们进一步将这些logit变换后的系数转换回原始尺度:

转换后的系数值如下:

image.png

其中,mu的估计值表示在给定条件下,阳性淋巴结数量的期望比例,而rho的估计值则描述了这一比例的变异程度。在本例中,mu的估计值约为0.67,表明在平均情况下,大约67%的被检查淋巴结会被诊断为阳性。同时,rho的估计值约为0.79,说明在数据集中,阳性淋巴结比例的变化相对较小,这可能与数据集的特性或潜在的影响因素有关。

在模型拟合完成后,为了进一步理解模型中的数据和权重,我们结合了模型的响应变量(fit@y)和先验权重(weights(fit, type = "prior"))进行了初步的数据查看。以下是合并后数据的头部展示:

image.png

其中,第一列([,1])表示模型响应变量的观测值(例如,阳性淋巴结的比例),而第二列([,2])则代表与这些观测值相对应的先验权重。这些权重在模型拟合过程中用于调整不同观测值对模型参数估计的影响。

模型结果汇总

接下来,我们对模型的整体拟合结果进行了汇总。以下是使用summary(fit)函数得到的输出:

模型系数估计

   
summary(fit)

image.png

模型估计了两个参数:logit(mu)logit(rho)的截距项。mu代表阳性淋巴结的期望比例,而rho则描述了这一比例的变异程度。从上述结果可以看出,两个截距项的估计值分别为0.71364和1.29980,且均具有较高的统计显著性(p值远小于0.05)。

模型包含两个线性预测器,分别对应于logit(mu)logit(rho)。模型的对数似然值为-33041.22,在32764个自由度下计算得出。此外,模型在5次迭代后收敛。

数据可视化

为了更直观地展示模型结果,我们使用ggplot2包绘制了散点图,并通过geom_pointgeom_smooth函数添加了数据点和拟合曲线。在散点图中,我们以Regional.nodes.positive为x轴,以模型响应变量fit@y(即模型预测的阳性淋巴结比例)为y轴。通过这一可视化手段,我们可以清晰地看到数据点的分布情况以及模型拟合的效果。

   


  geom_point(aes(text = paste("fit@y:", fit@y))) 
  

image.png

淋巴结疾病数据

在本研究中,我们来拟合一个beta二项分布模型,以分析淋巴结疾病数据。首先,我们构建了一个仅包含截距项的模型,用于估计阳性淋巴结(R)与阴性淋巴结(N-R)之间的比例关系。模型构建如下:

在模型迭代过程中,我们观察到了对数似然值(log-likelihood)的变化,最终模型在第3次迭代时收敛,并给出了稳定的对数似然值-122.69531。这表示模型已找到了最优的参数估计值。

image.png

模型的参数估计结果如下:

image.png

这里,logit(mu)logit(rho)分别表示阳性淋巴结比例的期望(mu)和变异程度(rho)的对数几率。通过反变换,我们可以得到这些参数的原始值:

   
Coef(fit)

image.png

接下来,为了进一步提高模型的预测能力,我们引入了额外的解释变量。具体地,我们将患者分组(grp)和血红蛋白水平(hb)作为预测因子加入到模型中,并设置beta二项分布的零参数为2,以适应数据的特定特征。新的模型构建如下:

   

fgrp + hb

image.png 在模型迭代过程中,我们观察到了对数似然值的稳定下降,最终模型在第8次迭代时收敛,并给出了稳定的对数似然值-92.907851。这表明,通过引入额外的解释变量,我们得到了一个更加拟合数据的模型。

模型参数估计的解读

经过在beta二项分布模型中引入患者分组(fgrp)和血红蛋白水平(hb)作为预测因子,我们得到了新的模型fit2。通过执行coef(fit2, matrix = TRUE),我们得到了模型参数的估计值,具体如下:

image.png

从上述结果中,我们可以看到不同患者分组(fgrp2fgrp3fgrp4)相对于基准组(fgrp1)对阳性淋巴结比例(mu)的对数几率的影响。特别地,fgrp2fgrp3、和fgrp4的系数均为负数,表明这些组的患者相较于基准组具有较低的阳性淋巴结比例。此外,血红蛋白水平(hb)的系数为负,说明随着血红蛋白水平的降低,阳性淋巴结的比例也随之降低。

对于变异程度(rho),我们注意到除了截距项外,其他预测因子的系数均为0。这可能是由于在模型构建过程中,我们没有为rho引入额外的预测因子,或者这些因子对rho的影响不显著。

数据可视化分析

为了更直观地理解模型结果,我们对数据进行了可视化分析。首先,我们使用plot函数绘制了血红蛋白水平(hb)与死亡比例(R / N)之间的散点图,其中不同的患者分组用不同的颜色和符号表示。图表的标题为“拟合值(线条)”。

   


smalldf = with(lirat, lirat[N > 1, ])

接下来,为了在每个患者分组中绘制模型的拟合线,我们首先筛选出N > 1的数据子集smalldf。然后,我们遍历每个患者分组,提取出该组的血红蛋白水平(hb)和模型拟合值(fitted(fit2)),并使用lines函数在散点图上绘制出拟合线。

image.png

通过这一步骤,我们可以清楚地看到在每个患者分组中,模型如何根据血红蛋白水平的变化来预测阳性淋巴结的比例。这些拟合线不仅有助于验证模型的准确性,还能为我们提供关于患者分组和血红蛋白水平对疾病严重程度影响的深入理解。

data-driven-decisions-in-cancer-care_864483382_1536x1536.jpg

标签:模型,淋巴结,beta,可视化,rho,拟合,二项分布,数据
From: https://www.cnblogs.com/tecdat/p/18176266

相关文章

  • 透视钢铁巨人:炼钢厂可视化技术的力量
    一、什么是炼钢厂可视化?炼钢厂可视化,简而言之,就是将炼钢生产过程中的各项数据、流程通过图形化、图像化的方式直观展示出来。这不仅能让工作人员更加清晰地了解生产状态,还能大大提高生产效率和安全性。山海鲸可视化搭建的炼钢厂可视化模型 二、可视化技术的神奇之处实时监......
  • [数据分析与可视化] Python绘制数据地图3-GeoPandas使用要点-转载
    [数据分析与可视化]Python绘制数据地图3-GeoPandas使用要点 本文主要介绍GeoPandas的使用要点。GeoPandas是一个Python开源项目,旨在提供丰富而简单的地理空间数据处理接口。GeoPandas扩展了Pandas的数据类型,并使用matplotlib进行绘图。GeoPandas官方仓库地址为:GeoPandas。Ge......
  • JuiceFS v1.2-beta1,Gateway 升级,多用户场景权限管理更灵活
    JuiceFSv1.2-beta1今天正式发布。在这个版本中,除了进行了大量使用体验优化和bug修复外,新增三个特性:Gateway功能扩展:新增了“身份和访问管理(IdentityandAccessManagement,IAM)”与“事件通知”,为用户提供更安全、灵活和自动化的数据管理和监控能力,适用于多用户环境和复......
  • 智能决策新时代:可视化大屏是否能够超越传统白板?
    前言2015年,国务院提出了中国制造2025制造强国“三步走”规划,旨在推动中国制造业成为全球制造强国:第一个十年规划,2015-2025:中国制造业迈入制造强国行列,实现技术创新和产业升级。第二个十年规划,2025-2035:中国制造业整体达到世界强国中等水平,推动产业智能化和可持续发展。第三个......
  • NVIDIA机器人仿真环境 —— NVIDIA Isaac Sim 的headless模式/无头模式 —— 非桌面模
    相关:https://developer.nvidia.com/isaac-sim可视化模式,也就是在桌面系统上直接安装软件,具体地址:https://developer.nvidia.com/isaac-sim无头模式则是使用docker安装,该种情况下不使用可视化界面,所有操作均在docker容器内,地址:https://catalog.ngc.nvidia.com/orgs/nvid......
  • 数据分析的五大流程:需求、获取、处理、分析、可视化
    数据分析的五大流程:需求、获取、处理、分析、可视化......
  • 网友开放的开源项目:网页版的A*算法可视化演示程序
    相关项目:https://xueqiaoxu.me/#projects项目介绍:AJavaScriptpath-findinglibraryforgridbasedgames.Italsocomesalongwithaninteractivevisualizationofnumerousstrategies.项目地址:https://github.com/qiao/PathFinding.js演示地址:https://qia......
  • Redis官方开源的可视化管理工具 - RedisInsight
    前言今天大姚给大家推荐一款Redis官方开源的可视化管理工具:RedisInsight。Redis介绍Redis(RemoteDictionaryServer)是一个使用C语言编写的,开源的(遵守BSD协议)高性能的、支持网络、可基于内存亦可持久化的日志型、Key-Value的NoSQL数据库。工具介绍RedisInsight是......
  • 四元数在旋转变换和插值中的有趣的可视化解释
    四元数可以旋转三维空间中的向量,而最近刚好硬着头皮读《复分析可视化方法》(见[1]),这本书中,作者非常巧妙地运用球极射影的方法,将三维空间单位球面上绕向量轴旋转的变换,映射为复平面上旋转矩阵的表示,对四元数的插值给出可视化的有趣并且直观的解释。四元数的基本定义(参考2),两个四元数......
  • 前端使用 Konva 实现可视化设计器(8)- 预览框
    请大家动动小手,给我一个免费的Star吧~大家如果发现了明显的Bug,可以提Issue哟~这一章我们实现一个预览框,实时、可交互定位的。github源码gitee源码示例地址预览框定位方法移动画布,将传入x,y作为画布中心://更新中心位置updateCenter(x=0,y=0){......