Learn R Programming

pi0 (version 1.3-250)

nparncpt: Nonparametric estimation of noncentrality parameters

Description

The functions use Gaussian basis functions to estimate the noncentrality parameters (ncp) from a large number of t-statistics.

Usage

nparncpt(tstat, df, ...)
nparncpt.sqp(tstat, df, penalty=c('3rd.deriv','2nd.deriv','1st.deriv'), lambdas=10^seq(-1,5,by=1), 
        starts, IC=c('BIC','CAIC','HQIC','AIC'), K=100, bounds=quantile(tstat,c(.01,.99)), 
        solver=c('solve.QP','lsei','ipop','LowRankQP'),plotit=FALSE, verbose=FALSE, approx.hess=TRUE, ... )

Arguments

tstat
Numeric vector of noncentrality parameters
df
Numeric vector of degrees of freedom
penalty
Character vector. Penalty on either integrated squared first-order derivatives (1st.deriv) or second-order derivatives (2nd.deriv) of the estimated density function of ncp. Note that only the first element is used.
lambdas
Numeric vector of smoothness tuning parameter lambda to be tried. The one that minimizes NIC will be chosen.
starts
Optional numeric vector of starting values. If missing, parncpt will be called with zeromean set to FALSE to get an initial esimate of pi0. And the starting values (theta) will be set all
IC
Character; one of AIC, BIC, CAIC, HQIC, specifying the factor multiplied to the ENP in computing Information Criterion (IC).
K
The number of basis Gaussian density functions.
bounds
A numeric vector of length 2, giving the approximate bounds where most of the probability of ncp lies.
solver
Character. The name of the function for solving quadratic programming problems. Note that ipop and kernlab are not very reliable. solve.QP is faster but lsei is more stable.
plotit
logical; indicating if plot.nparncpt should be called after estimation. This is always recommended before accepting the results.
verbose
logical; if TRUE, extensive messages will be printed.
approx.hess
either logical or a number between 0 and 1. This helps in reducing time in evaluating the hessian matrix. If it is set to TRUE, for the kth Gaussian basis function and the gth tstat, the marginal t-statistic density evaluated
...
other paramters passed to dtn.mix. Usually, the approximation argument.

Value

  • A list with class attribute c("nparncpt", "ncpest")
  • pi0estimated proportion of true nulls
  • mu.ncpmean of ncp
  • sd.ncpSD of ncp
  • logLikan object of class logLik. The associated df is the estimated effective number of parameters (enp). The log likelihood is also penalized likelihood. See also logLik.ncpest and AIC.
  • enpestimated ENP
  • parestimated parameters theta
  • lambdathe lambda that minimizes NIC
  • gradiantanalytic gradiant at the estimate
  • hessiananalytic hessian at the estimate
  • betaestimated mixing proportions for the NCP distribution
  • ICthe information criterion specified by the user
  • all.musmean of each basis Gaussian density
  • all.sigsSD of each basis Gaussian density
  • dataa list of tstat and df
  • i.finalthe index of lambdas that minimizes NIC
  • all.pi0sestimated pi0 for each lambda
  • all.enpsENP for each lambda
  • all.thetasparameter estimates for each lambda
  • all.nicsNetwork information criterion (NIC) for each lambda
  • all.nic.sdSD of NIC for each lambda
  • all.lambdasthe lambdas argument itself

Details

nparncpt is a wrapper for nparncpt.sqp, the latter of which uses a sequential quadratic programming algorithm to find the mixing proportions of the basis Gaussian density functions.

References

Qu L, Nettleton D, Dekkers JCM. (2012) Improved Estimation of the Noncentrality Parameter Distribution from a Large Number of $t$-statistics, with Applications to False Discovery Rate Estimation in Microarray Data Analysis. Biometrics (in press).

See Also

parncpt, sparncpt, fitted.nparncpt, plot.nparncpt, summary.nparncpt, coef.ncpest, logLik.ncpest, vcov.ncpest, AIC, dncp

Examples

Run this code
data(simulatedTstat)
(npfit=nparncpt(tstat=simulatedTstat, df=8)); 
(pfit=parncpt(tstat=simulatedTstat, df=8, zeromean=FALSE)); plot(pfit)
(pfit0=parncpt(tstat=simulatedTstat, df=8, zeromean=TRUE)); plot(pfit0)
(spfit=sparncpt(npfit,pfit)); plot(spfit)

Run the code above in your browser using DataLab