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.Dadurch werden der Mittelwert und das Sigma für jeden Peak sowie die Gewichte als numerische Werte ausgegeben und die Anpassungskurve über das Histogramm gelegt.Gibt es eine Möglichkeit, die einzelnen Peak-Anpassungen auch über das Histogramm zu visualisieren?
Danke!
Denny
Betreff: So zeichnen Sie einzelne Peak-Fit-Kurven im Histogramm auf (angepasste 2-Normal-Mischung)Hallo @txnelson ,
Kann etwas Ähnliches im normalen Quantildiagramm durchgeführt werden? Ich würde gerne so etwas wie das angehängte erstellen (zwei separate Modi), aber dies auf automatisierte (reproduzierbare Weise) tun und nicht einfach „Bearbeiten“ > „Rahmeninhalte kopieren“ und „Bearbeiten“ und „Rahmeninhalte einfügen“ verwenden, nachdem ich Anpassungen zu einem Diagramm hinzugefügt und sie in ein anderes eingefügt habe Graph.

@PatrickGiuliano
Betreff: So zeichnen Sie einzelne Peak-Fit-Kurven im Histogramm auf (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 Nach-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 Spalte „Nach“ besteht darin, dass „Plattform“ jetzt eine Liste von Plattformen enthält, 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. Daher ist es einfacher, den Index anhand der Nummer statt des Namens zu erstellen.
Betreff: So zeichnen Sie einzelne Peak-Fit-Kurven im Histogramm auf (angepasste 2-Normal-Mischung)Hallo, ich habe diese Technik ausprobiert, indem ich (wie im Beitrag beschrieben)
dist =Distribution( Continuous Distribution(
Column( :Column 1 ),
Fit Distribution( Normal Mixtures( Clusters( 2 ) ) ) ));
für eine andere Datendatei von mir 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 grundlegenden Fehler gemacht, kann ihn aber nicht finden.
Sollte es mir außerdem gelingen, würde ich mit freundlicher Hilfe der Community sehr gerne lernen, wie man Parameterwerte einbezieht, falls ich das verwendet hätte (ich muss diese Analyse für viele Teilmengen in der Datentabelle durchführen).
Vielen Dank im Voraus.
Poul Ravn Sørensen
Betreff: So zeichnen Sie einzelne Peak-Fit-Kurven im Histogramm auf (angepasste 2-Normal-Mischung)Genau das, was ich gesucht habe. Danke!Betreff: So zeichnen Sie einzelne Peak-Fit-Kurven im Histogramm auf (angepasste 2-Normal-Mischung)Es gibt mehrere Möglichkeiten, dies zu tun.Für beide ist das Hinzufügen von JSL zu Ihrem Code erforderlich.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 Normalkurve.Mit etwas Erfahrung 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 Normalkurven über den Beispieldaten zu generieren.Die Funktion Add Graphics Script() erledigt die Arbeit.Ich habe ein paar Abkürzungen genommen, indem ich die zwei verschiedenen Mittelwerte und Standardabweichungen sowie die Skalierungsfaktoren fest codiert habe, die auf der Gesamtzahl der Datenpunkte dividiert durch die Datenpunkte für den maximalen Balken in der Histogrammverteilung basieren.Diese Datenwerte müssten in einem beliebigen Skript berechnet werden, basierend auf dem, was genau Sie 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: So zeichnen Sie einzelne Peak-Fit-Kurven im Histogramm auf (angepasste 2-Normal-Mischung)Hallo,
Ich habe die Option gesehen, die Gesamtkurvenanpassung anzuzeigen, jedoch nicht die einzelnen Spitzen.Folgendes möchte ich ausgeben (entschuldigen Sie meine grobe Zeichnung):

Danke!
Betreff: So zeichnen Sie einzelne Peak-Fit-Kurven im Histogramm auf (angepasste 2-Normal-Mischung)Diese Vertriebsplattform kann die Kurvenanpassung zeigen:

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