recurrentR

i

A Quick Guide for the recurrentR Package Wush Wu1,2 1 National

Taiwan University, Taipei, Taiwan

2 Taiwan

R User Group, Taipei, Taiwan

Contents Acknowledgement

iii

1. Introduction

1

2. Installation

1

3. Data Import

1

3.1. Dataset MMC in the survrec . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

1

3.2. Dataset colon in the survrec . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

4

3.3. Dataset readmission in the frailtypack . . . . . . . . . . . . . . . . . . . . . . . .

6

4. Demo 4.1. Wang2001 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

7 7

4.2. Huang2004 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 4.3. Huang2010 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 5. Simulation

21

5.1. Wang2001 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 5.2. Huang2004 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 5.3. Huang2010 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 References

30

ii

Quick Guide for recurrentR

© Wush Wu Permission is granted to make and distribute verbatim copies of this vignette and its source provided the copyright notice and this permission notice are preserved on all copies. This publication was typeset using LATEX.

recurrentR

iii

Acknowledgement I want to thank Chiung-Yu Huang for supporting this work. I also thank Hsiang Yu for testing the package.

recurrentR

1

1. Introduction The package recurrentR is encouraged by Chiung-Yu Huang since May, 2013. We want to provide a fast implementation of Wang et al. (2001); Huang and Wang (2004); Huang et al. (2010) to the researchers who are interesting in semi-parametric recurrent data analysis. They studied how to estimate the recurrence process and survival function without assuming the independence between the recurrent process and the failure rate.

2. Installation The recurrentR depends on the Rcpp and the nleqslv. Please install them before the installation of recurrentR. One can install recurrentR from github at https://github.com/wush978/recurrentR, and the intallation can be done with the following commands library(devtools) install_github(repo='recurrentR', username='wush978', subdir='recurrentR', build_vignettes = FALSE)

3. Data Import In the recurrentR, the imported dataset is stored in a S4 object ‘recurrent-data‘. Without loss of generality, we assume that there is a dataset of recurrent event data containing n instances. Each instance, i, must include the following information. Notation 1 (Notation). The following data are required in the recurrentR: 1. Failure or censored time, yi . The failure time is the termination of the recurrent process of instance i (failure time). The censored time is the termination of the observation. 2. Indicator, Di . Di indicates whether the yi is failure time or not. 3. The time period of the research interest: [0, T0 ]. 4. Time of the recurrent events, ti,1 , ti,2 , ..., ti,mi . These are the realization of poisson process Ni (.) whose cumulative intensity function Λi (.) is estimated by the recurrentR. 5. q-dim vector of time independent covariates, Wi . We assume that Wi ∈ Rq×1 . For simplicity, we denote W ∈ Rq×n as the corresponding matrix for all instances. 6. p-dim time-dependent covariate process, Xi (t). We assme that Xi (t) ∈ Rp×1 . This quantity is only used in Huang et al. (2010). The recurrentR provides a S3 method ‘create recurrent data‘ to directly construct the ‘recurrentdata‘ object.

3.1. Dataset MMC in the survrec

2

Quick Guide for recurrentR

1 2 3 4 5 6 7 8 9

id 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00

time 112.00 145.00 39.00 52.00 21.00 34.00 33.00 51.00 54.00

event 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 0.00

group Males Males Males Males Males Males Males Males Males

Table 1: This is the head 20 rows of the Migratory Motor Complex data from survrec. Here is the ‘MMC‘ data from survrec. Since the MMC puts all event times into a single data.frame, we take the instance with ‘id == 1‘ as an example (Table. 1). 1. The ‘id‘ indicates the row is corresponding to which instance. Here we list all rows with ‘id‘ 1. 2. The ‘time‘ indicates the recurrence or censoring time. This is the difference between each recurrence or censoring. 3. The ‘event‘ indicates the time is recurrence or censoring. 4. The ‘group‘ is the covariates of the instance. The numeric vector 112, 145, 39, 52, 21, 34, 33, 51, 54 is the difference of recurrence and censoring, so its ‘cumsum‘, which is 112, 257, 296, 348, 369, 403, 436, 487, 541, is the recurrence and censoring time(the last one). Similarly, we could extract all recurrence and censoring time for all instance and put them seperately into a ‘list‘ of ‘numeric vector‘ and a ‘numeric vector‘. Note that there is no failure time in ‘MMC‘ dataset. The API ‘create recurrent data‘ provides an helper function to quickly construct the ‘recurrentdata‘ for you: str(recurrentR:::create_recurrent_data.data.frame) ## function (src, id, time, time_type = c("absolutely", "relatively"), ## indicator, indicator_value, covariate, T_0 = NULL)

