Sas 如何从PROC PHREG估算n年风险比

Sas 如何从PROC PHREG估算n年风险比,sas,survival-analysis,cox-regression,Sas,Survival Analysis,Cox Regression,尊敬的SO社区中的SAS用户: 我使用的样本数据可在以下网站公开获取: 本教程与数据集的说明一起在此处找到: 我相信后续行动的单位是天,但为了回答我的问题,让我们假设后续行动的单位是年。如果是这种情况,LENFOL变量捕获的最短随访时间为1年,最长为2358年 我对Cox-PH回归的理解是,尽管危险函数可能随时间而变化,但危险比应该保持不变。如果我错了,请纠正我,但这意味着从整个随访期(本研究中为2358年)估计危险比时,第1年的危险比等于第2358年的危险比 如果我想估计5年的危险比(即,假

尊敬的SO社区中的SAS用户:

我使用的样本数据可在以下网站公开获取:

本教程与数据集的说明一起在此处找到:

我相信后续行动的单位是天,但为了回答我的问题,让我们假设后续行动的单位是年。如果是这种情况,LENFOL变量捕获的最短随访时间为1年,最长为2358年

我对Cox-PH回归的理解是,尽管危险函数可能随时间而变化,但危险比应该保持不变。如果我错了,请纠正我,但这意味着从整个随访期(本研究中为2358年)估计危险比时,第1年的危险比等于第2358年的危险比

如果我想估计5年的危险比(即,假设研究在第5年结束),PHREG程序能否为我返回危险比,假设随访时间在第5年结束,而不是研究的实际完整时间(本例中为2358年)?例如,假设我想估计死亡与性别之间的关联,我使用了以下SAS代码:

libname ucla "C:\<FILEPATH>";

data ucla_surv;
set ucla.whas500;
run;


proc phreg data=ucla_surv;
model lenfol*fstat(0) = gender/ties=efron;
run;
libname加州大学洛杉矶分校“C:\”;
加州大学洛杉矶分校数据;
设置ucla.whas500;
跑
proc phreg数据=加州大学洛杉矶分校;
模型lenfol*fstat(0)=性别/ties=efron;
跑
这导致整个随访期间的危险比(HR)估计。是否可以修改我的代码以估算我上面提到的5年人力资源(研究在第5年人为结束)

相关的,创建一个新的LENFOL变量,截断第5年的数据,并使用这些新变量执行模型是否合适,如下所示:

data ucla_surv_5yr;
set ucla_surv;

label 
    lenfol5="5-year follow-up"
    fstat5="Event indicator for 5-year FU; 1=death,0=censor"
    ;
if lenfol <5 then do;
fstat5=fstat;
lenfol5=lenfol;
end;
else do;
fstat5=0;
lenfol5=5;
end;
run;

proc phreg data=ucla_surv;
model lenfol*fstat(0) = gender/ties=efron;
title "HR over entire study FU";
ods select ParameterEstimates;
run;
title;

proc phreg data=ucla_surv_5yr;
model lenfol5*fstat5(0) = gender/ties=efron;
title "HR over 5 years of FU";
ods select ParameterEstimates;
run;
title;
数据加州大学洛杉矶分校生存5年;
设置加州大学洛杉矶分校;
标签
lenfol5=“5年随访”
fstat5=“5年FU的事件指标;1=死亡,0=审查”
;

如果lenfol,这不是一个合适的SO问题,因为它更多地涉及方法论而不是编程。CrossValidated是这个post stats.stackexchange.comOK的一个更好的位置——谢谢@ReezaI,我很确定时间是以天而不是以年来衡量的。在5年内截断随访将从数据中删除一些死亡病例,这将导致对危险比的不同估计。如果您想找到5年随访的HR,您可以只进行审查(对于超过该点的所有随访,将结果变量重新编码为0)。是的,危险比在任何时间点都是相同的,它被称为瞬时风险。但是,该模型的假设是比例假设,为了使用人力资源,必须确认该假设。
data ucla_surv_5yr;
set ucla_surv;

label 
    lenfol5="5-year follow-up"
    fstat5="Event indicator for 5-year FU; 1=death,0=censor"
    ;
if lenfol <5 then do;
fstat5=fstat;
lenfol5=lenfol;
end;
else do;
fstat5=0;
lenfol5=5;
end;
run;

proc phreg data=ucla_surv;
model lenfol*fstat(0) = gender/ties=efron;
title "HR over entire study FU";
ods select ParameterEstimates;
run;
title;

proc phreg data=ucla_surv_5yr;
model lenfol5*fstat5(0) = gender/ties=efron;
title "HR over 5 years of FU";
ods select ParameterEstimates;
run;
title;