Y vs X, ou tracé parallèle, ou autre chose?J'ai un ensemble de données que j'ai du mal à visualiser ce que je veux.
Dans la version la plus simple de ces données, j'ai quatre colonnes de données:
- "Échantillon". J'ai environ 1800 échantillons dans les données actuelles.
- "Sous-échantillon". Ceux-ci sont nommés "2", "3" et "4". Chacun de mes 1800 échantillons contient chacun de ces trois sous-échantillons.
- "Position". Ceux-ci sont nommés "A", "B" et "C", mais ce sont en fait des noms donnés à des emplacements numériques spécifiques mesurés à des emplacements particuliers du sous-échantillon. Pensez au sous-échantillon comme à un bâton long d'un pouce. L'emplacement "A" peut être d'un quart de pouce dans le sous-échantillon, "B" de 1/2 pouce dans le sous-échantillon et "C" de 3/4 pouce dans le sous-échantillon. J'ai un certain intérêt à interpoler entre "A", "B" et "C", en supposant pour l'instant une relation quadratique et sachant qu'il s'agit au mieux d'une approximation.
- "Les données". La mesure réelle prise à la position dans le sous-échantillon dans l'échantillon.
J'ai créé un générateur de graphes simple en traçant Data vs. Position, avec le groupe Y contre le sous-échantillon et superposer l'échantillon. L'intrigue (prise sur un sous-ensemble BEAUCOUP plus petit de la variable Sample) ressemble à ceci:

Les tracés parallèles viennent également à l'esprit, et avec un simple appel à la plate-forme Split et un peu d'effort dans le générateur de graphes, je peux arriver à ceci:
Pour les curieux, la JSL pour obtenir cette intrigue ressemble à ceci:
Graph Builder(
Variables(
X( :C 2 ), X( :B 2, Position( 1 ) ), X( :A 2, Position( 1 ) ),
X( :C 3 ), X( :B 3, Position( 2 ) ), X( :A 3, Position( 2 ) ),
X( :C 4 ), X( :B 4, Position( 3 ) ), X( :A 4, Position( 3 ) )
),
Elements( Position( 1, 1 ), Parallel( X( 1 ), X( 2 ), X( 3 ), Legend( 8 ), Curve Lines( 1 ) ) ),
Elements( Position( 2, 1 ), Parallel( X( 1 ), X( 2 ), X( 3 ), Legend( 7 ), Curve Lines( 1 ) ) ),
Elements( Position( 3, 1 ), Parallel( X( 1 ), X( 2 ), X( 3 ), Legend( 6 ), Curve Lines( 1 ) ) )
);
Mais vraiment, aucune parcelle n’a toutes les caractéristiques que je veux.
- Le tracé parallèle affiche les graphiques côte à côte (comme si j'utilisais le groupe X). Comme indiqué précédemment, je souhaite vraiment que le sous-échantillon soit disposé verticalement avec un comportement du groupe Y similaire.
- Puisque ma position (A, B, C) représente une dimension numérique sous-jacente, j'aimerais supposer un modèle quadratique (pour le moment) et interpoler à différentes positions entre A et C. L’approche X, qui utilise un élément Smoother dans Graph Builder, le fait bien. Le tracé parallèle insiste sur le fait que la courbe ressemble davantage à une fonction logistique entre chaque axe parallèle.
- Je veux une couleur constante pour tous les échantillons du graphique. Bien qu'il soit relativement facile de double-cliquer sur la légende et de définir la couleur dans le Y par rapport à L’approche X, c’est un peu fastidieux et ne se généralise pas bien si je veux le faire en JSL. (Je dois essentiellement exécuter une boucle et insérer la propriété color pour chaque échantillon dans l'expression Graph Builder.)
- J'aimerais ajouter une ligne de prédiction moyenne (ligne noire pleine et épaisse). Aucune méthode ne semble avoir cette capacité. Je ne sais même pas par où commencerais avec Parallel. Pour Y vs. XI envisageait simplement de faire glisser à nouveau la colonne Données dans l'axe des ordonnées, mais le problème est que les deux versions de Data veulent respecter la propriété Overlay. Je ne vois pas comment faire en sorte que la superposition fonctionne sur l'une des vues et non sur l'autre.
- Idéalement, j'aimerais pouvoir sélectionner un échantillon et mettre les trois sous-échantillons en surbrillance dans l'intrigue, comme suit:

