| Type: | Package | 
| Title: | An Empirical Bayes Method for Chi-Squared Data | 
| Version: | 0.1.0 | 
| Author: | Lilun Du [aut, cre], Inchi Hu [aut] | 
| Maintainer: | Lilun Du <dulilun@ust.hk> | 
| Description: | We provide the main R functions to compute the posterior interval for the noncentrality parameter of the chi-squared distribution. The skewness estimate of the posterior distribution is also available to improve the coverage rate of posterior intervals. Details can be found in Du and Hu (2020) <doi:10.1080/01621459.2020.1777137>. | 
| License: | MIT + file LICENSE | 
| Encoding: | UTF-8 | 
| URL: | https://github.com/dulilun/EBCHS | 
| RoxygenNote: | 7.1.1 | 
| Imports: | stats, pracma, splines, fda | 
| Suggests: | testthat | 
| NeedsCompilation: | no | 
| Packaged: | 2021-05-31 12:09:26 UTC; lilundu | 
| Repository: | CRAN | 
| Date/Publication: | 2021-06-01 07:20:08 UTC | 
Main function used in the paper (Du and Hu, 2020)
Description
Give a sequence of chi-squared statistic values, the function computes the posterior mean, variance, and skewness of the noncentrality parameter given the data.
Usage
EB_CS(
  x,
  df,
  qq = c(0.2, 0.4, 0.6, 0.8),
  method = c("LS", "PLS", "g_model"),
  mixture = FALSE
)
Arguments
| x | a sequence of chi-squared test statistics | 
| df | the degrees of freedom | 
| qq | the quantiles used in spline basis | 
| method | LS: parametric least-squares; PLS: penalized least-squares; g-model: g-modeling | 
| mixture | default is FALSE: there is no point mass at zero. | 
Value
a list: posterior mean, variance, and skewness estimates
References
Du and Hu (2020), An Empirical Bayes Method for Chi-Squared Data, Journal of American Statistical Association, forthcoming.
Examples
p = 1000
k = 7
# the prior distribution for lambda
alpha = 2
beta =  10
# lambda
lambda = rep(0, p)
pi_0 = 0.8
p_0 = floor(p*pi_0)
p_1 = p-p_0
lambda[(p_0+1):p] = rgamma(p_1, shape = alpha, rate=1/beta)
# Generate a Poisson RV
J = sapply(1:p, function(x){rpois(1, lambda[x]/2)})
X = sapply(1:p, function(x){rchisq(1, k+2*J[x])})
qq_set = seq(0.01, 0.99, 0.01)
out = EB_CS(X, k, qq=qq_set, method='LS', mixture = TRUE)
E = out$E_lambda
V = out$V_lambda
S = out$S_lambda
log-density derivatives–parametric approach
Description
Assuming the log density of the chi-squared statistics admits a parametric form, this function estimates up to the fourth order log density derivatives.
Usage
density_LS(x)
Arguments
| x | a sequence of chi-squared test statistics | 
Value
a list: the first-to-fourth log density derivatives
Examples
p = 1000
k = 7
# the prior distribution for lambda
alpha = 2
beta =  10
# lambda
lambda = rep(0, p)
pi_0 = 0.8
p_0 = floor(p*pi_0)
p_1 = p-p_0
lambda[(p_0+1):p] = stats::rgamma(p_1, shape = alpha, rate=1/beta)
# Generate a Poisson RV
J = sapply(1:p, function(x){rpois(1, lambda[x]/2)})
X = sapply(1:p, function(x){rchisq(1, k+2*J[x])})
out = density_LS(X)
Penalized least-squares method
Description
The semiparametric model is employed to estimate the log density derivatives of the chi-squared statistics.
Usage
density_PLS(x, qq)
Arguments
| x | a sequence of chi-squared test statistics | 
| qq | the quantiles used for splines | 
Value
a list: the first and second density derivatives
Examples
p = 1000
k = 7
# the prior distribution for lambda
alpha = 2
beta =  10
# lambda
lambda = rep(0, p)
pi_0 = 0.5
p_0 = floor(p*pi_0)
p_1 = p-p_0
lambda[(p_0+1):p] = stats::rgamma(p_1, shape = alpha, rate=1/beta)
# Generate a Poisson RV
J = sapply(1:p, function(x){rpois(1, lambda[x]/2)})
X = sapply(1:p, function(x){rchisq(1, k+2*J[x])})
qq = c(0.2, 0.4, 0.6, 0.8)
out = density_PLS(X, qq)