病例对照研究中—两组组间比较—的统计方法选择,基于R语言

2023-11-17

医学中最常设计的试验就是病例对照研究,以探究某一干预措施是否有改善性。需要根据基线的情况,选择相应的方法。

试验数据如下:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
(声明:该数据是随机自动生成的,虚拟的,该计算结果不代表任何真实的事情,该数据不适用于现实世界。)
数据由试验组长病程10名,试验组短病程10名,对照组10名组成,干预手段为减肥。

一、两组病例对照研究常用的三种方法
(1)T检验法,将结果进行T检验。
因为基线齐,说明两组干预前组间差异不明显,直接用T检验对比干预后的结果。

long_after <- filter(data, 病程=='长病程' & 干预=='减肥后')
short_after <- filter(data, 病程=='短病程' & 干预=='减肥后')
t.test(short_after$血清蛋白含量, long_after$血清蛋白含量, var=T,paired=F)

独立样本T检验得出P=0.5106
(2)倍差法,将干预前后差值进行T检验。
先用 干预后 减去 干预前, 得出差值d,然后用差值进行T检验。
倍差值法独立样本T检验得出P=0.3641
(3)协方差法,线性回归分析的一种。
协方差分析法,是把方差分析和回归分析结合起来的一种方法。一般的T检验只考虑了干预方式的影响,但是没有把其他的影响变量纳入进去。而协方差法可以把多个影响变量的效应给处理掉。
这里运用协方差法计算两组差异的思路,就是将干预前的血清蛋白含量作为影响变量X之一。
****协方差分析法是参数统计的一种,所以其运用条件同方差分析。要求是连续型数值,且影响变量之间无交互效应。
****协方差分析中,变量必须是连续型数值,所以性别这种分类变量不能用于协方差分析。可以尝试下多因素Logic回归。

fit <- aov(data$干预后含量 ~  data$干预前含量  + data$病程 )
summary(fit)

算出如下:
在这里插入图片描述
说明长病程和短病程在干预后的差异P值=0.9132 (貌似这个值最大)

#把年龄因素的影响去掉
fit <- aov(data$干预后含量 ~  data$干预前含量 + data$年龄 + data$病程 )
summary(fit)

在这里插入图片描述
可以看出,年龄对Y无显著影响,校正了年龄、初始血清蛋白含量以后,得出P值=0.7097
有意思的来了,将年龄和干预前含量交换位置:
在这里插入图片描述
干预前的含量对血清含量有显著影响(p=0.0425),校正干预前含量、年龄等因素后,该干预手段对长短病程的患者无显著影响(p=0.7097)。
(4)Welch Ttest
Welch Ttest算出P=0.5115

小彩蛋:其实一开始没有把干预前的基线给算出来,因为主要是想对比这三种常用的方法(可能有的同学常用的只有第一种)。现在来揭晓答案:干预前的长病程组p=0.1162,短病程组p=0.3109,两组无显著差异(shapiro),符合正太分布。两组方差检验(Ftest)P=0.8348,默认方差齐。因此,在这个实验数据中,答案其实就是基线齐。

二:总结
可以看出,三种方法对比,独立样本T检验(P=0.5106),倍差值法(P=0.3041),协方差法(P=0.9132)。
因此,在基线齐的时候,选择倍差法要比独立T检验会好点,因为值更小,容易出结果。student T test 和Welch T test 的值均比倍差值法要大。
但是协方差法适用范围更大点,因为它排除了年龄等干扰因素,相对而言应用更广泛,其结果更加可信。

因此,我推荐:
在基线齐的时候,运用倍差值法进行两组差异检验;在基线不齐的时候,运用协方差法进行两组差异检验(把基线的差异给校正掉)。
如果想校正年龄、血压等其他可能存在的影响因素,直接用协方差法。

如果基线不齐,可以用倍差法吗?如果用倍差法,就会引出一个问题,即该干预手段对基线不同的两组的影响作用是一样的吗?
举例:中风偏瘫患者,在急性期用神经保护剂,效果更高,而在恢复期,效果就一般般。那么对于基线不齐的两组(一组是急性期,一组是恢复期),那么神经保护剂的治疗效果是不同的,因此这个时候用倍差法去计算两组的干预效应,是不对的。
因此,如果你能根据现有文献,证明该干预手段对两组影响作用一样,那么可以在基线不齐的时候使用倍差法,但是基线不齐最好的还是协方差分析法。但是协方差分析法又有个问题,就是两组数据要符合正态分布,因为协方差分析法是参数检验。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

病例对照研究中—两组组间比较—的统计方法选择,基于R语言 的相关文章

  • 顺序表的定义及初始化代码实现(C语言)

    适合初学数据结构 不明白如何通过代码实现顺序表 超简洁代码如下 2020 10 16 第一次修改 顺序表结构定义的data是数组类型 应采用静态分配 模糊了静态分配与动态分配 已修改 错误程序L gt data 10 int malloc