1. The parameter ‘src‘ is the input data.frame. 2. The parameter ‘id‘ is the column name of ‘src‘ to specify the instance. Here, the ‘id‘ should be ‘”id”‘. 3. The parameter ‘time‘ is the column name of ‘src‘ to specify the even time. Here, the ‘time‘ should be ‘”time”‘.

recurrentR

3

4. The parameter ‘time type‘ is the type of the value recorded in ‘time‘. If the value is ‘”absolutely”‘, then the ‘time‘ is direct realization of the recurrent process. If the value is ‘”relatively”‘, the time is the length between two continuous events. Here, the ‘time type‘ should be ‘”relatively”‘. 5. The parameter ‘indicator‘ is the column name of ‘src‘ to specify the event type. In the recurrentR, there are three types of events: ”recurrence”, ”censoring” and ”failure”. The ”recurrence” represents the sample from the recurrent process. The ”censoring” represents the termination time of the observation where the failure has not been occurred. The ”failure” represents the failure time of the instance. Here, the ‘indicator‘ should be ‘”event”‘. 6. The paramter ‘indicator value‘ is a named list indicate the meaning of the value in the ‘src[[indicator]]‘. Here, the ‘indicator value‘ should be ‘list(”recurrence” = 1, ”censoring” = 0)‘. 7. The parameter ‘covariate‘ is the column names of ‘src‘ to indicate the covariates. They should be the time independent covariate. 8. The parameter ‘T 0‘ is a numeric value indicate the upper bound of research interest. The default value is the maximal observed failure time or censor time. Sometimes there are some outlier observed failure time or censor time, so the estimated intensity of recurrent process becomes ill-behaved. In such case, using a smaller ‘T 0‘ might help.

obj <- create_recurrent_data(head(MMC, 12), id = "id", time = "time", time_type = "relatively", indicator = "event", indicator_value = list(recurrence = 1, censoring = 0), covariate = "group") obj ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ##

An object of class "recurrent-data" Slot "y": [1] 541 383 Slot "D": [1] FALSE FALSE Slot "t": $`1` 1 2 3 4 5 6 7 8 112 257 296 348 369 403 436 487 $`2` 10 11 206 353

4

## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ##

Quick Guide for recurrentR

Slot "T_0": [1] 541 Slot "W": groupFemales 1 0 10 0 Slot "X": list() Slot "X_dim": [1] 0 Slot "n": [1] 2 Slot "eval": numeric(0) Slot "s": [1] 112 206 257 296 348 353 369 403 436 487 Slot "d": [1] 1 1 1 1 1 1 1 1 1 1 Slot "cache": Slot "tol": [1] 1e-04

The name of slot should be directly mapped to the notations in Notation. 1.

3.2. Dataset colon in the survrec Here is the ‘colon‘ dataset in the survrec. The first 2 instances are shown in Table. 2. To transform the ‘colon‘ to ‘recurrent-data‘, we must specify the following arguments for ‘create recurrent data‘: 1. The ‘src‘ should be ‘colon‘. 2. The ‘id‘ should be ‘hc‘ that is the identificator of each subject. 3. The ‘time‘ should be ‘”time”‘. 4. The ‘time type‘ should be ‘”relative”‘. The ‘cumsum(src[time])‘ should be the realization of the recurrent process.

recurrentR

1 2 3 4 5

hc 5634.00 5634.00 5634.00 10767.00 10767.00

time 24.00 433.00 580.00 489.00 693.00

event 1.00 1.00 0.00 1.00 0.00

chemoter 2.00 2.00 2.00 1.00 1.00

5 dukes 3.00 3.00 3.00 2.00 2.00

distance 1.00 1.00 1.00 1.00 1.00

