# wfromx: Find Empirical Bayes weight from data In EbayesThresh: Empirical Bayes Thresholding and Related Methods

## Description

Suppose the vector (x_1, …, x_n) is such that x_i is drawn independently from a normal distribution with mean θ_i and standard deviation s_i (s_i equals 1 for Cauchy prior). The prior distribution of the theta_i is a mixture with probability 1-w of zero and probability w of a given symmetric heavy-tailed distribution. This routine finds the marginal maximum likelihood estimate of the parameter w.

## Usage

 `1` ```wfromx(x, s = 1, prior = "laplace", a = 0.5, universalthresh = TRUE) ```

## Arguments

 `x` Vector of data. `s` A single value or a vector of standard deviations if the Laplace prior is used. If a vector, must have the same length as `x`. Ignored if Cauchy prior is used. `prior` Specification of prior to be used; can be `"cauchy"` or `"laplace"`. `a` Scale factor if Laplace prior is used. Ignored if Cauchy prior is used. `universalthresh` If `universalthresh = TRUE`, the thresholds will be upper bounded by universal threshold; otherwise, the thresholds can take any non-negative values.

## Details

The weight is found by marginal maximum likelihood.

The search is over weights corresponding to threshold t_i in the range [0, s_i sqrt(2 log n)] if `universalthresh=TRUE`, where n is the length of the data vector and (s_1, ... , s_n) (s_i is 1 for Cauchy prior) is the vector of sampling standard deviation of data (x_1, ... , x_n); otherwise, the search is over [0, 1].

The search is by binary search for a solution to the equation S(w)=0, where S is the derivative of the log likelihood. The binary search is on a logarithmic scale in w.

If the Laplace prior is used, the scale parameter is fixed at the value given for `a`, and defaults to 0.5 if no value is provided. To estimate `a` as well as `w` by marginal maximum likelihood, use the routine `wandafromx`.

## Value

The numerical value of the estimated weight.

## Author(s)

Bernard Silverman

## References

See `ebayesthresh` and http://www.bernardsilverman.com

`wandafromx`, `tfromx`, `tfromw`, `wfromt`
 `1` ```wfromx(x = rnorm(100, s = c(rep(0,90),rep(5,10))), prior = "cauchy") ```