Learn R Programming

openEBGM (version 0.9.1)

Qn: 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)

Value

A numeric vector of probabilities.

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

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

Run this code
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)

Run the code above in your browser using DataLab