A test for randomness of direction of vector data

Remember to vote up questions/answers you find interesting or helpful (requires 15 reputation points)

I want to test the hypothesis that a group of vectors in 3D space, say given by a long list of xyz coordinates from some experiment, have no preferred direction. Is it sufficient to pick some direction in space, say the x-axis, and calculate the cosine angle between each data vector and this direction, and look at the mean cosine angle? Thanks, -nuun

-

I cannot imagine that is the right way to do it, but it has been decades since I had a statistics class. For this kind of very specific question, I think you will have a better experience at  stats.stackexchange.com/questions  although, for the moment, their site is not coming up.  – Will Jagy Aug 27 2011 at 4:17

4 Answers

-

You can accept an answer to one of your own questions by clicking the check mark next to it. This awards 15 reputation points to the person who answered and 2 reputation points to you.

I presume that by "having no preferred direction" you mean that the distribution on the sphere is uniform - as it has just been pointed out by Gerry. Testing uniformity on the sphere is a classical statistical problem. There is A LOT about it: you may have a look at the book "Directional Statistics" by Mardia and Jupp (especially Chapters 9 and 10), or, for instance, at these more recent papers by Pycke and Bakshaev.

-

There is a notion of uniform distribution on spheres, and a notion of discrepancy on a sphere (which is a numerical measure of the distance from uniform distribution). That should give you some search terms. One paper on the topic (probably more theoretical than you want, but it should have or at least point to the relevant definitions) is Martin Blumlinger, Slice discrepancy and irregularities of distribution on spheres, Mathematika 38 (1991) 105-116.

-

Here is one approach to consider.

Treating the data as points on the surface of the unit sphere, consider the collection of convex subsets on this surface that contain all of your observations. Then, define $S$ to be minimum area among such sets. One way to interpret the idea of "having no preferred direction" is that this set $S$ should be almost as big as the entire surface; conversely a preferred direction would manifest as the data being tightly concentrated in a small area on the sphere.

This is just a rough idea -- figuring out how to operationalize "almost as big as the entire surface" would depend on your statistical needs. Hope I haven't missed the mark too badly.

-

That's a decent idea, I think. But what if there are several preferred directions? – Nuun Aug 27 2011 at 6:09
Yeah, in that case you'd need to cluster the observations in some way first, so the relevant area would be over disjoint convex covering regions.  But the basic idea of comparing the containing area to the total possible area still stands I would think.  There are surely lots of (different) ways to do (basically) what you want -- it all boils down to operationally defining "preferred direction". Good luck. – R Hahn Aug 27 2011 at 6:33
A set of pretty uniformly distributed points, and the same set with one point appearing a billion times, will get the same measure.  Your test is valid, but it's power will be very low. – Brendan McKay Oct 27 at 7:44
@Brendan, I guess as an applied statistician I'm usually happy to rule out the kind of degeneracy you mention, but your point is well taken.  On a separate note, several years ago I used your nauty program when doing my masters degree on a branch-and-bound algorithm for the maximum independent set problem.  So thanks for that! – R Hahn Oct 27 at 15:37
{"extraction_info": {"found_math": true, "script_math_tex": 0, "script_math_asciimath": 0, "math_annotations": 0, "math_alttext": 0, "mathml": 0, "mathjax_tag": 0, "mathjax_inline_tex": 2, "mathjax_display_tex": 0, "mathjax_asciimath": 0, "img_math": 0, "codecogs_latex": 0, "wp_latex": 0, "mimetex.cgi": 0, "/images/math/codecogs": 0, "mathtex.cgi": 0}, "config": {"markdown_headings": false, "markdown_code": true, "boilerplate_config": {"ratio_threshold": 0.18, "absolute_threshold": 20, "end_threshold": 15, "enable": true}, "remove_buttons": true, "remove_image_figures": true, "remove_link_clusters": true, "table_config": {"min_rows": 2, "min_cols": 3, "format": "github"}, "remove_chinese": true, "remove_edit_buttons": true, "extract_latex": true}, "english_confidence": 0.9475146532058716, "perplexity_flag": "middle"}