Przeskocz do zawartości głównej

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 set.

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 funkcji: 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: numeric

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,

1 lub 'dd' — dyskretne:dyskretne

2 lub 'cc' — ciągłe:ciągłe

3 lub 'cd' — ciągłe:dyskretne

4 lub 'dc' — dyskretne:ciągłe

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.

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.

Korzystając z polecenia TOTAL [<fld {.fld}>], 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.

Określenie zakresu agregacji

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 aplikacji i uruchom ją. Następnie dodaj do arkusza w swojej aplikacji pola wyszczególnione w kolumnie wyników, aby wyświetlić wynik.

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)

0.99823109.

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 set {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|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 '|');