MutualInfo - Diagrammfunktion
MutualInfo berechnet die gegenseitigen Informationen zwischen zwei Feldern oder zwischen aggregierten Werten in Aggr().
MutualInfo ermöglicht verschiedene Arten der MI-Analyse:
-
Paarweise MI: Berechnet die MI zwischen einem Treiberfeld und einem Zielfeld.
-
Treiberaufschlüsselung nach Wert: Die MI wird zwischen einzelnen Feldwerten im Treiber- und im Zielfeld berechnet.
-
Funktionsauswahl: Verwenden Sie MutualInfo in einem Tabellendiagramm, um eine Matrix zu erstellen, in der alle Felder gestützt auf MI miteinander verglichen werden.
MutualInfo liefert die aggregierten gegenseitigen Informationen für zwei Datensätze. „Gegenseitige Informationen“ ist eine Kennzahl der Beziehung zwischen den Datensätzen und wird für Wertepaare (x,y) nach den Dimensionen des Diagramms aggregiert. „Gegenseitige Informationen“ wird zwischen 0 und 1 gemessen. MutualInfo wird durch die Auswahl bzw. die Auswahlformel definiert.
Beim Berechnen der gegenseitigen Informationen wirken sich Zuordnungen auf die Entsprechung zwischen und die Häufigkeit der Werte aus Feldern aus verschiedenen Tabellen aus.
Die zurückgegebenen Werte für das gleiche Ziel und den gleichen Treiber können leicht voneinander abweichen. Das liegt daran, dass jeder MutualInfo-Aufruf ein zufällig ausgewähltes Beispiel bearbeitet, sowie an der inhärenten Zufälligkeit des MutualInfo-Algorithmus.
MutualInfo kann auf die Aggr()-Funktion angewendet werden.
Syntax:
MutualInfo({SetExpression}] [DISTINCT] [TOTAL] target, driver , datatype [, breakdownbyvalue [, samplesize ]])
Rückgabe Datentyp: numerisch
Argumente:
Argument | Beschreibung |
---|---|
target, driver | Die Formeln oder Felder, die die beiden Beispielsätze enthalten, für die die gegenseitigen Informationen ermittelt werden sollen. |
datatype |
Die in Ziel und Treiber enthaltenen Datentypen, 1 oder 'dd' für diskret:diskret 2 oder 'cc' für kontinuierlich:kontinuierlich 3 oder 'cd' für kontinuierlich:diskret 4 oder 'dc' für diskret:kontinuierlich Bei Datentypen wird nicht zwischen Groß- und Kleinschreibung unterschieden. |
breakdownbyvalue |
Ein statischer Wert, der einem Wert im Treiber entspricht. Wenn angegeben, berechnet die Berechnung den MI-Beitrag zu diesem Wert. Sie können ValueList() oder ValueLoop() verwenden. Wenn Null() hinzugefügt wird, erfolgt die Berechnung für die gesamte MI für alle Werte im Treiber. Für die Aufschlüsselung nach Wert muss der Treiber diskrete Daten enthalten. |
samplesize |
Die Anzahl der als Stichprobe zu nehmenden Werte aus Ziel und Treiber. Die Stichprobennahme ist randomisiert. MutualInfo erfordert eine Mindeststichprobengröße von 80. Standardmäßig nimmt MutualInfo nur bis zu 10.000 Datenpaare als Stichprobe, da MutualInfo ressourcenintensiv sein kann. Sie können eine größere Anzahl Datenpaare in der Stichprobengröße angeben. Wenn für MutualInfo eine Zeitüberschreitung eintritt, verringern Sie die Stichprobengröße. |
SetExpression | Standardmäßig berechnet sich die Aggregierungsfunktion über alle wählbaren Werte. Alternativ können Sie die der Berechnung zugrunde liegenden Werte über die Auswahlformel bestimmen. |
DISTINCT | Der Zusatz DISTINCT vor den Funktionsargumenten bewirkt, dass bei der Auswertung der Funktion entstehende Dubletten nicht berücksichtigt werden. |
TOTAL |
Der Zusatz TOTAL vor der Funktion bewirkt, dass die Berechnung über alle ausgewählten bzw. wählbaren Werte erfolgt, und nicht nur über diejenigen, die zu dem Wert der aktuellen Dimension zählen, die Dimensionen des Diagramms werden also nicht berücksichtigt. Auf den Zusatz TOTAL kann eine Reihe von Feldnamen in spitzen Klammern folgen <fld>. Sind dies Dimensionen des Diagramms, werden bei der Berechnung |
Beschränkungen:
Textwerte, NULL-Werte und fehlende Werte in einem oder beiden Teilen eines Wertepaars führen dazu, dass das Wertepaar ignoriert wird.
Beispiele und Ergebnisse:
Fügen Sie Ihrer App ein Beispielskript hinzu und führen Sie dieses aus. Fügen Sie einem Arbeitsblatt in Ihrer App dann diejenigen Felder hinzu, die in der Ergebnisspalte aufgeführt sind, um das Ergebnis anzuzeigen.
Beispiel | Ergebnis |
---|---|
mutualinfo(Age, Salary, 1) |
Für eine Tabelle mit der Dimension |
mutualinfo(TOTAL Age, Salary, 1, null(), 81) |
Wenn Sie ein Filterfenster mit der Dimension Gender erstellen und darin Auswahlen treffen, sehen Sie das Ergebnis 0.99805677, wenn Female ausgewählt ist, bzw. 0.99847373, wenn Male ausgewählt ist. Das liegt daran, dass die Auswahl alle Ergebnisse ausschließt, die nicht zu dem anderen Wert von Gender gehören. |
mutualinfo(TOTAL Age, Gender, 1, ValueLoop(25,35)) |
0.68196996. Wenn ein beliebiger Wert aus Gender ausgewählt wird, ändert sich dies zu 0. |
mutualinfo({1} TOTAL Age, Salary, 1, null()) |
0.99820986. Dies ist von Auswahlen unabhängig. Die Auswahlformel {1} berücksichtigt keine Auswahlen und Dimensionen. |
In Beispielen verwendete Daten:
Salary:
LOAD * inline [
"Employee name"|Age|Gender|Salary
Aiden Charles|20|Male|25000
Ann Lindquist|69|Female|58000
Anna Johansen|37|Female|36000
Anna Karlsson|42|Female|23000
Antonio Garcia|20|Male|61000
Benjamin Smith|42|Male|27000
Bill Yang|49|Male|50000
Binh Protzmann|69|Male|21000
Bob Park|51|Male|54000
Brenda Davies|25|Male|32000
Celine Gagnon|48|Female|38000
Cezar Sandu|50|Male|46000
Charles Ingvar Jönsson|27|Male|58000
Charlotte Edberg|45|Female|56000
Cindy Lynn|69|Female|28000
Clark Wayne|63|Male|31000
Daroush Ferrara|31|Male|29000
David Cooper|37|Male|64000
David Leg|58|Male|57000
Eunice Goldblum|31|Female|32000
Freddy Halvorsen|25|Male|26000
Gauri Indu|36|Female|46000
George van Zaant|59|Male|47000
Glenn Brown|58|Male|40000
Harry Jones|38|Male|40000
Helen Brolin|52|Female|66000
Hiroshi Ito|24|Male|42000
Ian Underwood|40|Male|45000
Ingrid Hendrix|63|Female|27000
Ira Baumel|39|Female|39000
Jackie Kingsley|23|Female|28000
Jennica Williams|36|Female|48000
Jerry Tessel|31|Male|57000
Jim Bond|50|Male|58000
Joan Callins|60|Female|65000
Joan Cleaves|25|Female|61000
Joe Cheng|61|Male|41000
John Doe|36|Male|59000
John Lemon|43|Male|21000
Karen Helmkey|54|Female|25000
Karl Berger|38|Male|68000
Karl Straubaum|30|Male|40000
Kaya Alpan|32|Female|60000
Kenneth Finley|21|Male|25000
Leif Shine|63|Male|70000
Lennart Skoglund|63|Male|24000
Leona Korhonen|46|Female|50000
Lina André|50|Female|65000
Louis Presley|29|Male|36000
Luke Langston|50|Male|63000
Marcus Salvatori|31|Male|46000
Marie Simon|57|Female|23000
Mario Rossi|39|Male|62000
Markus Danzig|26|Male|48000
Michael Carlen|21|Male|45000
Michelle Tyson|44|Female|69000
Mike Ashkenaz|45|Male|68000
Miro Ito|40|Male|39000
Nina Mihn|62|Female|57000
Olivia Nguyen|35|Female|51000
Olivier Simenon|44|Male|31000
Östen Ärlig|68|Male|57000
Pamala Garcia|69|Female|29000
Paolo Romano|34|Male|45000
Pat Taylor|67|Female|69000
Paul Dupont|34|Male|38000
Peter Smith|56|Male|53000
Pierre Clouseau|21|Male|37000
Preben Jørgensen|35|Male|38000
Rey Jones|65|Female|20000
Ricardo Gucci|55|Male|65000
Richard Ranieri|30|Male|64000
Rob Carsson|46|Male|54000
Rolf Wesenlund|25|Male|51000
Ronaldo Costa|64|Male|39000
Sabrina Richards|57|Female|40000
Sato Hiromu|35|Male|21000
Sehoon Daw|57|Male|24000
Stefan Lind|67|Male|35000
Steve Cioazzi|58|Male|23000
Sunil Gupta|45|Male|40000
Sven Svensson|45|Male|55000
Tom Lindwall|46|Male|24000
Tomas Nilsson|27|Male|22000
Trinity Rizzo|52|Female|48000
Vanessa Lambert|54|Female|27000
] (delimiter is '|');