# Working with priors

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.

### Discrete priors

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.

### Continuous priors

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.

### Conditioning

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
#> -E[Pr[x2>=c2(x1)]]<Normal<two-armed>;PointMass<0.40>>  <= -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
#> -E[Pr[x2>=c2(x1)]]<Normal<two-armed>;ContinuousPrior<[0,3]>>  <= -0.8