Table 2: This is the first two instances in ‘colon‘ dataset. 5. The ‘indicator‘ should be ‘”event”‘. 6. The ‘indicator value‘ should be ‘list(”recurrence” = 1, ”censoring” = 0)‘. There is no data related to ”failure”. 7. The ‘covariate‘ should be ‘c(”chemoter”, ”dukes”, ”distance”)‘. obj <- create_recurrent_data(head(colon, 5), id = "hc", time = "time", time_type = "relatively", indicator = "event", indicator_value = list(recurrence = 1, censoring = 0), covariate = c("chemoter", "dukes", "distance")) obj ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ##

An object of class "recurrent-data" Slot "y": [1] 1037 1182 Slot "D": [1] FALSE FALSE Slot "t": $`5634` [1] 24 457 $`10767` [1] 489

Slot "T_0": [1] 1182 Slot "W": chemoter dukes distance 1 2 3 1 4 1 2 1 Slot "X":

6

Quick Guide for recurrentR

## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ##

list() Slot "X_dim": [1] 0 Slot "n": [1] 2 Slot "eval": numeric(0) Slot "s": [1] 24 457 489 Slot "d": [1] 1 1 1 Slot "cache": Slot "tol": [1] 1e-04

Note that there is an ‘NA‘ in ‘colon[766,]‘, so the user should remove that row before analyzing.

3.3. Dataset readmission in the frailtypack Here is the readmission dataset in the frailtypack. The first two instances are shown in Table. 3. 1 2 3 4 5

id 1 1 1 2 2

enum 1 2 3 1 2

t.start 0 24 457 0 489

t.stop 24 457 1037 489 1182

time 24 433 580 489 693

event 1 1 0 1 0

chemo Treated Treated Treated NonTreated NonTreated

sex Female Female Female Male Male

dukes D D D C C

charlson 3 0 0 0 0

death 0 0 0 0 0

Table 3: The first two instance in the readmission dataset

1. The ‘src‘ should be ‘readmission‘. 2. The ‘id‘ should be ‘id‘ that is the identificator of each subject. 3. The ‘time‘ should be ‘”t.stop”‘. 4. The ‘time type‘ should be ‘”absolutely”‘. The ‘readmission$t.stop‘ should be the realization of the recurrent process.

recurrentR

7

5. The ‘indicator‘ should be created by both column ‘”event”‘ and ‘”death”‘. The value 1 of ‘event‘ represents recurrence. The value 0 of ‘event‘ and 0 of ‘death‘ represents censoring. The value 0 of ‘event‘ and 1 of ‘death‘ represents failure. Therefore, we should create a new column to be the indicator. Here we concatenate the column ‘event‘ and ‘death‘ to produce a new column ‘indicator‘. 6. The ‘indicator value‘ should be ‘list(”recurrence” = ”1-0”, ”censoring” = ”0-0”, ”failure” = ”0-1”)‘. 7. The ‘covariate‘ should be ‘c(”chemo”, ”sex”, ”dukes”, ”charlson”)‘.

readmission$indicator <- paste(readmission$event, readmission$death, sep = "-") which(readmission$indicator == "1-1") ## [1] 119 204 581 Note that there are three rows record recurrence and death simultaneously. We modify the ‘death‘ to ‘0‘ on these rows since the following censoring rows record the death as ‘1‘, too. readmission$death[which(readmission$indicator == "1-1")] <- 0 readmission$indicator <- paste(readmission$event, readmission$death, sep = "-") obj <- create_recurrent_data(readmission, id = "id", time = "t.stop", time_type = "absolutely", indicator = "indicator", indicator_value = list(recurrence = "1-0", censoring = "0-0", failure = "0-1"), covariate = c("chemo", "sex", "dukes", "charlson"))

4. Demo In this section, we will introduce how to analysis a ‘recurrent-data‘ object with the method developed in Wang et al. (2001); Huang and Wang (2004); Huang et al. (2010).

4.1. Wang et al. (2001) For each instance i, Wang et al. (2001) assmues that the occurrence of recurrent event follows a inhomogenous poisson process with the following intensity: λi (t) = λ0 (t)zi exp(Wi γ) where:

8

Quick Guide for recurrentR

- zi is a nonnegative-valued latent variable such that E(zi |Wi ) = E(zi ). - The baseline RT intensity function λ0 (t) is a probability function: - λ0 (t) 6= 0 - Λ0 (T0 ) = 0 0 λ0 (u)du = 1 - γ is a R1×q vector.

