3D Data Curve Set

The problem of constructing a curve for 2D data is well known (LOWESS, etc.), but given the set of points of the 3D data, how can I choose a 3D curve (for example, a spline regression spline) for this data?

MORE: I'm trying to find a curve by fitting data provided by vectors X, Y, Z, which have no known relationship. In fact, I have a cloud of 3D points, and you need to find a three-dimensional trend line.

MORE: I apologize for the ambiguity. I tried several approaches (I still haven't tried modifying the linear fit), and random NN seems to work best. Ie, I arbitrarily select a point from a point cloud, find the centroid of its neighbors (inside an arbitrary sphere), iteration. The combination of centroids with the formation of a smooth spline is difficult, but the resulting centroids are passable.

To clarify the problem, the data is not a time series, and I'm looking for a smooth spline that best describes the Ie point cloud, if I projected this 3D spline onto a plane formed by any 2 variables, the projected spline (in 2D) would be the smooth position of the predicted point clouds (in 2D).

IMG: I included the image. The red dots represent the centroid obtained from the above method.

3D point cloud and local centroids http://img510.imageshack.us/img510/2495/40670529.jpg

+6
geometry regression 3d curve-fitting
source share
5 answers

You can try additive (for example, individual index models), since GAM is http://www-stat.stanford.edu/software/gam/index.html

it's a greedy approach, highly scalable, well implemented in multiple R packages

+1
source share

Related questions here:

Simple multi-dimensional curve fitting

In general, you can consider a problem like this from the perspective of statistical learning. In other words, you have a set of basic functions (for example, splines) parameterized in a certain way, and then you use least squares methods or some other regression methods to find the optimal coefficients. I like Elements of Statistical Learning

+2
source share

It depends on what you mean by that. If you have a set of points f (x, y) → z, and you want to find a function that hits them all, you can just make a spline.

If you have a well-known function and you want to adjust the parameters to minimize the RMS error, just consider the x, ya compound object p (for example, as if it were a complex or 2-vector) and used the analog 2d case on f (p) → z.

If you can be more specific about what you are trying to accomplish, I can be more specific with suggestions.

- MarkusQ

Therefore, given the edited query about the problem, I suggest the following:

  • If this is a time series (implied by your use of the term “trend line”), I would consider it as three parametric functions (x (t), y (t), z (t)) and execute 2d on each of them.
  • Alternatively (but still assuming an ordered row), you can find a linear fit (a line through the heart of the cloud), and then add to it some (possibly polar) function based on the perpendicular projection from a point on the line.
  • If this is not a time series (implied by the phrases “unknown relation” and “point cloud”), you must determine which “curve” you want to place in them. Do you want a line? Surface / variety? You want it to be a function of one or two variables, or independent of them (say, a convex hull). Should it be smooth, limited in degree or ...?

Indeed, the question is still too open.

+1
source share

There was a new very pleasant work by Charles Fefferman (yes - the winner of the Fields) and Boaz Klartag:

You can find both of them as pdf files on the Klartag publications page

0
source share

I would try using Curve Spacefilling heuristics. For example, sort the points in the order that they visit the path fill curve. One solution to your problem would be a spline curve through points taken in that order. To get a shorter and smoother curve (but a larger RMS distance from the points to the curve), you can force the spline to go through only every kth point. You could improve the curve if, after choosing each k-th point, you were looking for a shorter Hamiltonian path through them (for example, the problem of a traveling salesman, but for open paths). You can also adjust the spline nodes to reduce the RMS distance. When calculating the RMS distance, I would use a graph of the fill curve to indicate which part of the spline is likely to be closest to the given point.

0
source share

All Articles