# MutualInfo - チャート関数

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

MutualInfo は、2 つのデータセットについて集計された相互情報を返します。これにより、項目と潜在的な要因との間で主要因分析が可能になります。相関情報は、データセット間の関係を表すメジャーとして、チャート軸に対して反復処理される (x,y) ペア値に対して集計されます。相関情報は 0～1 の間で測定され、パーセンタイル値として書式設定できます。MutualInfo は、選択または set 数式によって定義されます。

MutualInfo を使用すると、さまざまな種類の MI 分析ができます。

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

* 値別のドライバー内訳: MI は、ドライバーおよびターゲット項目で個別の項目値ごとに計算されます。

* 選択された特徴量: グリッド チャートで MutualInfo を使用して、MI に基づいてすべての項目が互いに比較されるマトリックスを生成します。

MutualInfo は、相互に情報を共有する項目間の因果関係を必ずしも示すものではありません。2 つの項目は、相互に情報を共有していますが、お互いに同じ要因ではない場合があります。例えば、アイスクリームの売り上げと外の気温を比較した場合、MutualInfo はこの 2 つの間の相互情報を示します。外の気温がアイスクリームの売上をの要因になっているのか（その可能性は高い）、アイスクリームの売上が外気温の要因になっているのか（その可能性は低い）を示すものではありません。

相互情報を計算する場合、関連付けは異なるテーブルの項目の値間の対応と頻度に影響します。

同じ項目や選択でも、返される値が若干異なる場合があります。これは、各 MutualInfo 呼び出しがランダムに選択されたサンプルで動作し、MutualInfo アルゴリズムに固有のランダム性があるためです。

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

構文:

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

戻り値データ型： 数値

引数：

引数

| 引数 | 説明 |
| --- | --- |
| field1, field2 | 相互情報を測定する 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 はリソースを集中的に使用するため、MutualInfo は既定で最大 10,000 のデータペアのみをサンプルします。サンプル サイズでさらに多くのデータペアをサンプルするように指定できます。MutualInfo がタイムアウトになる場合は、サンプル サイズを縮小してください。 |
| SetExpression | デフォルトでは、集計関数は選択されたレコード セットに対して集計を行います。Set 分析数式でレコード セットを定義することも可能です。 |
| DISTINCT | 関数の引数の前に DISTINCT という用語が付いている場合、関数の引数の評価から生じる重複は無視されます。 |
| TOTAL | 関数の引数の前に TOTAL の文字が配置されている場合、現在の軸の値に関連しているものだけでなく、現在の選択範囲内にあるすべての可能な値に対して計算が実行されます。つまりチャート軸は無視されます。<br><br>TOTAL [&lt;fld {.fld}&gt;] (ここで、TOTAL 修飾子の後には、1 つまたは複数の項目名のリストがチャート軸変数のサブセットとして続く) を使用して、合計絞込値のサブセットを作成できます。<br><br>[集計範囲の定義](https://help.qlik.com/ja-JP/cloud-services/Subsystems/Hub/Content/Sense_Hub/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 '|');`

関連する学習コンテンツ：

* [相互情報を使用して関係を評価する方法](https://help.qlik.com/lnk/How_evaluate_relationships_using_Mutual_information)

## 詳細を見る

* [相互情報を使用して関係を評価する方法](https://help.qlik.com/lnk/How_evaluate_relationships_using_Mutual_information)