Here we takes the ‘recurrent-data‘ object transformed from the ‘readmission‘ data as indicated in Sec. 3.3:

r <- Wang2001(obj) names(r) ## [1] "Lambda_0.hat"

"gamma.bar.hat"

Lambda_0.hat <- r$Lambda_0.hat curve(Lambda_0.hat, 0, max(readmission$t.stop), main="Ill-behaved Cumulative Intensity Function of Recurrent Process")

recurrentR

9

0.6 0.4 0.0

0.2

Lambda_0.hat(x)

0.8

1.0

Ill−behaved Cumulative Intensity Function of Recurrent Process

0

500

1000

1500

2000

x

The curve is ill-behaved because there are instances whose recurrent time and failure/censor time is totally larger than others. A possitive correction is to limit the range of research interest. For example, setting the parameter ‘T 0‘ in ‘create recurrent data‘ or use the API ‘truncate T 0‘ to limit the research interest properly. The correction is changing the failure/censor time after new T 0 to censor time at T 0 and ignore the recurrent time after T 0. T_0 <- quantile(readmission$t.stop, 0.75) obj <- truncate_T_0(obj, T_0) r <- Wang2001(obj) Lambda_0.hat <- r$Lambda_0.hat curve(Lambda_0.hat, 0, T_0, main = "Cumulative Intensity Function of Recurrent Process")

10

Quick Guide for recurrentR

0.6 0.4 0.0

0.2

Lambda_0.hat(x)

0.8

1.0

Cumulative Intensity Function of Recurrent Process

0

200

400

600

800

1000

1200

x

The estimated regression coefficient could be retrieve by: r$gamma.bar.hat ## ## ## ##

(Intercept) chemoTreated 0.4983 -0.3102 charlson1-2 charlson3 1.3147 0.5119

sexFemale -0.8081

dukesC 0.1254

dukesD 1.1188

To estimate the variance of the regression coefficient and the recurrent process, the user should specify the methodology. We provide ‘”asymptotic”‘ estimation and ‘”bootstrap”‘ estimation. The ‘”asymptotic”‘ is the plug-in estimator based on the appendix in Wang et al. (2001). The bootstrap estimation is based on the non-parametric bootstrap and the parameter ‘B‘ specifies the number of bootstrapping.

recurrentR

r.asym <- Wang2001(obj, methods="asymptotic") Lambda_0.hat <- r.asym$Lambda_0.hat curve(Lambda_0.hat, 0, obj@T_0, main="95% Pointwise C.B. of Cumulative Intensity Function of Recurrent Process") Lambda_0.hat.var <- r.asym$Lambda_0.hat.var Lambda_0.hat.upper <- function(x) { Lambda_0.hat(x) + qnorm(0.975) * sqrt(Lambda_0.hat.var(x)) } curve(Lambda_0.hat.upper, col = 2, add = TRUE, lty = 2) Lambda_0.hat.lower <- function(x) { Lambda_0.hat(x) - qnorm(0.975) * sqrt(Lambda_0.hat.var(x)) } curve(Lambda_0.hat.lower, col = 2, add = TRUE, lty = 2) r.boot <- Wang2001(obj, method="bootstrap", B=1000) Lambda_0.hat.var <- r.boot$Lambda_0.hat.var Lambda_0.hat.upper <- function(x) { Lambda_0.hat(x) + qnorm(0.975) * sqrt(Lambda_0.hat.var(x)) } curve(Lambda_0.hat.upper, col = 3, add = TRUE, lty = 2) Lambda_0.hat.lower <- function(x) { Lambda_0.hat(x) - qnorm(0.975) * sqrt(Lambda_0.hat.var(x)) } curve(Lambda_0.hat.lower, col = 3, add = TRUE, lty = 2) legend('bottomright', c("asymptotic", "bootstrap"), lty = 2, col = 2:3)

11

12

Quick Guide for recurrentR

0.6 0.4 0.2

Lambda_0.hat(x)

0.8

1.0

95% Pointwise C.B. of Cumulative Intensity Function of Recurrent Process

0.0

asymptotic bootstrap 0

200

400

600

800

1000

1200

x