Cela fonctionne dans la vue parallèle, mais dans le Y vs. La vue X de chaque échantillon est représentée par 9 lignes de données (3 sous-échantillons * 3 positions). En cliquant sur l'une des lignes de ce graphique, JMP mettra en surbrillance les 3 positions, mais JMP n'a aucune idée de son intention de mettre en surbrillance les deux autres sous-échantillons, car le groupe Y est considéré comme mon identificateur d'échantillon. C'est probablement le critère le plus difficile pour moi à écrire. - Franchement, je pense qu’il peut y avoir des questions supplémentaires sur la variabilité des mesures et sur l’identification des échantillons excentriques, voire des sous-échantillons excentriques au sein d’un échantillon? Je ne suis pas sûr que l'une ou l'autre de ces approches me conduise là.
Je sais que JMP 14 aura un Explorateur de données fonctionnelles, mais je ne suis pas sûr que cela fonctionnera avec la structure imbriquée que j'ai ici, et aussi le fait qu'il n'y a que trois mesures par sous-échantillon ...
Quelles autres options devrais-je envisager?
Re: Y vs X, ou parcelle parallèle, ou autre chose?Nous envisageons d'aller dans cette direction. Il est toujours un peu difficile de vraiment comprendre ce qui se passe d'un échantillon à l'autre (c'est-à-dire, où se situe vraiment l'échantillon 1 par rapport à l'échantillon 2 par rapport à l'échantillon 3?).
Il y a également un malentendu dans la façon dont mes données sont organisées, aussi j'ai modifié le tableau fictif.
Voir le tableau de données factice et mon analyse actuelle de Profiler ici. C'est un début, de toute façon.
New Table( "mock data",
Add Rows( 1800 * 9 ),
New Column( "sample", Numeric, "Nominal", Format( "Best", 12 ), Formula( Sequence( 1, 1801, 1, 9 ) ) ),
New Column( "subsample", Numeric, "Nominal", Format( "Best", 12 ), Formula( Sequence( 1, 3, 1, 3 ) ) ),
New Column( "location", Numeric, "Continuous", Format( "Best", 12 ), Formula( Sequence( 1, 3 ) ) ),
New Column( "Data", Numeric, "Continuous", Format( "Best", 12 ), Formula( Abs( Random Normal() * :location ^ 2 ) ) )
);
Fit Model(
Y( :Data ),
Effects( :subsample, :location, :subsample * :location, :location * :location, :subsample * :location * :location ),
Personality( "Standard Least Squares" ),
Emphasis( "Minimal Report" ),
Run(
Profiler( 1 ),
:Data << {Effect Summary( 0 ), Summary of Fit( 0 ), Analysis of Variance( 0 ), Parameter Estimates( 0 ),
Effect Tests( 0 ), Effect Details( 0 ), Lack of Fit( 0 ), Scaled Estimates( 0 ), Plot Actual by Predicted( 0 ),
Plot Residual by Predicted( 0 ), Plot Studentized Residuals( 0 ), Plot Effect Leverage( 0 ),
Plot Residual by Normal Quantiles( 0 ), Box Cox Y Transformation( 0 )},
Automatic Recalc( 1 )
),
Local Data Filter(
Add Filter( columns( :sample ), Where( :sample == 1 ), Display( :sample, Size( 224, 315 ), List Display ) )
)
);Re: Y vs X, ou parcelle parallèle, ou autre chose?C'est donc une approche assez différente.
La première chose à faire est de changer votre emplacement d’une lettre à la valeur réelle qu’elle représente.
Maintenant, essayez d'utiliser un modèle en forme. Les données sont votre Y et votre X'x sont ces effets.
Avant de frapper, si la position B ne se trouve pas au milieu de A et C, désactivez les "polynômes centraux" dans le menu Triangle rouge.
|
Effets
|
|
emplacement * sous-échantillon
|
|
emplacement * emplacement
|
|
emplacement
|
|
sous-échantillon
|
Cet ensemble de termes vous donnera le quadratique pour la localisation (assurez-vous que la localisation est numérique continue, pas une lettre), puis les effets principaux pour la localisation et le sous-échantillon plus l’interaction vous permettront d’avoir une pente et une interception indépendantes pour chaque niveau de sous-échantillon.
C'est la figure du profileur. (J'ai modélisé 1800 échantillons, provenant de trois endroits, chaque ensemble de trois constituant un sous-échantillon)
Profiler de prédiction

Vous pouvez donc interpoler à partir du graphique, mais si vous enregistrez la formule de prédiction dans le tableau de données, vous pouvez interpoler d'autres poisitions. Découvrez la formule. Son genre de monstore, car il contient des coefficients pour chacun des sous-échantillons.
//Mock Data Table
New Table( "mock data",
Add Rows( 1800 ),
New Column( "sample", Numeric, "Nominal", Format( "Best", 12 ), Formula( Sequence( 1, 1801 ) ) ),
New Column( "subsample", Numeric, "Nominal", Format( "Best", 12 ), Formula( Sequence( 1, 601, 1, 3 ) ) ),
New Column( "location", Numeric, "Continuous", Format( "Best", 12 ), Formula( Sequence( 1, 3 ) ) ),
New Column( "Data",Numeric,"Continuous",Format( "Best", 12 ),Formula( Abs( Random Normal() * :location ^ 2 ) )
)
);