Learn R Programming

rotations (version 1.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)
"bayes.mean" (x, type, S0, kappa0, tuneS, tuneK, burn_in, m = 5000)
"bayes.mean" (x, type, S0, kappa0, tuneS, tuneK, burn_in, m = 5000)

Arguments

x
$n-by-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

Value

list of
  • Shat Mode of the posterior distribution for the central orientation S
  • kappa Mean of the posterior distribution for the concentration kappa

Details

The procedures detailed in Bingham et al. (2009) and Bingham et al. (2010) 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.

References

Bingham MA, Vardeman SB and Nordman DJ (2009). "Bayes one-sample and one-way random effects analyses for 3-D orientations with application to materials science." Bayesian Analysis, 4(3), pp. 607-629.

Bingham MA, Nordman DJ and Vardeman SB (2010). "Finite-sample investigation of likelihood and Bayes inference for the symmetric von Mises-Fisher distribution." Computational Statistics & Data Analysis, 54(5), pp. 1317-1327.

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
## Not run: 
# 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## End(Not run)

Run the code above in your browser using DataLab