Skip to content

Commit

Permalink
readme
Browse files Browse the repository at this point in the history
  • Loading branch information
bailliem committed Jul 26, 2024
1 parent d3e1d78 commit 93b2b29
Show file tree
Hide file tree
Showing 6 changed files with 93 additions and 8 deletions.
1 change: 1 addition & 0 deletions .Rbuildignore
Original file line number Diff line number Diff line change
Expand Up @@ -13,3 +13,4 @@ manifest.json
^\.github$
^cran-comments\.md$
^CRAN-SUBMISSION$
^README\.Rmd$
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -2,3 +2,4 @@
docs
.Rhistory
libs
README.html
1 change: 1 addition & 0 deletions NEWS.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
# beeca 0.1.4

- Add `tidy_beeca()` function
- Add Readme.Rmd as a Rmarkdown file + github action

# beeca 0.1.3

Expand Down
10 changes: 5 additions & 5 deletions R/tidy_beeca.R
Original file line number Diff line number Diff line change
Expand Up @@ -28,17 +28,19 @@
#' }
#' @export
#' @examples
#' # example use of tidy_beeca
#' library(broom)
#'
#' # Set treatment to a factor
#' trial01$trtp <- factor(trial01$trtp)
#'
#' ## Fit a logistic regression working model and pass it to beeca
#' fit1 <- glm(aval ~ trtp + bl_cov, family="binomial", data=trial01) |>
#' get_marginal_effect(trt="trtp", method="Ye", contrast="diff")
#'
#' # compare with broom tidy. one works on logistic model(working model)
#' # tidy_beeca tidies the analyses from g-computation
#' # compare with broom tidy. tidy(fit) works on logistic model(working model)
#' broom::tidy(fit1)
#'
#' # tidy_beeca tidies the analyses from g-computation
#' tidy_beeca(fit1)
#'
#' # with confidence intervals
Expand All @@ -47,8 +49,6 @@
#'
tidy_beeca <- function(x, conf.int = FALSE, conf.level = 0.95) {

results <- NULL

# check inputs ---------------------------------------------------------------

# check if x is a beeca object
Expand Down
80 changes: 80 additions & 0 deletions README.Rmd
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
# Binary Endpoint Estimation with Covariate Adjustment

<!-- badges: start -->

[![Lifecycle: stable](https://img.shields.io/badge/lifecycle-stable-brightgreen.svg)](https://lifecycle.r-lib.org/articles/stages.html#stable)
![CRAN status](https://www.r-pkg.org/badges/version/beeca)
[![R-CMD-check](https://github.com/openpharma/beeca/actions/workflows/R-CMD-check.yaml/badge.svg)](https://github.com/openpharma/beeca/actions/workflows/R-CMD-check.yaml)
[![test-coverage](https://github.com/openpharma/beeca/actions/workflows/test-coverage.yaml/badge.svg)](https://github.com/openpharma/beeca/actions/workflows/test-coverage.yaml)
<!-- badges: end -->

The goal of **beeca** is to provide an implementation solution with a simple user interface to estimate marginal estimands in a binary endpoint setting with covariate adjustment. The primary aim of this lightweight implementation is to facilitate quick industry adoption and use within GxP environments. A secondary aim is to support the simulation studies included in the manuscript [Magirr et al. (2024)](https://osf.io/9mp58/).


## Installation

Type | Source | Command
---|---|---
Release | CRAN | `install.packages("beeca")`
Development | GitHub | `remotes::install_github("openpharma/beeca")`

## Methodology

Motivated by the recent [FDA guidance (2023)](https://www.fda.gov/regulatory-information/search-fda-guidance-documents/adjusting-covariates-randomized-clinical-trials-drugs-and-biological-products) on "Adjusting for Covariates in Randomized Clinical Trials for Drugs and Biological Products Guidance for Industry"" and its recommendations on robust variance estimation, we implemented two approaches, namely [Ge et al. (2011)](https://link.springer.com/article/10.1177/009286151104500409) and [Ye et al. (2023)](https://doi.org/10.1080/24754269.2023.2205802), to perform variance estimation for a treatment effect estimator based on g-computation under a logistic regression working model.

## Scope

The package is designed to estimate marginal (unconditional) estimands in a binary endpoint setting with covariate adjustment. It is suited for 2-arm clinical trials with or without covariate adaptive (stratified permuted block or biased coin) randomization where the summary measure of the marginal estimand is one of (risk difference, odds ratio, risk ratio, log odds ratio, log risk ratio). For practical considerations on the implications of covariate adjustment in superiority vs non-inferiority trials, please see [Nicholas et al. (2015)](https://doi.org/10.1002/sim.6447) and [Morris et al. (2022)](https://doi.org/10.1186/s13063-022-06097-z).

## Example

This is a basic example which shows how to obtain the point and variance estimates of a marginal estimand with covariate adjusted working model:

```{r}
library(beeca)
## Set treatment to a factor
trial01$trtp <- factor(trial01$trtp)
## Fit a logistic regression working model and pass it to beeca
fit1 <- glm(aval ~ trtp + bl_cov, family="binomial", data=trial01) |>
get_marginal_effect(trt="trtp", method="Ye", contrast="diff")
## View the results in Analysis Results Data (ARD) structure
fit1$marginal_results
## Or view the tidied results in a tibble
tidy_beeca(fit1)
```

## Package documentation

The package documentation can be found [here](https://openpharma.github.io/beeca/). For a brief overview of the different estimands and their estimation, please see vignette [`vignette("estimand_and_implementations")`](https://openpharma.github.io/beeca/articles/estimand_and_implementations.html).

## Quality checks

Where possible we have cross checked the {beeca} package with alternative implementations in `SAS` and `R`. For example, the Ge et al. method which applies the delta method has been cross checked against the `SAS` [%margins](https://support.sas.com/kb/63/038.html) macro and the R packages [{margins}](https://cran.r-project.org/package=margins) and [{marginaleffects}](https://cran.r-project.org/package=marginaleffects). The Ye et al. method has been cross checked against [{RobinCar}](https://cran.r-project.org/package=RobinCar/).

## Package authors

- [Alex Przybylski](mailto:[email protected]?subject=beeca){.email}
- [Craig Wang](mailto:[email protected]?subject=beeca){.email}
- [Dominic Magirr](mailto:[email protected]?subject=beeca){.email}
- [Mark Baillie](mailto:[email protected]?subject=beeca){.email}

## Acknowledgments

Our lightweight implementation was inspired and aided by the more comprehensive [{RobinCar}](https://cran.r-project.org/package=RobinCar/) package, developed by
Marlena Bannick, Ting Ye et al. We thank the [ASA-BIOP Covariate Adjustment Scientific Working Group](https://carswg.github.io/) for valuable feedback and discussions.

Further development of covariate adjustment software is by the [Software Subteam](https://carswg.github.io/subteam_software.html) of ASA-BIOP Covariate Adjustment Scientific Working Group.

## References

* FDA. 2023. "Adjusting for Covariates in Randomized Clinical Trials for Drugs and Biological Products. Final Guidance for Industry." <https://www.fda.gov/regulatory-information/search-fda-guidance-documents/adjusting-covariates-randomized-clinical-trials-drugs-and-biological-products>

* Ge, Miaomiao, L Kathryn Durham, R Daniel Meyer, Wangang Xie, and Neal Thomas. 2011. "Covariate-Adjusted Difference in Proportions from Clinical Trials Using Logistic Regression and Weighted Risk Differences." *Drug Information Journal: DIJ/Drug Information Association* 45: 481--93. <https://doi.org/10.1177/009286151104500409>

* Magirr, Dominic, Mark Baillie, Craig Wang, and Alexander Przybylski. 2024. “Estimating the Variance of Covariate-Adjusted Estimators of Average Treatment Effects in Clinical Trials with Binary Endpoints.” OSF. May 16. <https://osf.io/9mp58>.

* Ye, Ting, Marlena Bannick, Yanyao Yi, and Jun Shao. 2023. "Robust Variance Estimation for Covariate-Adjusted Unconditional Treatment Effect in Randomized Clinical Trials with Binary Outcomes." *Statistical Theory and Related Fields* 7 (2): 159--63. <https://doi.org/10.1080/24754269.2023.2205802>
8 changes: 5 additions & 3 deletions man/tidy_beeca.Rd

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

0 comments on commit 93b2b29

Please sign in to comment.