元旦前在人民日报中央厨房上看到一篇文章,叫做“比肩辉瑞的国产新冠药物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. [C103] 斐波那契数列

    设 \((i,j)=gcd(i,j)\) \[f_{i}=f_{i-1}+f_{i-2} \] \[f_{i}=f_{i-2}\times f_{1}+f_{i-1}\times f_{2} \] \ ...

  2. Python技术书示例代码相关内容

    二维码用微信扫,按提示填写你的邮箱,转到电脑上打开邮箱下载.清华国企网盘,比较快速.安全.放心下载. 百度网盘链接 用Edge/Chrome浏览器下载. <Python自动化运维快速入门> ...

  3. Android Qcom USB Driver学习(九)

    本章主要是基于之前的学习,实现一个hidraw的驱动,发现有两种用于识别usb设备的方式,放别是usb_device_id和hid_device_id hid_probe (1)hid_device_ ...

  4. kotlin类和对象—>属性与字段

    1.声明属性,Kotlin 类中的属性既可以用关键字 var 声明为可变的,也可以用关键字 val 声明为只读的 class Address { var name: String = "Ho ...

  5. 【Kernel】基于 QEMU 的 Linux 内核编译和安装

    目录 安装虚拟机系统 共享目录 编译内核 卸载内核 参考资料 本文主要记录个人做存储系统研究时,在 QEMU 环境下编译和安装 Linux 内核的过程 安装虚拟机系统 之前在 利用 RocksDB + ...

  6. ToDesk云电脑游戏数量?高性能显卡云桌面

    玩游戏最怕遇到电脑配置跟不上,操作卡成狗不说,画面还一卡卡的,游戏体验极差. 最近被人安利了ToDesk的云电脑,可能是刚推出的,配置价格都很能打,浅用了一波拿来打APEX和荒野大镖客,体验有点惊喜到 ...

  7. Oracle 数据泵 定时全库备份&&删除备份文件【注意点】

    一.概述 在给客户部署的数据泵备份&&删除过期备份脚本时,脚本删除部分未生效,导致存储空间占用非常大. 手动执行该删除命令时,执行成功: 最后发现需要增加 find.rm 等命令的PA ...

  8. Nuxt.js 应用中的 components:dirs 事件钩子详解

    title: Nuxt.js 应用中的 components:dirs 事件钩子详解 date: 2024/10/31 updated: 2024/10/31 author: cmdragon exc ...

  9. UE4纯C++实现游戏快捷栏之创建快捷栏UI

    作为一个在游戏界面中显示的快捷栏,我们需要在游戏运行时就显示出快捷栏UI,故我们创建两个Widget. 1.GameHUDWidget:负责游戏中界面UI的整体显示 2.ShortcutWidget: ...

  10. clone:克隆数据,可深度克隆

    这里列出了原始类型,时间.正则.错误.数组.对象的克隆规则,其他的可自行补充 function clone(value, deep){ if(isPrimitive(value)){ return v ...