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 Regressione ortogonale o minimi quadrati e restituisce anche l'errore della linea adattata. Esiste una cosa del genere, e se sì, dove?Adatta una linea 3D ai dati dei punti 3D in Java?
risposta
Questo è abbastanza facile da fare, ma per scrivere voi stessi avrete bisogno di un risolutore autovalore o un decomposizione in valori singolari. Crea la matrice nx3 A, dei tuoi dati (x-xbar, y-ybar, z-zbar) come colonne. Salva i mezzi di colonna per dopo, lo chiamerò V0 = [xbar, ybar, zbar].
Ora, calcolare gli autovalori e autovettori di A '* A, cioè, la matrice 3x3 formata da A transpose applica A.
Se questi dati si trova su una linea in R^3, allora uno di quelli gli autovalori saranno significativamente più grandi degli altri due autovalori. Se ciò non è vero, la linea di regressione ortogonale non sarà ben valutata.
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 di decomposizione singolare di una, e prendere la giusta vettore singolare che corrisponde al valore più grande singolare A.
In entrambi i casi, se si vuole calcolare gli errori per i punti dati, questo sarebbe definito semplicemente come la distanza ortogonale della linea in questione.
Google per "biblioteca dei minimi quadrati di regressione java lineare" e si dovrebbe trovare alcune opzioni. Uno è Drej. Non l'ho usato da solo, però.
EDIT - io 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 a Le idee sono tutti uguali..
sbagliato. Ciò che conta è la codimensione, e quando si ha una linea in 3D, la codimensione è 2 (per una linea in 2D è 1). Quindi, tutta la logica comunemente usata per ricavare minimi quadrati (come nel tuo link) si rompe piuttosto completamente, temo. Vedi risposta cippato di seguito. – AVB
- 1. Mappatura dei valori di Hilbert ai punti 3D
- 2. Javascript: come disegnare una semplice linea su tela (in 3d) e renderla ruotabile (in 3d)?
- 3. Inserimento di un ellissoide in punti dati 3D
- 4. Curve Raccordo set di dati 3D
- 5. Zend_Mail e = 0D = 0A = 3D = 3D = 3D = 3D = 3D
- 6. Tracciare i punti 3D in Matlab
- 7. Cammina una linea tra due punti in uno spazio voxel 3D visitando tutte le celle
- 8. Java 3D Game Engine?
- 9. Ordinare una serie di punti 3D in senso orario/antiorario.
- 10. trame Generazione 3D in R con punti di dati arbitrari e punti di vista
- 11. Motore java 3d gratuito
- 12. Come trovare se un oggetto 3D si adatta a un altro oggetto 3D (il contenitore)?
- 13. Scafo convesso 3D da nuvola di punti
- 14. bordo SELECT in rendering 3D 3D
- 15. Tracciamento di linee tra due punti in 3D
- 16. Intersezione linea/piano in base ai punti
- 17. Java 3D serie assegnare valori
- 18. Come posso adattare i dati 3D
- 19. Come posso creare una semplice linea 3D con Matplotlib?
- 20. Numpy meshgrid in 3D
- 21. Programmazione di giochi 3d in Java
- 22. Programmazione di giochi 3D in Java
- 23. Adatta linea ai dati su una scala di registro in R
- 24. attraente grafico 3D in R
- 25. Matlab 3D Matrix Plot
- 26. Rendering 3D SEMPLICE in C#
- 27. Perché scipy.optimize.curve_fit non si adatta ai dati?
- 28. Come si disegna una freccia 3D in R?
- 29. Proiezione 3D (triangolo) inversa
- 30. Matplotlib - Traccia un piano e punti in 3D contemporaneamente
@ utente85109 congratulazioni per una risposta così chiara – Nic
Per una dimostrazione formale del metodo presentato, si può dare un'occhiata al link presentato qui: http://mathhelpforum.com/advanced-statistics/181810-3d-line- best- fit.html – Nic