  The empirical Bayes normal means (EBNM) model is important to many areas of
statistics, including (but not limited to) multiple testing, wavelet denoising,
and gene expression analysis. There are several existing software packages that
can fit EBNM models under different prior assumptions and using different
algorithms; however, the differences across interfaces complicate direct
comparisons. Further, a number of important prior assumptions do not yet have
implementations. Motivated by these issues, we developed the R package ebnm,
which provides a unified interface for efficiently fitting EBNM models using a
variety of prior assumptions, including nonparametric approaches. In some
cases, we incorporated existing implementations into ebnm; in others, we
implemented new fitting procedures with a focus on speed and numerical
stability. We illustrate the use of ebnm in a detailed analysis of baseball
statistics. By providing a unified and easily extensible interface, the ebnm
package can facilitate development of new methods in statistics, genetics, and
other areas; as an example, we briefly discuss the R package flashier, which
harnesses methods in ebnm to provide a flexible and robust approach to matrix
factorization.
