# MutualInfo - diagramfunktion

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

MutualInfo returnerar den aggregerade gemensamma informationen för två datauppsättningar. Detta möjliggör analys av de viktigaste drivkrafterna mellan ett fält och en potentiell drivkraft. Gemensam information mäter förhållandet mellan datauppsättningarna och aggregeras för (x,y)-parvärden, vilket upprepas för diagrammets dimensioner. Gemensam information har ett mått mellan 0 och 1 och kan formateras som ett percentilvärde. MutualInfo definieras av antingen urval eller ett set-uttryck.

MutualInfo tillåter olika typer av MI-analys:

* Gemensam MI: beräkna MI i ett drivande fält och ett målfält.

* Uppdelning av drivkraft efter värde: MI beräknas med individuella fältvä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å MI.

MutualInfo visar inte nödvändigtvis på kausalitet mellan fält med gemensam information. Även om information är gemensam för två fält behöver de inte driva varandra lika mycket. Om du till exempel jämför glassförsäljning och utomhustemperatur, visar MutualInfo att de har gemensam information. Detta visar inte om det är utomhustemperaturen som driver glassförsäljningen, vilket är troligt, eller om det är glassförsäljningen som driver utomhustemperaturen, vilket är osannolikt.

Vid beräkning av ömsesidig information påverkar associationer överensstämmelsen mellan och frekvensen av värden från fält som kommer från olika tabeller.

Värdena som returneras för samma fält eller urval kan variera något. Detta beror på att varje MutualInfo-anrop verkar på slumpmässigt utvalda exempeldata och på MutualInfo-algoritmens inbyggda slumpmässighet.

MutualInfo kan tillämpas på funktionen Aggr().

Syntax:

MutualInfo({SetExpression}] [DISTINCT] [TOTAL] field1, field2 , datatype [, breakdownbyvalue [, samplesize ]])

Returnerad datatyp: numeriska

Argument:

Argument

| Argument | Beskrivning |
| --- | --- |
| field1, field2 | Uttrycken eller fälten som innehåller de två exempeluppsättningarna den gemensamma informationen ska mätas för. |
| datatype | Datatyperna som finns i målet och drivaren,<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 som motsvarar ett värde i drivaren. Om det tillhandahålls 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 måste drivaren innehålla diskreta data. |
| samplesize | Antal värden som ska ingå i exempeldata från mål och drivare. Val av exempeldata är slumpmässigt. MutualInfo kräver en exempelstorlek på minst 80. Som standard använder MutualInfo endast upp till 10 000 datapar som exempeldata eftersom MutualInfo kan kräva mycket resurser. Du kan specificera fler datapar i exempeldatastorleken. 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.<br><br>Genom att använda TOTAL [&lt;fld {.fld}&gt;], där kvalificeraren TOTAL följs av en lista med ett eller flera fältnamn som en delmängd av diagramdimensionens variabler, skapar du en delmängd av de totala möjliga värdena.<br><br>[Definiera aggregeringens omfattning](https://help.qlik.com/sv-SE/sense/May2025/Subsystems/Hub/Content/Sense_Hub/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. När du vill se resultatet lägger du till de fält som anges i resultatkolumnen i ett ark i din app.

Exempel på funktioner

| Exempel | Resultat |
| --- | --- |
| `mutualinfo(Age, Salary, 1)` | Om en tabell innehåller dimensionen `Employee name` och måttet `mutualinfo(Age, Salary, 1)` är 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. Detta beror på att urvalet utesluter alla resultat som inte hör till det andra värdet för Gender. |
| `mutualinfo(TOTAL Age, Gender, 1, ValueLoop(25,35))` | 0.68196996. Alla värden som väljs från Gender ändrar detta till 0. |
| `mutualinfo({1} TOTAL Age, Salary, 1, null())` | 0.99820986. Detta är oberoende av urval. Set-uttrycket {1} bortser från 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 '|');`

RELATERAD INFORMATION:

* [Hur utvärderar jag relationer med hjälp av ömsesidig information?](https://help.qlik.com/lnk/How_evaluate_relationships_using_Mutual_information)

## Mer information

* [Hur utvärderar jag relationer med hjälp av ömsesidig information?](https://help.qlik.com/lnk/How_evaluate_relationships_using_Mutual_information)