这称为当前状态数据。您获得了数据的一个横截面视图,并且关于响应,您所知道的是,在每个受试者的观察年龄,事件(在您的情况下:从 A 过渡到 B)已经发生或未发生。这是区间删失的一个特例。
为了正式定义它,让是主题的(未观察到的)真实事件时间。让为主题的检查时间(在您的情况下:检查年龄)。如果,则数据被右删失。否则,数据将被删失。我们对建模的分布很感兴趣。对于回归模型,我们感兴趣的是对分布如何随一组协变量变化进行建模。TiiCiiCi<TiTX
要使用区间删失方法对此进行分析,您需要将数据放入一般区间删失格式。也就是说,对于每个主题,我们都有区间,它表示我们知道要包含因此,如果主题在检查时间被正确审查,我们将写作。如果在处对其进行审查,我们会将其表示为。(li,ri)Tiici(ci,∞)ci(0,ci)
无耻插件:如果你想使用回归模型来分析你的数据,这可以在 R 中使用icenReg
(我是作者)来完成。事实上,在关于当前状态数据的类似问题中,OP 提供了一个很好的使用 icenReg 的演示。他首先表明忽略审查部分并使用逻辑回归会导致偏差(重要说明:他指的是使用逻辑回归而不调整年龄。稍后会详细介绍。)
另一个很棒的包是interval
,其中包含对数秩统计测试以及其他工具。
编辑:
@EdM 建议使用逻辑回归来回答问题。我不公平地对此不屑一顾,说您将不得不担心时间的功能形式。虽然我支持你应该担心时间的函数形式的说法,但我意识到有一个非常合理的转换可以导致一个合理的参数估计量。
特别是,如果我们在逻辑回归模型中使用 log(time) 作为协变量,我们最终会得到一个具有 log-logistic 基线的比例优势模型。
要看到这一点,首先考虑比例优势回归模型定义为
Odds(t|X,β)=eXTβOddso(t)
其中是时间的基线生存几率。请注意,回归效果与逻辑回归相同。所以我们现在需要做的就是证明基线分布是对数逻辑的。Oddso(t)t
现在考虑以 log(Time) 作为协变量的逻辑回归。然后我们有
P(Y=1|T=t)=exp(β0+β1log(t))1+exp(β0+β1log(t))
通过一些工作,您可以将其视为对数逻辑模型的 CDF(具有参数的非线性变换)。
R证明拟合是等价的:
> library(icenReg)
> data(miceData)
>
> ## miceData contains current status data about presence
> ## of tumors at sacrifice in two groups
> ## in interval censored format:
> ## l = lower end of interval, u = upper end
> ## first three mice all left censored
>
> head(miceData, 3)
l u grp
1 0 381 ce
2 0 477 ce
3 0 485 ce
>
> ## To fit this with logistic regression,
> ## we need to extract age at sacrifice
> ## if the observation is left censored,
> ## this is the upper end of the interval
> ## if right censored, is the lower end of interval
>
> age <- numeric()
> isLeftCensored <- miceData$l == 0
> age[isLeftCensored] <- miceData$u[isLeftCensored]
> age[!isLeftCensored] <- miceData$l[!isLeftCensored]
>
> log_age <- log(age)
> resp <- !isLeftCensored
>
>
> ## Fitting logistic regression model
> logReg_fit <- glm(resp ~ log_age + grp,
+ data = miceData, family = binomial)
>
> ## Fitting proportional odds regression model with log-logistic baseline
> ## interval censored model
> ic_fit <- ic_par(cbind(l,u) ~ grp,
+ model = 'po', dist = 'loglogistic', data = miceData)
>
> summary(logReg_fit)
Call:
glm(formula = resp ~ log_age + grp, family = binomial, data = miceData)
Deviance Residuals:
Min 1Q Median 3Q Max
-2.1413 -0.8052 0.5712 0.8778 1.8767
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) 18.3526 6.7149 2.733 0.00627 **
log_age -2.7203 1.0414 -2.612 0.00900 **
grpge -1.1721 0.4713 -2.487 0.01288 *
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 196.84 on 143 degrees of freedom
Residual deviance: 160.61 on 141 degrees of freedom
AIC: 166.61
Number of Fisher Scoring iterations: 5
> summary(ic_fit)
Model: Proportional Odds
Baseline: loglogistic
Call: ic_par(formula = cbind(l, u) ~ grp, data = miceData, model = "po",
dist = "loglogistic")
Estimate Exp(Est) Std.Error z-value p
log_alpha 6.603 737.2000 0.07747 85.240 0.000000
log_beta 1.001 2.7200 0.38280 2.614 0.008943
grpge -1.172 0.3097 0.47130 -2.487 0.012880
final llk = -80.30575
Iterations = 10
>
> ## Comparing loglikelihoods
> logReg_fit$deviance/(-2) - ic_fit$llk
[1] 2.643219e-12
请注意,grp
每个模型中的效果是相同的,最终的对数似然仅因数值误差而有所不同。基线参数(即逻辑回归的截距和 log_age,区间删失模型的 alpha 和 beta)是不同的参数化,因此它们不相等。
所以你有它:使用逻辑回归相当于用对数逻辑基线分布拟合比例赔率。如果您可以拟合此参数模型,则逻辑回归是非常合理的。我确实警告说,对于区间删失数据,由于难以评估模型拟合,半参数模型通常受到青睐,但如果我真的认为没有完全参数模型的位置,我不会将它们包含在icenReg
.