Gå till huvudinnehåll

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 nyckeldrivare för ett fält och en potentiell drivare. 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 information (MI) för par: Beräkna MI i ett drivande fält och ett målfält.

  • Uppdelning av drivare 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,

1 eller 'dd' för diskret:diskret

2 eller 'cc' för kontinuerlig:kontinuerlig

3 eller 'cd' för kontinuerlig:diskret

4 eller 'dc' för diskret:kontinuerlig

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.

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.

Genom att använda TOTAL [<fld {.fld}>], 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.

Definiera aggregeringens omfattning

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 till ett ark i din app för att se resultatet.

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)

0.99823109.

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|50Beat 5|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 '|');