Learn R Programming

rstiefel (version 1.0.1)

rbing.vector.gibbs: Gibbs Sampling for the Vector-variate Bingham Distribution

Description

Simulate a random normal vector from the Bingham distribution using Gibbs sampling.

Usage

rbing.vector.gibbs(A, x)

Arguments

A

a symmetric matrix.

x

the current value of the random normal vector.

Value

a new value of the vector x obtained by Gibbs sampling.

References

Hoff(2009)

Examples

Run this code
# NOT RUN {
## The function is currently defined as
rbing.vector.gibbs <-
function(A,x)
{
  #simulate from the vector bmf distribution as described in Hoff(2009) 
  #this is one Gibbs step, and must be used iteratively
  evdA<-eigen(A,symmetric=TRUE)
  E<-evdA$vec
  l<-evdA$val

  y<-t(E)%*%x
  x<-E%*%ry_bing(y,l)
  x/sqrt(sum(x^2))
  #One improvement might be a rejection sampler 
  #based on a mixture of vector mf distributions. 
  #The difficulty is finding the max of the ratio.
}


# }

Run the code above in your browser using DataLab