-
Notifications
You must be signed in to change notification settings - Fork 3
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Statistics from measures #14
Comments
In general I would prefer the intrinsic one – but I am always in favour of the intrinsic one. I like the idea of the default (first signature), intrinsic and extrinsic; though for full generality the third line could also be just some Concerning uniqueness and returning all results. This might be a little hard if you can not get from one result (e.g. computed by some optimisation algorithm for the mean) to all of them. Then to return all you have to use “tricky starting points” so that your optimisation algorithm is converging to each result at least once. |
I don't have any good examples right now. But it's also a bit relative. e.g. suppose we have a measure whose support is on a manifold
I don't follow what the third argument would be doing here. Currently we require that all manifold measures carry in their type the manifold on which they are defined. The first argument is used to specify the constraint that is applied to the mean. The "intrinsic" mean is when the first argument and the base manifold of the measure are identical. The extrinsic mean is when the first argument is the result of
Yes, I don't think we should return all results. If we had a nice way to define arbitrary sets, then maybe
I agree! Similar to how |
Oh this was not a critique to the interface just to the point that the constrained (to the support) problem might be interesting :)
Not a third argument, just in the third signature the first argument could be a manifold instead of Euclidean (just not necessarily the manifold from the measure). So the first (constraint) manifold can be the symmetric matrices, that is what I meant.
Exactly. |
I don't really like the two-argument variants of Statistics.mean(d::SomeManifoldMeasure, ::IntrinsicStatistic) = ...
Statistics.mean(d::SomeManifoldMeasure, ::ExtrinsicStatistic) = ...
Statistics.mean(d::SomeManifoldMeasure, ::ExtrinsicStatisticInADifferentEmbedding) = ... etc.? It could also be a keyword argument.
|
...Then you could also do the Extrinsic / Intrinsic variants with an Explicit Internally I would maybe first call |
Yes, we could definitely encode the embedding in |
Oh I meant to encode it in the manifold, then you would not need the |
One of the drawbacks of |
Can you provide an example, where Here's the cases I have in mind
so I do not get what you mean with “one” embedding, I can choose different |
Look at |
But then we should maybe - in the long run - allow for an |
Yes, sure, that would make sense. |
I would prefer we try to keep the interface here as simple as possible. Supporting alternative embeddings would be nice, but I agree that it would be better to handle that at the Manifolds level and then use that machinery here. A few general annoyances:
|
In principle it would behave the same, the point why one should specify So it is intentional that they behave differently, because just by occasion Is that too confusing? I had hoped that this is a distinction that is understandable... |
There are a number of properties we probably want to support computing from our measures:
mean
median
mode
std
/var
cov
skewness
/kurtosis
/moment
Most of these will be unknown for our measures, but some of them are known and can be implemented. Some considerations:
Intrinsic or extrinsic?
The intrinsic (i.e. Riemannian) mean is a point on the manifold that minimizes the Riemannian variance of the measure. The extrinsic mean is the point in the embedding of the manifold that does the same. The intrinsic mean is guaranteed to be on the manifold but not necessarily in the support of the measure, while the extrinsic mean is generally only in the embedding. One could I suppose also want the point in the support of the measure that minimizes the variance, but I haven't seen this. How to support computing both intrinsic and extrinsic means? My idea is that we follow Manifolds.jl's lead and implement these functions with the manifold as the first argument, e.g.
Defaults without ambiguity may be easier if all of our measures inherit an
AbstractManifoldMeasure{M<:AbstractManifold}
type. The interface could also be defined for other measures though, e.g.Dirichlet
defined in MeasureTheory.jl.Uniqueness
While for distributions on Euclidean space, the mode is not necessarily unique, for distributions on manifolds, the intrinsic mean also often is not unique. For example, every point on the sphere minimizes the variance of the normalized Hausdorff measure. Similarly, the mean/mode of the Watson distribution on the sphere is always either a set of two antipodes or all points on a great circle. For these functions to be useful at all, I propose we return any mode (point of maximal density) and any intrinsic mean.
MeasureTheory.jl doesn't implement these functions yet, but it's under discussion, see JuliaMath/MeasureTheory.jl#131.
Any thoughts, @kellertuer @mateuszbaran @cscherrer?
The text was updated successfully, but these errors were encountered: