# MutualInfo - diagramfunktion

MutualInfo beräknar ömsesidig information (MI) mellan två fält eller mellan aggregerade värden i Aggr().

MutualInfo möjliggör olika typer av MI-analys:

* Gemensam information (MI) för par: Beräkna den gemensamma informationen i ett drivande fält och ett målfält.

* Uppdelning av drivare efter värde: Den gemensamma informationen beräknas baserat på individuella fältfärden i drivande fält och målfält.

* Funktionsurval: Använd MutualInfo i ett rutnätsdiagram om du vill skapa en matris där alla fält jämförs med varandra baserat på gemensam information.

MutualInfo returnerar den aggregerade gemensamma informationen för två datauppsättningar. Gemensam information är ett mått på förhållandet mellan datauppsättningarna, och aggregeras för (x,y)-värdeparen upprepat över diagrammets dimensioner. Gemensam information har ett värde mellan 0 och 1. MutualInfo definieras av urvalet eller set-uttrycket.

Vid beräkning av den gemensamma informationen påverkar associationer överensstämmelsen mellan och frekvensen av värden från fält i olika tabeller.

De värden som returneras för samma mål och drivare kan variera något. Detta beror på att varje MutualInfo-anrop utförs på slumpmässigt valda exempeldata och den inbyggda slumpmässigheten hos MutualInfo-algoritmen.

MutualInfo kan användas på Aggr()-funktionen.

Syntax:

MutualInfo({SetExpression}] [DISTINCT] [TOTAL] target, driver , datatype [, breakdownbyvalue [, samplesize ]])

Returnerad datatyp: numeriska

Argument:

Argument

| Argument | Beskrivning |
| --- | --- |
| target, driver | Uttrycken eller fälten som innehåller de två uppsättningarna med exempeldata för vilka den gemensamma informationen ska mätas. |
| datatype | Datatyperna i mål och drivare,<br><br>1 eller 'dd' för diskret:diskret<br><br>2 eller 'cc' för kontinuerlig:kontinuerlig<br><br>3 eller 'cd' för kontinuerlig:diskret<br><br>4 eller 'dc' för diskret:kontinuerlig<br><br>Datatyper är inte skiftlägeskänsliga. |
| breakdownbyvalue | Ett statiskt värde motsvarar ett värde i drivaren. Om angett, beräknas MI-bidraget för det värdet. Du kan använda ValueList() eller ValueLoop(). Om Null() läggs till beräknas total MI för alla värden i drivaren.<br><br>För uppdelning efter värde krävs att drivaren innehåller diskreta data. |
| samplesize | Antalet värden som ska ingå i exempeldata från mål och drivare. Urvalet är slumpmässigt. MutualInfo kräver minst 80 värden i exempeldata. Som standard gör MutualInfo ett urval på högst 10 000 datapar, eftersom MutualInfo kan vara resurskrävande. Du kan ange att fler datapar ska ingå i exempeldata. Om MutualInfo når tidsgränsen minskar du mängden exempeldata. |
| SetExpression | Som standard kommer aggregeringsfunktionen att aggregera över den uppsättning möjliga poster som definierats av urvalet. En alternativ uppsättning poster kan definieras med ett uttryck för set-analys. |
| DISTINCT | Om predikatet DISTINCT förekommer framför funktionsargumenten ignoreras alla dubbletter som evaluerats utifrån funktionsargumenten. |
| TOTAL | Om ordet TOTAL står före funktionsargumenten görs beräkningen över alla valbara värden givet de aktuella valen, och inte bara sådana som rör det aktuella dimensionsvärdet, det vill säga att diagramdimensionerna ignoreras. Bestämningen TOTAL kan följas av en lista med ett eller flera fältnamn inom vinkelparenteser &lt;fld&gt;. Dessa fältnamn bör ingå i en underuppsättning av diagrammets dimensionsvariabler.<br><br>[Definiera aggregeringens omfattning](https://help.qlik.com/sv-SE/qlikview/September2026/Subsystems/Client/Content/QV_QlikView/ChartFunctions/define-aggregation-scope.htm) |

Begränsningar:

Textvärden, NULL-värden och saknade värden i någon eller båda delarna av ett datapar resulterar i att hela dataparet ignoreras.

Exempel och resultat:

Lägg till exempelskriptet i appen och kör det. Lägg sedan till de fält som listas i resultatkolumnen på ett ark i appen för att se resultatet.

Exempel på funktioner

| Exempel | Resultat |
| --- | --- |
| `mutualinfo(Age, Salary, 1)` | Om du har en tabell med dimensionen `Employee name` och måttet `mutualinfo(Age, Salary, 1)` blir resultatet 0.99820986. Resultaten visas endast för totalcellen. |
| `mutualinfo(TOTAL Age, Salary, 1, null(), 81)` | Om du skapar en filterruta med dimensionen Gender och gör urval från den, ser du resultatet 0.99805677 när Female är valt och 0.99847373 om Male är valt. Det beror på att urvalet utesluter alla resultat som inte tillhör det andra värdet för Gender. |
| `mutualinfo(TOTAL Age, Gender, 1, ValueLoop(25,35))` | 0.68196996. Om du väljer valfritt värde från Gender ändras detta till 0. |
| `mutualinfo({1} TOTAL Age, Salary, 1, null())` | 0.99820986. Detta är oberoende av urval. Set-uttrycket {1} ignorerar alla urval och dimensioner. |

Data som används i exempel:

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