R 与 Stata 中的 Cox 比例风险模型

2024-02-14

我正在尝试使用以下数据在 R 中复制 Stata 的 cox 比例风险模型估计http://iojournal.org/wp-content/uploads/2015/05/FortnaReplicationData.dta http://iojournal.org/wp-content/uploads/2015/05/FortnaReplicationData.dta

stata中的命令如下:

stset enddate2009, id(VPFid) fail(warends) origin(time startdate)
stcox HCTrebels o_rebstrength demdum independenceC transformC lnpop lngdppc africa diffreligion warage if keepobs==1, cluster(js_country)

Cox regression -- Breslow method for ties

No. of subjects      =          104                Number of obs   =       566
No. of failures      =           86
Time at risk         =       194190
                                               Wald chi2(10)   =     56.29
Log pseudolikelihood =   -261.94776                Prob > chi2     =    0.0000

                           (Std. Err. adjusted for 49 clusters in js_countryid)
-------------------------------------------------------------------------------
              |               Robust
           _t | Haz. Ratio   Std. Err.      z    P>|z|     [95% Conf. Interval]
--------------+----------------------------------------------------------------
    HCTrebels |   .4089758   .1299916    -2.81   0.005     .2193542    .7625165
o_rebstrength |   1.157554   .2267867     0.75   0.455     .7884508    1.699447
       demdum |   .5893352   .2353317    -1.32   0.185     .2694405    1.289027
independenceC |   .5348951   .1882826    -1.78   0.075      .268316    1.066328
   transformC |   .5277051   .1509665    -2.23   0.025     .3012164    .9244938
        lnpop |   .9374204   .0902072    -0.67   0.502     .7762899    1.131996
      lngdppc |   .9158258   .1727694    -0.47   0.641     .6327538    1.325534
       africa |   .5707749   .1671118    -1.92   0.055     .3215508    1.013165
 diffreligion |   1.537959   .4472004     1.48   0.139      .869834    2.719275
       warage |   .9632408   .0290124    -1.24   0.214     .9080233    1.021816
-------------------------------------------------------------------------------

对于 R,我使用以下内容:

