元旦前在人民日报中央厨房上看到一篇文章,叫做“比肩辉瑞的国产新冠药物VV116,是这样研制和临床试验的”,想来就把文献原文找来读了读,写下本文分享给大家,本文主要关注文章的正文中主要统计设计(文章补充材料中还有很多值得学习的地方),前面的实验设计,包括盲法,纳排标准统统不在本文考虑,主要目的是让大家感受下NEJM的杂志的统计做法到底有多“难”。

研究原文链接如下:
https://www.nejm.org/doi/pdf/10.1056/NEJMoa2208822,点击即可阅读。

文章的主要样本入组流程如下:

假设

通过这个研究,作者想说明国产药不劣于辉瑞

The primary efficacy hypothesis was that VV116 would be noninferior to nirmatrelvir–ritonavir with respect to sustained clinical recovery

之前给大家写过,对于临床干预性研究样本量是一个非常非常非常重要的问题:我们首先要考虑清楚如果国产药真的真的不劣于辉瑞,那么需要有多少样本才能让我们在一次实验中很有把握(作者取了0.85)发现这种差异。

作者说了,要证明我这个药比辉瑞的好,那么我主要结局的HR95置信区间下限得大于0.8。意味着假设辉瑞药的康复时间是5.5天,那么我口服国产药康复时间一定要比6.875天快。那么就至少需要724个样本才能够真的不劣的时候有85%的可能得到阳性结果。

To satisfy the noninferiority hypothesis, the lower boundary of the two-sided 95% confidence interval for the hazard ratio of the primary end point had to be above 0.8. The noninferiority margin corresponds to a duration of 6.875 days to sustained clinical recovery, which is 25% longer than 5.5 days. A minimum of 724 events were required to ensure a statistical power of 85%.

怎么算的,这儿给大家来个演示

对于原假设HR界值为0.8的单侧检验,在R语言中生存数据的样本量计算函数nEvents中,设定阿尔法为0.025,单侧检验sided=1,两组样本比例为1,样本n=724,运行下面代码,将n设定为724,就可以保证达到统计效能power达到0.85:

作者是用EAST6这个软件算的,其实在R中都能搞定。

再看主要结果展示,主要结果展示很简单,没有花里胡哨的任何东西,就是非常简单的生存数据的描述统计,加上一个cox模型做出来的HR就完了。HR大于1说明国产药更好,因为结局是完全康复,结合HR的定义

我们知道其实是将辉瑞作为参考组得到的HR

The 95% confidence intervals were estimated with the use of normal approximation (Brookmeyer– Crowley method) on the basis of log–log transformation. Hazard ratios were calculated with the use of the Cox proportional-hazards model. A lower boundary of the two-sided 95% confidence interval for the hazard ratio of more than 0.8 was considered to indicate noninferiority (with a hazard ratio of >1 suggesting that participants receiving VV116 had a shorter time to sustained clinical recovery than those receiving nirmatrelvir–ritonavir).

文章的主要分析就给大家写完了,剩下还有很多生存数据的描述统计的结果在R中做起来都非常简单,之前也有写过。

以上就是主要统计结果展示,没了。很多描述统计和一个cox得到的HR。

看到这,相信你也感觉到了,主体文章的整个统计分析的做法就是一般小硕的水平,流病的本科生都能做,我这个业余选手也能做,如果你还做不来,多看几遍我之前发的文章你肯定也会做了,就这么简单。回过头来再想想你与NEJM差的是统计嘛?是写作吗?差的是做不来分析吗?是想不出来实验设计嘛?不是的,是资源,是思想,是你能不能在上海封控的时候调度7家定点医院的资源来做实验。所以优势资源的整合尤其重要,如果您需要一个强大的数据处理和分析资源请联系我!务必。

另外,本文中主要结局的评估工具新冠症状的评估表给大家放在下面,这应该算的上是最有科学性的新冠症状了,大家也可以用来评评自己和家人:

