discord {rotations} | R Documentation |
Measure of Discord
Description
This function computes a measure of discord for a sample of random rotations. The larger the statistic value the less likely it is the corresponding observation was generated by the same mechanism the rest of the data as generated by. It can be used to test for outliers in SO(3) by comparing it to an F distribution with 3,3(n-2) df for the Cayley or matrix Fisher distributions or to an F distribution with 1,n-2 df for the von Mises Fisher distribution.
Usage
discord(x, type, t = 1L, obs = 1:nrow(x))
Arguments
x |
The sample of random rotations |
type |
To specify if "intrinsic" or "extrinsic" approach should be used to compute the statistic |
t |
If test blocs then the bloc size, set to 1 by default |
obs |
integer vector specifying which observation(s) to compute the measure of discord for |
Value
The Hi statistic for each group of size t is returned. If t>1
then which observations
that define each group of size t
is returned as well.
Examples
#Compute the measures of discord for a sample from the Cayley distribution
# Intrinsic examples are commented out but are below if you're interested
Rss <- ruars(20,rcayley,kappa=1)
Hi <- discord(Rss, type='intrinsic')
He <- discord(Rss, type='extrinsic')
#Compare to the theoretical F distribution
OrdHi <- sort(Hi)
OrdHe <- sort(He)
par(mfrow=c(1,2))
plot(ecdf(OrdHi),main='Intrinsic',xlim=range(c(OrdHi,OrdHe)))
lines(OrdHi,pf(OrdHi,3,3*(length(OrdHi)-2)))
plot(ecdf(OrdHe),main='Extrinsic',xlim=range(c(OrdHi,OrdHe)))
lines(OrdHi,pf(OrdHi,3,3*(length(OrdHe)-2)))
layout(1)