library(plotrix) plotCI(seq_along(r$gamma.bar.hat), r$gamma.bar.hat, uiw=qnorm(0.975) * sqrt(diag(r.asym$gamma.bar.hat.var)), col=2, main="95% C.I. of regression parameter") plotCI(seq_along(r$gamma.bar.hat) + 0.1, r$gamma.bar.hat, uiw=qnorm(0.975) * sqrt(diag(r.boot$gamma.bar.hat.var)), col=3, add=TRUE) legend('bottomright', c("asymptotic", "bootstrap"), col = 2:3, lty = 1)

recurrentR

13

1.5

2.0

95% C.I. of regression parameter

●●

0.5

●●

●●

●●

0.0

r$gamma.bar.hat

1.0

●●

−0.5

●●

−1.0

●●

asymptotic bootstrap 1

2

3

4

5

6

7

seq_along(r$gamma.bar.hat)

4.2. Huang and Wang (2004) Compared to Wang et al. (2001), the model intensity of recurrent process is the same: λi (t) = λ0 (t)zi exp(Wi γ) where: - zi is a nonnegative-valued latent variable such that E(zi |Wi ) = E(zi ). - The baseline RT intensity function λ0 (t) is a probability function: - λ0 (t) 6= 0 - Λ0 (T0 ) = 0 0 λ0 (u)du = 1 - γ is a R1×q vector. Moreover, the hazard function of the censor time is modeled as hi (t) = h0 (t)zi exp(Wi α)

14

Quick Guide for recurrentR

where: - α is a R1×q vector. - We let H0 (t) =

Rt 0

h0 (u)du

Conditional on (Wi , zi ), Ni (.) and yi are independent. The API ‘Huang2004‘ makes the inference based on the model proposed in Huang and Wang (2004). It not only return the estimated Λ0 (t), but also privide the estimated hazard function H0 (t) and the regression parameter α: r2 <- Huang2004(obj) names(r2) ## [1] "Lambda_0.hat"

"gamma.bar.hat" "H0.hat"

"alpha.hat"

r2$gamma.bar.hat ## ## ## ##

(Intercept) chemoTreated 0.4983 -0.3102 charlson1-2 charlson3 1.3147 0.5119

sexFemale -0.8081

dukesC 0.1254

dukesD 1.1188

dukesC 1.70792

dukesD 3.79641

charlson1-2 0.48987

r2$alpha.hat ## chemoTreated ## 0.99812 ## charlson3 ## 0.09391

sexFemale -0.48074

Given the parameter of ‘method‘ asks the API ‘Huang2004‘ estimates the variance of the regression coefficient of recurrent process, the intensity of the recurrent process, the coefficient of hazard function and cumulative hazard function. So far we only provide non-parametric bootstrap estimation. The asymptotic estimator is still under development. r2.boot <- Huang2004(obj, methods="bootstrap", B = 100) Lambda_0.hat <- r2.boot$Lambda_0.hat curve(Lambda_0.hat, 0, obj@T_0, main="95% Pointwise C.B. of Cumulative Intensity Function of Recurrent Process") Lambda_0.hat.var <- r2.boot$Lambda_0.hat.var Lambda_0.hat.upper <- function(x) { Lambda_0.hat(x) + qnorm(0.975) * sqrt(Lambda_0.hat.var(x)) } curve(Lambda_0.hat.upper, col = 3, add = TRUE, lty = 2) Lambda_0.hat.lower <- function(x) { Lambda_0.hat(x) - qnorm(0.975) * sqrt(Lambda_0.hat.var(x)) } curve(Lambda_0.hat.lower, col = 3, add = TRUE, lty = 2) legend('bottomright', c("bootstrap"), lty = 2, col = 3)

recurrentR

15

0.6 0.4 0.0

0.2

Lambda_0.hat(x)

0.8

1.0

95% Pointwise C.B. of Cumulative Intensity Function of Recurrent Process

bootstrap 0

200

400

600

800

1000

x

library(plotrix) plotCI(seq_along(r2$gamma.bar.hat) + 0.1, r2$gamma.bar.hat, uiw=qnorm(0.975) * sqrt(diag(r2.boot$gamma.bar.hat.var)), col=3, main = "95% C.I. of regression parameter") legend('bottomright', c("bootstrap"), col = 3, lty = 1)

1200

16

Quick Guide for recurrentR

1.5

2.0

95% C.I. of regression parameter

0.5

