fulltest<-function(ds,time,status,stage){ #***********************************************************/ #* Calculate the Renyi and Cramer-von Mises tests, of Klein*/ #* and Moeschberger sections 7.6-7. */ #***********************************************************/ uuu<-survfit(Surv(time,status)~stage) alltimes<-sort(unique(uuu$time)) nt<-length(alltimes) allrisk<-array(NA,c(nt,length(uuu$strata))) allevent<-array(0,c(nt,length(uuu$strata))) for(ii in seq(length(uuu$strata))){ use<-sum(c(0,uuu$strata)[seq(ii)])+seq(uuu$strata[ii]) places<-match(uuu$time[use],alltimes) allrisk[places,ii]<-uuu$n.risk[use] allevent[places,ii]<-uuu$n.event[use] } allrisk[nt,is.na(allrisk[nt,])]<-0 for(jj in (nt-1):1){ allrisk[jj,is.na(allrisk[jj,])]<-allrisk[jj+1,is.na(allrisk[jj,])] } p<-allevent/allrisk p[allrisk==0]<-0 nlt<-allrisk[,1]+allrisk[,2] ndt<-allevent[,1]+allevent[,2] q<-allrisk[,1]/nlt pt<- ndt/nlt chd<-cumsum(p[,2]-p[,1]) chdvc<-cumsum(apply(allevent[,(1:2)]*p[,(1:2)],1,sum)) cmvt<-sum(chd^2 *chdvc)/sum(chdvc)^2 ts<-cumsum(allrisk[,1]*(pt-p[,1])) va<-sum(q*(1-q)*ndt*(nlt-ndt)/(nlt-1+(nlt==1))) mts<-max(ts)/sqrt(va) mats<-max(abs(ts))/sqrt(va) browser() return(cmvt=cmvt,mts=mts,mats=mats) }