Description Usage Arguments Value Examples
View source: R/empb_gamma_poisson_c.R
empb_gamma_poisson_c
1 2 3 4 5 6 7 8 | empb_gamma_poisson_c(
df,
eta = 1,
tol = 1e-08,
maxIter = 10000,
starting_ab = NULL,
method = c("newton", "gdescent")
)
|
df |
data.frame object, containing at least columns 'x' containing non-negative integer values, and 'g' containing group labels. |
eta |
positive numeric dampening parameter for Newton's method, gradient descent algorithm. |
tol |
non-negative numeric tolerance parameter for exiting optimization algorithm. |
maxIter |
positive integer setting maximum number of iterations for optimization algorithm. |
starting_ab |
optional 2-long numeric vector, giving initial algorithm starting point for fitting empirical Bayes estimates for a and b; default NULL. |
method |
string controlling optimization method; default 'newton'. |
list object containing empirical Bayes (EMPB) estimates of a, b hyperparameters, assuming df$x ~ poisson(L_g), and L_g ~ gamma(a, b), where 'L_g' denotes a group-level parameter.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | # Generate example data:
set.seed(31)
a = 23
b = 9
# Number of groups:
NG = 10
# Creating group IDs:
g = replicate(NG, paste(sample(LETTERS, 10), sep="", collapse=""))
# Generating 'true' L parameters:
L = rgamma(length(g), a, b)
# Number of experiments, i.e. rows in df:
numexps = 100
# Filling df with pseudo data; note the requisite columns 'x' and 'g':
df = data.frame('x' = numeric(0), 'g' = character(0))
for(k in 1:numexps){
gk = sample(g, 1)
xk = rpois(1, L[g == gk])
df = rbind(df, data.frame('x' = xk, 'g' = gk))
}
# Generating empirical Bayes (EMPB) solutions for a and b:
ab_fit = empb_gamma_poisson_c(df = df)
# Compare fitted values to known values:
cbind(c(a, b), c(ab_fit$a, ab_fit$b))
|
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.