1.0









0.0

r2$gamma.bar.hat



−0.5



−1.0



bootstrap 1

2

3

4

5

6

seq_along(r2$gamma.bar.hat) + 0.1

H_0.hat <- r2$H0.hat curve(H_0.hat, 0, obj@T_0, ylim = c(0, H_0.hat(obj@T_0)) * 2, main = "H_0.hat") H_0.hat.var <- r2.boot$H0.hat.var H_0.hat.upper <- function(x) { H_0.hat(x) + qnorm(0.975) * sqrt(H_0.hat.var(x)) } curve(H_0.hat.upper, col = 3, add = TRUE, lty = 2) H_0.hat.lower <- function(x) { H_0.hat(x) - qnorm(0.975) * sqrt(H_0.hat.var(x)) } curve(H_0.hat.lower, col = 3, add = TRUE, lty = 2)

7

recurrentR

17

0.03 0.00

0.01

0.02

H_0.hat(x)

0.04

0.05

0.06

H_0.hat

0

200

400

600

800

1000

1200

x

library(plotrix) plotCI(seq_along(r2$alpha.hat), r2$alpha.hat, uiw=qnorm(0.975) * sqrt(diag(r2.boot$alpha.hat.var)), main = "95% C.I. of alpha")

18

Quick Guide for recurrentR

4

95% C.I. of alpha

2



r2$alpha.hat



● ●

0



−2



1

2

3

4

5

6

seq_along(r2$alpha.hat)

4.3. Huang et al. (2010) The intensity is: λi (t) = λ0 (t)zi exp(Xi (t)β + γWi ) where: - zi is a nonnegative-valued latent variable such that E(zi |Wi ) = E(zi ). - The baseline RT intensity function λ0 (t) is a probability function: - λ0 (t) 6= 0 - Λ0 (T0 ) = 0 0 λ0 (u)du = 1 - γ is a R1×q vector. - β is a (R)1×p vector. Conditional on (Wi , zi , Xi ), Ni (.) and yi are independent. The API ‘Huang2010‘ estimates the Λ0 , γ and β according to the method proposed in Huang et al. (2010). To use the API, we must provide the time dependent covariates. We demo an

recurrentR

19

example with synthetic dataset as follow.

data(Huang2010Demo) r3 <- Huang2010(Huang2010Demo, methods="bootstrap", 100) # Please wait a while... names(r3) ## [1] "beta.hat" "gamma.hat" ## [4] "Lambda_0.hat.var" "gamma.hat.var"

"Lambda_0.hat" "beta.hat.var"

par.hat <- c(r3$beta.hat, r3$gamma.hat) par.sd <- c(sqrt(r3$beta.hat.var), sqrt(diag(r3$gamma.hat.var))) plotCI(seq_along(par.hat), par.hat, uiw = qnorm(0.975) * par.sd, xaxt='n') axis(side=1, at = 1:3, labels=c(expression(beta), expression(gamma[1]), expression(gamma[2]))) title(main = "95% C.I. of regression parameter")

20

Quick Guide for recurrentR

1.0

95% C.I. of regression parameter

0.5 ●

0.0

par.hat



−0.5



β

γ1 seq_along(par.hat)

Lambda_0.hat <- r3$Lambda_0.hat curve(Lambda_0.hat, 0, Huang2010Demo@T_0, main="95% Pointwise C.B. of Cumulative Intensity Function of Recurrent Process") Lambda_0.hat.var <- r3$Lambda_0.hat.var Lambda_0.hat.upper <- function(x) { Lambda_0.hat(x) + qnorm(0.975) * sqrt(Lambda_0.hat.var(x)) } curve(Lambda_0.hat.upper, col = 3, add = TRUE, lty = 2) Lambda_0.hat.lower <- function(x) { Lambda_0.hat(x) - qnorm(0.975) * sqrt(Lambda_0.hat.var(x)) } curve(Lambda_0.hat.lower, col = 3, add = TRUE, lty = 2)

γ2

recurrentR

21

legend('bottomright', c("bootstrap"), lty = 2, col = 3)

0.6 0.4 0.0

0.2

Lambda_0.hat(x)

0.8

1.0

95% Pointwise C.B. of Cumulative Intensity Function of Recurrent Process

bootstrap 0

2

4

6

8

10

