# MutualInfo - 차트 함수

MutualInfo는 두 필드 사이 또는 Aggr()에서 집계된 값 사이의 MI(상호 정보)를 계산합니다.

MutualInfo는 다양한 종류의 MI 분석을 가능하게 합니다.

* Pair-wise MI: 드라이버 필드와 대상 필드 사이의 MI를 계산합니다.

* 값을 기준으로 드라이버 분류: MI는 드라이버 및 대상 필드의 개별 필드 값 사이에서 계산됩니다.

* 기능 선택: 그리드형 차트에서 MutualInfo를 사용하여 MI를 기반으로 모든 필드를 서로 비교하는 행렬을 만듭니다.

MutualInfo는 두 데이터 집합에 대해 집계된 상호 정보를 반환합니다. 상호 정보는 데이터 집합 간의 관계에 대한 측정값으로, 차트 차원에서 반복되는 (x,y) 쌍 값에 대해 집계됩니다. 상호 정보는 0과 1 사이에서 측정됩니다. MutualInfo는 선택 또는 집합 표현식에 의해 정의됩니다.

상호 정보를 계산할 때 연결은 서로 다른 테이블에 있는 필드의 값 간의 대응성과 빈도에 영향을 줍니다.

동일한 대상 및 드라이버에 대해 반환되는 값은 약간 다를 수 있습니다. 이는 각 MutualInfo의 호출이 무작위로 선택된 샘플과 MutualInfo 알고리즘의 고유한 무작위성에 대해 작동하기 때문입니다.

MutualInfo는 Aggr() 함수에 적용될 수 있습니다.

구문:

MutualInfo({SetExpression}] [DISTINCT] [TOTAL] target, driver , datatype [, breakdownbyvalue [, samplesize ]])

반환 데이터 유형: 숫자

인수:

인수

| 인수 | 설명 |
| --- | --- |
| target, driver | 상호 정보가 측정될 두 샘플 집합이 포함된 표현식 또는 필드. |
| datatype | 대상 및 드라이버에 포함된 데이터 유형,<br><br>불연속:불연속인 경우 1 또는 'dd'<br><br>연속:연속인 경우 2 또는 'cc'<br><br>연속:불연속인 경우 3 또는 'cd'<br><br>불연속:연속인 경우 4 또는 'dc'<br><br>데이터 유형은 대/소문자를 구분하지 않습니다. |
| breakdownbyvalue | 드라이버의 값에 해당하는 정적 값입니다. 제공된 경우 계산은 해당 값에 대한 MI 기여도를 계산합니다. ValueList() 또는 ValueLoop()를 사용할 수 있습니다. Null()이 추가되면 계산에서 드라이버의 모든 값에 대한 전체 MI를 계산합니다.<br><br>값을 기준으로 분류하려면 드라이버에 불연속 데이터가 포함되어야 합니다. |
| samplesize | 대상 및 드라이버에서 샘플링할 값의 수입니다. 샘플링은 무작위입니다. MutualInfo의 최소 샘플 크기는 80이어야 합니다. 기본적으로 MutualInfo는 최대 10,000개의 데이터 쌍만 샘플링하므로 MutualInfo는 리소스 집약적일 수 있습니다. 샘플 크기에 더 많은 수의 데이터 쌍을 지정할 수 있습니다. MutualInfo 시간이 초과되면 샘플 크기를 줄이십시오. |
| SetExpression | 기본적으로 집계 함수는 선택에 의해 정의된 사용 가능한 레코드의 집합을 집계합니다. 집합 분석 표현식으로 대체 레코드 집합을 정의할 수 있습니다. |
| DISTINCT | 함수 인수 앞에 DISTINCT라는 단어가 있을 경우 해당 함수 인수의 평가 결과로 생성된 중복이 무시됩니다. |
| TOTAL | TOTAL이 함수 인수 앞에 오는 경우, 현재 선택을 고려하되 현재 차원 값에 관련되지 않은 가능한 모든 값에 대한 계산이 실행됩니다. 즉, 차트 차원은 무시됩니다. TOTAL 한정자 뒤에는 꺾쇠 괄호로 묶인 하나 이상의 필드 이름 목록이 올 수 있습니다(&lt;fld&gt;). 이러한 필드 이름은 차트 차원 변수의 하위 집합이어야 합니다.<br><br>[집계 범위 정의](https://help.qlik.com/ko-KR/qlikview/September2026/Subsystems/Client/Content/QV_QlikView/ChartFunctions/define-aggregation-scope.htm) |

제한 사항:

데이터 쌍의 한쪽 또는 양쪽에 텍스트 값, NULL 값, 누락된 값이 있으면 전체 데이터 쌍이 무시됩니다.

예 및 결과:

예제 스크립트를 앱에 추 가하고 실행합니다. 그런 다음, 결과를 보기 위해 결과 열에 나열된 필드를 앱의 시트에 추가합니다.

함수 예

| 예 | 결과 |
| --- | --- |
| `mutualinfo(Age, Salary, 1)` | 차원 `Employee name` 및 측정값 `mutualinfo(Age, Salary, 1)`, 결과는 0.99820986입니다. 결과는 합계 셀에만 표시됩니다. |
| `mutualinfo(TOTAL Age, Salary, 1, null(), 81)` | 차원이 Gender인 필터 창을 만들고 여기에서 선택하고 Female이 선택되면 0.99805677, Male이 선택되면 0.99847373이 표시됩니다. 선택 시 다른 값 Gender에 속하지 않는 모든 결과가 제외되기 때문입니다. |
| `mutualinfo(TOTAL Age, Gender, 1, ValueLoop(25,35))` | 0.68196996. Gender에서 값을 선택하면 0으로 변경됩니다. |
| `mutualinfo({1} TOTAL Age, Salary, 1, null())` | 0.99820986. 이것은 선택과 무관합니다. 집합 표현식 {1}은 모든 선택 및 차원을 무시합니다. |

예에서 사용된 데이터:

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