I have $N$ data points of some dimension $D$.
I want to know the dimension of the shape that those data points represent - for instance they might be a 2 dimensional triangle, even though they are in 8 dimensional space.
A way of doing this mathematically is to pick one of the points and subtract it from all of the other points to get $N-1$ vectors.
If i make these vectors into a matrix, the rank of the matrix will tell me the dimension of the shape of the data points.
The problem though is that implementing this using floating point math, not all vectors will cancel out that should.
I was wondering, is there a better way to do this when using floating point math? Or, is there a way to get a thickness in each dimension so that very thin dimensions can be ignored?