# MutualInfo - função de gráfico

MutualInfo calcula as informações mútuas (MI) entre dois campos ou entre valores agregados em Aggr().

MutualInfo retorna as informações mútuas agregadas para dois conjuntos de dados. Isso permite a análise do determinante principal entre um campo e um determinante potencial. Informações mútuas medem o relacionamento entre os conjuntos de dados e são agregadas para valores de pares (x, y) iterados nas dimensões do gráfico. Informações mútuas são medidas entre 0 e 1 e podem ser formatadas como um valor de percentil. O MutualInfo é definido por seleções ou por uma expressão de conjunto.

MutualInfo permite diferentes tipos de análise de MI:

* MI em pares: calcule a MI entre um campo de determinante e um campo de destino.

* Discriminação de determinantes por valor: a MI é calculada entre valores de campo individuais nos campos de determinante e de destino.

* Seleção de recursos: use MutualInfo em um gráfico de grade para criar uma matriz na qual todos os campos são comparados entre si com base na MI.

MutualInfo não indica necessariamente causalidade entre campos que compartilham informações mútuas. Dois campos podem compartilhar informações mútuas, mas podem não ser determinantes iguais um para o outro. Por exemplo, ao comparar as vendas de sorvetes e a temperatura externa, MutualInfo mostrará informações mútuas entre os dois. Porém, não indicará se é a temperatura externa que impulsiona as vendas de sorvetes, o que é provável, ou se são as vendas de sorvete que impulsionam a temperatura externa, o que é improvável.

Ao calcular informações mútuas, as associações afetam a correspondência entre e a frequência de valores de campos que são de tabelas diferentes.

Os valores retornados para os mesmos campos ou seleções podem variar um pouco. Isso acontece porque cada chamada MutualInfo opera em uma amostra selecionada aleatoriamente e devido à aleatoriedade inerente do algoritmo MutualInfo.

MutualInfo pode ser aplicado à função Aggr().

Sintaxe:

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

Tipo de dados de retorno: numérico

Argumentos:

Argumentos

| Argumento | Descrição |
| --- | --- |
| field1, field2 | As expressões ou campos que contêm os dois conjuntos de amostras para os quais as informações mútuas devem ser medidas. |
| datatype | Os tipos de dados contidos na meta e no determinante,<br><br>1 ou 'dd' para discretos:discretos<br><br>2 ou 'cc' para contínuos:contínuos<br><br>3 ou 'cd' para contínuos:discretos<br><br>4 ou 'dc' para discretos:contínuos<br><br>Tipos de dados não diferenciam maiúsculas de minúsculas. |
| breakdownbyvalue | Um valor estático correspondente a um valor no determinante. Se fornecido, o cálculo será aplicado à contribuição de MI para esse valor. Você pode usar ValueList() ou ValueLoop(). Se Null() for adicionado, o cálculo será aplicado à MI em geral para todos os valores no determinante.<br><br>A divisão por valor requer que o determinante contenha dados discretos. |
| samplesize | O número de valores para obtenção de amostras no destino e no determinante. A amostragem é aleatória. MutualInfo requer um tamanho mínimo de amostra de 80. Por padrão, MutualInfo apenas define amostras de até 10.000 pares de dados, já que MutualInfo pode consumir muitos recursos. Você pode especificar um número maior de pares de dados no tamanho da amostra. Se MutualInfo atingir o tempo limite, reduza o tamanho da amostra. |
| SetExpression | Por padrão, a função de agregação agregará um conjunto de registros possíveis definidos pela seleção. Um conjunto de registros alternativos pode ser definido por uma expressão de análise. |
| DISTINCT | Se a palavra DISTINCT aparecer antes dos argumentos de função, as duplicatas resultantes da avaliação dos argumentos de função serão ignoradas. |
| TOTAL | Se a palavra TOTAL ocorrer antes dos argumentos da função, o cálculo será feito sobre todos os valores possíveis, dadas as seleções atuais, e não apenas sobre os pertinentes ao valor dimensional atual, isto é, desconsiderando as dimensões do gráfico.<br><br>Usando TOTAL [&lt;fld {.fld}&gt;], em que o qualificador TOTAL é seguido por uma lista de um ou mais nomes de campo como um subconjunto das variáveis de dimensão de gráfico, você cria um subconjunto dos valores possíveis totais.<br><br>[Definindo o escopo de agregação](https://help.qlik.com/pt-BR/cloud-services/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/define-aggregation-scope.htm) |

Limitações:

Valores de texto, valores NULLe valores ausentes em qualquer uma das duas partes de um par de dados fazem com que o par de dados inteiro seja ignorado.

Exemplos e resultados:

Adicione o script de exemplo ao seu aplicativo e execute-o. Para ver o resultado, adicione os campos listados na coluna de resultados a uma pasta no seu aplicativo.

Exemplos de funções

| Exemplo | Resultado |
| --- | --- |
| `mutualinfo(Age, Salary, 1)` | Para uma tabela incluindo a dimensão `Employee name` e a medição `mutualinfo(Age, Salary, 1)`, o resultado é 0,99820986. O resultado é exibido apenas para a célula de totais. |
| `mutualinfo(TOTAL Age, Salary, 1, null(), 81)` | Se você criar um painel de filtro com a dimensão Gender e fizer seleções nele, verá o resultado 0,99805677 quando Female for selecionado e 0,99847373 se Male for selecionado. Isso ocorre porque a seleção exclui todos os resultados que não pertencem a outro valor de Gender. |
| `mutualinfo(TOTAL Age, Gender, 1, ValueLoop(25,35))` | 0.68196996. Selecionar qualquer valor de Gender mudará isso para 0. |
| `mutualinfo({1} TOTAL Age, Salary, 1, null())` | 0.99820986. Isso é independente das seleções. A expressão de conjunto {1} ignora todas as seleções e dimensões. |

Dados usados nos exemplos:

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

Conteúdo de aprendizagem relacionado:

* [Como faço para avaliar relacionamentos usando informações mútuas?](https://help.qlik.com/lnk/How_evaluate_relationships_using_Mutual_information)

## Saiba mais

* [Como faço para avaliar relacionamentos usando informações mútuas?](https://help.qlik.com/lnk/How_evaluate_relationships_using_Mutual_information)