The hardware and bandwidth for this mirror is donated by METANET, the Webhosting and Full Service-Cloud Provider.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]metanet.ch.

Biomarker Endpoints

The Biomarker Discovery module covers expression, classification, survival, and screening endpoints. Detailed per-topic articles remain on the pkgdown site.

Differential expression

Two-group mean difference for expression biomarkers (wrapper around t_two_sample).

power_compute("ttest_biomarker", "post_hoc", d = 0.6, n1 = 40, n2 = 40,
              alpha = 0.05, tails = "two")
#> ggpower result
#> Test: Biomarker: Two-group differential expression (t test)
#> Analysis: post_hoc
#> 
#> Input parameters
#>   tails: two
#>   alpha: 0.05
#>   sample_size_group_1: 40
#>   sample_size_group_2: 40
#>   log_fold_change_sd: 0.6
#> 
#> 
#> Output parameters
#>   noncentrality_parameter: 2.683282
#>   critical_t: -1.990847,  1.990847
#>   df: 78
#>   total_sample_size: 80
#>   power: 0.7549516
power_compute("ttest_biomarker", "a_priori", d = 0.5, alpha = 0.05,
              power = 0.8, allocation_ratio = 1)
#> ggpower result
#> Test: Biomarker: Two-group differential expression (t test)
#> Analysis: a_priori
#> 
#> Input parameters
#>   tails: two
#>   alpha: 0.05
#>   sample_size_group_1: 64
#>   sample_size_group_2: 64
#>   log_fold_change_sd: 0.5
#>   target_power: 0.8
#> 
#> 
#> Output parameters
#>   noncentrality_parameter: 2.828427
#>   critical_t: -1.978971,  1.978971
#>   df: 126
#>   total_sample_size: 128
#>   actual_power: 0.8014596
#> 
#> 
#> Notes
#> - A priori sample sizes are rounded up to integer values and actual power is recomputed.

ROC and AUC

power_compute(
  "roc_auc_one",
  analysis = "a_priori",
  auc = 0.75,
  auc0 = 0.5,
  n_pos = 50,
  n_neg = 50,
  alpha = 0.05,
  power = 0.8,
  tails = "two"
)
#> ggpower result
#> Test: Biomarker: One-sample ROC AUC vs null
#> Analysis: a_priori
#> 
#> Input parameters
#>   tails: two
#>   auc_h1: 0.75
#>   auc_h0: 0.5
#>   n_positive: 16
#>   n_negative: 16
#>   alpha: 0.05
#>   target_power: 0.8
#> 
#> 
#> Output parameters
#>   z_statistic: 2.860533
#>   se_auc: 0.0873963
#>   total_sample_size: 32
#>   actual_power: 0.8160919
#> 
#> 
#> Notes
#> - Hanley-McNeil normal approximation for AUC variance.
#> - A priori sample sizes are rounded up to integer values and actual power is recomputed.
power_compute(
  "roc_auc_two",
  analysis = "post_hoc",
  auc1 = 0.78,
  auc2 = 0.62,
  n1 = 80,
  n2 = 80,
  alpha = 0.05,
  tails = "two"
)
#> ggpower result
#> Test: Biomarker: Two-sample ROC AUC comparison
#> Analysis: post_hoc
#> 
#> Input parameters
#>   tails: two
#>   auc_group_1: 0.78
#>   auc_group_2: 0.62
#>   sample_size_group_1: 80
#>   sample_size_group_2: 80
#>   alpha: 0.05
#> 
#> 
#> Output parameters
#>   z_statistic: 2.790489
#>   se_difference: 0.05733762
#>   total_sample_size: 160
#>   power: 0.79688
#> 
#> 
#> Notes
#> - DeLong-style normal approximation for AUC difference.

Diagnostic accuracy

power_compute("diagnostic_acc", "post_hoc", sensitivity = 0.85, specificity = 0.85,
              n_pos = 50, n_neg = 50, alpha = 0.05)