x

5. Simulation We conduct some simulation studies to test the correctness of the package. The source codes are not showed here, but the reader could find them under ‘vignettes/‘. We use a self developed package to generate the realization of inhomogenous poisson process. Please install the package if you want to re-run the simulation.

5.1. Wang et al. (2001)

22

Quick Guide for recurrentR

1.2

Simulation of Lambda

0.6 0.4 0.2 0.0

Lambda_0(x)

0.8

1.0

real survival estimated survival bootstrap C.I. asymptotic C.I. parametric bootstrap C.I.

0

2

4

6 x

8

10

recurrentR

23

2.0

Simulation of gamma ● ● ●

1.5



real gamma parametric bootstrap bootstrap asymptotic ●

0.0

0.5

1.0



● ●

−1.0

−0.5



5.2. Huang and Wang (2004)



Quick Guide for recurrentR

1.2

24

0.6 0.4 0.2 0.0

Lambda_0(x)

0.8

1.0

real survival estimated survival bootstrap C.I. asymptotic C.I. parametric bootstrap C.I.

0

2

4

6 x

8

10

recurrentR

25

2.5

Estimation of gamma



1.0

1.5

2.0



0.5

● ● ● ●

real gamma parametric bootstrap bootstrap asymptotic

● ●

26

Quick Guide for recurrentR

0.3 0.2 0.1 0.0

H_0(x)

0.4

0.5

real survival estimated survival bootstrap C.I. asymptotic C.I. parametric bootstrap C.I.

0

2

4

6 x

8

10

recurrentR

0.5

1.0

Parametric Bootstrap

0.0



−0.5

alpha.hat





−1.0

● ● ●

real gamma parametric bootstrap bootstrap asymptotic

n

5.3. Huang et al. (2010)

27

Quick Guide for recurrentR

1.2

28

0.6 0.4 0.2 0.0

Lambda_0(x)

0.8

1.0

real survival estimated survival bootstrap C.I. asymptotic C.I. parametric bootstrap C.I.

0

2

4

6 x

8

10

recurrentR

29

2.0

Estimation of gamma ● ● ●

1.0

1.5



real gamma parametric bootstrap bootstrap asymptotic

0.5

● ● ●

−1.0

−0.5

0.0



● ●





30

Quick Guide for recurrentR

References Huang CY, Qin J, Wang MC (2010). “Semiparametric Analysis for Recurrent Event Data with Time-Dependent Covariates and Informative Censoring.” Biometrics, 66(1), pp. 39– 49. ISSN 0006341X. URL http://www.jstor.org/stable/40663150. Huang CY, Wang MC (2004). “Joint Modeling and Estimation for Recurrent Event Processes and Failure Time Data.” Journal of the American Statistical Association, 99(468), pp. 1153–1165. ISSN 01621459. URL http://www.jstor.org/stable/27590493. Wang MC, Qin J, Chiang CT (2001). “Analyzing Recurrent Event Data with Informative Censoring.” Journal of the American Statistical Association, 96(455), pp. 1057–1065. ISSN 01621459. URL http://www.jstor.org/stable/2670251.

Quick Guide for recurrentR - GitHub

(2010) to the researchers who are interesting in semi-parametric recurrent data analysis. They studied how to estimate the recurrence process and survival ...

401KB Sizes 5 Downloads 324 Views

Recommend Documents

LIKWID | quick reference - GitHub
likwid-memsweeper Sweep memory of NUMA domains and evict cache lines from the last level cache likwid-setFrequencies Control the CPU frequency and ...

