R语言使用倾向评分提高RCT(随机对照试验)的效率
时间:2022-07-22
本文章向大家介绍R语言使用倾向评分提高RCT(随机对照试验)的效率,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
原文链接:http://tecdat.cn/?p=6404
倾向评分已成为观察性研究中混杂因素调整的常用方法。基本思想是模拟接受治疗或暴露的概率如何取决于混杂因素,即要治疗的“倾向”。
首先要注意的是,人们不会认为倾向评分在RCT中起作用。如上所述,倾向评分用于调整观察性研究中的混淆。在RCT中,随机化确保治疗和其他基线变量在统计学上是独立的,即没有混淆。那么倾向得分有什么用呢?
治疗加权方法的逆概率
在论文中,Williamson,Forbes和White描述了如何使用倾向得分来获得效率提高的治疗效果评估(较小的标准误差)。该方法与标准方法相同,其中人们估计倾向评分模型,然后拟合通过倾向评分的倒数加权的结果模型。因此,在第一步中,我们拟合二元治疗指标的模型,基线变量作为协变量。通常我们会使用逻辑回归模型进行建模。
从拟合的倾向评分模型中,我们获得试验中每个受试者的估计接受治疗的概率(而不是对照)。对于二元结果,我们可以拟合逻辑或对数链接回归来估计比值比或风险比。
模拟研究
对于实际的方法,我们可以使用二元结果和正态分布的基线变量进行小型模拟研究。我们使用逻辑回归模型生成。然后,我们使用基线变量(未调整的分析)估算优势比,然后实施IPTW估算器:
###模拟研究
nSim < - 1000
n < - 1000
unadjustedEst < - array(0,dim = nSim)
IPTW_Est < - array(0,dim = nSim)
for(i in 1:nSim){
z < - 1 *(runif(n)<0.5)
x < - rnorm(n)
xb < - x + z
prob < - exp(xb)/(1 + exp(xb))
y < - 1 *(runif(n)<prob)
未调整的< - glm(y~z,family = binomial)
#IPTW估算 #first我们适合倾向评分模型
propModel < - glm(z~x,family = binomial)
fitted_p < - 拟合(propModel)
#calculate权重
wgt < - 1 / fitted_p
wgt [z == 0] < - 1 /(1-fitted_p [z == 0])
iptwMod < - glm(y~z,family = binomial,weight = wgt)
IPTW_Est [i] < - iptwMod $ coef [2]
}
然后,我们通过观察1000个模拟中的平均值和经验值SD来查看两个估算器的性能:
> mean(unadjustedEst)
[1] 0.8392246
> sd(unadjustedEst)
[1] 0.1353718
>
> mean(IPTW_Est)
[1] 0.8364911
> sd(IPTW_Est)
[1] 0.1220977
我们首先注意到平均对数比值比处理效果估计值约为0.84,而不是数据生成机制中使用的值1。这是因为0.84是边际优势比,而1是条件优势比。
接下来,我们看到IPTW估计器在重复样本中的变量小于标准的未调整估计器。因此,我们通过使用基线变量获得了效率。
- 如何提高Python运行效率 超实用的四种提速方法
- 如何让oracle的select强制走索引
- ActionScript3.0(AS3)中的泛型数组Vector
- 人民网评:“算法推荐”不能成为传播低俗信息的助推器
- 代码实现WordPress自动关键词keywords与描述description
- 基于Spring的简易SSO设计
- MS 的IOC容器(ObjectBuilder)?
- 自动驾驶五问
- 开放的即时通信协议Jabber
- AI技术五年内必将颠覆现有医疗领域?
- 初探ReactJS.NET 开发
- 详解使用hadoop2.6.0搭建5个节点的分布式集群(附代码)
- Net Framework 2.0 事务处理
- Mono 4.0 Mac上运行asp.net mvc 5.2.3
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 听说Mysql你很豪横?-------------呕心沥血深入解析mysql备份与恢复!!!
- 排障集锦:九九八十一难之第十难!mysq备份恢复,Could not read entry at offset *: Error in log format or read error.
- Vue使用ref父子组件通信
- 听说Mysql你很豪横?-------------MySQL5.7主从同步
- 听说Mysql你很豪横?-------------MySQL5.7主从复制!读写分离!
- Vue兄弟组件传值
- Vue设置浏览器的标题title和图标icon
- VantUI封装自定义Tabbar路由跳转
- 听说Mysql你很豪横?-------------分分钟带你玩转SQL高级查询语句(常用查询,正则表达式,运算符)
- jQuery实现点击添加样式同胞移除样式
- 微信小程序生命周期
- 听说Mysql你很豪横?-------------分分钟带你玩转SQL高级查询语句(库函数,存储过程)
- 微信小程序下拉刷新上拉加载
- 微信小程序引用自定义组件
- 听说Mysql你很豪横?-------------搭建MySQL MHA实现数据库高可用( MySQL MHA概述、 搭建 MySQL MHA、 MySQL MHA 故障切换)