内容来自:“小白学统计”微信公众号,感谢作者授权。

临床中经常碰到这种设计:研究对象分为两组,接受不同治疗(如治疗组和安慰组),每组分别在治疗前和治疗后测量观察指标(如血压值)。目的是比较两种治疗方式是否有差异。这种情况你会怎么处理呢?

我看过不少国内的文章,他们的做法有这么几种:(1)直接比较治疗后的两组指标,如血压值,用t检验比较;(2)先比较治疗前两组的差异,证明无统计学意义,然后再比较治疗后两组的差异;(3)先比较试验组治疗前和治疗后差异,再比较对照组治疗前和治疗后差异,如果试验组治疗后和治疗前差异更大,说明试验组更有效。

第一种做法是肯定有问题的,因为它根本不考虑两组在疗前的差异。为什么有问题呢?比方说,下面这个简单的例子:

有甲乙丙3个学生,期末考试成绩分别为90、85、80,如果让你判断,你觉得哪个学生更优秀一些(只考虑成绩)?当然了,你可以毫不犹豫地说,甲最优秀,因为成绩最高。但确实如此吗?

再给你一组数据,甲乙丙3个人的刚入学时的成绩,分别是95、85、60。这时候再让你说,谁更优秀呢?我想,你可能要犹豫一下了。虽然甲的期末成绩最高,但是相比入学成绩而言,他是下降了。丙的期末成绩最低,可是相对入学成绩而言,他上升了很多。作为一个老师,也许他不会说,甲最优秀,而会说,丙最优秀。因为成绩上升很快。

所以,很明显,我们是不应该只看治疗后两组差异的,这说明不了什么问题。

第二种做法,相对好一些,起码通过统计学方法说明两组治疗前无统计学差异。但是,统计学差异有时未必可靠,跟例数有关的,如果例数少的话,即使两组治疗前差别较大,也是无统计学差异。所以,也不是很好。

第三种做法,听起来似乎也有理,但仔细想想。试验组的治疗后和治疗前差异比对照组的大,是反映了一种真实情况吗?还是需要有统计学来证实的。比如,试验组的血压值治疗后与治疗前相比,降低了2mmHg,对照组降低了1.8mmHg,仅从数字来看,试验组降低更多,但有意义吗?很难说。

比较两组差异的正确做法

真正想说明两组差异的话,比较好的做法有两种:

(1)采用倍差法,具体是:两组分别求出服药后和服药前的血压值差值,这样就变成了两组差值的比较,可采用t检验或方差分析。由于做了两次差值,所以叫倍差法。

(2)采用协方差分析,比较两组治疗后的血压值,但是以服药前血压值作为协变量,校正其影响。实际上是比较两组校正的服药后血压值。

第一种方法很简单,只是一种思路而已,仍然是t检验或方差分析。这里就不多说。第二种方法是协方差分析,本文主要介绍一下。

协方差分析的思想大概就是:把治疗前两组的数值作为一个协变量,比较两组治疗后差异的时候,校正这一协变量。这样可以得到校正后的两组治疗后均值,比较两组的校正均值。比如说,a和b两组治疗后均值分别为62和56,但是如果校正治疗前后,很可能就变成了59和59,这样比较两个校正均值59和59,两组就没有统计学差异了。

如果要做协方差分析,起码要有2个条件:

(1)两组疗前有差异。这很好理解,如果两组在治疗前无差异的话,就没必要考虑治疗前情况了,直接比较治疗后就好了。

(2)治疗前结果会对治疗后结果有影响。这也不难理解。如果治疗前的值根本不会影响到治疗后的值,那两组在治疗前有没有差异就无所谓了。对于多数研究来说,这一条件一般都会满足。比如治疗前高血压肯定会影响治疗后高血压,治疗前抑郁得分通常也跟治疗后抑郁得分有关,治疗前高的通常治疗后也会高,治疗前低的,通常治疗后也会低。实际上,这两个条件也就是混杂因素的条件。所以,其实说白了,协方差分析也就是校正混杂因素。

实例解析

通过一个简单例子,说一下协方差分析的过程。

假定要比较两组的的指标情况,分别观察了用药前和用药后指标值。如果不考虑用药前情况,直接采用t检验比较两组用药后数据,结果如下:

两组差值为4.36, P=0.106。

如果考虑到治疗前情况,采用协方差分析,比较治疗后,校正治疗前,这时候结果如下:

这一结果中,group行表示两组差值,此时两组差值变为2.82,比上面的4.36变小了,所以导致P值变大了很多,变成了0.2007,基本上增大了一倍。

虽然,两种做法的P值都大于0.05,但是可想而知,如果不考虑疗前的情况,很容易得到一个小的P值,从而导致假阳性的增加。

为什么会这样呢?其实仔细看看两组疗前的数值就明白了。两组治疗前的数值是这样:

不难看出,a组(第一行)基线就偏高,b组(第二行)基线偏低。也就是说,一开始a组就偏高,那么理论上来说,治疗后a组本来就应该高于b组。也就是说,治疗后两组差值(4.36)这么大,并不仅仅是两组药物导致的差异,而且含了两组基线不同造成的的差异(仔细体会一下这句话)。

一旦校正了基线水平,就相当于把两组基线不同所造成的差异给去掉了,只剩下了两种药物所造成的差异了,当然两组的差值就变小了。

对于本例而言,校正了基线后,两组的校正均值(最小二乘均值)为:

