为二元生存审查数据编写语法以适合R

时间:2018-08-01 00:45:58

标签: r statistics

library(Sunclarco)
library(MASS)
library(survival)
library(SPREDA)
library(SurvCorr)
library(doBy)

#Dataset
diabetes=data("diabetes")

data1=subset(diabetes,select=c("LASER","TRT_EYE","AGE_DX","ADULT","TIME1","STATUS1"))
data2=subset(diabetes,select=c("LASER","TRT_EYE","AGE_DX","ADULT","TIME2","STATUS2"))


#Adding variable which identify cluster
data1$CLUSTER<- rep(1,197)
data2$CLUSTER<- rep(2,197)

#Renaming the variable so that that we hve uniformity in the common items in the data
names(data1)[5] <- "TIME" 
names(data1)[6] <- "STATUS"
names(data2)[5] <- "TIME"
names(data2)[6] <- "STATUS"

#merge the files
Total_data=rbind(data1,data2)

# Re arranging the database 
diabete_full=orderBy(~LASER+TRT_EYE+AGE_DX,data=Total_data)
diabete_full

#using Sunclarco package for Clayton a nd Gumbel

Clayton_1step <- SunclarcoModel(data=diabete_full,time="TIME",status="STATUS",
                          clusters="CLUSTER",covariates=c("LASER","TRT_EYE","ADULT"),
                          stage=1,copula="Clayton",marginal="Weibull")
summary(Clayton_1step)

#              Estimates    StandardErrors

#lambda       0.01072631    0.005818201
#rho          0.79887565    0.058942208
#theta        0.10224445    0.090585891
#beta_LASER   0.16780224    0.157652947
#beta_TRT_EYE 0.24580489    0.162333369
#beta_ADULT   0.09324001    0.158931463

#              Estimate      StandardError
#Kendall's Tau 0.04863585    0.04099436



Clayton_2step <- SunclarcoModel(data=diabete_full,time="TIME",status="STATUS",
                                clusters="CLUSTER",covariates=c("LASER","TRT_EYE","ADULT"),
                                stage=2,copula="Clayton",marginal="Weibull")
summary(Clayton_1step)

#             Estimates    StandardErrors
#lambda       0.01131751    0.003140733
#rho          0.79947406    0.012428824
#beta_LASER   0.14244235    0.041845100
#beta_TRT_EYE 0.27246433    0.298184235
#beta_ADULT   0.06151645    0.253617142
#theta        0.18393973    0.151048024

#                Estimate     StandardError
#Kendall's Tau   0.08422381   0.06333791



Gumbel_1step <- SunclarcoModel(data=diabete_full,time="TIME",status="STATUS",
                                clusters="CLUSTER",covariates=c("LASER","TRT_EYE","ADULT"),
                                stage=1,copula="GH",marginal="Weibull")

#             Estimates     StandardErrors
#lambda       0.01794495     0.01594843
#rho          0.70636113     0.10313853
#theta        0.87030690     0.11085344
#beta_LASER   0.15191936     0.14187943
#beta_TRT_EYE 0.21469814     0.14736381
#beta_ADULT   0.08284557     0.14214373

#                Estimate      StandardError
#Kendall's Tau   0.1296931     0.1108534



Gumbel_2step <- SunclarcoModel(data=diabete_full,time="TIME",status="STATUS",
                               clusters="CLUSTER",covariates=c("LASER","TRT_EYE","ADULT"),
                               stage=2,copula="GH",marginal="Weibull")

A需要为不同的系动词类(特别是高斯,FGM,Pluckett以及可能的Frank)(如果我还有时间的话)在R中建立系动词模型。正在使用的数据是R中通过Survival和Survcorr软件包提供的Diabetes数据。

我的论文正在研究之中,并且出于探索性目的而进行了一项研究,以研究copula类别如何达到不同的目的,因为结果导致它们在同一结果上具有不同的结果。我在Rstudio中找到了一个Sunclarco软件包,它能够满足Clayton和Gumbel copula的要求,但尚不适用于其他课程。

面临的挑战是,由于我已经审查了必须纳入似然估计的数据,因此由于我没有很强的编程背景,因此我很难编写语法。另外,我必须合并编程中存在的协变量,并查看它们是否对关联产生影响。但是,作为我的推动者,他给我提供了有关如何解决此难题的语法写作的见解,如下所示:

•******首先,不要考虑似然函数。我们仅使用对数似然函数。这样,您无需对每个观测值取贡献的乘积,而可以对不同观测值取对数贡献的总和。

•接下来,由于我们具有平衡的设计,因此我们可以使用常规数据帧结构,其中每个群集在数据帧中仅具有一行。寿命,指标和所有协变量等不同变量是此数据框中的列。

•由于采用双变量设置,因此只有四种可能的方法可以对数似然函数做出贡献:两种都是未经审查的,都经过审查的,第一次未经审查且经过第二次审查的,或者是经过第一次审查且经过第二次未经审查的。好了,要创建对数似然函数,您可以在数据框中创建一个新变量,在其中根据对夫妇中的哪个个人进行检查,对对数似然做出正确的贡献。当您对该变量求和时,便具有对数似然函数的值。

•由于此函数取决于参数,因此可以使用任何优化程序(例如optim或nlm)来获取最佳值。通过谨慎操作,optim和nlm会寻找功能的最小值,而不是最大值。这很容易解决,因为函数-f的最小值与函数f的最大值相同。

•由于每个copula函数都具有不同的导数表达式,因此现在应该有可能获得似然函数。******

由于每种可能性,每个可能性变化都在努力寻找方法,因为生成函数对于各个联接也是唯一的,因为在估计期间需要对其进行调整。最后,我应该对copula估计的一两个步骤进行分析,因为我将用来比较结果。

如果有人可以帮助我解决问题,那么我将永远感激不已。即使只针对一种copula类高斯人,然后我将根据自从我尝试了一切以来一直要求得到帮助的人来解决其余的问题,但是我仍然没有什么可露面的,现在我觉得时间已经不多了,只能靠我自己找答案。

0 个答案:

没有答案