knitr::opts_chunk$set( collapse = TRUE, comment = "#>", fig.width = 7, fig.height = 5 )
Internally, adoptr is built around the joint distribution of a test
statistic and the unknown location parameter of interest given a sample size,
i.e.
$$
\mathcal{L}\big[(X_i, \theta)\,|\,n_i\big]
$$
where $X_i$ is the stage-$i$ test statistic and $n_i$ the corresponding sample
size.
The distribution class for $X_i$ is defined by specifying a DataDistribution
object, e.g., a normal distribution
library(adoptr) datadist <- Normal()
To completely specify the marginal distribution of $X_i$, the distribution of $\theta$ must also be specified. The classical case where $\theta$ is considered fixed, emerges as special case when a single parameter value has probability mass 1.
The simplest supported prior class are discrete PointMassPrior
priors.
To specify a discrete prior, one simply specifies the vector of pivot points
with positive mass and the vector of corresponding probability masses.
E.g., consider an example where the point $\delta = 0.1$ has probability mass
$0.4$ and the point $\delta = 0.25$ has mass $1 - 0.4 = 0.6$.
disc_prior <- PointMassPrior(c(0.1, 0.25), c(0.4, 0.6))
For details on the provided methods, see ?DiscretePrior
.
adoptr also supports arbitrary continuous priors with support on compact intervals. For instance, we could consider a prior based on a truncated normal via:
cont_prior <- ContinuousPrior( pdf = function(x) dnorm(x, mean = 0.3, sd = 0.2), support = c(-2, 3) )
For details on the provided methods, see ?ContinuousPrior
.
In practice, the most important operation will be conditioning. This is important to implement type one and type two error rate constraints. Consider, e.g., the case of power. Typically, a power constraint is imposed on a single point in the alternative, e.g. using the constraint
Power(Normal(), PointMassPrior(.4, 1)) >= 0.8
If uncertainty about the true response rate should be incorporated in the design, it makes sense to assume a continuous prior on $\theta$. In this case, the prior should be conditioned for the power constraint to avoid integrating over the null hypothesis:
Power(Normal(), condition(cont_prior, c(0, 3))) >= 0.8
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.