data <- read.dta("FortnaReplicationData.dta")
data4 <- subset(data, keepobs==1)
data4$end_date <- data4$`_t`
data4$start_date <- data4$`_t0`
levels(data4$o_rebstrength) <- c(0:4)
data4$o_rebstrength <- as.numeric(levels(data4$o_rebstrength[data4$o_rebstrength])
data4 <- data4[,c("start_date", "end_date","HCTrebels",  "o_rebstrength", "demdum", "independenceC", "transformC", "lnpop", "lngdppc", "africa", "diffreligion", "warage", "js_countryid", "warends")]
data4 <- na.omit(data4)
surv <- coxph(Surv(start_date, end_date, warends) ~ HCTrebels+ o_rebstrength +demdum + independenceC+ transformC+ lnpop+ lngdppc+ africa +diffreligion+ warage+cluster(js_countryid), data = data4, robust = TRUE, method="breslow")

                 coef exp(coef) se(coef) robust se     z      p
HCTrebels     -0.8941    0.4090   0.3694    0.3146 -2.84 0.0045
o_rebstrength  0.1463    1.1576   0.2214    0.1939  0.75 0.4505
demdum        -0.5288    0.5893   0.4123    0.3952 -1.34 0.1809
independenceC -0.6257    0.5349   0.3328    0.3484 -1.80 0.0725
transformC    -0.6392    0.5277   0.3384    0.2831 -2.26 0.0240
lnpop         -0.0646    0.9374   0.1185    0.0952 -0.68 0.4974
lngdppc       -0.0879    0.9158   0.2060    0.1867 -0.47 0.6377
africa        -0.5608    0.5708   0.3024    0.2898 -1.94 0.0530
diffreligion   0.4305    1.5380   0.3345    0.2878  1.50 0.1347
warage        -0.0375    0.9632   0.0405    0.0298 -1.26 0.2090

Likelihood ratio test=30.1  on 10 df, p=0.000827
n= 566, number of events= 86 

我得到相同的风险比系数,但标准误差看起来不一样。 Z 和 p 值很接近,但不完全相同。为什么 R 和 Stata 的结果可能不同?


正如 user20650 所注意到的,当在 Stata 选项中包含“nohr”时,您会得到与 R 中完全相同的标准错误。使用集群时,标准错误仍然存​​在细微差别。 user20650 再次注意到给出的差异是因为 Stata 默认标准误差乘以 g/(g − 1),其中 g 是簇的数量,而 R 不调整这些标准误差。因此,解决方案就是在 Stata 中包含 noadjust 或通过执行以下操作在 R 中调整标准误差:

sqrt(diag(vcov(surv))* (49/48))

如果我们仍然希望在 R 中具有与 Stata 相同的标准误差,就像不指定 nohr 时一样,我们需要知道,当 nhr 被关闭时,我们获得 $exp(\beta)$ 以及通过拟合模型而产生的标准误差那些规模。特别是通过将 delta 方法应用于原始标准误差估计而获得。 “Delta 方法通过计算相应一阶泰勒展开式的方差来获得变换变量的标准误差,对于变换 $exp(\beta)$ 而言,相当于将 oringal 标准误差乘以 $exp(\hat{ \beta})$。这种计算技巧会产生与在估计之前转换参数然后重新估计相同的结果”(Cleves et al 2010)。在 R 中,我们可以使用以下方法来做到这一点:

library(msm)
se <-diag(vcov(surv)* (49/48))
sapply(se, function(x) deltamethod(~ exp(x1), coef(surv)[which(se==x)], x))

     HCTrebels o_rebstrength    demdum independenceC transformC     lnpop   lngdppc    africa diffreligion     warage
     0.1299916     0.2267867 0.2353317     0.1882826  0.1509665 0.0902072 0.1727694 0.1671118    0.4472004 0.02901243
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

R 与 Stata 中的 Cox 比例风险模型 的相关文章

  • 使用 ggplot 构面时增加闪亮的绘图大小

    有没有办法增加绘图窗口的大小shiny取决于在一个中使用的面的数量ggplot图 也许使用垂直滚动 例如 使用下面的示例 当输入为 A 有三个方面 情节看起来不错 当选项 B 选择绘图数量会增加 但绘图窗口保持相同大小 导致绘图太小 是否有
  • 汇总表中各列的字符值比例

    在这种数据框中 df lt data frame w1 c A A B C A w2 c C A A C C w3 c C A B C B 我需要计算所有列中字符值的列内比例 有趣的是 以下代码适用于大型实际数据集 但对上述玩具数据会引发错
  • 如何返回包含最大值标签的向量

    我有一个 4 列数组 我想获得一个向量 其中每行包含包含该行最大值的列的标签 我可以在循环中执行此操作 但我想使用矩阵函数来提高速度 我怎样才能在不编写自己的库函数的情况下做到这一点 有一个函数可以做到这一点 如果x是你的矩阵 尝试max
  • 使用 RDCOMClient 搜索 Outlook 收件箱

    我尝试使用 RDCOMClient 在 Outlook 收件箱中搜索电子邮件中的特定主题 然后获取附件 我在一封电子邮件上进行了这项工作 但由于主题包含日期元素 我需要搜索成为一个类似的子句 但不太清楚这适合我的下面的查询 outlook
  • 如何在 R 中绘制一列与其余列的关系图

    我有一个数据集 其中 1 是时间 接下来的 14 个是幅度 我想在一张图表上散布所有大小与时间的关系 其中每个不同的列都是网格化的 分层在另一个之上 我想使用原始数据来制作这些图表 并单独制作它们 但只想执行此过程一次 数据集A 唯一的自变
  • 排序因素与水平

    有人能解释一下 R 中 ordered 参数的用途吗 R says ordered逻辑标志来确定级别是否应被视为有序 按给定的顺序 所以如果我有一个名为名称的因素并设置ordered TRUE names lt factor c fred
  • 如何自动启动我的 ec2 实例、运行命令然后将其关闭?

    我想每周对 redshift postgres 数据库中的数据运行一次机器学习模型 我使用以下命令将 R 脚本设置为休息 apiplumbr然后我将其设置为一项任务来管理pm2 我有它 所以任务会在ec2实例启动然后继续运行 要让 R 脚本
  • 当有很多列时,使用 readr::read_csv() 导入数据时覆盖列类型

    我正在尝试使用 R 中的 readr read csv 读取 csv 文件 我导入的 csv 文件大约有 150 列 我只包含示例的前几列 我希望将第二列从默认类型 我执行 read csv 时为日期 覆盖为字符或其他日期格式 GIS Jo
  • 计算互相关函数?

    In R 我在用ccf or acf计算成对互相关函数 以便我可以找出哪个移位给我带来最大值 从它的外观来看 R给我一个标准化的值序列 Python 的 scipy 中是否有类似的东西 或者我应该使用fft模块 目前 我正在这样做 xcor
  • 无法部署 ShinyApp:readTableHeader 在“raw”上发现不完整的最后一行(使用默认值:en_US)

    我已经拼命尝试部署我的闪亮应用程序大约一周了 但不幸的是我无法停止收到以下消息 Warning message Error detecting locale Error in read table file file header head
  • 删除字符串末尾的句点和数字

    如何删除尾随句点 后面紧跟一个数字 长度为一位或两位数字 例子 z lt c awe p 56 red 45 ted 5 you 88 tom 我只想删除 45和 5 你只需要一个简单的正则表达式 z new gsub 0 9 z 一些评论
  • 对 data.table 中的列表列执行操作

    假设我有一个data table 例如dt lt data table foo list 1 3 4 6 bar c 2 7 如何使用 dt 框架对 foo 向量列表执行操作 操作可能是将 bar 添加到 foo 返回列表 3 5 11 1
  • 如何使用 R 将每个文件的数据添加为附加行,从而将不同的 .csv 文件合并为一个完整的文件?

    我有几个不同的文件夹 它们都包含一个 csv 文件 所有这些 csv 文件都有一个单独的列 其中包含实验的一种条件的数据 我想以将每个文件的数据添加为新列的方式合并这些 csv 文件 目前 它看起来像这样 C1 csv 102 106 15
  • R 将多个值与向量进行比较并返回向量[重复]

    这个问题在这里已经有答案了 我有一个向量 A 对于 A 的每个元素 我想检查它是否等于第二个向量 Targets 中的任何元素 我想要一个逻辑值向量 其长度为 A 作为返回 也提到了同样的问题here http r 789695 n4 na
  • 跟踪循环迭代

    抛硬币 成功 你赢100 否则你输50 你会一直玩 直到你口袋里有钱a 的价值如何a在任何迭代中都被存储 a lt 100 while a gt 0 if rbinom 1 1 0 5 1 a lt a 100 else a lt a 50
  • 如何添加链接以从我的 R闪亮应用程序在新窗口中打开 pdf 文件?

    我可以使用 a 从我的 Shiny 应用程序添加到外部站点的超链接 a google href http www google com 但如何创建一个链接来打开 pdf 或类似 文件 看起来应该很简单 但我找不到任何例子 我的问题与此类似
  • Quantmod 的简单功能不再起作用

    我明天要交论文 我收到了一条关于 quantmod 的非常奇怪的错误消息 这是我在过去几周使用这个包时从未遇到过的 我无法导入特定于道琼斯指数 DJI 的数据 我收到以下错误消息 getSymbols DJI src yahoo from
  • 不同编程语言中的浮点数学

    我知道浮点数学充其量可能是丑陋的 但我想知道是否有人可以解释以下怪癖 在大多数编程语言中 我测试了 0 4 到 0 2 的加法会产生轻微的错误 而 0 4 0 1 0 1 则不会产生错误 两者计算不平等的原因是什么 在各自的编程语言中可以采
  • 如何在 data.table 中分组后使用条件计算行数

    我有以下数据框 dat lt read csv s1 s2 v1 v2 a b 10 20 a b 22 NA a b 13 33 c d 3 NA c d 4 5 NA c d 10 20 dat gt A tibble 6 x 4 gt
  • 如何按用户定义(例如非字母顺序)对数据框进行排序[重复]

    这个问题在这里已经有答案了 给定一个数据框dna gt dna chrom start chr2 39482 chr1 203918 chr1 198282 chrX 7839028 chr17 3874 以下代码重新排序dna by ch

随机推荐

  • 从 Maven 部署到 Nexus 出现错误:ReasonPhrase:Forbidden

    http numberformat wordpress com 2011 05 18 nexus repository http numberformat wordpress com 2011 05 18 nexus repository
  • NetworkStream.Write 与 Socket.Send

    我有一个 C 应用程序 我使用自定义 FTP 库 现在我使用 Socket Send 发送数据 但我想知道使用套接字启动 NetworkStream 并使用 NetworkStream Write 是否会更好 使用其中一种比另一种有什么优势
  • Haskell 中的 HTTP POST 内容

    我正在尝试将一些数据发布到 Haskell 中的服务器 但服务器端为空 我正在使用 Network HTTP 库来处理请求 module Main main where import Network URI URI parseURI uri
  • Postgres `gin_trgm_ops` 索引未被使用

    我试图speed up https stackoverflow com questions 56483600 composite jsonb array query in postgresPostgres 中的一些文本匹配 使用pg trg
  • 如何在 dask/distributed 中存储工作线程局部变量

    使用dask 0 15 0 分布式1 17 1 我想记住每个工作人员的一些事情 比如访问谷歌云存储的客户端 因为实例化它是昂贵的 我宁愿将其存储在某种工作者属性中 执行此操作的规范方法是什么 或者全局变量是正确的选择吗 关于工人 您可以通过
  • jquery ajax 调用不起作用?!是firefox还是xss问题?

    我的问题是 在 Firefox 中我没有得到任何回应 在 ie 中它工作得很好 我想要对本地脚本进行 ajax 调用 以纯文本或其他方式获取一些信息 但这行不通 我认为跨脚本此时应该不是问题 或者 JavaScript 代码很简单 var
  • 如何在程序开始执行时设置断点

    如何在加载任何链接的 DLL 之前停止程序 我尝试过设置LoadLibraryExW函数在Break At Function调试选项 它会在该函数处停止 但在此之前 我在 Visual Studio 输出窗口中有以下内容 test exe
  • Sequelize - 通过匹配所有标签来过滤 FindAll

    assets tags foo tags bar 对上述端点的获取请求应仅返回包含所有提供的标签的记录 foo bar 我当前的尝试是返回与任何给定标签匹配的任何记录 const tags req query res send await
  • Angular 10 中主组件内的延迟加载模块

    我的应用程序中有两个模块 其中一个是app module另一个是user module这会被延迟加载 上app module我有一个sign in成分 sign up组件和main成分 这main component是由导航栏和侧边栏组成的
  • 设置回调数组并尝试使用数组索引作为回调中的值

    当我以这种方式设置回调数组时 我在所有回调的对话框窗口中得到 20 我想获取数组中的索引 这可能吗 调用回调的函数期望回调有一个参数 我不控制回调的调用者 因为它是外部库的一部分 任何帮助表示赞赏 for var i 0 i lt 20 i
  • 使用 CreateDesktop/SwitchDesktop 在新桌面中创建表单

    我需要为一个实用程序创建一个系统模式形式 该实用程序应该阻止整个窗口 直到输入某些值 所以我正在尝试创建桌面和切换 到目前为止 创建一个切换到它的桌面 然后返回对我来说效果很好 But 当我尝试从新线程中创建表单时 该表单不会显示 但应用程
  • NSwag - 如何添加评论?

    我在 ASP Net WebAPI 项目中使用 NSwag 来生成 swagger 界面 效果很好 假设我有一个方法想要添加一些解释 我该怎么做 我所说的注释是指当 API 用户查看文档时会看到的内容 我用谷歌搜索过 狂饮过 然后 躲开了
  • 从命令行运行程序时,C++ 出现错误“failure: locale::facet::_S_create_c_locale name not valid”

    我似乎对 C 中的区域设置有问题 当我从 Eclipse 中运行我的程序时 一切正常 但是 当我尝试从命令行运行时 我不断收到此错误 失败 locale facet S create c locale 名称无效 这是触发错误的代码 Set
  • Facebook 好友邀请的 Swift 2.0 代码

    我一直在为 iOS 应用程序的 Facebook 好友邀请寻找等效的 Swift 代码示例 但我找不到他们 我知道 Facebook 页面上有 Objective C 版本https developers facebook com docs
  • 有没有一种简单的方法可以在 Android 视图的顶部和底部添加边框?

    我有一个 TextView 我想沿着其顶部和底部边框添加黑色边框 我尝试添加android drawableTop and android drawableBottom到 TextView 但这只会导致整个视图变黑
  • 在java中,如何删除sqlite表?

    我正在开发 Android 应用程序 我必须在我的活动中开发一个 xml 按钮 并构建我的 sqlite 数据库和表 我怎样才能让用户按下按钮来删除表 谢谢 如果没有更多上下文 很难回答 但最终的 sqlite 查询将是 db execSQ
  • cuDevicePrimaryCtxRetain() 是否用于在多个进程之间拥有持久的 CUDA 上下文对象?

    例如 仅使用驱动程序 api 我对下面的单个进程进行了分析 cuCtxCreate cuCtxCreate 开销几乎相当于与 GPU 之间的 300MB 数据复制 在 CUDA 文档中here http docs nvidia com cu
  • Matplotlib 从多个点绘制样条线

    我有数组点 nodes 1 2 6 15 10 6 10 3 3 7 And now I need draw Spline passing through the points You can see image result 但我不知道怎
  • 如何从点击的位置获取 CGPoint?

    我正在为 iPad 开发一款图形计算器应用程序 我想添加一项功能 用户可以点击图形视图中的某个区域 弹出一个文本框 显示他们触摸的点的坐标 我怎样才能从中获得CGPoint 你有两种方法 1 void touchesBegan NSSet
  • R 与 Stata 中的 Cox 比例风险模型

    我正在尝试使用以下数据在 R 中复制 Stata 的 cox 比例风险模型估计http iojournal org wp content uploads 2015 05 FortnaReplicationData dta http iojo