Package 'survRM2perm'

Title: Permutation Test for Comparing Restricted Mean Survival Time
Description: Performs the permutation test using difference in the restricted mean survival time (RMST) between groups as a summary measure of the survival time distribution. When the sample size is less than 50 per group, it has been shown that there is non-negligible inflation of the type I error rate in the commonly used asymptotic test for the RMST comparison. Generally, permutation tests can be useful in such a situation. However, when we apply the permutation test for the RMST comparison, particularly in small sample situations, there are some cases where the survival function in either group cannot be defined due to censoring in the permutation process. Horiguchi and Uno (2020) <doi:10.1002/sim.8565> have examined six workable solutions to handle this numerical issue. It performs permutation tests with implementation of the six methods outlined in the paper when the numerical issue arises during the permutation process. The result of the asymptotic test is also provided for a reference.
Authors: Miki Horiguchi, Hajime Uno
Maintainer: Miki Horiguchi <[email protected]>
License: GPL-2
Version: 0.1.0
Built: 2025-03-12 03:00:04 UTC
Source: https://github.com/cran/survRM2perm

Help Index


Permutation Test for Comparing Restricted Mean Survival Time

Description

Performs the permutation test using difference in the restricted mean survival time (RMST) between groups as a summary measure of the survival time distribution. When the sample size is less than 50 per group, it has been shown that there is non-negligible inflation of the type I error rate in the commonly used asymptotic test for the RMST comparison. Generally, permutation tests can be useful in such a situation. However, when we apply the permutation test for the RMST comparison, particularly in small sample situations, there are some cases where the survival function in either group cannot be defined due to censoring in the permutation process. Horiguchi and Uno (2020) <doi:10.1002/sim.8565> have examined six workable solutions to handle this numerical issue. It performs permutation tests with implementation of the six methods outlined in the paper when the numerical issue arises during the permutation process. The result of the asymptotic test is also provided for a reference.

Author(s)

Miki Horiguchi, Hajime Uno

Maintainer: Miki Horiguchi <[email protected]>

References

Horiguchi M, Uno H. On permutation tests for comparing restricted mean survival time with small sample from randomized trials. Statistics in Medicine 2020.doi:10.1002/sim.8565.

See Also

survRM2 survival

Examples

#--- sample data ---#
D      = rmst2perm.sample.data()
time   = D$time
status = D$status
arm    = D$arm
tau    = 34
mperm  = c(1:6)
nperm  = 100 #--This number is only for the example.
             #--It is recommended to specify at least 100K (default) or larger.
seed   = 123

a = rmst2perm(time=time, status=status, arm=arm,
              tau=tau, mperm=mperm, nperm=nperm, seed=seed)
print(a)

print.rmst2perm

Description

S3 method for class 'rmst2perm'

Usage

## S3 method for class 'rmst2perm'
print(x, digits = 3, ...)

Arguments

x

Object to be printed

digits

Integer indicating the number of decimal places

...

Further arguments ignored in this function

Value

returns summary output for class 'rmst2perm'


Permutation Test for Comparing Restricted Mean Survival Time

Description

Performs the permutation test using difference in the restricted mean survival time (RMST) between groups as a summary measure of the survival time distribution. When the sample size is less than 50 per group, it has been shown that there is non-negligible inflation of the type I error rate in the commonly used asymptotic test for the RMST comparison. Generally, permutation tests can be useful in such a situation. However, when we apply the permutation test for the RMST comparison, particularly in small sample situations, there are some cases where the survival function in either group cannot be defined due to censoring in the permutation process. Horiguchi and Uno (2020) <doi:10.1002/sim.8565> have examined six workable solutions to handle this numerical issue. It performs permutation tests with implementation of the six methods outlined in the paper when the numerical issue arises during the permutation process. The result of the asymptotic test is also provided for a reference.

Usage

rmst2perm(time, status, arm, tau=NULL, mperm=c(1:6), nperm=100000,
seed=NULL, asy="greenwood", test="2_side")

Arguments

time

The follow-up time for right censored data.

status

The event indicator, 1=event, and 0=censor.

arm

The group indicator for comparison with a value of either 0 or 1. Normally, 0=control group, 1=active treatment group. The three vectors (time, status, arm) need to have the same length.

tau