R数据分析:国产新冠口服药比辉瑞好的文章的统计做法分享的更多相关文章

  1. 数据、人工智能和传感器按COVID-19新冠流感排列

    数据.人工智能和传感器按COVID-19新冠流感排列 Data, AI and sensors arrayed against COVID-19 各国政府.卫生保健专业人士和工业界争先恐后地应对Cov ...

  2. SIR模型预测新冠病毒肺炎发病数据

    大家还好吗? 背景就不用多说了吧?本来我是初四上班的,现在延长到2月10日了.这是我工作以来时间最长的一个假期了.可惜哪也去不了.待在家里,没啥事,就用python模拟预测一下新冠病毒肺炎的数据吧.要 ...

  3. Python模块---制作新冠疫情世界地图()

    目录 pyecharts模块 简介 安装pyecharts 测试pyecharts模块 pyecharts实战:绘制新冠肺炎疫情地图 需求分析 请求数据 提取数据 处理数据 制作可视化地图 设置可视化 ...

  4. Python小白的数学建模课-A3.12 个新冠疫情数模竞赛赛题与点评

    新冠疫情深刻和全面地影响着社会和生活,已经成为数学建模竞赛的背景帝. 本文收集了与新冠疫情相关的的数学建模竞赛赛题,供大家参考,欢迎收藏关注. 『Python小白的数学建模课 @ Youcans』带你 ...

  5. Python小白的数学建模课-B5. 新冠疫情 SEIR模型

    传染病的数学模型是数学建模中的典型问题,常见的传染病模型有 SI.SIR.SIRS.SEIR 模型. 考虑存在易感者.暴露者.患病者和康复者四类人群,适用于具有潜伏期.治愈后获得终身免疫的传染病. 本 ...

  6. Python小白的数学建模课-B6. 新冠疫情 SEIR 改进模型

    传染病的数学模型是数学建模中的典型问题,常见的传染病模型有 SI.SIR.SIRS.SEIR 模型. SEIR 模型考虑存在易感者.暴露者.患病者和康复者四类人群,适用于具有潜伏期.治愈后获得终身免疫 ...

  7. Python小白的数学建模课-B4. 新冠疫情 SIR模型

    Python小白的数学建模课-B4. 新冠疫情 SIR模型 传染病的数学模型是数学建模中的典型问题,常见的传染病模型有 SI.SIR.SIRS.SEIR 模型. SIR 模型将人群分为易感者(S类). ...

  8. R数据分析:生存分析与有竞争事件的生存分析的做法和解释

    今天被粉丝发的文章给难住了,又偷偷去学习了一下竞争风险模型,想起之前写的关于竞争风险模型的做法,真的都是皮毛哟,大家见笑了.想着就顺便把所有的生存分析的知识和R语言的做法和论文报告方法都给大家梳理一遍 ...

  9. R数据分析:潜类别轨迹模型LCTM的做法,实例解析

    最近看了好多潜类别轨迹latent class trajectory models的文章,发现这个方法和我之前常用的横断面数据的潜类别和潜剖面分析完全不是一个东西,做纵向轨迹的正宗流派还是这个方法,当 ...

  10. 2022李宏毅作业hw1—新冠阳性人员数量预测。

    ​ 事前  : kaggle地址:ML2021Spring-hw1 | Kaggle 我的git地址: https://github.com/xiaolilaoli/lihongyi2022homew ...

随机推荐

  1. [OI] Kruskal 重构树

    算法介绍 Kruskal 重构树用于快速判断节点的连通性. 考虑到,假如两个节点是联通的,则他们之间总会有一条边被选入最小生成树内,因此他们在最小生成树内也是联通的. 也就是说,我们可以通过求最小生成 ...

  2. トヨタ自動車プログラミングコンテスト2024#7(ABC 362)

    非常好名次,使我的 \(1\) 旋转 四发罚时应该是这次比赛最唐的东西了,没有就进前一千了 A.Buy a Pen 特判秒了,懒得打三种 ans=,所以就把不能选的那个赋值成无穷大了 #include ...

  3. CSP提高组模拟1

    我的微軟輸入法莫名其妙變成繁體了,你們有什麽頭緒嗎 狀態 題目 20 Time Exceeded A 最短路 25 Time Exceeded B 方格取数 0 Time Exceeded C 数组 ...

  4. 墨天轮国产数据库沙龙 | 胡津铭:时序数据库DolphinDB,从量化金融到万物互联

    分享嘉宾:胡津铭 DolphinDB研发副总监 整理:墨天轮社区 导读 DolphinDB是高性能分布式时序数据库,集成了功能强大的编程语言和高容量高速度的流数据分析系统,为海量结构化数据的快速存储. ...

  5. 34.vue响应式

    响应式就是 数据发生变化,ui界面自动更新内容 : vue响应式的实现是在 创建vue实例的时候,遍历data数据,通过 Object.defineProperty给每个数据添加 getter 和 s ...

  6. Android复习(四)权限—>仅在默认处理程序中使用的权限

    仅在默认处理程序中使用的权限 注意:本指南主要面向准备在 Google Play 商店发布应用的 Android 应用开发者.不过,无论您在哪里发布 Android 应用,为了保护用户隐私,最好都完成 ...

  7. 【ZROJ2730】简单题 可持久化分块题解

    Description 给定一棵 \(n\) 个节点的树,每次询问编号为 \([l, r]\) 的点中有多少个是祖先关系. \(n, q \le 10^5\). Solution 直接做的话树上的祖先 ...

  8. 云原生爱好者周刊:在 PaaS 平台上托管 WebAssembly 应用

    云原生一周动态要闻: Knative v1.1 发布 Nocalhost v0.6.12 发布 CircleCI 的企业功能现在免费了 SolarWinds 修复了一个 Serv-U 漏洞 Nvidi ...

  9. 前台sessionStorage存取对象注意事项

    一.概述 使用sessionStorage存取全局数据: 语法: sessionStorage.setItem("key",value); object = sessionStor ...

  10. C++之OpenCV入门到提高003:矩阵的掩膜(Mask)处理

    一.介绍 今天是这个系列<C++之 Opencv 入门到提高>得第三篇文章.今天这篇文章也不难,主要介绍如何使用 Opencv 对图像进行掩膜处理,提高图像的对比度.在这个过程中,我们可以 ...