# 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:

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,<br><br>1 oder 'dd' für diskret:diskret<br><br>2 oder 'cc' für kontinuierlich:kontinuierlich<br><br>3 oder 'cd' für kontinuierlich:diskret<br><br>4 oder 'dc' für diskret:kontinuierlich<br><br>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.<br><br>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 &lt;fld&gt;. Sind dies Dimensionen des Diagramms, werden bei der Berechnung<br><br>[Definieren des Aggregierungsbereichs](https://help.qlik.com/de-DE/qlikview/September2026/Subsystems/Client/Content/QV_QlikView/ChartFunctions/define-aggregation-scope.htm) |

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.

Funktionsbeispiele

| Beispiel | Ergebnis |
| --- | --- |
| `mutualinfo(Age, Salary, 1)` | Für eine Tabelle mit der Dimension `Employee name` und der Kennzahl `mutualinfo(Age, Salary, 1)` lautet das Ergebnis 0.99820986. Das Ergebnis wird nur für Zellen mit Gesamtwerten angezeigt. |
| `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 '|');`