Comment tracer des courbes d'ajustement de pic individuelles sur l'histogramme (mélange 2 normal ajusté)Bonjour,
J'ai un ensemble de données qui contient plusieurs pics, que je peux bien ajuster à l'aide de l'option Fitted Normal 2 Mixture de l'histogramme.Cela produit la moyenne et le sigma pour chaque pic ainsi que les poids sous forme de valeurs numériques et superpose la courbe d'ajustement sur l'histogramme.Existe-t-il également un moyen de visualiser les ajustements de pic individuels superposés sur l'histogramme ?
Merci!
Denny
Re : Comment tracer des courbes d'ajustement de pic individuelles sur l'histogramme (mélange de 2 normes ajustées)Bonjour @txnelson ,
Peut-on faire quelque chose de similaire sur le graphique quantile normal ? J'aimerais produire quelque chose comme le joint (deux modes distincts) mais le faire de manière automatisée (de manière reproductible), pas seulement en utilisant Édition> Copier le contenu du cadre et Modifier le contenu du cadre Coller après avoir ajouté des personnalisations à un graphique et les coller dans un autre graphique.

@PatrickGiuliano
Re : Comment tracer des courbes d'ajustement de pic individuelles sur l'histogramme (mélange de 2 normes ajustées)Essaye ça:
Names Default To Here( 1 );
platform = Data Table( "Big Class.jmp" ) <<
Distribution(
Continuous Distribution(
Column( :height ),
Fit Distribution( Normal Mixtures( Clusters( 2 ) ) )
)
);
Wait( 0 );
Report( platform )[Outline Box( "Distributions" )][Outline Box( "height" )][
Outline Box( "Fitted Normal 2 Mixture" )][Outline Box( "Parameter Estimates" )][
Table Box( 1 )] << Make Into Data Table;
et le voici avec une colonne By :
Names Default To Here( 1 );
platform = Data Table( "Big Class.jmp" ) <<
Distribution(
Continuous Distribution(
Column( :height ),
Fit Distribution( Normal Mixtures( Clusters( 2 ) ) )
),
by(:sex)
);
Wait( 0 );
Report( platform[1] )[Outline Box( 1 )][Outline Box( "height" )][
Outline Box( "Fitted Normal 2 Mixture" )][Outline Box( "Parameter Estimates" )][
Table Box( 1 )] << Make Combined Data Table;
La différence avec une colonne By est que la "plate-forme" a maintenant une liste de plates-formes, pas une seule plate-forme. Donc, nous devons indexer dans avec un [1] pour obtenir la première entrée de la liste. En outre, la première zone de plan du rapport contient désormais une valeur par groupe. Ainsi, il est plus facile de l'indexer par numéro plutôt que par nom.
Re : Comment tracer des courbes d'ajustement de pic individuelles sur l'histogramme (mélange de 2 normes ajustées)Salut, j'ai essayé cette technique en utilisant (comme décrit dans le post)
dist =Distribution( Continuous Distribution(
Column( :Column 1 ),
Fit Distribution( Normal Mixtures( Clusters( 2 ) ) ) ));
pour une autre donnée datable de moi-même et cela fonctionne bien. Cependant, je souhaite pouvoir saisir les estimations de paramètres à l'aide de <
j'ai utilisé
Fit Distribution( Normal Mixtures( Clusters( 2 ) ) ) ))<<MAKE into="" data="https://community.jmp.com/" table=""></MAKE>
J'ai probablement fait une erreur élémentaire, mais je ne la trouve pas.
De plus, si je réussis, avec l'aimable aide de la communauté, j'aimerais beaucoup apprendre à inclure des valeurs par paramètre, si j'avais utilisé cela (je dois effectuer cette analyse pour de nombreux sous-ensembles dans le tableau de données).
Merci d'avance.
Poul Ravn Sorensen
Re : Comment tracer des courbes d'ajustement de pic individuelles sur l'histogramme (mélange de 2 normes ajustées)Exactement ce que je cherchais. Merci!Re : Comment tracer des courbes d'ajustement de pic individuelles sur l'histogramme (mélange de 2 normes ajustées)Il y a plusieurs façons de faire ça.Les deux nécessitent l'ajout de JSL à votre code.La méthode 1 consiste à cliquer avec le bouton droit sur le graphique et à sélectionner "Personnaliser...".Cela vous permettra de modifier le graphique, ou d'en rajouter.Si vous cliquez sur le "+", cela vous permettra d'ajouter un script, et l'un des exemples permet la création d'une courbe normale.Avec une certaine connaissance du traçage à l'aide de la fonction Y et de la fonction Densité normale, vous pouvez ajouter une telle courbe.
Vous trouverez ci-dessous un exemple d'ajout de JSL à un script pour générer 2 courbes normales au-dessus des exemples de données.La fonction Add Graphics Script() fait le travail.J'ai pris quelques raccourcis en codant en dur dans les 2 différents moyens et écarts-types et aussi, les facteurs d'échelle basés sur le nombre total de points de données divisés par les points de données pour la barre maximale dans la distribution de l'histogramme.Ces valeurs de données devraient être calculées dans un script donné, en fonction de ce que vous proposez exactement.
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA\Big Class.jmp" );
Dis = dt << Distribution(
Continuous Distribution( Column( :height ), Vertical( 0 ), Density Axis( 1 ) )
);
Report( Dis )[Frame Box( 2 )] << Add Graphics Script(
mu = 63;
sigma = 3.2;
Pen Color( "Red" );
Y Function( Normal Density( (x - mu) / sigma ) / (40 / 12), x );
mu = 51.5;
sigma = .87;
Pen Color( "Blue" );
Y Function( Normal Density( (x - mu) / sigma ) / (40 / 2), x );
);

Le code qui se trouve dans la fonction Ajouter un script graphique() est le même code que vous ajouteriez au script si vous choisissez l'option Personnaliser...
Re : Comment tracer des courbes d'ajustement de pic individuelles sur l'histogramme (mélange de 2 normes ajustées)Salut moi,
J'ai vu l'option d'afficher l'ajustement global de la courbe, mais pas les pics individuels.Voici ce que je veux afficher (excusez mon dessin grossier):

Merci!
Re : Comment tracer des courbes d'ajustement de pic individuelles sur l'histogramme (mélange de 2 normes ajustées)Cette plate-forme de distribution peut montrer l'ajustement de la courbe :

dt = New Table( "Two Peaks",
Add Rows( 500 ),
New Column( "Column 1",
Numeric, "Continuous", Format( "Best", 12 ),
Formula(
If( Random Uniform() > 0.3,
Random Normal( 5 ),
Random Normal( 10 )
)
)
)
);
dist =Distribution(
Continuous Distribution(
Column( :Column 1 ),
Fit Distribution( Normal Mixtures( Clusters( 2 ) ) )
)
);