Description Usage Arguments Details Value References Examples
Generate random variates from the Polya-Gamma distribution.
1 2 3 4 5 6 7 8 9 10 11 | rpg(num=1, h=1, z=0.0)
rpg.gamma(num=1, h=1, z=0.0, trunc=200)
rpg.devroye(num=1, h=1, z=0.0)
rpg.sp(num=1, h=1, z=0.0)
rpg.gamma.R(num=1, h=1, z=0.0, trunc=200)
rpg.devroye.R(num=1, h=1, z=0.0)
|
num |
The number of random variates to simulate. |
h |
Shape parameter. |
z |
Parameter associated with tilting. |
trunc |
The number of elements used in sum of gammas approximation. |
A random variable X with distribution PG(h,z) is distributed like
X \sim ∑_{k=1}^∞ G(h,1) / ( 2 π^2 (k-1/2)^2 + z^2/2).
The density for X may be derived by exponentially tilting the PG(h,0) density:
p(x|h,z) \propto \exp(-x z^2/2) p(x|h,0).
Different methods for generating this random variable are
implemented, each of which is useful for certain parameters. The
parameters supplied by the user automatically determine which method
is used. One may manually call each routine using
rpg.METHOD
. Functions ending in ".R" are pure R
implementations.
You may call rpg when n and z are vectors.
This function returns num
Polya-Gamma samples.
Nicholas G. Polson, James G. Scott, and Jesse Windle. Bayesian inference for logistic models using Polya-Gamma latent variables. http://arxiv.org/abs/1205.0310
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | h = c(1, 2, 3);
z = c(4, 5, 6);
## Devroye-like method -- only use if h contains integers, preferably small integers.
X = rpg.devroye(100, h, z);
h = c(1.2, 2.3, 3.2);
z = c(4, 5, 6);
## Sum of gammas method -- this is slow.
X = rpg.gamma(100, h, z);
h = c(1, 4, 2.3);
z = c(4, 5, 6);
## Hybrid method -- automatically chooses best procedure.
X = rpg(100, h, z);
|
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.