Go Quick Reference Go Quick Reference Go Quick Reference - GitHub
Structure - Package package mylib func CallMeFromOutside. Format verbs. Simpler than Cās. MOAR TABLE package anothermain import (. "fmt". ) func main() {.

A quick start guide to FALCON Introduction - GitHub
Jul 11, 2014 - FALCON is a free software package for calculating and comparing nestedness in ... or R programming languages and nestedness analysis. ... FALCON_InstructionGuide.pdf a more in depth practical guide to using FALCON ... MEASURE is a list

Log4j Quick Reference Card - GitHub
log4j.appender.socket.port=10005 log4j.appender.socket.locationInfo=true log4j.logger.com.my.app=DEBUG. Level. Description. ALL. Output of all messages.

QUICK REFERENCE GUIDE FOR NETWORK TROUBLESHOOTING
The hardware, firmware, or software described in this manual is subject to change without notice. ...... TAKE INTO ACCOUNT ... If you have a network management software application (such as SPECTRUM, SPECTRUM Element. Manager for ...

QUICK REFERENCE GUIDE FOR NETWORK TROUBLESHOOTING
Edit the /etc/bootptab file and add an entry for the device that includes the ...... (IPX), Telnet 3270 (TN3270), or Apple Remote Access Protocol (ARAP), but the ...

User Guide Magento extension for ricardo.ch - GitHub
13.1.1 SEND US YOUR CONFIGURATION WITH THE EXPLANATION OF YOUR PROBLEM. 44 .... For support or questions related to the services: [email protected]. For any related Magento ..... orders' PDF, in Magento Orders backend or in sales emails. ... you wil

Quick Start Guide
If you don't have a Nexus or Google Play edition phone or tablet and are running Android ..... Request updates for your sports teams, stocks, and more: From the.

MultiMarkdown User's Guide - GitHub
Nov 9, 2010 - for Markdown's syntax is the format of plain text email. [1] ... including complete XHTML documents, LaTeX, PDF, RTF, or even (shudder) Microsoft ... Also, you can check out the MultiMarkdown discussion list: ...... At this time, Scrive

Integrator's Guide - GitHub
Oct 20, 2015 - The Ethernet communication is handled by a dedicated .... The telnet server is not configured to echo characters, so users wishing to see and/or ...

user guide - GitHub
TOOLS AnD EVA ITEMS CAn BE FOUnD In A nEW TAB UnDER SCIEnCE CATEGORy. .... But THE greatest thing above all is KSP community. ... Of course, we still need hard work to improve our mods and we have many other ideas as.

Installation Guide - GitHub
Create the database tables. 3.2.5. (Optional) ... hedgehog Data Manager This is the user that will own the database created by. Hedgehog .... link on Homepage.

porting guide - GitHub
Mar 22, 2011 - This document describes the process of porting applications from ... Our development philosophy with BamTools so far has been to ... bool LocateIndex(const BamIndex::IndexType& preferredType = BamIndex::STANDARD);.

RVTPO User's Guide - GitHub
anyone, and any GitHub user can file issues or follow discussions related to the model software. Code in ... Because the repository is currently private, you may be prompted for your GitHub user name and password. ... The RVTPO model uses CUBE's cata

RVTPO User's Guide - GitHub
Users can download a PDF of the contents from the footer .... The scenario manager, in the image below, shows all of the scenarios that are included in the local Cube ..... These speed ratios were borrowed from the Olympus model in Florida. .... Spec

Pawn Implementor's Guide - GitHub
or send a letter to Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA. ...... 3. call the public function with the "AMX address" */.

Development Guide - GitHub
Development Guide. A basic understanding of Git is required ... (3400 and 3500). All changes should build and boot Linux on all the targets described in the wiki.

User Guide - GitHub
Requires the query, phrase, or word on its right hand side to not be in the document. [ATTRIBUTE]:. Requires the value of the document attribute describe between the brackets [ ] to equal the value to the right of the colon. Multiword phrases are exp

MIOpen Porting Guide - GitHub
cudnnCreateFilterDescriptor ( substituted by the respective. cudnnFilterDescriptor_t. TensorDescriptor APIs. * filterDesc). cudnnStatus t miopenstatus t. cudnnCreateConvolutionDescriptor (c miopenCreateConvolutionDescriptor. udnnConvolutionDescriptor

WinFred User's Guide - GitHub
May 5, 2017 - This website is intended to serve as a user's guide for application of the Winchester Frederick County. Metropolitan Planning Organization (WinFred) travel demand model. It provides relevant information necessary to understand how the m

Developer's Guide - GitHub
Oct 17, 2003 - The JTS Topology Suite is a Java API that implements a core set of spatial data operations using an explicit precision model and robust geometric algorithms. It provides a complete model for specifying 2-D linear Geometry. Many common

User Guide - GitHub
2.2 Download and Installation via App Manager . .... Cytoscape/GEXF “app” that allows network diagrams described using the GEXF file format to be imported ...

Quick Guide Newsstand.pdf
Sign in. Main menu.