斯特雷姆

纵向事件发生时间或失效时间数据的简化分析。估计静态、动态和随机干预治疗(暴露)和监测事件随时间变化的反事实离散生存曲线。估计器(IPW、GCOMP、TMLE)调整仔细斟酌的时变混杂信息右删失。模型拟合可以用glm公司
或3-H2O
机器学习库,包括集成学习(超级学习者).
目前已实施估计员包括:
- 卡普兰·梅尔估计员。不调整时变混杂或信息权利审查。
- 逆概率加权(IPW)Kaplan-Meier. 也被称为调整卡普兰迈耶(AKME)。也称为生存危险的饱和(非参数)IPW-MSM估计。该估计器根据暴露/截尾模型拟合(倾向得分)对每个观察值进行反向加权。
- 生存的有界逆概率加权(B-IPW)估计量. 直接估计生存率(无危险),也基于暴露/审查模型拟合(倾向得分)。
- 逆概率加权边际结构模型(IPW-MSM)对于危险函数,映射到生存。目前,只有当协变量是时间点和制度/规则指标时,才允许进行逻辑回归。该估计器也基于暴露/截尾模型拟合(倾向得分),但允许在多个时间点上进行额外的平滑处理,并包括可选的权重稳定。
- 序贯G-计算(GCOMP). 也称为递归G-计算公式或Q-学习。直接估计结果模型,同时调整时变混杂。评估可以按遵循的规则/制度进行分层,也可以在所有规则/制度中合并。
- 目标最大似然估计量纵向数据。也称为目标最小损失估计量。以初始结果模型为目标的双稳健半参数有效估计量(GCOMP)与IPW相适应。
- 迭代目标最大似然估计(I-TMLE)纵向数据。适应连续的G计算,然后迭代地执行所有池Q的目标,直到收敛。
输入数据:
- 事件发生时间(可能)正确审查的数据必须采用长格式。
- 每行必须包含主题标识符(
身份证件
)以及当前时间的整数指示器(t
),例如,日、周、月、年。
- 该包假定每行中协变量的时间顺序为固定的根据(
身份证件
,t
,我
,C
,A
,N
,是的
),其中
我
--时变和基线协变量。
C
--权利审查事件的指标t
;这可以是单个分类列,也可以是多个二进制列。
A
--暴露(治疗)时间t
;它可以是多元的(不止一列),每列可以是二进制的、分类的或连续的。
N
--时间点被监控指标电话+1
(二进制)。
是的
--事件发生时间结果(二进制)。
- 请注意,假设随访结束时(
Y[t]=1
)或者观察到了正确的审查事件。
- 分类审查对于用一个列(变量)表示所有的审查事件非常有用。
模型拟合:
- 单独的模型适用于观察到的审查、曝光和监测机制。
- 每个模型可以根据时间或任何其他用户指定的分层标准进行分层(适合单独的模型)。每个层都由一个逻辑表达式定义,该表达式选择观测数据中的特定观测值/行(strata)。
- 默认情况下,所有模型都使用
GLM公司
具有二项式
家庭(逻辑回归)。
- 或者,模型拟合也可以使用中实现的任何机器学习算法来执行
水-3
(更快的分配惩罚GLM公司
,随机森林
,梯度助推器
和深层神经网络
).
- 最后,我们可以通过交叉验证从一组H2O学习者中选出最佳模型。网格搜索(
水网格
)允许用户友好的模型规范和拟合多维参数空间的各种停止标准(随机,离散,最大数量的模型,最大时间分配等)。
- 许多模型的集合可以组合成一个单独的(更强大的)模型超级学习者(
过氧化氢组件
).
概述:
安装和文件
安装开发版本(需要开发工具
包装):
开发工具::安装github('osofr/stremr公司',构建渐晕 = 错误的)
为了获得最佳性能,我们还建议安装数据表
:
开发工具::安装github("Rdatatable/数据表")
用于建模水-3
我们建议直接安装最新版本的机器学习库水
R包(也可以在这里看到说明):
如果("包装:h2o" %百分比search())分离("包装:h2o",卸载=真的)如果("水" %百分比行名称(installed.packages()))remove.packages("水")#接下来,下载H2O包依赖项:
包装 <-c("方法","随机反演","统计","绘图","RCurl公司","jsonlite公司","工具","实用工具")新建.pkgs <-塞迪夫(包装,行名称(installed.packages())如果(长度(新建.pkgs))安装.packages(新建.pkgs)#下载并安装R:安装.packages("水",类型="来源",回购=(三)("https://s3.amazonaws.com/h2o-release/h2o/master/3636/R")))
包含软件包功能和数据集概述的文档:
获取特定相关功能的文档斯特雷姆
包裹:
?导入数据?适应倾向?获取IP权重?监督?外科手术?survMSM公司?fitSeqGcomp公司?菲特姆莱?菲特特姆莱
自动报告:
下面是生成自动html格式
报告如下所示。对于pdf报告,只需设置参数format=“pdf”
.
报告(小田,NPMSM公司 = 列表(surv1,苏尔2),MSM公司 = MSM.IPAW公司,GCOMP公司 = 列表(gcomp_测试1,gcomp_测试2),TMLE公司 = 列表(tmle_est_par1酒店,tmle_est_par2酒店),附加数据表 = 真的,RDtables公司 =获取(MSM.IPAW公司,t、 句点.RDs =c(12,15),盖茨斯 = 真的),WTtables公司 =获取\u wtsummary(MSM.IPAW公司$wts U数据,截止线 =c(0,0.5,1,10,20,30,40,50,100,150),规则 = 真的),文件名 = "sim.data.example.fup",标题 = "自定义报表标题",作者 = "作者姓名",你的传说 = 0.99,x峎 = 9.5)

模拟数据示例
加载数据:
要求("斯特雷姆")要求("数据表")数据(奥达诺森斯)奥塔特 <-as.data.table公司(奥达诺森斯,钥匙=c(身份证件,t))
定义一些摘要(滞后):
奥塔特[, ("N、 t分钟1"):=转移(获取("N"),n = 1升,类型 = "滞后",填满 = 1升),通过 = 身份证件]奥塔特[, ("TI.tminus1"):=转移(获取("TI公司"),n = 1升,类型 = "滞后",填满 = 1升),通过 = 身份证件]
将输入数据导入斯特雷姆
对象数据存储类
并定义相关协变量:
小田 <-导入数据(奥塔特,身份证件 = "身份证件",t = "t",共济会 =c("高A1c","最后一个","N、 t分钟1"),香肠 = "C",TRT公司 = "TI公司",监视器 = "N",结果 = "Y、 第1部分")
定义反事实风险。在这个例子中,我们将一种干预定义为“始终治疗”,另一种为“从未治疗”。这种干预可以根据其他变量有条件地定义(动态干预)。类似地,我们可以将干预定义为每个时间点反事实暴露为1的概率t
(用于随机干预)。
奥塔特[, ("TI.set1"):= 1升]奥塔特[, ("TI.set0"):= 0升]
截尾倾向评分模型的回归分析(香肠
),暴露(TRT公司
)和监控(监视器
). 默认情况下,这些倾向性得分都符合一个共同的模型,该模型汇集了所有可用的时间点(随时间平滑)。
G格式 <- "C+TI+N~高A1C+lastNat1"
玻璃纤维 <- "TI~CVD+highA1c+N.tminus1"
gform_显示器 <- "N~1个"
分层,也就是说,为不同的时间点拟合不同的模型,是通过参数中的逻辑表达式实现的分层。。。
(参见?适应倾向
). 例如,下面的逻辑表达式指出,我们希望在时间点16使用单独的模型来拟合审查机制,而在时间点0到15之间使用一个通用模型拟合来进行合并。任何逻辑表达式都可以用来定义这种分层建模。这同样适用于对曝光机制进行建模(分层
)以及监控机制(分层监视器
).
分层 <- 列表(C=c("t<16","t==16"))
适合审查、曝光和监控的倾向分数:
小田 <-适应倾向(小田,G格式 = G格式,玻璃纤维 = 玻璃纤维,gform_显示器 = gform_显示器,分层 = 分层)
基于非参数MSM(IPTW调整后的KM)估计生存率:
要求("马格里特")阿克梅街1号 <-获取IP权重(小田,介入 = "TI.set1") %>%监测(小田) %$%IPW估计
阿克梅街1号
有界IPW的生存估计:
IPW.St.1 <-获取IP权重(小田,介入 = "TI.set1") %>%监督(小田)IPW.St.1[]
用IPW-MSM估计危险,然后映射到生存估计中。使用两种方案并在两个时间点间隔上平滑:
wts.日期1 <-获取IP权重(小田 = 小田,介入 = "TI.set1",规则名称 = "第1阶段")wts.日期0 <-获取IP权重(小田 = 小田,介入 = "TI.set0",规则名称 = "TI0")调查 <-survMSM公司(列表(wts.日期1,wts.日期0),小田,t Tu断裂 =c(1:8,12,16)-1,)调查$圣
纵向时间到事件数据的序贯G-计算(GCOMP)和目标最大似然估计(TMLE)。
定义用于拟合序列结果模型的时间点、回归公式和软件:
t、 苏尔夫 <-c(0:15)Qforms表格 <-代表国际("Q、 kplus1~CVD+highA1c+N+lastNat1+TI+TI.tminus1",(最大值(t、 苏尔夫)+1))参数 = 列表(fit.包装 = "速度GLM",拟合算法 = "glm公司")
G计算(合并):
总成本 <-fitSeqGcomp公司(小田,t tu周期 = t、 苏尔夫,介入 = "TI.set1",Qforms表格 = Qforms表格,参数 = 参数,按规则分层 = 错误的)
目标最大似然估计(TMLE)(分层):
泰米尔 <-菲特姆莱(小田,t tu周期 = t、 苏尔夫,介入 = "TI.set1",Qforms表格 = Qforms表格,参数 = 参数,按规则分层 = 真的)泰米尔[]
在多个时间点上并行估计(t、 苏尔夫
)对于GCOMP或TMLE,请使用参数平行=真
:
要求("多帕莱尔")注册中心(核心 = 40)数据表::设置线程(1)泰米尔 <-菲特姆莱(小田,t tu周期 = t、 苏尔夫,介入 = "TI.set1",Qforms表格 = Qforms表格,参数 = 参数,按规则分层 = 真的,平行 = 真的)
机器学习算法
执行所有建模水-3
分布式随机森林算法只需设置全局包选项fit.package=“水”
和fit.algorithm=“随机森林”
在调用任何拟合函数之前:
设置所有选项(fit.包装 = "水",拟合算法 = "随机森林")要求("水")水::水初始值(N区 = -1)小田 <-适应倾向(小田,G格式 = G格式,玻璃纤维 = 玻璃纤维,gform_显示器 = gform_显示器,分层 = 分层)
其他可用的算法有水-3
梯度助推器(fit.algorithm=“gbm”
),分布式GLM(包括套索和山脊)(fit.algorithm=“glm”
)以及深层神经网络(fit.algorithm=“深度学习”
).
使用参数参数。。。
在里面适合性()
和参数
在里面fitSeqGcomp()
和菲特姆莱()
要传递各种调整参数并为不同的模型选择不同的算法:
参数\u TRT = 列表(fit.包装 = "水",拟合算法 = "gbm公司",ntrees公司 = 50,学习率 = 0.05,采样率 = 0.8,采样率 = 0.8,平衡级 = 真的)参数 = 列表(fit.包装 = "速度GLM",拟合算法 = "glm公司")参数监视器 = 列表(fit.包装 = "速度GLM",拟合算法 = "glm公司")小田 <-适应倾向(小田,G格式 = G格式,分层 = 分层,参数 = 参数,玻璃纤维 = 玻璃纤维,参数\u TRT = 参数\u TRT,gform_显示器 = gform_显示器,参数监视器 = 参数监视器)
根据先前的倾向性得分拟合运行TMLE。同时应用随机森林来估计序列结果模型:
参数 = 列表(fit.包装 = "水",拟合算法 = "随机森林",ntrees公司 = 100,学习率 = 0.05,采样率 = 0.8,采样率 = 0.8,平衡级 = 真的)埃斯特姆 <-菲特姆莱(小田,t tu周期 = t、 苏尔夫,介入 = "TI.set1",Qforms表格 = Qforms表格,参数 = 参数,按规则分层 = 真的)
引用
...
基金
...
版权
此软件以GPL-2许可证分发。