Domanda

Ho passato una discreta quantità di tempo a cercare di dare la caccia a un modo semplice di fare questo - idealmente, una biblioteca magica esiste là fuori da qualche parte che prenderà il mio set di punti di dati 3D e restituire 2 punti sulla retta di regressione utilizzando la regressione ortogonale o minimi quadrati e anche restituire l'errore della retta. Esiste una cosa del genere esiste, e se sì, dove?

È stato utile?

Soluzione

Questo è abbastanza facile da fare, ma per scrivere voi stessi avrete bisogno di un risolutore autovalore o un decomposizione in valori singolari. Creare la matrice NX3 A, della (x-xbar, y-ybar, z-zbar) dati come colonne. Salva significa che coloro colonna per dopo, mi chiamerò V0 = [Xbar, ybar, zbar].

Ora, calcolare gli autovalori e autovettori di A '* A, cioè, la matrice 3x3 formata da A trasposta applica A.

Se questi dati si trova su una linea in R ^ 3, allora una di quelle autovalori sarà significativamente più grande rispetto alle altre due autovalori. Se questo non è vero, allora la retta di regressione ortogonale non sarà ben stimata.

Prendere l'autovettore associato il più grande autovalore di A '* A. Poi, se V è corrispondente autovettore, la linea di regressione ortogonale è definito come

V (t) = V0 + t * V

Qualsiasi punto su quella linea può essere data da un valore del parametro t.

In alternativa, calcolare il valore decomposizione singolare di A, e prendere il giusto vettore singolare che corrisponde al massimo valore singolare di A.

In ogni caso, se si vuole calcolare gli errori per i punti dati, questo sarebbe definito come semplicemente la distanza ortogonale alla linea in questione.

Altri suggerimenti

Google per "biblioteca dei minimi quadrati di regressione java lineare" e si dovrebbe trovare un paio di opzioni. Uno è Drej . Non ho usato io stesso, però.

Modifica - Non sono sicuro che questo risponde alla domanda -. Non so se i dati 3D è supportato

E 'abbastanza facile da fare se si conosce il trucco: http: / /www.scribd.com/doc/21983425/Least-Squares-Fit

più dimensioni significa più coefficienti, ma sono abbastanza facili da aggiungere. Le idee sono tutte uguali.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top