A scaler value to specify the truncation time point for the RMST calculation. It needs to be smaller than the minimum value of the largest observed time in each of the two groups.

mperm

A vector with the numbers from 1 to 6 to specify the method for conducting the permutation test when the last observation time from either group does not reach the specified tau. It supports: 1=ignoring the inestimable cases (Method 1), 2=extending the survival curve to tau (Method 2), 3=switching the last censored observation to the event observation (Method 3), 4=averaging RMSTs derived from Methods 2 and 3 (Method 4), 5=fitting a Weibull distribution to each inestimable case (Method 5), and 6=utilizing pseudo-observations (Method 6). Please see Horiguchi and Uno (2020) <doi:10.1002/sim.8565> for details.

nperm

The number of iterations for the resampling. It is recommended to specify at least 100,000 (default) or larger.

seed

An integer value, used for random number generation in the resampling procedure. Default is NULL.

asy

Specify the asymptotic variance estimator for the difference in RMST. asy supports "greenwood" for Greenwood plug-in estimator (default) and "aj" for Aalen-Johansen plug-in estimators. Please see Horiguchi and Uno (2020) <doi:10.1002/sim.8565> for details.

test

Specify "1_side" for the one-sided test where the alternative hypothesis is that the treatment effect in arm=1 is superior to that in arm=0 with respect to survival. Specify "2_side" for the two-sided test where the alternative hypothesis is that the treatment effect in arm=1 is not equal to that in arm=0 with respect to survival. Default is "2_side".

Value

An object of class rmst2perm.

point_estimate

Estimated RMST values for arm=1, arm=0, and their difference

asymptotic_test_pval

P-value of the asymptotic test for the difference in RMST

permutation_test_methodX_pval

P-value of the permutation test for the difference in RMST using Method X (X is the number specified in mperm)

methodX_number_applied

The number of times Method X was applied during the permutation process. (X is the number specified in mperm except 6.) For X=1 (Method 1), this returns how many additional permutations were performed in order to obtain nperm of realizations.

method5_number_exponential_used

The number of times the exponential distribution was used for the parametric fit during the permutations. Normally, the Weibull distribution is used for Method 5. However, when the maximum likelihood estimate (MLE) for the Weibull distribution cannot be derived or the hessian of the covariance matrix for the MLE is singular, the exponential distribution will be used.

tau

The truncation time used in the analysis

mperm

The method used to conduct the permutation test

nperm

The number of iterations for the resampling

asy

The type of the asymptotic variance estimator used for the asymptotic test

test

The type of test used in the analysis

Author(s)

Miki Horiguchi, Hajime Uno

References

Horiguchi M, Uno H. On permutation tests for comparing restricted mean survival time with small sample from randomized trials. Statistics in Medicine 2020. doi:10.1002/sim.8565.

Examples

#--- sample data ---#
D      = rmst2perm.sample.data()
time   = D$time
status = D$status
arm    = D$arm
tau    = 34
mperm  = c(1:6)
nperm  = 100 #--This number is only for the example.
             #--It is recommended to specify at least 100K (default) or larger.
seed   = 123

a = rmst2perm(time=time, status=status, arm=arm,
              tau=tau, mperm=mperm, nperm=nperm, seed=seed)
print(a)

Sample Dataset from Ovarian Data

Description

Generates a sample dataset of 26 randomized patients from the ovarian data.

Usage

rmst2perm.sample.data(t.unit="month")

Arguments

t.unit

Specify the time unit. It supports "month" (default) and "day".

Details

The function creates a sample dataset to illustrate the usage of the function rmst2perm() in this package. This function loads the ovarian data from the survival package, deriving three variables. The variables in the dataset are as follows: time, survival time in months; status, event indicator (0=censor, 1=event); arm, treatment arm (0=cyclophosphamide, 1=cyclophosphamide+adriamycin).

Value

returns a data frame

References

Collett, D. Modelling Survival Data in Medical Research. Chapman and Hall/CRC. 2015; page 213.

Edmonson JH, Fleming TR, Decker DG, et al. Different chemotherapeutic sensitivities and host factors affecting prognosis in advanced ovarian carcinoma versus minimal residual disease. Cancer Treat Rep. 1979;63(2):241-247.

See Also

ovarian in survival package

Examples

D = rmst2perm.sample.data()
head(D)