# rpwexp: The Piecewise Exponential Distribution In keaven/nphsim: Non proportional hazards sample size and simulation

## Description

The piecewise exponential distribution allows a simple method to specify a distribtuion where the hazard rate changes over time. It is likely to be useful for conditions where failure rates change, but also for simulations where there may be a delayed treatment effect or a treatment effect that that is otherwise changing (e.g., decreasing) over time. `rpwexp()` is to support simulation both the Lachin and Foulkes (1986) sample size method for (fixed trial duration) as well as the Kim and Tsiatis(1990) method (fixed enrollment rates and either fixed enrollment duration or fixed minimum follow-up); see `gsDesign`.

## Usage

 `1` ```rpwexp(n, rate = 1, intervals = NULL, cumulative = FALSE) ```

## Arguments

 `n` Number of observations. If length(n) > 1, the length is taken to be the number required. `rate` Vector containing exponential failure rates in intervals described by `intervals` `intervals` Vector containing positive values indicating interval lengths where the exponential rates provided in `rate` apply. Note that the length of `intervals` is 1 less than that of `rate` and that the final value rate in `rate` applies after time 'sum(intervals)'. `cumulative` `FALSE` (the default) generates `n` independent, identically distributed piecewise exponential failure rates according to the distribution specified by `intervals` and `rate`. `TRUE` generates independent inter-arrival times with the rates of arrival in each interval specified by `intervals` determined by `rate`.

## Details

Using the `cumulative=TRUE` option, enrollment times that piecewise constant over time can be generated.

## Examples

 ``` 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27``` ```# get 10k piecewise exponential failure times # failure rates are 1 for time 0-.5, 3 for time .5 - 1 and 10 for >1. # intervals specifies duration of each failure rate interval # with the final interval running to infinity x <- rpwexp(10000, rate = c(1, 3, 10), intervals = c(.5,.5)) plot(sort(x),(10000:1)/10001,log="y", main="PW Exponential simulated survival curve", xlab="Time",ylab="P{Survival}") # piecewise uniform (piecewise exponential inter-arrival times) for 10k patients enrollment # enrollment rates of 5 for time 0-100, 15 for 100-300, and 30 thereafter x <- rpwexp(10000, rate = c(5, 15, 30), intervals = c(100,200), cumulative=TRUE) plot(x,1:10000, main="Piecewise uniform enrollment simulation",xlab="Time", ylab="Enrollment") # exponential enrollment x <- rpwexp(10000, rate = .03, intervals = NULL, cumulative=TRUE) plot(x,1:10000,main="Simulated exponential inter-arrival times", xlab="Time",ylab="Enrollment") # exponential failure times x <- rpwexp(10000, rate = 5) plot(sort(x),(10000:1)/10001,log="y", main="Exponential simulated survival curve", xlab="Time",ylab="P{Survival}") library(ggplot2) qplot(sort(x),(10000:1)/10001,geom="line") + scale_y_log10(breaks=c(1,.1,.01)) + ggtitle("Exponential simulated survival curve") + xlab("Time")+ylab("P{Survival}") ```

keaven/nphsim documentation built on July 2, 2018, 1:10 a.m.