Suppose the vector \((x_1, \ldots, x_n)\) is such that \(x_i\) is drawn independently from a normal distribution with mean \(\theta_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\).
wfromx(x, s = 1, prior = "laplace", a = 0.5, universalthresh = TRUE)Vector of data.
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.
Specification of prior to be used; can be
"cauchy" or "laplace".
Scale factor if Laplace prior is used. Ignored if Cauchy prior is used.
If universalthresh = TRUE, the
thresholds will be upper bounded by universal threshold;
otherwise, the thresholds can take any non-negative values.
The numerical value of the estimated weight.
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.
# NOT RUN {
wfromx(x = rnorm(100, s = c(rep(0,90),rep(5,10))), prior = "cauchy")
# }
Run the code above in your browser using DataLab