Ajustement d'une ligne à travers des points 3DSalut tout le monde,
J'ai une liste de points 3D (x, y, z) auxquels je dois ajuster une ligne.J'ai essayé d'ajuster trois modèles différents, chacun utilisant l'équilibre des colonnes pour prédire une sortie depuis (comme Y(x,z)), mais l'utilisation des trois sorties ne me donne pas de ligne.Le mieux que je puisse faire est d'utiliser Y(z) et X(z), puis d'utiliser les valeurs de z pour le meilleur ajustement final prévu (x, y, z).Cependant, je ne suis pas content de ne pas avoir de valeur Z prédite.J'ai également essayé d'utiliser le numéro de ligne Z (row#) comme moyen de prédire la valeur az, mais cela ne peut fonctionner que dans ce cas car z est un mouvement le long d'une pièce et donc sa variation est liée à la variation de la tête d'inspection. déplacement entre les points d’inspection.
Utilisation des trois modèles OLS y(z), X(z), Z(row#)


Voir ci-joint les données avec lesquelles jouer et merci pour toutes les idées !!
Analyse et modélisation des données de baseRe : Ajustement d'une ligne passant par des points 3DJ'ai du mal à comprendre l'idée d'ajuster une ligne en 3 dimensions.Il existe un plan de meilleur ajustement unique, mais je pense seulement qu'il existe une ligne de meilleur ajustement unique spécifiant 2 dimensions sur 3. Vous semblez avoir effectué ces ajustements bivariés, mais qu'est-ce que vous recherchez.De plus, si votre question n'est pas vraiment générale mais spécifique aux données telles que celles que vous avez publiées, X et Y sont presque parfaitement corrélés, vous n'avez donc en réalité que 2 dimensions.C'est pourquoi vos ajustements X vs Z et y vs Z sont presque identiques (bien que clairement non linéaires).
Re : Ajustement d'une ligne passant par des points 3DJ'ai juste empilé les 2 variables z que vous souhaitez tracer, puis j'ai utilisé la capacité de couleur de la plateforme pour afficher la surface et la ligne.

Re : Ajustement d'une ligne passant par des points 3DMerci d'y avoir réfléchi sur dlehman1, je me sens aussi un peu louche en pensant à cela également.J'essaie d'aider un collègue à imiter ce que fait un programme d'inspection afin qu'il puisse comparer les résultats.Le programme tracera une ligne passant par les points 3D, puis donnera une mesure de distance entre le meilleur ajustement et le point mesuré.J'ai lu quelques articles en ligne mais rien n'a vraiment fonctionné pour moi (beaucoup de discussions mathématiques au-dessus de ma tête !).Un article suggérait d'utiliser PCA, mais lorsque j'ai essayé cela et que je lui ai demandé de prédire les valeurs X, Y et z, cela n'a pas donné de ligne.
Ouais, c'est intéressant que Y et X soient si corrélés.
Je continuerai à réfléchir, si vous avez besoin d'autre chose de ma part pour clarifier la demande, faites-le moi savoir.
Steve
Re : Ajustement d'une ligne passant par des points 3DSalut @shampton82 ,
je suis avec @dlehman1 avec cela, car une ligne en 3D peut toujours être décomposée en deux variables indépendantes comme X & Y ou Y & Z par une transformation de votre système de coordination, d'où le plan unique qui contiendra cette ligne. Mais vos données semblent être quelque chose de différent. Je ne comprends toujours pas l'intérêt général d'ajuster la ligne en 3D. Si vous le devez vraiment, je suppose que je changerais simplement votre système de coordonnées, car le plan contenant les données "3D" se trouve juste le long de la diagonale XY.
Dans le cas des données que vous avez partagées, il semble que vous ayez des mesures de profil de quelque chose qui sont mesurées à intervalles réguliers de 75 unités (mm, um, nm ?) dans la direction z. En regardant les profils x vs z et y vs z, cela ressemble vraiment beaucoup aux données AFM ou à quelque chose de similaire. Et comme X et Y sont si fortement corrélés, c'est presque comme s'il s'agissait simplement d'un pas de 231 unités (en Y) - l'interception dans votre graphique d'ajustement Y par X - puis l'élément est à nouveau mesuré.
Une des choses que je ne comprends pas vraiment, c'est quel type d'informations vous essayez d'obtenir de ce programme que vous utilisez - vous mentionnez qu'il trace une ligne passant par les points 3D et donne ensuite une mesure de distance à partir du meilleur ajustement. et le point mesuré ? Il s'agit essentiellement d'examiner les résidus de l'ajustement : vous examinez à quelle distance se trouvent les données de votre ajustement. Essayez-vous de prédire les résidus ? Essayez-vous vraiment de prédire la valeur Z, ou essayez-vous de prédire X et Y ? Les lignes que vous insérez dans les données que vous avez partagées prédisent X et Y, pas Z.
Il y a beaucoup de choses ici que je ne comprends pas vraiment, mais je pense que c'est peut-être parce que vous ne pouvez pas tout partager. Cependant, plus vous pourrez partager et rester anonyme, plus nous pourrons vous aider à obtenir la solution que vous recherchez.
J'espère que cela t'aides!,
DS
Re : Ajustement d'une ligne passant par des points 3DCool!Pouvez-vous montrer les étapes que vous avez suivies pour créer ce graphique ?
Re : Ajustement d'une ligne passant par des points 3DMerci @SDF1 !
J'avoue que c'est difficile car j'essaie d'aider un collogue qui se trouve à distance dans une autre usine, donc je n'ai pas tous les détails, je les comprends en disséquant les données.Je suis tombé sur la même conclusion que vous : les X et Y semblent être le chemin d'inspection de la tête de mesure et le Z semble être le composant principal du profil de surface des pièces.

Il y a une certaine bizarrerie dans la distribution de l'espacement des coups (il y en a même un juste au-dessus de lui-même avec des valeurs très différentes pour Z) ainsi que la raison pour laquelle une ligne droite ne peut pas être suivie, donc je pense qu'ils ont des problèmes de MSA à résoudre. traiter également.
Je ne sais pas pourquoi ils ont besoin du delta dans l'espace 3D, je vais essayer d'obtenir plus de détails de leur part.
Comme c'était sur la diagonale, j'allais aussi essayer de faire pivoter l'avion, puis utiliser le Z(x) pour trouver l'ajustement final.Fait intéressant, j'ai découvert qu'en utilisant la régression orthogonale avec Y et X et en définissant les variances comme égales, je peux obtenir une ligne de meilleur ajustement pour Y et X qui produira les Y et X prédits.Je pense donc que la rotation de ces valeurs orthogonales (OV), puis l'ajustement de la OV du X pivoté par rapport aux valeurs Z me permettront d'ajuster une ligne aux valeurs Z et j'aurais ainsi des prédicteurs pour x, y et z.
Je vous ferai savoir comment ça se passe ou si j'obtiens des informations supplémentaires.Merci pour toute la contribution!!
Steve
Re : Ajustement d'une ligne passant par des points 3D- Empilement des colonnes Z prédit et des différents Z prédits à l'aide de la plateforme Tables=>Stacked
- Ouverture de la plateforme 3D Scatterplot
- Sélection des colonnes X, Y et Data comme colonnes Y
- Sélection de la colonne Étiquette comme colonne Couleur
- J'ai cliqué sur OK
Re : Ajustement d'une ligne passant par des points 3DAH, merci JIM !!
Re : Ajustement d'une ligne passant par des points 3DHé @SDF1 , @txnelson , et @dlehman1
Je crois que j'ai compris!
La première étape consiste à utiliser la régression orthogonale pour ajuster au mieux une ligne avec une hypothèse de variance égale.Dans JMP, vous pouvez ensuite générer des valeurs prédites pour X et Y.

Nous devons maintenant faire pivoter la ligne pour qu’elle soit perpendiculaire à X ou Y.Je choisis X.Cela nécessite une rotation de la ligne et des points de données de 39,06 degrés (tel que déterminé par la pente de la ligne ajustée 0,811473).
Ensuite, nous effectuons un ajustement Y par X où x correspond aux valeurs X prédites pivotées et Y correspond aux valeurs de données brutes Z.
Ensuite, vous enregistrez les prédictions de formule de ce modèle et vous avez ainsi prédit les valeurs x, y et z à partir d'une ligne la mieux ajustée en 3D.

Si vous souhaitez que toutes les valeurs ne soient pas sur la diagonale, vous pouvez utiliser les valeurs pred Y et X pivotées avec les valeurs Pred Z.
J'ai joint mon tableau de données avec des formules au cas où cela aiderait quelqu'un à suivre.
J'ai également ajouté le tableau de données empilé selon la suggestion de txnelson ci-dessous pour une superposition des deux sources de données qui fonctionne très bien et j'ai créé le graphique ci-dessus.
Re : Ajustement d'une ligne passant par des points 3DSalut @shampton82 ,
Oui, vous avez raison dans la façon de faire pivoter votre système de coordonnées en projetant les données en 3D sur un seul plan - XZ ou YZ, puis en procédant à l'ajustement de la ligne. Cela prendra en compte la projection cos(thêta) ou sinus(phi) sur le plan de coordonnées dont vous avez besoin.
N'étant pas le maître du sujet de votre problème spécifique, je ne comprends toujours pas vraiment l'objectif d'ajuster une ligne à un ensemble de données hautement non linéaires, puis de calculer les résidus, mais si c'est ce qui est nécessaire, alors c'est la façon de le faire.
Heureux d'apprendre que vous progressez vers une solution pour votre collègue.
DS
Re : Ajustement d'une ligne passant par des points 3DSalut Steve,
Je pense que l'analyse en composantes principales est une bonne approche ici. Le premier composant principal est, en quelque sorte, la ligne la mieux adaptée à travers ce nuage de points de données 3D.
Pour traduire ce premier composant principal dans le système de coordonnées XYZ d'origine, sélectionnez « Enregistrer les colonnes > Enregistrer les prévisions en tant que formules de composants » dans le triangle rouge du rapport PCA. Flux de travail ci-joint.
-------------------
MODIFIÉ POUR AJOUTER :
En fonction de ce que vous essayez d'accomplir, vous devrez peut-être choisir « Non mis à l'échelle » plutôt que « Standardisé » pour la PCA. Joindre également la version non mise à l'échelle.
Re : Ajustement d'une ligne passant par des points 3DMerci Jordan, c'est génial !Lorsque j'ai commencé ce projet, certaines recherches sur le Web ont mentionné cette méthode et je l'ai essayée, mais j'ai demandé à enregistrer 2 composants qui essayaient simplement de prédire les points dans l'espace 3D, j'ai donc essayé une autre méthode.Évidemment, je ne savais pas ce que je demandais pour ne pas avoir beaucoup utilisé PCA. Définir la sortie sur 1 composant selon vos instructions a parfaitement fonctionné !
Cette méthode nécessite beaucoup moins d'étapes !