前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >「R」生存分析森林图玩法:变量筛选与多模型可视化

「R」生存分析森林图玩法:变量筛选与多模型可视化

作者头像
王诗翔呀
发布于 2020-07-06 09:07:36
发布于 2020-07-06 09:07:36
1.7K00
代码可运行
举报
文章被收录于专栏:优雅R优雅R
运行总次数:0
代码可运行

之前在写 metawho 包的 deft_show() 函数时用到了 forestmodel 包展示元分析模型结果,后面还用到了我发表在 eLife 上的 TIGS 文章中(当时谁能想到呢?)。forestmodel 包还支持常用的一些模型,如 lm、glm 以及 cox,生存分析使用的 Cox 模型是我比较常用的,之前还修过几个bug,最近想做下批量的单变量Cox分析并进行可视化,碰巧记得 forestmodel 这个包支持模型列表,所以又去翻一翻 GitHub 仓库。

变量筛选

发现 GitHub 有个 issue,说这个包的变量筛选功能不起作用(https://github.com/NikNakk/forestmodel/issues/19)。

仔细看了下源代码,问题很简单,已经在我Fork的仓库中修复了,也提交了合并请求,不过这个作者很少上GitHub,CRAN版本都很久没更新了,所以有兴趣的暂时通过我的仓库里安装吧。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
remotes::install_github("ShixiangWang/forestmodel")

这里用示例数据演示下变量筛选的效果:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
library("forestmodel")
library("survival")
library("dplyr")
pretty_lung <- lung %>%
  transmute(time,
            status,
            Age = age,
            Sex = factor(sex, labels = c("Male", "Female")),
            ECOG = factor(lung$ph.ecog),
            `Meal Cal` = meal.cal)

print(forest_model(coxph(Surv(time, status) ~ ., pretty_lung))

筛选前:

筛选后:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
print(forest_model(coxph(Surv(time, status) ~ ., pretty_lung), covariates=c("Age", "Sex")))

多模型可视化

如果进行批量的单变量分析会产生多个模型,前面说了这个包支持可视化,用我之前写 ezcox 包的示例试试看。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
library(ezcox)
zz = ezcox(lung, covariates = c("age", "sex", "ph.ecog"), return_models = TRUE)
ml = zz$models$model
forest_model(model_list=ml)

出来一个很奇葩的图:

我稍微看了下源代码,推测可能是惰性求值出了问题,如果我们自己命令模型名字,问题就不存在了。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
names(ml) = c("model1", "model2", "model3")
forest_model(model_list=ml)

虽然这样模型区分的很明显,但我想要的是不需要显示模型名字,因为如果做批量分析,显示名字没有意义,只需要说明做的是单变量分析就可以了。

可惜该包不支持,想一想难度不大,自己增加这个功能,引入了 merge_models 选项,默认是 FALSE,这样也不影响之前的功能。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
forest_model(model_list=ml, merge_models = TRUE)

至于上面提到的 bug,我感觉无伤大雅,有兴趣的朋友不妨钻研下代码。

上面图形的显示是可以自定义的,之前整过,有机会可以再说说。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-11-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 优雅R 微信公众号,前往查看

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

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

评论
登录后参与评论
暂无评论
推荐阅读
我是如何在两天内做完一个网站的
有点标题党的嫌疑,不过确实网站的主体是在两天内的完成的,后面只是抓取了素材和完善细节。以下内容绝对是赤裸裸的干货。
lyb-geek
2019/08/12
12.8K1
我是如何在两天内做完一个网站的
有关wordpress建站的7个必知常识,80%的人可能都还不知道
有关wordpress建站的7个必知常识,80%的人可能都还不知道,今天就来给大家总结一下关于使用wordpress建站的一些基础性知识点吧。
wordpress建站吧
2019/08/21
5.6K0
有关wordpress建站的7个必知常识,80%的人可能都还不知道
【拓展】一文看懂:网址,URL,域名,IP地址,DNS,域名解析
今天给大家梳理一篇关于网址、URL、IP地址、域名、DNS、域名解析的白话长文,并以简单的提问-解答形式让读者更加深刻理解网址、URL、IP地址、域名、DNS、域名解析,希望有助于读者的学习,面试和工作!
pingan8787
2020/05/05
23.7K0
买了域名之后怎么用 域名使用过程不可忽视的事项
现在不少用户提出买了域名之后怎么用的问题,对于大部分新手的用户来说,不会使用域名也是很正常的,而域名的主要用途就是投资和网站的搭建,购买域名后进行网站搭建的为数比较多,其实方法比较简单,只要进行过一次操作,就会轻松的掌握,一共分为四大步骤,下面就来看看,买了域名之后怎么用的相关步骤介绍吧。
用户8739990
2021/07/23
13.9K0
买了域名之后怎么用 域名使用过程不可忽视的事项
干货|建站流程之域名解析
点击“蓝字”关注我们 最近看到很多小伙伴在求教建站流程。索性阿D也去试了试,现带大家走一遍部分流程吧 。 首先,根据部门程序XGG的暗示: 实际访问网站时,确定从哪台服务器获取网页,对于计算机来说是通过IP地址实现的。由于IP地址是数字形式,为了便于人们记忆,所以使用了域名和网址机制。 域名—>IP地址:在访问网络时,网址会被发送到DNS服务器,然后由DNS服务器返回我们要访问的服务器IP地址,从而进行访问。这是DNS的工作原理,也是之所以需要设置域名解析的原因。我们要在DNS服务器上设置域名解析,让域名
腾讯云DNSPod团队
2023/05/04
1.7K0
干货|建站流程之域名解析
域名注册域名解析域名绑定 dns服务器解析 域名记录的添加 记录类型含义@ www 访问域名请求过程
创建一个web应用,简言之就是访问一个域名,可以到达一个地方,这个地方就是你存放供别人查看的文件的地方
noteless
2018/09/11
59.3K1
域名注册域名解析域名绑定 dns服务器解析 域名记录的添加 记录类型含义@ www 访问域名请求过程
网站制作教程:新手如何用PageAdmin建立一个网站
PageAdmin是国内很知名的建站系统,国内超过30%的网站都是由PageAdmin搭建而成,现在很多公司或单位都没有自己的独立网站,利于pageadmin建站系统,很容易的搭建出自己的网站,网上有很多pageadmin的各种教程,但是很多教程都比较适合老手,下面整理一篇适合第一次做网站的新手教程。
用户4831957
2019/10/08
3.7K0
【全网首发】2025年使用国内服务器,并且域名不备案的唯一方法
是山河呀
2025/02/22
2.3K0
域名和服务器IP地址有什么关系[通俗易懂]
大家好,又见面了,我是你们的朋友全栈君。 域名和服务器IP地址有什么关系?很多用户也经常听说或接触域名和服务器IP地址,一般用户访问网站是通过域名或搜索进入,但大多数人不知道的是直接再浏览器里面输入I
全栈程序员站长
2022/07/31
4.2K0
域名和服务器IP地址有什么关系[通俗易懂]
有域名了怎么做网站?网站作用有哪些?
网站技术经过几十年的发展,从电脑端到现在手机端,人们访问网站变得前所未有的简单快捷,这让企业意识到网站的巨大价值,开始打造一个企业专属的门户网站,但是,很多企业把网站等同于域名,以为有了网站就不需要域名,不知道这两者的区别。那么问题来了,有域名了怎么做网站?网站作用有哪些?别走开,下文为您揭晓答案。
用户8739990
2021/08/06
6.4K0
有域名了怎么做网站?网站作用有哪些?
域名、解析、证书、备案等产品常见问题
腾讯云将于 9.1 起支持APP备案,详情请查看:https://cloud.tencent.com/announce/detail/1971
Im小泽
2022/04/27
21.1K0
DNS域名服务器,我们使用免费WIFI真的安全吗?
KS Knowledge Sharing 知识分享 现在是资源共享的时代,同样也是知识分享的时代,如果你觉得本文能学到知识,请把知识与别人分享 DNS内幕 DNS是什么,可起到什么作用?没有DNS,今天我们所熟悉的互联网就会立即停工。DNS确实非常重要。不过,通常即使是有经验的开发人员,也对其了解甚少。现在,让我们开始了解DNS吧。 什么是DNS DNS是计算机域名系统 (Domain Name System 或Domain Name Service) 的缩写,它是由域名解析器和域名
互扯程序
2018/01/31
9.1K0
DNS域名服务器,我们使用免费WIFI真的安全吗?
手把手教你搭建一个属于自己的网站
网站也可以理解为web应用程序,只不过无需用户下载,只要有网络,随时随地都能访问。
游魂
2018/10/25
7.3K0
准备服务器域名-什么是服务器域名
相对来说虚拟空间的优势是费用低廉,但同样因此虚拟空间性能会大打折扣,可操作空间小,没有对服务器的控制权。
小狐狸说事
2022/11/18
12.4K0
icp备案和域名备案 转
域名备案是指强大的Z-F为了监管互联网站点创新发明出的一个做法。简单地说就是把网站站长的个人或单位的真实资料,包括身份证复印件、填写网站登记表等等资料提交给你的主机服务商,主机服务商再提交给工信部审核登记备案。备案以后会给你发一串类似于“京ICP证030173号 ”的东东,这个串必须挂在你的网站页面里面(很多网站你都能看到类似这样的串)。只有通过备案后的网站才允许开放访问。
wuweixiang
2018/08/14
42.3K0
icp备案和域名备案
                                                                            转
网站域名迁移引流教程
按照视频教程获取免费的虚拟主机,选择中国香港或者国外的虚拟主机可以免去繁琐的备案流程。
LuckySec
2022/11/18
2.7K0
网站域名迁移引流教程
godaddy域名服务器_自己有域名怎么建网站
自己准备做一个个人网站,由于第一次做所以遇到了各种困难,现在把自己的一些经历经验贴出来供大家参考。此贴针对一个完全没有经验的菜鸟,大牛勿喷。
全栈程序员站长
2022/11/10
11.7K0
godaddy域名服务器_自己有域名怎么建网站
动手搭建真正的网站(一):购买服务器、绑定域名
经过前面这么多篇科普文的铺垫,我想此时可以继续跟我哥讨论“如何搭建一个自己的网站”这个话题了,注意,这回我用的词是搭建,因为确实不需要写代码。
Jack.
2022/02/17
26.6K1
动手搭建真正的网站(一):购买服务器、绑定域名
怎么创建一个自己的网站并从外网可以访问
    这个问题是很多新手喜欢问的,譬如大学生想做个自己的博客或者搞个班级图片站什么的,一来可以装个X,二来也算是有个自己定义的域名搞搞小业务什么的。
天涯泪小武
2019/01/17
8.6K0
怎么快速搭建一个英文博客!
博客是网站的一的一种类型,搭建一个英文博客和搭建网站的原理是一样的,只不过是在WordPress主题选择上有所不同。今天这个教程教大家怎么快速的去搭建一个英文博客。适合小白操作。
Hoan外贸建站
2020/12/04
3.7K0
推荐阅读
相关推荐
我是如何在两天内做完一个网站的
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档