随机推荐

  • 报错Description Resource Path Location Type Lifecycle mapping "org.eclipse.m2e.jdt.JarLifecycleMapping

    我这边是因为eclipse想做spring boot项目 因此想安装STS插件 结果装了几个版本 发现都没用 还导致POM XML文件报错 解决问题 1 卸载STS插件 help Install New Software 点击 what i
  • 一个矩阵乘以它本身的转置等于什么

    如果一个矩阵 A 乘以它本身的转置 AT 那么结果就是一个对角矩阵 对角线上的元素就是 A 矩阵中每一列的平方和 其余的元素都是 0 例如 如果 A 矩阵是 a11 a12 a21 a22 那么 A 乘以 AT 就是 a11 2 a21 2
  • 网道 JS教程 (第一天)

    地址 https wangdoc com javascript js 特点 单线程 事件驱动 非阻塞式设计 数据类型 数值 number 整数和小数 比如1和3 14 字符串 string 文本 比如Hello World 布尔值 bool
  • 关闭或者半关闭?!

    2017 05 20 LIBnids这个库 对于关闭的两个状态 理解的不是很清楚 就是 CLOSE算一个状态 CLOSE之前并不调用EXITING的语句 这就很尴尬 目前就当这两个是同一个状态 但是看着有些数据包是关闭的 结果显示不关闭 这
  • 模块学习笔记—(1)编码器减速电机

    模块学习笔记 1 编码器减速电机 编码器电机作用 编码器电机转动可以产生脉冲信号 根据脉冲信号 可以得出轮胎的转动速度 轮胎的位移 电机正反转等 电机介绍 我的编码器电机是130TT减速电机 电机轴转一圈可以产生13个脉冲信号输出 电机减速
  • 使用UUID获得一个不重复的16位账号的算法

    public static String getAccountIdByUUId int machineId 1 最大支持1 9个集群机器部署 int hashCodeV UUID randomUUID toString hashCode i
  • java运行环境

    计算机基础知识 二进制 如图 十进制和二进制的转换 字节 计算机中一个0或者一个1就是一个位 bit 不过并不是最小的数据单位 最下的数据单位是字节 Byte 一个字节等于8个位 计算机中任何数据的存储都是以字节的形式存储 1 B 8 bi
  • 2、线程池篇 - 从理论基础到具体代码示例讲解(持续更新中......)

    前言 暂无 一 线程篇 有关线程部分的知识整理请看我下面这篇博客 1 线程篇 从理论到具体代码案例最全线程知识点梳理 持续更新中 二 线程池基础知识 线程池优点 他的主要特点为 线程复用 管理线程 不需要频繁的创建和销毁线程 控制线程数量
  • html 登录页面 简洁,简单登录html页面

    简单的登录页面 一个简单pc 移动端显示的html codeDocument margin 0px padding 0px bg width 100 height 45vh text align center color fff backg
  • Could not generate command line for the ‘VCCLCompilerTool’ tool

    转载自 http blog csdn net shirui1125 article details 6095774 gt ToolBox error PRJ0004 未能为 VCCLCompilerTool 工具生成命令行 从原有的平台复制
  • AD采集中的10种经典软件滤波程序优缺点分析(附程序)

    在AD采集中经常要用到数字滤波 而不同情况下又有不同的滤波需求 下面是10种经典的软件滤波方法的程序和优缺点分析 1 限幅滤波法 又称程序判断滤波法 2 中位值滤波法 3 算术平均滤波法 4 递推平均滤波法 又称滑动平均滤波法 5 中位值平
  • 自定义协议:如何实现keepalive

    高可用协议招式 keepalive 什么是keepalive tcp如何实现keepalive http如何实现keepalive 自定义协议时该怎样实现keepalive 什么是keepalive Keepalive是一种技术 它可以帮助
  • C语言最简单的服务器和客户端程序

    服务器 include
  • SQLServer之DEFAULT约束

    DEFAULT约束添加规则 1 若在表中定义了默认值约束 用户在插入新的数据行时 如果该行没有指定数据 那么系统将默认值赋给该列 如果我们不设置默认值 系统默认为NULL 2 如果 默认值 字段中的项替换绑定的默认值 以不带圆括号的形式显示
  • shell面试题

    第1章 选择 1 1 退出交互模式的 shell 应键入 A B q C exit D quit 1 2 下列变量名中有效的 shell 变量名是 C 2 time 2 3 trust no 1 2004file 1 3 在 shell 编
  • stm32低功耗解决方案-(外部时钟芯片RX8025T)

    首先在入手一个芯片时要先观看芯片手册rx8025t和rx8025as手册是不一样 两者的寄存器也会有很大的差距 RX8025t中文手册 本文介绍的是一个低功耗解决方案 因为我使用的是stm32的待机模式 所以只需要在唤醒时想办法就行了 因此
  • Android 中的线程池

    Android 中的线程池 线程池的优点 重用线程池中的线程 避免因为线程的创建和销毁所带来的性能开销 能有效控制线程池的最大并发数 避免大量的线程之间因互相抢占系统资源而导致的阻塞现象 能够对线程进行简单管理 并提供定时执行以及指定间隔循
  • C#编程中遇到的一些异常及部分异常的解决方法

    以下内容是在本人在C 编程中遇到的异常 针对部分异常给出了解决办法 但是此解决方法是否真的好用 有待进一步考证 仅供参考 1 System Invalid Operation Exception 类型的未经处理的异常 出现在System W
  • itext5创建pdf表格及遇到的一些问题

    0 核心依赖 1 设置页眉图片及下划线 2 document参数传递 3 生成的pdf文件转base64编码 4 平方 上标显示问题 5 压缩包的文件流InputStream输出文件 6 itext5进行pdf合并 0 核心依赖
  • 病例对照研究中—两组组间比较—的统计方法选择,基于R语言

    医学中最常设计的试验就是病例对照研究 以探究某一干预措施是否有改善性 需要根据基线的情况 选择相应的方法 试验数据如下 声明 该数据是随机自动生成的 虚拟的 该计算结果不代表任何真实的事情 该数据不适用于现实世界 数据由试验组长病程10名