# MutualInfo - função de gráfico

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

MutualInfo permite diferentes tipos de análise de MI:

* MI em pares: Calcule a MI entre um campo de determinante e um campo de meta.

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

* 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 retorna as informações mútuas agregadas para dois conjuntos de dados. Informações mútuas são uma medida do relacionamento entre os conjuntos de dados e é agregada para valores de pares (x, y) iterados nas dimensões do gráfico. Informações mútuas são medidas entre 0 e 1. MutualInfo é definida pela seleção ou pela expressão de conjunto.

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 a mesma meta e o mesmo determinante podem variar ligeiramente. 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] target, driver , datatype [, breakdownbyvalue [, samplesize ]])

Tipo de dados de retorno: numérico

Argumentos:

Argumentos

| Argumento | Descrição |
| --- | --- |
| target, driver | 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 discreto:discreto<br><br>2 ou 'cc' para contínuo:contínuo<br><br>3 ou 'cd' para contínuo:discreto<br><br>4 ou 'dc' para discreto:contínuo<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 na meta 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 é 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. O qualificador TOTAL pode vir seguido de uma lista de um ou mais nomes de campos dentro de sinais de maior e menor que &lt;fld&gt;. Esses nomes de campos devem ser um subconjunto das variáveis de dimensões do gráfico.<br><br>[Definindo o escopo de agregação](https://help.qlik.com/pt-BR/qlikview/September2026/Subsystems/Client/Content/QV_QlikView/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 a execução de script de exemplo a seu aplicativo e execute-o. Em seguida, adicione os campos listados na coluna de resultados a uma pasta no seu aplicativo para ver o resultado.

Exemplos de funções

| Exemplo | Resultado |
| --- | --- |
| `mutualinfo(Age, Salary, 1)` | Para uma tabela incluindo a dimensão `Employee name` e a medida `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 ao 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 '|');`