Example1 {rsides}R Documentation

Subgroup search in a clinical trial with a continuous endpoint

Description

Consider a clinical trial that was conducted to evaluate the efficacy and safety of an experimental treatment compared to placebo. The primary endpoint is a continuous endpoint. The trial data can be found in the continuous data set. This data set includes five biomarkers (four numeric biomarkers and one nominal biomarker) as well as several covariates that can be included in the primary analysis model. The trial's sponsor is interested in identifying a set of promising subgroups with enhanced treatment effect. Subgroup search will be performed using the basic SIDES procedure and two SIDEScreen procedures (Fixed and Adaptive SIDEScreen procedures).
The endpoint parameters will be defined as follows. First of all, the name of the outcome variable needs to be specified, i.e., outcome_variable = "outcome". Since the endpoint is continuous, the type parameter is "continuous", and further the direction parameter is set to 1 since a higher value of the primary endpoint indicates beneficial effect.
Two sets of endpoint parameters will be considered to implement a simple evaluation of the treatment effect based on the two-sample t-test and a more advanced analysis based on an ANCOVA model with an adjustment for important prognostic covariates:

The data set parameters will be specified as follows:

Finally, the following algorithm parameters will be used in the subgroup search procedures:

The subgroup search will be performed using the basic SIDES procedure as well as two SIDEScreen procedures by calling the SubgroupSearch function and a comprehensive summary of subgroup search results will be generated by calling the GenerateReport function.

See Also

Example2, Example3

Examples

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

    # Primary endpoint parameters

    # Analysis strategy 1: Analysis of the continuous endpoint without 
    # accounting for any covariates
    endpoint_parameters = list(outcome_variable = "outcome", 
      type = "continuous",
      label = "Outcome", 
      analysis_method = "T-test", 
      direction = 1)

    # Analysis strategy 2: Analysis of the continuous endpoint using an ANCOVA 
    # model that accounts for two continuous covariates (cont1, cont2) and 
    # one class/categorical covariate (class1)
    endpoint_parameters = list(outcome_variable = "outcome", 
      type = "continuous",
      label = "Outcome", 
      analysis_method = "ANCOVA", 
      cont_covariates = "cont1, cont2", 
      class_covariates = "class1", 
      direction = 1)

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

    # Data set parameters

    # Set of candidate biomarkers
    biomarker_names = c("biomarker1", "biomarker2", 
                        "biomarker3", "biomarker4", 
                        "biomarker5")

    # Biomarker type 
    biomarker_types = c(rep("numeric", 4), "nominal")

    # Data set parameters
    data_set_parameters = list(data_set = continuous,
      treatment_variable_name = "treatment",
      treatment_variable_control_value = "0",
      biomarker_names = biomarker_names,
      biomarker_types = biomarker_types)

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

    # Algorithm parameters for the basic SIDES procedure

    # Algorithm
    subgroup_search_algorithm = "SIDES procedure"

    # Number of permutations to compute multiplicity-adjusted treatment 
    # effect p-values within promising subgroups
    n_perms_mult_adjust = 10

    # Number of processor cores (use less or equal number of CPU cores on the current host)
    ncores = 1

    # Default values for the search depth (2), search width (2), 
    # maximum number of unique values for continuous biomarkers (20)

    # Algorithm parameters
    algorithm_parameters = list(
      n_perms_mult_adjust = n_perms_mult_adjust,
      min_subgroup_size = 60,
      subgroup_search_algorithm = subgroup_search_algorithm,
      ncores = ncores,
      random_seed = 3011)

    # Perform subgroup search

    # List of all parameters
    parameters = list(endpoint_parameters = endpoint_parameters,
      data_set_parameters = data_set_parameters,
      algorithm_parameters = algorithm_parameters)

    results = SubgroupSearch(parameters)

    # Simple summary of subgroup search results
    results

    # Generate a detailed Word-based report with a summary of subgroup search results
    report_information = GenerateReport(results,
      report_title = "Subgroup search report", 
      report_filename = tempfile(
        "Continuous endpoint (SIDES).docx", 
        fileext=".docx"
      )
    )

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

    # Algorithm parameters for the Fixed SIDEScreen procedure

    # Algorithm
    subgroup_search_algorithm = "Fixed SIDEScreen procedure"

    # Number of permutations to compute multiplicity-adjusted treatment 
    # effect p-values within promising subgroups
    n_perms_mult_adjust = 10

    # Number of processor cores (use less or equal number of CPU cores on the current host)
    ncores = 1

    # Number of biomarkers selected for the second stage in the Fixed SIDEScreen algorithm
    n_top_biomarkers = 3

    # Default values for the search depth (2), search width (2), 
    # maximum number of unique values for continuous biomarkers (20)

    # Algorithm parameters
    algorithm_parameters = list(
      n_perms_mult_adjust = n_perms_mult_adjust,
      min_subgroup_size = 60,
      subgroup_search_algorithm = subgroup_search_algorithm,
      ncores = ncores,
      n_top_biomarkers = n_top_biomarkers,
      random_seed = 3011)

    # Perform subgroup search

    # List of all parameters
    parameters = list(endpoint_parameters = endpoint_parameters,
      data_set_parameters = data_set_parameters,
      algorithm_parameters = algorithm_parameters)

    results = SubgroupSearch(parameters)

    # Simple summary of subgroup search results
    results

    # Generate a detailed Word-based report with a summary of subgroup search results
    report_information = GenerateReport(results,
      report_title = "Subgroup search report", 
      report_filename = tempfile(
        "Continuous endpoint (Fixed SIDEScreen).docx", 
        fileext=".docx"
      )
    )

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

    # Algorithm parameters for the Adaptive SIDEScreen procedure

    # Algorithm
    subgroup_search_algorithm = "Adaptive SIDEScreen procedure"

    # Number of permutations to compute multiplicity-adjusted treatment 
    # effect p-values within promising subgroups
    n_perms_mult_adjust = 10

    # Number of processor cores (use less or equal number of CPU cores on the current host)
    ncores = 1

    # Multiplier for selecting biomarkers for the second stage 
    # in the Adaptive SIDEScreen algorithm
    multiplier = 1

    # Number of permutations for computing the null distribution
    # of the maximum VI score in the Adaptive SIDEScreen algorithm
    n_perms_vi_score = 100

    # Default values for the search depth (2), search width (2), 
    # maximum number of unique values for continuous biomarkers (20)

    # Algorithm parameters
    algorithm_parameters = list(
      n_perms_mult_adjust = n_perms_mult_adjust,
      min_subgroup_size = 60,
      subgroup_search_algorithm = subgroup_search_algorithm,
      ncores = ncores,
      multiplier = multiplier,
      n_perms_vi_score = n_perms_vi_score,
      random_seed = 3011)

    # Perform subgroup search

    # List of all parameters
    parameters = list(endpoint_parameters = endpoint_parameters,
      data_set_parameters = data_set_parameters,
      algorithm_parameters = algorithm_parameters)

    results = SubgroupSearch(parameters)

    # Simple summary of subgroup search results
    results

    # Generate a detailed Word-based report with a summary of subgroup search results
    GenerateReport(results,
      report_title = "Subgroup search report", 
      report_filename = tempfile(
        "Continuous endpoint (Adaptive SIDEScreen).docx", 
        fileext=".docx"
      )
    )
  

[Package rsides version 0.1 Index]