可以看出,校正疗前值后,疗后两组均值不是55.39和51.03,而是54.62和51.80。差距明显缩小了。

所以,如果要比较的两组都有治疗前后数据,如果治疗前不是那么均衡的话,最好采用协方差分析校正一下。扫码关注“医咖会”公众号,及时获取最新统计教程!

协方差检验用在什么地方_通过一个简单例子,通俗讲下协方差分析相关推荐

  1. python迭代器举例_如何最简单、通俗地理解Python的迭代器?

    1.什么是迭代器 迭代器 指的是迭代取值的工具,迭代是一个重复的过程, 每次重复都是基于上一次的结果而继续的, 单纯的重复并不是迭代. 比如:A+B生育了C, C+D=>E,生育过程是迭代, 克 ...

  2. vue 如何生成一个dom元素_通过一个简单的示例学习如何编写Vue组件

    大家好,本篇文章我将带着大家一起学习如何编写自定义组件(Components),通过「vue基础」新手快速入门篇(一)这篇文章的学习,我们知道了 Vue 设计的目的就是为了方便我们创建基于组件UI的项 ...

  3. python module是干什么的_如何最简单、通俗地理解Python的模块?

    目录: 一.笔记 二.笔记目录 一.笔记 1) 模块 ① Python模块(Module),是一个Python文件,以.py结尾,包含了Python语句和Python对象定义,模块让你能够有逻辑地组织 ...

  4. mysql可以使用mybaties框架吗_搭建一个简单的mybatis框架

    一.Mybatis介绍 MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架.MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索封装.MyBatis可以 ...

  5. python正则化_如何最简单、通俗地理解Python的正则化?

    目录: 一.笔记 二.我的自学路线 三.笔记目录 一.笔记 ① 正则表达式是一个特殊的字符序列,它能帮助你方便的检查一个字符串是否与某种模式匹配. ② 正则表达式中包含两个部分,一个是正则语法对应的字 ...

  6. 彻底理解python递归_如何最简单、通俗地理解Python的递归?

    这是从林海峰博客里面copy的.很好的解释了,python函数的递归. 那什么是递归? 在函数内部,可以调用其他函数.如果在调用一个函数的过程中直接或间接调用自身本身 递归的样子 def digui( ...

  7. python相对路径库_如何最简单、通俗地理解Python的搜索路径、相对路径、绝对路径?...

    目录: 一.笔记 二.我的自学路线 三.笔记目录 一.笔记 1) 搜索路径 ① 能导入模块的话,表示搜索路径中有这个模块文件. ② 当你导入一个模块,Python解析器对模块位置的搜索顺序是:1. 当 ...

  8. network setup service启动后自动停止_一个简单的测试环境下的自动化部署方案

    笔者是公司是一个分前后端开发的公司.而笔者是一个普通的后端开发工程师.在和前端工程师协同开发时,为了给前端工程师提供接口,往往要将写好的代码交付并部署到测试环境.因而这导致笔者经常需要打包项目更新到测 ...

  9. java继承类型转换_#java 一个简单的例子理解java继承、成员函数重写、类型转换...

    一个简单的例子理解java继承.成员函数重写.类型转换 1.继承简介 举一个简单的例子:笔分为很多种,比如毛笔.钢笔.圆珠笔等等,这些笔都有一些相同的属性比如长度.笔迹的粗细等等:但他们也有不同的特点 ...

最新文章

  1. 如何才能使用内存小或者显存小的设备训练神经网络
  2. 云计算平台中虚拟专用网和VPC有什么区别?
  3. html游戏源妈简单,最简单的HTML5游戏——贪吃蛇
  4. Ubuntu设置宽带连接DSL
  5. 海思芯片怎么使用tde给qt加速_屏幕决定电视画质上限,芯片决定电视画质下限...
  6. mikechen详谈架构师成长之3大步骤
  7. 29.C++- 异常处理
  8. Lind.DDD.Aspects通过Plugins实现方法的动态拦截~Lind里的AOP
  9. “我想再当一次 CEO,所以我离开了 IBM。”
  10. Hadoop序列化及案例
  11. 成都市计算机会考,四川省高中信息技术会考资料及试题
  12. 结构思考力~设计序言
  13. 微信、QQ上线国产系统UOS:界面曝光
  14. linux下录音识别成文字软件下载,录音转文字分享助手
  15. Redit集群搭建-Sentinel模式搭建
  16. 编写.bat执行jar包
  17. 模型修饰在无人机航测实景三维模型生产中的应用——以DP-Modeler软件为例
  18. GRUB4DOS(六) find命令的实现
  19. 免费录屏软件之OBS Studio
  20. chrome浏览器打不开网页 显示远程计算机或设备将不接受连接?

热门文章

  1. 在linux下怎么安装mysql,手把手教你在Linux系统下安装MySQL
  2. [转载] 上海交通大学计算机系2013届研究生offer汇总
  3. VRTK功能教学(二):Unity3DVRTK手柄瞬移和UI交互射线切换功能丨3D模型射线交互切换丨直线和曲线的切换
  4. 鼠标点击网页空白处出现富强民主和谐自由
  5. 图论(十)——欧拉图和哈密尔顿图
  6. HTML的加粗、斜体、删除和下划线标签
  7. 法里数列和本原勾股数
  8. 3D Slicer——配准篇(基于Elastix形变配准)详细教程
  9. datax运行自检命令报错 datax/plugin/reader/._xxxx/plugin.json]不存在
  10. python代码阅读神器,加速掌握开源项目