Learn R Programming

EbayesThresh (version 1.4-12)

postmed: Posterior median estimator

Description

Given a single value or a vector of data and sampling standard deviations (sd is 1 for Cauchy prior), find the corresponding posterior median estimate(s) of the underlying signal value(s).

Usage

postmed(x, s, w = 0.5, prior = "laplace", a = 0.5)
postmed.laplace(x, s = 1, w = 0.5, a = 0.5)
postmed.cauchy(x, w)
cauchy.medzero(x, z, w)

Arguments

x

A data value or a 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.

w

The value of the prior probability that the signal is nonzero.

prior

Family of the nonzero part of the prior; can be "cauchy" or "laplace".

a

The scale parameter of the nonzero part of the prior if the Laplace prior is used.

z

The data vector (or scalar) provided as input to cauchy.medzero.

Value

If \(x\) is a scalar, the posterior median \(\mbox{med}(\theta|x)\) where \(\theta\) is the mean of the distribution from which \(x\) is drawn. If \(x\) is a vector with elements \(x_1, ... , x_n\) and \(s\) is a vector with elements \(s_1, ... , s_n\) (s_i is 1 for Cauchy prior), then the vector returned has elements \(\mbox{med}(\theta_i|x_i, s_i)\), where each \(x_i\) has mean \(\theta_i\) and standard deviation \(s_i\), all with the given prior.

Details

The routine calls the relevant one of the routines postmed.laplace or postmed.cauchy. In the Laplace case, the posterior median is found explicitly, without any need for the numerical solution of an equation. In the quasi-Cauchy case, the posterior median is found by finding the zero, component by component, of the vector function cauchy.medzero.

References

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

See Also

postmean

Examples

Run this code
# NOT RUN {
postmed(c(-2,1,0,-4,8,50), w = 0.05, prior = "cauchy")
postmed(c(-2,1,0,-4,8,50), s = 1:6, w = 0.2, prior = "laplace", a = 0.3)
# }

Run the code above in your browser using DataLab