Qn: Calculate Qn

View source: R/f_posteriorCalcs.R

QnR Documentation

Calculate Qn

Description

Qn calculates Q_n, the posterior probability that \lambda came from the first component of the mixture, given N = n (Eq. 6, DuMouchel 1999). Q_n is the mixture fraction for the posterior distribution.

Usage

Qn(theta_hat, N, E)

Arguments

theta_hat

A numeric vector of hyperparameter estimates (likely from autoHyper or from directly minimizing negLLsquash) ordered as: \alpha_1, \beta_1, \alpha_2, \beta_2, P.

N

A whole number vector of actual counts from processRaw.

E

A numeric vector of expected counts from processRaw.

Details

The hyperparameter estimates (theta_hat) are:

  • \alpha_1, \beta_1: Parameter estimates of the first component of the prior distribution

  • \alpha_2, \beta_2: Parameter estimates of the second component

  • P: Mixture fraction estimate of the prior distribution

Value

A numeric vector of probabilities.

References

DuMouchel W (1999). "Bayesian Data Mining in Large Frequency Tables, With an Application to the FDA Spontaneous Reporting System." The American Statistician, 53(3), 177-190.

See Also

autoHyper, exploreHypers, negLLsquash, negLL, negLLzero, and negLLzeroSquash for hyperparameter estimation.

processRaw for finding counts.

Other posterior distribution functions: ebgm(), quantBisect()

Examples

data.table::setDTthreads(2)  #only needed for CRAN checks
theta_init <- data.frame(
  alpha1 = c(0.5, 1),
  beta1  = c(0.5, 1),
  alpha2 = c(2,   3),
  beta2  = c(2,   3),
  p      = c(0.1, 0.2)
)
data(caers)
proc <- processRaw(caers)
squashed <- squashData(proc, bin_size = 300, keep_pts = 10)
squashed <- squashData(squashed, count = 2, bin_size = 13, keep_pts = 10)
theta_hat <- autoHyper(data = squashed, theta_init = theta_init)$estimates
qn <- Qn(theta_hat, N = proc$N, E = proc$E)
head(qn)


openEBGM documentation built on Sept. 15, 2023, 1:08 a.m.