CVpooled function

Pooled CV from several studies

Pooled CV from several studies

This function pools CVs of several studies. utf-8

CVpooled(CVdata, alpha = 0.2, logscale = TRUE, robust = FALSE) ## S3 method for class 'CVp' print(x, digits = 4, verbose = FALSE, ...)

Arguments

  • CVdata: A data.frame that must contain the columns CV, n and design

    where CV are the error CVs from the studies, n the number of subjects and design is a character string describing the study design.

    See known.designs() for designs covered in this package.

    If the design column is missing the classical 2×2 crossover is assumed for each study. A message is displayed under that circumstances.

    A data.frame that contains the columns CV and giving the degrees of freedom df directly is also accepted as CVdata.

  • alpha: Error probability for calculating an upper confidence limit of the pooled CV.

    Recommended 0.2--0.25 for use in subsequent sample size estimation.

    See f.i one of H. presentations.

  • logscale: Should the calculations be done for log-transformed data? Defaults to TRUE.

  • robust: Defaults to FALSE.

    Set to TRUE will use the degrees of freedom according to the robust evaluation (aka Senn basic estimator). These dfs are calculated as n-seq.

    They are also often more appropriate if the CV comes from a true mixed effects model evaluation (FDA model for average bioequivalence).

    See known.designs()$df2 for the designs covered in this package.

  • x: An object of class "CVp".

  • digits: Number of significant digits for the CV and the CL.

  • verbose: Defaults to FALSE. Prints only the pooled CV and df.

    If set to TRUE the upper confidence limit is also printed.

  • ...: More args to print(). None used.

Details

The pooled CV is obtained from the weighted average of the error variances obtained from the CVs of the single studies, weights are the degrees of freedom df.

If only n is given in the input CVdata, the dfs are calculated via the formulas given in known.designs(). If both n and df are given the df column precedes.

If logscale=TRUE the error variances are obtained via function CV2se(). Otherwise the pooled CV is obtained via pooling the CV^2.

Returns

A list of class "CVp" with components - CV: value of the pooled CV

  • df: pooled degrees of freedom

  • CVupper: upper confidence interval of the pooled CV

  • alpha: input value

The class "CVp" has a S3 methods print.CVp.

References

H. presentations about sample size challenges.

Patterson S, Jones B. Bioequivalence and Statistics in Clinical Pharmacology. Boca Raton: Chapman & Hall / CRC Press; 2 edition 2017. Chapter 5.7 Determining Trial Size .

Author(s)

D. Labes

Note

The calculations for logscale=FALSE are not described in the references. They are implemented by analogy to the case via log-transformed data.

The calculations are based on a common variance of Test and Reference formulations in replicate crossover studies or a parallel group study, respectively.

Warning

Pooling of CVs from parallel group and crossover designs does not make any sense.

Also the function does not throw an error if you do so.

See Also

known.designs, CVfromCI

Examples

# some data: # the values for AUC, study 1 and study 2 are Example 3 of H. Schuetz' presentation CVs <- (" PKmetric | CV | n |design| source AUC | 0.20 | 24 | 2x2 | study 1 Cmax | 0.25 | 24 | 2x2 | study 1 AUC | 0.30 | 12 | 2x2 | study 2 Cmax | 0.31 | 12 | 2x2 | study 2 AUC | 0.25 | 12 | 2x2x4| study 3 (full replicate) ") txtcon <- textConnection(CVs) CVdata <- read.table(txtcon, header = TRUE, sep = "|", strip.white = TRUE, as.is = TRUE) close(txtcon) # evaluation of the AUC CVs CVsAUC <- subset(CVdata, PKmetric == "AUC") CVpooled(CVsAUC, alpha = 0.2, logscale = TRUE) # df of the 'robust' evaluation CVpooled(CVsAUC, alpha = 0.2, logscale = TRUE, robust = TRUE) # print also the upper CL, data example 3 CVsAUC3 <- subset(CVsAUC,design != "2x2x4") print(CVpooled(CVsAUC3, alpha = 0.2, robust = TRUE), digits = 3, verbose = TRUE) # will give the output: # Pooled CV = 0.235 with 32 degrees of freedom (robust dfs) # Upper 80% confidence limit of CV = 0.266 # # Combining CVs from studies evaluated by ANOVA (robust=FALSE) and # by a mixed effects model (robust=TRUE). dfs have to be provided! CVs <- (" CV | n |design| source | model | df 0.212 | 24 | 2x2 | study 1 | fixed | 22 0.157 | 27 | 3x3 | study 2 | fixed | 50 0.148 | 27 | 3x3 | study 3 | mixed | 24 ") txtcon <- textConnection(CVs) CVdata <- read.table(txtcon, header = TRUE, sep = "|", strip.white = TRUE, as.is = TRUE) close(txtcon) print(CVpooled(CVdata, alpha = 0.2), digits = 3, verbose = TRUE) # will give the output: # Pooled CV = 0.169 with 96 degrees of freedom # Upper 80% confidence limit of CV = 0.181
  • Maintainer: Detlew Labes
  • License: GPL (>= 2)
  • Last published: 2024-03-18