# MutualInfo - チャート関数

MutualInfo は、2 つの項目間または Aggr() の集計値間の相互情報量 (MI) を計算します。

MutualInfo により、異なる種類の MI 分析が可能になります。

* ペアワイズ MI: ドライバー項目とターゲット項目間の MI を計算します。

* ドライバーの値別詳細: ドライバー項目とターゲット項目にある、個別の項目値間の MI を計算します。

* 機能の選択: グリッド チャートで MutualInfo 使用し、MI に基づいてすべての項目を相互に比較するマトリックスを作成します。

MutualInfo は、2 つのデータ セットの集計された相互情報を返します。相互情報は、データ セット間の関係を表すメジャーであり、チャート軸に対して反復処理される (x,y) のペア値のために集計されます。相互情報のメジャーは、0 と 1 の間です。MutualInfo は、選択または set 数式で定義します。

相互情報を計算する場合、関係性は、異なるテーブルに由来する項目からの値の間と、値の頻度の対応に影響を与えます。

同じターゲットとドライバーの戻り値は、若干異なる場合があります。これは、各 MutualInfo 呼び出しがランダムに選択されたサンプルで動作することと、MutualInfo アルゴリズム特有のランダム性に起因します。

MutualInfo は、Aggr() 関数に適用できます。

構文:

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

戻り値データ型： 数値

引数：

引数

| 引数 | 説明 |
| --- | --- |
| target, driver | 相互情報をメジャーする 2 つのサンプル セットを含む数式または項目。 |
| datatype | ターゲットとドライバーに含まれるデータ タイプは、<br><br>discrete:discrete の場合、1 または 'dd'<br><br>continuous:continuous の場合、2 または'cc'<br><br>continuous:discrete の場合、3 または 'cd'<br><br>discrete:continuous の場合、4 または 'dc'<br><br>データ タイプは、大文字と小文字を区別しません。 |
| breakdownbyvalue | ドライバーにある値に対応する静的値。提供されると、計算はその値の MI 貢献度を算出します。ValueList() または ValueLoop() を使用できます。Null() が追加された場合、計算はドライバーにあるすべての値の MI 全体を算出します。<br><br>値別で細分化するには、ドライバーに離散データが含まれている必要があります。 |
| samplesize | ターゲットとドライバーからサンプルへの値の数。サンプリングはランダムです。MutualInfo には、最低 80 個のサンプル サイズが必要です。既定では、MutualInfo がサンプルできるのは最大 10,000 個のデータペアに限定されます。これは、MutualInfo がリソースを集中的に使用するためです。サンプル サイズで、より多くのデータペアを指定できます。MutualInfo がタイムアウトする場合は、サンプル サイズを減らしてください |
| SetExpression | デフォルトでは、集計関数は選択されたレコード セットに対して集計を行います。Set 分析数式でレコード セットを定義することも可能です。 |
| DISTINCT | 関数の引数の前に DISTINCT という用語が付いている場合、関数の引数の評価から生じる重複は無視されます。 |
| TOTAL | 関数の引数の前に TOTAL の文字が配置されている場合、現在の軸の値に関連しているものだけでなく、現在の選択範囲内にあるすべての可能な値に対して計算が実行されます。つまりチャート軸は無視されます。 TOTAL 修飾子の後には、山括弧 &lt;fld&gt; で囲んだ 1 つ以上の項目名のリストを続けることができます。これらの項目名は、チャート軸の変数のサブセットにする必要があります。<br><br>[集計範囲の定義](https://help.qlik.com/ja-JP/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. これは、選択に依存しません。set 数式 {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 '|');`