跳到内容
主人
交换分支/标签
转到文件
代码

最新提交

 

Git统计

文件夹

永磁
未能加载最新提交信息。
类型
姓名
最新提交消息
提交时间
R
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

自述文件.md

斯特雷姆

克兰状态徽章 Travis CI构建状态 覆盖情况

纵向事件发生时间或失效时间数据的简化分析。估计静态、动态和随机干预治疗(暴露)和监测事件随时间变化的反事实离散生存曲线。估计器(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)

gif公司

模拟数据示例

加载数据:

要求("斯特雷姆")要求("数据表")数据(奥达诺森斯)奥塔特 <-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许可证分发。

关于

这是CRAN R包存储库的只读镜像。stremr-静态、动态和随机治疗和监测系统的生存率简化估计。主页:https://github.com/osofr/stremr报告此包的错误:https://github.com/osofr/stremr/issues

资源

包装

未发布包