Description Usage Arguments Details Value See Also Examples

Define a generalized spherical distribution by specifying a contour function, a radial density function, a radial simulation function, and a value of the density at the origin. Once it is defined, compute density and simulate that distribution.

1 2 3 | ```
gensphere(cfunc, dradial, rradial, g0)
dgensphere(x, gs.dist)
rgensphere(n, gs.dist)
``` |

`cfunc` |
contour function object defined by |

`dradial` |
a function to evaluate the density for the radial component of distribution |

`rradial` |
a function to simulate values of the radial distribution |

`g0` |
g(0) = value of the multivariate density at the origin |

`x` |
(d x n) matrix of point where the density is to be evaluated. Columns x[,i] are vectors in d-space |

`gs.dist` |
a generalized spherical distribution, an object returned by function |

`n` |
number of values to generate |

A generalized spherical distribution is specified by calling function `gensphere`

with
the contour function (defined via function `cfunc.new`

, `cfunc.add.term`

and `cfunc.finish`

),
a function to compute the density of the radial term R, a runction to simulate from the radial term R,
and g(0)=the value of the density at the origin. See the general representation of generalized spherical
laws in gensphere-package.

If the distribution is d dimensional and the radial term is
a gamma distribution with shape=shape and scale=1,g(0)=0 if d < shape, g(0)=cfunc$norm.const if d=shape,
*g(0)=Inf* if d > shape. In general,
*g(0)=lim_{r -> 0+} r^(1-d)*dradial(r)*.

`gensphere`

returns an S3 object of class "gensphere.distribution" with components:

`cfunc` |
a contour function defined with |

`dradial` |
a function that evaluates the desnity of the radial component |

`rradial` |
a function that simulates values of the radial component |

`g0` |
g(0), the value of the multivariate density g(x) at the origin |

`dgensphere`

returns a numeric vector y that contains the value of the
density of **X**: y[i]=g(x[,i]), i=1,...,n. Note that g(x) is the density of
the vector **X**, whereas `dradial`

is the denis of the univariate radial term R.

`rgensphere`

returns a (d x n) matrix of simulated values of **X**. Note that
these values are an approximation to the distribution of X because the contour
is approximated to a limited accuracy in `cfund.finish`

.

Here are plots of the density surface and simulated points generated by the examples below.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | ```
# define a diamond shaped contour
cfunc1 <- cfunc.new(d=2)
#cfunc1 <- cfunc.add.term( cfunc1,"lp.norm",k=c(1,1))
cfunc1 <- cfunc.add.term( cfunc1,"gen.lp.norm",k=c(1,1,2,0,0,1))
cfunc1 <- cfunc.finish( cfunc1 )
cfunc1
# define a generalized spherical distribution
rradial <- function( n ) { rgamma( n, shape=2 ) }
dradial <- function( x ) { dgamma( x, shape=2 ) }
dist1 <- gensphere( cfunc1, dradial, rradial, g0=cfunc1$norm.const )
dist1
# calculate density at a few points
dgensphere( x=matrix( c(0,0, 0,1, 0,2), nrow=2, ncol=3), dist1 )
# calculate and plot density surface on a grid
xy.grid <- seq(-3,3,.1)
z <- gs.pdf2d.plot( dist1, xy.grid )
title3d("density surface")
# simulate values from the distribution
x <- rgensphere( 10000, dist1 )
plot(t(x),xlab="x",ylab="y",main="simulated points")
``` |

Embedding an R snippet on your website

Add the following code to your website.

For more information on customizing the embed code, read Embedding Snippets.