Learn R Programming

rotations (version 1.6.5)

bayes.mean: Parameter estimates based on non-informative Bayes

Description

Use non-informative Bayes to estimate the central orientation and concentration parameter of a sample of rotations.

Usage

bayes.mean(x, type, S0, kappa0, tuneS, tuneK, burn_in, m = 5000)

# S3 method for SO3 bayes.mean(x, type, S0, kappa0, tuneS, tuneK, burn_in, m = 5000)

# S3 method for Q4 bayes.mean(x, type, S0, kappa0, tuneS, tuneK, burn_in, m = 5000)

Value

list of

  • Shat Mode of the posterior distribution for the central orientation S

  • kappa Mean of the posterior distribution for the concentration kappa

Arguments

x

\(n\times p\) matrix where each row corresponds to a random rotation in matrix (\(p=9\)) or quaternion (\(p=4\)) form.

type

Angular distribution assumed on R. Options are Cayley, Fisher or Mises

S0

initial estimate of central orientation

kappa0

initial estimate of concentration parameter

tuneS

central orientation tuning parameter, concentration of proposal distribution

tuneK

concentration tuning parameter, standard deviation of proposal distribution

burn_in

number of draws to use as burn-in

m

number of draws to keep from posterior distribution

Details

The procedures detailed in bingham2009b and bingham2010 are implemented to obtain draws from the posterior distribution for the central orientation and concentration parameters for a sample of 3D rotations. A uniform prior on SO(3) is used for the central orientation and the Jeffreys prior determined by type is used for the concentration parameter.

bingham2009b bingham2010

See Also

mean.SO3, median.SO3

Examples

Run this code
Rs <- ruars(20, rvmises, kappa = 10)

Shat <- mean(Rs)               #Estimate the central orientation using the projected mean
rotdist.sum(Rs, Shat, p = 2)   #The projected mean minimizes the sum of squared Euclidean
rot.dist(Shat)                 #distances, compute the minimized sum and estimator bias

#Estimate the central orientation using the posterior mode (not run due to time constraints)
#Compare it to the projected mean in terms of the squared Euclidean distance and bias
# \donttest{
ests <- bayes.mean(Rs, type = "Mises", S0 = mean(Rs), kappa0 = 10, tuneS = 5000,
                   tuneK = 1, burn_in = 1000, m = 5000)

Shat2 <- ests$Shat             #The posterior mode is the 'Shat' object
rotdist.sum(Rs, Shat2, p = 2)  #Compute sum of squared Euclidean distances
rot.dist(Shat2)                #Bayes estimator bias# }

Run the code above in your browser using DataLab