#> ggpower result
#> Test: Biomarker: Diagnostic accuracy (sensitivity and specificity)
#> Analysis: post_hoc
#> 
#> Input parameters
#>   tails: two
#>   sensitivity_h1: 0.85
#>   specificity_h1: 0.85
#>   n_positive: 50
#>   n_negative: 50
#>   alpha: 0.05
#> 
#> 
#> Output parameters
#>   z_sensitivity: 16.83251
#>   z_specificity: 16.83251
#>   power_sensitivity: 1
#>   power_specificity: 1
#>   power: 1
#>   total_sample_size: 100
#> 
#> 
#> Notes
#> - Joint power uses the minimum of sensitivity and specificity power (Bonferroni-style).
power_compute("diagnostic_acc", "a_priori", sensitivity = 0.9, specificity = 0.9,
              alpha = 0.05, power = 0.8, allocation_ratio = 1)
#> ggpower result
#> Test: Biomarker: Diagnostic accuracy (sensitivity and specificity)
#> Analysis: a_priori
#> 
#> Input parameters
#>   tails: two
#>   sensitivity_h1: 0.9
#>   specificity_h1: 0.9
#>   n_positive: 2
#>   n_negative: 2
#>   alpha: 0.05
#>   target_power: 0.8
#> 
#> 
#> Output parameters
#>   z_sensitivity: 4.242641
#>   z_specificity: 4.242641
#>   power_sensitivity: 0.9887753
#>   power_specificity: 0.9887753
#>   total_sample_size: 4
#>   actual_power: 0.9887753
#> 
#> 
#> Notes
#> - Joint power uses the minimum of sensitivity and specificity power (Bonferroni-style).
#> - A priori sample sizes are rounded up to integer values and actual power is recomputed.

Survival (log-rank)

power_compute("survival_logrank", "post_hoc", hazard_ratio = 0.65,
              total_n = 200, event_rate = 0.5, alpha = 0.05)
#> ggpower result
#> Test: Biomarker: Survival log-rank test
#> Analysis: post_hoc
#> 
#> Input parameters
#>   tails: two
#>   hazard_ratio: 0.65
#>   event_rate: 0.5
#>   allocation_ratio: 1
#>   total_sample_size: 200
#>   alpha: 0.05
#> 
#> 
#> Output parameters
#>   expected_events: 100
#>   z_statistic: 2.153915
#>   power: 0.5769122
#> 
#> 
#> Notes
#> - Schoenfeld/Freedman log-rank approximation for equal follow-up.

Cox prognostic models

power_compute("cox_regression", "post_hoc", hazard_ratio = 0.65,
              events = 100, alpha = 0.05)
#> ggpower result
#> Test: Biomarker: Cox proportional hazards (single covariate)
#> Analysis: post_hoc
#> 
#> Input parameters
#>   tails: two
#>   hazard_ratio: 0.65
#>   events: 100
#>   alpha: 0.05
#> 
#> 
#> Output parameters
#>   z_statistic: 4.307829
#>   power: 0.9905593
#> 
#> 
#> Notes
#> - Wald test power from expected number of events.
power_compute("cox_regression", "a_priori", hazard_ratio = 0.7,
              alpha = 0.05, power = 0.8)
#> ggpower result
#> Test: Biomarker: Cox proportional hazards (single covariate)
#> Analysis: a_priori
#> 
#> Input parameters
#>   tails: two
#>   hazard_ratio: 0.7
#>   events: 62
#>   alpha: 0.05
#>   target_power: 0.8
#> 
#> 
#> Output parameters
#>   z_statistic: 2.808461
#>   actual_power: 0.8019204
#> 
#> 
#> Notes
#> - Wald test power from expected number of events.
#> - A priori sample sizes are rounded up to integer values and actual power is recomputed.

Multiplicity and FDR

power_compute("discovery_fdr", "post_hoc", effect_d = 0.5, m_tests = 1000,
              pi0 = 0.9, fdr_level = 0.05, n = 40, alpha = 0.05)
#> ggpower result
#> Test: Biomarker: Discovery power under FDR control
#> Analysis: post_hoc
#> 
#> Input parameters
#>   m_tests: 1000
#>   proportion_null: 0.9
#>   effect_size_d: 0.5
#>   n_per_comparison: 40
#>   fdr_level: 0.05
#>   alpha: 0.05
#> 
#> 
#> Output parameters
#>   alternative_hypotheses: 100
#>   single_test_power: 0.8693981
#>   expected_discoveries: 86.93981
#>   expected_fdr: 0.5175995
#>   power: 0.08398368
#> 
#> 
#> Notes
#> - BH-FDR framework with independent t-test approximations per biomarker.

These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.