Learn R Programming

RandomFields (version 3.1.36)

RRrectangular: Random scaling used with balls

Description

Approximates an isotropic decreasing density function by a density function that is isotropic with respect to the $l_1$ norm.

Usage

RRrectangular(phi, safety, minsteplen, maxsteps, parts, maxit, innermin, outermax, mcmc_n, normed, approx, onesided)

Arguments

phi
a shape function; it is the user's responsability that it is non-negative. See details.
safety, minsteplen, maxsteps, parts, maxit, innermin, outermax, mcmc_n
Technical arguments to run an algorithm to simulate from this distribution. See RFoptions for the default values.
normed
logical. If FALSE then the norming constant $c$ in the Details is set to $1$. This affects the values the density function, the probability distribution and the quantile function, but not the simulation of random variables.
approx
logical. Default TRUE. If TRUE the isotropic distribution with respect to the $l_1$ norm is returned. If FALSE then the exact isotropic distribution with respect to the $l_2$ norm is simulated. Neither the density function, nor the probability distribution, not the quantile function will be availabe if approx=TRUE.
onesided
logical. Only for used for univariate distributions. if TRUE then the density is assumed to be non-negative only on the positive real axis. Otherwise the density is assumed to be symmetric.

Value

RRrectangular returns an object of class RMmodel

Details

This models defines an isotropic density function $f$ with respect to the $l_1$ norm. i.e. $f(x) = c \phi(\|x\|_{l_1})$ with some function $\phi$. Here, $s$ is norming constant so that the integral of $f$ equals one.

In case $\phi$ is monotoneously decreasing then rejection sampling is used, else MCMC.

The function $\phi$ might have a polynomial pole at the origin and asymptotically decreasing of the form $x^\beta exp(-x^\delta)$.

See Also

RMmodel, RRdistr, RRgauss,

Examples

Run this code
RFoptions(seed=0) ## *ANY* simulation will have the random seed 0; set
##                   RFoptions(seed=NA) to make them all random again

# simulation of Gaussian variables (in a not very straight forward way):
distr <- RRrectangular(RMgauss(), approx=FALSE)
z <- RFrdistr(distr, n=1000000)
hist(z, 200, freq=!TRUE)
x <- seq(-10, 10, 0.1)
lines(x, dnorm(x, sd=sqrt(0.5)))


#creation of random variables whose density is proportional
# to the spherical model:
distr <- RRrectangular(RMspheric(), approx=FALSE)
z <- RFrdistr(distr, n=1000000)
hist(z, 200, freq=!TRUE)

x <- seq(-10, 10, 0.01)
lines(x, 4/3 * RFcov(RMspheric(), x))


Run the code above in your browser using DataLab