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 |
ターゲットおよびドライバーに含まれるデータ型は、 discrete:discrete の場合は 1 または 'dd' continuous:continuous の場合は 2 または 'cc' continuous:discrete の場合は 3 または 'cd' discrete:continuous の場合は 4 または 'dc' データ タイプは大文字と小文字を区別しません。 |
breakdownbyvalue |
ドライバー内の値に対応する静的値。入力すると、当該値に対する MI 貢献度が計算されます。ValueList() または ValueLoop() を使用できます。Null() を追加すると、ドライバー内の値すべてに対する MI 全体が計算されます。 値による内訳には、離散データを含むドライバーが必要です。 |
samplesize |
ターゲットおよびドライバーからサンプリングするための値の数。サンプリングはランダムに行われます。MutualInfo には、最低 80 サンプル サイズが必要です。MutualInfo はリソースを集中的に使用するため、MutualInfo は既定で最大 10,000 のデータペアのみをサンプルします。サンプル サイズでさらに多くのデータペアをサンプルするように指定できます。MutualInfo がタイムアウトになる場合は、サンプル サイズを縮小してください。 |
SetExpression | デフォルトでは、集計関数は選択されたレコード セットに対して集計を行います。Set 分析数式でレコード セットを定義することも可能です。 |
DISTINCT | 関数の引数の前に DISTINCT という用語が付いている場合、関数の引数の評価から生じる重複は無視されます。 |
TOTAL |
関数の引数の前に TOTAL の文字が配置されている場合、現在の軸の値に関連しているものだけでなく、現在の選択範囲内にあるすべての可能な値に対して計算が実行されます。つまりチャート軸は無視されます。 TOTAL [<fld {.fld}>] (ここで、TOTAL 修飾子の後には、1 つまたは複数の項目名のリストがチャート軸変数のサブセットとして続く) を使用して、合計絞込値のサブセットを作成できます。 |
制限事項:
データペアのどちらか、または両方にテキスト値、NULL 値、不明な値があると、すべてのデータペアが無視されます。
例と結果:
アプリにスクリプト例を追加して実行します。結果を表示するには、結果列に含まれている項目をアプリのシートに追加します。
例 | 結果 |
---|---|
mutualinfo(Age, Salary, 1) |
軸 |
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 '|');