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