当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


R pyears 人年


R语言 pyears 位于 survival 包(package)。

说明

此函数计算一组受试者贡献的随访时间的person-years,并分层为子组。它还计算对输出表的每个单元格做出贡献的受试者数量,以及可选的每个单元格中的事件数和/或预期事件数。

用法

pyears(formula, data, weights, subset, na.action,  rmap,
       ratetable, scale=365.25, expect=c('event', 'pyears'),
       model=FALSE, x=FALSE, y=FALSE, data.frame=FALSE)

参数

formula

一个公式对象。响应变量将是每个受试者的随访时间向量,或包含生存时间和事件指示器的 Surv 对象。预测变量由由 + 运算符分隔的可选分组变量(与 survfit 完全相同)、时间相关分组变量(例如年龄)(用 tcut 指定)和可选的 ratetable 项组成。后者将每个受试者与其预期的队列相匹配。

data

一个数据帧,用于解释 formulasubsetweights 参数中命名的变量。

weights

箱重。

subset

表达式表示在拟合中只应使用数据行的子集。

na.action

缺失数据过滤器函数,在使用任何 subset 参数后应用于 model.frame。默认为 options()$na.action

rmap

将数据集名称映射到费率表名称的可选列表。请参阅下面的详细信息部分。

ratetable

事件发生率表,例如 survexp.uswhite

scale

对结果进行缩放。由于大多数费率表以单位/天为单位,因此默认值 365.25 会导致以年为单位报告输出。

expect

输出表是否应包含预期的事件数,或预期的person-years观察数。这仅对费率表有效。

data.frame

返回一个 DataFrame 而不是一组数组。

model , x , y

如果其中任何一个为真,则模型框架、模型矩阵和/或响应时间向量将作为最终结果的组成部分返回。

细节

由于pyears可能有多个时间变量,因此所有这些变量必须采用相同的单位。例如,在调用中

  py <- pyears(futime ~ rx, rmap=list(age=age, sex=sex, year=entry.dt),
                    ratetable=survexp.us) 

费率表的自然单位是每天的危险,重要的是 futimeageentry.dt 均以天为单位。考虑到可能的输入范围很广,例程很难进行这方面的健全性检查。

正在使用的费率表可能具有与用户数据集不同的变量名称,这由 rmap 参数处理。上述计算的比率表是 survexp.us ,对 summary{survexp.us} 的调用显示它期望变量 age = 以天为单位的年龄, sexyear = 研究条目的日期,我们创建它们在 rmap 行中。 sex 变量未映射,因此代码假定它以正确的格式存在于 mydata 中。 (注意:对于性别等因子,程序将匹配任何唯一的缩写,忽略大小写。)

需要一个特殊函数tcut来指定与时间相关的切点。例如,假设年龄以年为单位,并且所需的最终数组将年龄组 0-2、2-10、10-25 和 25+ 作为其边距之一。 4 岁时进入研究并持续观察 10 年的受试者将为 2-10 和 10-25 子集贡献随访时间。如果公式中使用cut(age, c(0,2,10,25,100)),则仅根据受试者的起始年龄进行分类。 tcut 函数具有与 cut 相同的参数,但生成不同的输出对象,该对象允许 pyears 函数正确跟踪主题。

pyears 的结果通常用作进一步计算的输入。因此,print 例程旨在仅提供表的摘要。

包含组件的列表:

pyears

包含person-years曝光的数组。 (或其他单位,取决于费率表和比例)。数组的维度和维度名称对应于模型方程右侧的变量。

n

一个数组,其中包含为 pyears 数组的每个单元贡献时间的受试者数量。

event

包含观察到的事件数的数组。仅当响应变量是 Surv 对象时才会出现。

expected

包含预期事件数量的数组(如果 expect ="pyears" 则为人年)。仅当存在 ratetable 术语时才会出现。

data

如果设置了 data.frame 选项,则包含变量 neventpyearsevent 的 DataFrame 将取代上面列出的四个数组,以及与每个维度对应的变量。数组中的每个单元格都有一行。

offtable

队列中不属于 pyears 数组中任何单元格的 person-years 暴露数量。这通常可用于错误检查;如果两个变量之间的单位不匹配,则几乎所有的人年都可能不在表中。

tcut

调用是否包含任何与时间相关的切点。

summary

rate-table 匹配的摘要。这对于错误检查也很有用。

call

函数调用的图像。

observations

删除任何缺失后输入数据集中的观测值数量。

na.action

na.action 例程贡献的 na.action 属性(如果有)。

例子

# Look at progression rates jointly by calendar date and age
# 
temp.yr  <- tcut(mgus$dxyr, 55:92, labels=as.character(55:91)) 
temp.age <- tcut(mgus$age, 34:101, labels=as.character(34:100))
ptime <- ifelse(is.na(mgus$pctime), mgus$futime, mgus$pctime)
pstat <- ifelse(is.na(mgus$pctime), 0, 1)
pfit <- pyears(Surv(ptime/365.25, pstat) ~ temp.yr + temp.age + sex,  mgus,
     data.frame=TRUE) 
# Turn the factor back into numerics for regression
tdata <- pfit$data
tdata$age <- as.numeric(as.character(tdata$temp.age))
tdata$year<- as.numeric(as.character(tdata$temp.yr))
fit1 <- glm(event ~ year + age+ sex +offset(log(pyears)),
             data=tdata, family=poisson)
## Not run: 
# fit a gam model 
gfit.m <- gam(y ~ s(age) + s(year) + offset(log(time)),  
                        family = poisson, data = tdata) 

## End(Not run)

# Example #2  Create the hearta data frame: 
hearta <- by(heart, heart$id,  
             function(x)x[x$stop == max(x$stop),]) 
hearta <- do.call("rbind", hearta) 
# Produce pyears table of death rates on the surgical arm
#  The first is by age at randomization, the second by current age
fit1 <- pyears(Surv(stop/365.25, event) ~ cut(age + 48, c(0,50,60,70,100)) + 
       surgery, data = hearta, scale = 1)
fit2 <- pyears(Surv(stop/365.25, event) ~ tcut(age + 48, c(0,50,60,70,100)) + 
       surgery, data = hearta, scale = 1)
fit1$event/fit1$pyears  #death rates on the surgery and non-surg arm

fit2$event/fit2$pyears  #death rates on the surgery and non-surg arm

也可以看看

ratetablesurvexpSurv

相关用法


注:本文由纯净天空筛选整理自R-devel大神的英文原创作品 Person Years。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。