Skip to contents

How it works

analyzedata(...) performs analysis of the individual replicate datasets. The Get started page gives an overview of the analysis process, but in short the analyzeData(…) function analyses each replicate dataset in turn and applies the user defined analysisCode function supplied to analyse the data. The analysisCode function need only be written in the context of analysing a single dataset. MSToolkit takes care of reading in each replicate dataset and writing back out the analysis results.

The user must provide a valid R function which is to be used for analysing the generated dataset or an external file (.R or .SAS) which contains code for analysis of the data. The user must also provide functions for performing the micro- and macro-evaluation summary of trial performance.

The analyzedata(...) function automatically handles the data input and output, pointing the analytic function (analysisCode) to each replicate dataset in turn. The user doesn’t need to explicitly name the “replicate000x.csv” file for analysis. analyzedata(...) takes the user-defined analysisCode function and loops through each replicate dataset in turn passing this to the analysisCode function which takes it as the argument data. The user then works with an data frame object called data in the analysisCode function. Examples are given in the Get started page.

The analysisCode returns analysis output which is used later in evaluating the operating characteristics for a “Go / No Go” decision. The returned dataset is referred to as the “micro-evaluation” data. This distinguishes it from the results of the “Go / No Go” evaluation which is referred to as the “macro-evaluation” output. Micro-evaluation results are used in cases where we may wish to drop doses at interim analysis - the decision to drop doses can then be based on the output interval estimates. For example we may wish to drop doses where the lower limit is less than zero (in a difference from baseline or comparison to placebo). Micro-evaluation is performed at each specified interim analysis. If several interim analyses are planned, then the Micro-evaluation is performed on the whole dataset (without dropping any doses), and after every interim. This allows comparisons in trial performance between the adapting and not adapting.

The macroCode summarises the trial performance as a whole - it should provide a single assessment of the success or failure of a trial at the conclusion of the trial. For example, we may wish to summarise the proportion of simulated trials showing the maximal effect greater than a clinically meaningful effect. Similarly we may wish to show that the final estimates of model parameters are precise and unbiased. Macro-evaluation should summmarise trial performance at this level.

The analyzedata(...) function is different from the generateData function in that there are fewer low level functions that the user will typically want to access. The majority of the lower level functions for analyzedata(...) govern the data input and output of the trial replicate data, and general “housekeeping” and submitting of the analysis jobs to the GRID.

Arguments

Required Arguments

Argument Name Description
analysisCode R function or SAS file of analytic code. MUST return mean, std.error, lower and upper interval estimates for each dose. Other parameters may be returned, but the core set as described must be in the dataset for use by interimCode.
macroCode Macro-evaluation code. Algorithm for defining trial level success.

Optional Arguments

Argument Name Description
replicates Which replicates to use in the analyzedata(…) step. DEFAULT is ALL
interimCode Defines an algorithm for dropping doses at interim analyses.
software Software for analysis - could be R or SAS.
grid If running the MSToolkit from a UNIX node or via ePharm, then the user can choose to split the analysis across GRID nodes in order to speed up the analysis. If running MSToolkit locally on a laptop, this option cannot be accessed at this time.
removeMissing
removeRespOmit
Should missing data or subjects who have dropped out be included in analysis?

If running analyzedata(...) on a multi-processor machine then the analysis job will split the job into roughly equal sized numbers of replicates to run across processors.