So zeichnen Sie einzelne Peak-Fit-Kurven im Histogramm auf (angepasste 2-Normal-Mischung)Hallo,
Ich habe einen Datensatz, der mehrere Peaks enthält, die ich mit der Option Fitted Normal 2 Mixture des Histogrammdiagramms gut anpassen kann.Dieser gibt Mittelwert und Sigma für jeden Peak sowie die Gewichtungen als numerische Werte aus und legt die Anpassungskurve über das Histogramm.Gibt es eine Möglichkeit, die einzelnen Peak-Anpassungen auch über das Histogramm zu visualisieren?
Vielen Dank!
Denny
Betreff: Wie man einzelne Peak-Fit-Kurven auf einem Histogramm zeichnet (angepasste 2-Normal-Mischung)Hallo @txnelson ,
Kann etwas Ähnliches auf dem normalen Quantil-Plot gemacht werden? Ich möchte so etwas wie das angehängte (zwei separate Modi) erstellen, aber auf automatisierte (reproduzierbare Weise), nicht nur mit Bearbeiten> Rahmeninhalt kopieren und Rahmeninhalt bearbeiten und einfügen, nachdem Anpassungen zu einem Diagramm hinzugefügt und in ein anderes eingefügt wurden Graph.

@PatrickGiuliano
Betreff: Wie man einzelne Peak-Fit-Kurven auf einem Histogramm zeichnet (angepasste 2-Normal-Mischung)Versuche dies:
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;
und hier ist es mit einer By-Spalte:
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;
Der Unterschied zu einer Nach-Spalte besteht darin, dass „Plattform“ jetzt eine Liste von Plattformen hat, nicht eine einzelne Plattform. Wir müssen also mit einer [1] indizieren, um den ersten Eintrag in der Liste zu erhalten. Außerdem enthält das erste Gliederungsfeld im Bericht jetzt einen Wert nach Gruppe. Es ist also einfacher, es nach Nummer statt nach Name zu indizieren.
Betreff: Wie man einzelne Peak-Fit-Kurven auf einem Histogramm zeichnet (angepasste 2-Normal-Mischung)Hallo, ich habe diese Technik ausprobiert mit (wie im Beitrag beschrieben)
dist =Distribution( Continuous Distribution(
Column( :Column 1 ),
Fit Distribution( Normal Mixtures( Clusters( 2 ) ) ) ));
für eine andere Daten datierbare meiner eigenen und es funktioniert gut. Ich möchte jedoch in der Lage sein, die Parameterschätzungen mit <
ich benutzte
Fit Distribution( Normal Mixtures( Clusters( 2 ) ) ) ))<<MAKE into="" data="https://community.jmp.com/" table=""></MAKE>
Ich habe wahrscheinlich einen elementaren Fehler gemacht, kann ihn aber nicht finden.
Sollte es mir gelingen, würde ich mit freundlicher Hilfe der Community sehr gerne lernen, wie man By-Parameter-Werte einbezieht, falls ich das verwendet habe (ich muss diese Analyse für viele Teilmengen in der Datentabelle durchführen).
Vielen Dank im Voraus.
Poul Ravn Sörensen
Betreff: Wie man einzelne Peak-Fit-Kurven auf einem Histogramm zeichnet (angepasste 2-Normal-Mischung)Genau das, wonach ich gesucht habe. Vielen Dank!Betreff: Wie man einzelne Peak-Fit-Kurven in ein Histogramm einträgt (angepasste 2-Normal-Mischung)Es gibt ein paar Möglichkeiten, dies zu tun.Beide erfordern das Hinzufügen von JSL zu Ihrem Code.Methode 1 besteht darin, mit der rechten Maustaste auf das Diagramm zu klicken und "Anpassen ..." auszuwählen.Auf diese Weise können Sie das Diagramm ändern oder ergänzen.Wenn Sie auf das "+" klicken, können Sie ein Skript hinzufügen, und eines der Beispiele ermöglicht die Erstellung einer normalen Kurve.Mit einigen Kenntnissen im Plotten mit der Y-Funktion und der Normaldichtefunktion könnten Sie eine solche Kurve hinzufügen.
Unten sehen Sie ein Beispiel für das Hinzufügen von JSL zu einem Skript, um zwei normale Kurven über den Beispieldaten zu generieren.Die Funktion Add Graphics Script() erledigt die Arbeit.Ich habe ein paar Abkürzungen genommen, indem ich die 2 verschiedenen Mittelwerte und Standardabweichungen fest codiert habe, sowie die Skalierungsfaktoren, die auf der Gesamtzahl der Datenpunkte geteilt durch die Datenpunkte für den maximalen Balken in der Histogrammverteilung basieren.Diese Datenwerte müssten in jedem beliebigen Skript berechnet werden, basierend auf dem, was Sie genau vorschlagen.
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 );
);

Der Code in der Funktion Add Graphics Script() ist derselbe Code, den Sie dem Skript hinzufügen würden, wenn Sie die Option Anpassen... wählen
Betreff: Wie man einzelne Peak-Fit-Kurven auf einem Histogramm zeichnet (angepasste 2-Normal-Mischung)Hallo eh,
Ich habe die Option gesehen, die Gesamtkurvenanpassung anzuzeigen, aber nicht die einzelnen Peaks.Folgendes möchte ich ausgeben (entschuldigen Sie meine grobe Zeichnung):

Vielen Dank!
Betreff: Wie man einzelne Peak-Fit-Kurven auf einem Histogramm zeichnet (angepasste 2-Normal-Mischung)Diese Vertriebsplattform kann die Kurvenanpassung anzeigen:

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 ) ) )
)
);