Wie kann das geometrische Mittel einiger Zeilen berechnet werden?Das geometrische Mittel lässt sich leicht in der Zusammenfassung ermitteln.
Aber wie berechnet man den Mittelwert anhand der Formelspalte?
Ich habe die Hilfedokumentation und die Community durchsucht und konnte immer noch keinen Weg finden.


Ich möchte es so berechnen:
dt=Current Data Table();
dt<<NEW column=""></NEW>
Danke!
Betreff: Wie kann das geometrische Mittel einiger Zeilen berechnet werden?Außerdem verlinke ich hier erneut einen Blog-Beitrag zum geometrischen Mittelwert aus der SAS-Dokumentation, der sehr informativ ist:
https://blogs.sas.com/content/iml/2019/10/02/geometrische-mean-deviation-cv-sas.html
Betreff: Wie kann das geometrische Mittel einiger Zeilen berechnet werden?Eine nützliche Strategie besteht meiner Meinung nach darin, die Funktion „NRows()“ in JMP zu verwenden, um die Indizierung der Zeilennummer aufzurufen, wenn Sie an der allgemeinen Berechnung des geometrischen Mittelwerts interessiert sind, die normalerweise in zusammenfassenden Statistiken angegeben wird (und das ist auch der Fall). dass JMP unter „Zusammenfassungsstatistik anpassen“ berichtet).


Ich konnte zwei der in diesem Thread verwendeten Ansätze zusammenfassen (reproduzieren) und füge die Datentabelle in einen generischen Datensatz ein, damit jeder sie später darauf zurückgreifen kann. Prost, @PatrickGiuliano
Betreff: Wie kann das geometrische Mittel einiger Zeilen berechnet werden?Danke @julianisch
Ich habe versucht, alles auf einmal zu erledigen, habe es aber nicht so hinbekommen, wie auf diesem Bild:

Betreff: Wie kann das geometrische Mittel einiger Zeilen berechnet werden?Hallo @ron_horne ,
Zu Ihrer Frage: „Gibt es eine Möglichkeit, die erste LN-Transformation in die zweite Formel einzubetten und so die 2-Spalten-Prozedur einzusparen?“
Zuerst dachte ich, wir könnten mit Transform Column() etwas machen, so wie wir es bei der Skripterstellung für einen Plattformstart tun würden, z. B.:
Transform Column( "Log[height]", Formula( Log( :height ) ) )
Aber die Einbettung in eine Spaltenformel brachte mich nicht weiter. Allerdings :height[ Index ( Reihe () - 10 , Reihe () )] gibt eine Matrix zurück, und wenn Sie diese in Ln() einschließen, wird jedes Element ausgewertet. Das Folgende sollte also eine einspaltige Version Ihrer Lösung ergeben:
New Column("Geometric mean height (single column)", Numeric, "Continuous", Format("Best", 12), Formula(If(Row() < 10, Empty(), Exp(Mean(Ln(:height[Index(Row() - 10, Row())]))))) );

@julianisch
Betreff: Wie kann das geometrische Mittel einiger Zeilen berechnet werden?Hallo @lwx228 ,
Ihre Frage ist gut und es gibt sicher mehrere Möglichkeiten, die Antwort zu erhalten. Ich werde versuchen, bei der Verwendung der Spaltenformel zu bleiben.
Erstellen Sie zwei neue Spalten.
1 Wandeln Sie einfach die Höhe in den natürlichen Wert um.
2 Ermitteln Sie den Exponenten des gleitenden Durchschnitts der ersten Spalte.
Diese zweite Spalte sollte Ihnen einen beweglichen geometrischen Mittelwert liefern, nach dem Sie suchen.
Sie können die Formeln diesem Skript entnehmen:
New Column( "log height",
Numeric,
"Continuous",
Format( "Best", 12 ),
Formula( Ln( :height ) )
);
New Column( "Geometric mean height",
Numeric,
"Continuous",
Format( "Best", 12 ),
Formula(
If( Row() < 10,
Empty(),
Exp( Mean( :log height[Index( Row() - 10, Row() )] ) )
)
)
);
Bitte teilen Sie uns mit, ob es für Sie funktioniert.
Ich möchte auch andere Mitglieder des Forums fragen, ob es eine Möglichkeit gibt, die erste LN-Transformation in die zweite Formel einzubetten und so das 2-Spalten-Verfahren einzusparen.
Betreff: Wie kann das geometrische Mittel einiger Zeilen berechnet werden?Ich habe die ursprüngliche Methode verwendet und die Ergebnisse waren konsistent.

Danke, Jim!
Betreff: Wie kann das geometrische Mittel einiger Zeilen berechnet werden?Mir ist keine geometrische Mittelfunktion in JMP bekannt.Eines sollte hinzugefügt werden, und ich schlage vor, dass Sie es zur JMP WishList hinzufügen.Das bedeutet jedoch nicht, dass man nicht tun kann, was man will.Ich habe 2 verschiedene Lösungen gefunden.Das erste ist nur die Rohcodierung des geometrischen Mittels in JSL.In der angehängten Datentabelle verwendet die Spalte namens GeoMean diese Formel.Es verwendet Ihre Anfrage, um das geometrische Mittel für die aktuelle Zeile – 10 Zeilen – über die aktuelle Zeile zu berechnen.
If( Row() == 1,
Product = 1;
Range = 11;
);
If( Row() <= 11,
Product = Product * :height;
If( Row() == Range,
Returned = Product ^ (1 / Range),
Returned = .
);
,
Product = Product / :height[Row() - Range];
Product = Product * :height[Row()];
Returned = Product ^ (1 / Range);
);
Returned;
Die zweite Form, die Spalte „Geomean from Dist Platform“, extrahiert den geometrischen Mittelwert aus der Ausgabe der Distribution Platform und führt sie auf einer Teilmenge der Daten aus, wobei sie jeweils 11 Zeilen unterteilt
If( Row() < 11,
returned = .,
theValues = :height[Index( Row(), Row() - 10 )];
_d = New Table( "sub", invisible, New Column( "height", values( theValues ) ) );
dis = _d << Distribution(
invisible,
Continuous Distribution(
Column( :height ),
Quantiles( 0 ),
Histogram( 0 ),
Vertical( 0 ),
Outlier Box Plot( 0 ),
Customize Summary Statistics(
Mean( 0 ),
Std Dev( 0 ),
Std Err Mean( 0 ),
Upper Mean Confidence Interval( 0 ),
Lower Mean Confidence Interval( 0 ),
N( 0 ),
Geometric Mean( 1 )
)
)
);
Returned = (Report( dis )[Number Col Box( 1 )] << get)[1];
Close( _d, nosave );
);
Returned;
Die erste Formel sollte die schnellste sein, da sie den Geomean nicht für jede Zeile von Grund auf berechnet.