# MutualInfo — funkcja wykresu

MutualInfo oblicza informacje wzajemne pomiędzy dwoma polami lub wartościami zagregowanymi w Aggr().

MutualInfo zwraca zagregowaną informację wzajemną o dwóch zestawach danych. Pozwala to na analizę kluczowych czynników wpływających między polem a potencjalnym czynnikiem wpływającym. Informacja wzajemna mierzy relacje między zestawami danych i jest agregowana dla wartości par (x, y) iterowanych po wymiarach wykresu. Informacja wzajemna jest mierzona w zakresie od 0 do 1 i może być formatowana jako wartość percentyla. MutualInfo definiuje się przy użyciu wyborów lub wyrażenia zestawu.

MutualInfo umożliwia różne rodzaje analizy informacji wzajemnej:

* Informacja wzajemna parami: obliczenie informacji wzajemnej między polem driver a polem target.

* Podział pól driver według wartości: informacja wzajemna jest obliczana między poszczególnymi wartościami pól driver i target.

* Wybór cech: użyj MutualInfo w wykresie siatkowym, aby wygenerować macierz, w której wszystkie pola są porównywane ze sobą na podstawie informacji wzajemnej.

MutualInfo niekoniecznie wskazuje na związek przyczynowy między polami dzielącymi informację wzajemną. Dwa pola mogą dzielić między sobą informację wzajemną, ale mogą nie być dla siebie równorzędnymi czynnikami wpływającymi. Na przykład, porównując sprzedaż lodów i temperaturę zewnętrzną, MutualInfo pokaże informację wzajemną między nimi. Nie wskaże natomiast, czy to temperatura zewnętrzna wpływa na sprzedaż lodów, co jest prawdopodobne, czy też to sprzedaż lodów ma wpływ na temperaturę zewnętrzną, co jest mało prawdopodobne.

Podczas obliczania informacji wzajemnej asocjacje wpływają na powiązanie i częstotliwość wartości z pól pochodzących z różnych tabel.

Zwracane wartości dla tych samych pól lub wyborów mogą się nieznacznie różnić. Wynika to z tego, że każde wywołanie MutualInfo działa na losowo wybranej próbce, a także z nieodłącznej losowości algorytmu MutualInfo.

MutualInfo można zastosować do funkcji Aggr().

Składnia:

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

Typ zwracanych danych: liczbowy

Argumenty:

Argumenty

| Argument | Opis |
| --- | --- |
| field1, field2 | Wyrażenia lub pola zawierające dwa zestawy próbek, dla których będzie obliczana informacja wzajemna. |
| datatype | Typy danych zawarte w polu driver i target,<br><br>1 lub 'dd' — dyskretne:dyskretne<br><br>2 lub 'cc' — ciągłe:ciągłe<br><br>3 lub 'cd' — ciągłe:dyskretne<br><br>4 lub 'dc' — dyskretne:ciągłe<br><br>W typach danych nie jest uwzględniana wielkość liter. |
| breakdownbyvalue | Wartość statyczna odpowiadająca wartości w polu driver. Jeśli podano, obliczony zostanie udział informacji wzajemnej w tej wartości. Możesz użyć ValueList() lub ValueLoop(). W przypadku dodania Null() obliczona zostanie ogólna informacja wzajemna dla wszystkich wartości w polu driver.<br><br>Podział według wartości wymaga, aby pole driver zawierało dane dyskretne. |
| samplesize | Liczba wartości do próbkowania z pól target i driver. Pobieranie próbek jest losowe. MutualInfo wymaga minimalnej wielkości próbki 80. MutualInfo domyślnie próbkuje tylko do 10 000 par danych, ponieważ działanie MutualInfo może intensywnie wykorzystywać zasoby. Można określić większą liczbę par danych w próbce. Jeśli MutualInfo spowoduje przekroczenie limitu czasu, zmniejsz rozmiar próbki. |
| SetExpression | Funkcja agregacji będzie domyślnie dokonywać agregacji na zbiorze możliwych wierszy zdefiniowanym przez selekcję. Alternatywny zestaw wierszy można zdefiniować za pomocą wyrażenia analizy zestawów. |
| DISTINCT | Jeśli przed argumentami funkcji występuje słowo DISTINCT, wówczas duplikaty wynikające z wyników obliczenia argumentów funkcji są pomijane. |
| TOTAL | Jeśli słowo TOTAL występuje przed argumentami funkcji, wówczas obliczenie jest wykonywane względem wszystkich możliwych wartości z uwzględnieniem bieżących selekcji, nie tylko tych należących do bieżącej wartości wymiaru, to znaczy z pominięciem wymiarów wykresu.<br><br>Korzystając z polecenia TOTAL [&lt;fld {.fld}&gt;], gdzie po kwalifikatorze TOTAL podana jest lista nazw pól stanowiących podzbiór zmiennych wymiarów wykresu, można utworzyć podzbiór wszystkich możliwych wartości.<br><br>[Określenie zakresu agregacji](https://help.qlik.com/pl-PL/cloud-services/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/define-aggregation-scope.htm) |

Ograniczenia:

Wartości tekstowe, wartości NULL i wartości brakujące w dowolnej części pary danych powodują pominięcie całej pary danych.

Przykłady i wyniki:

Dodaj skrypt przykładowy do swojej aplikacji i uruchom go. Aby zobaczyć wynik, dodaj do arkusza w swojej aplikacji pola wyszczególnione w kolumnie wyników.

Przykłady funkcji

| Przykład | Wynik |
| --- | --- |
| `mutualinfo(Age, Salary, 1)` | W przypadku tabeli zawierającej wymiar `Employee name` i miarę `mutualinfo(Age, Salary, 1)` zwracany jest wynik 0,99820986. Wynik ten jest wyświetlany tylko dla komórki sumy. |
| `mutualinfo(TOTAL Age, Salary, 1, null(), 81)` | Jeśli utworzysz panel filtrowania z wymiarem Gender, a następnie dokonasz wyborów z niego, wówczas pojawi się wynik 0,99805677 w przypadku wyboru Female oraz wynik 0,99847373 w przypadku wyboru Male. Przyczyną jest to, że selekcja wyklucza wszystkie wyniki, które nie należą do drugiej wartości wymiaru Gender. |
| `mutualinfo(TOTAL Age, Gender, 1, ValueLoop(25,35))` | 0.68196996. Wybór dowolnej wartości z Gender spowoduje zmianę na 0. |
| `mutualinfo({1} TOTAL Age, Salary, 1, null())` | 0.99820986. Zależy to od wyborów. Wyrażenie zestawu {1} ignoruje wszystkie wybory i wymiary. |

Dane zastosowane w przykładach:

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

Powiązane materiały edukacyjne:

* [Jak oceniać relacje za pomocą informacji wzajemnych?](https://help.qlik.com/lnk/How_evaluate_relationships_using_Mutual_information)

## Dowiedz się więcej

* [Jak oceniać relacje za pomocą informacji wzajemnych?](https://help.qlik.com/lnk/How_evaluate_relationships_using_Mutual_information)