パラレルコーディネート

高次元データのデータ分布状況を各次元の変数軸を並べ視覚化および分析する方法。多次元の数値データセットの相関関係やクラスタリング(データの群化/集中化)・外れ値などの状況を直感的に把握できる。平行座標とも呼ばれ略称は"PCP"()。
一般的なグラフでは軸は直角に垂直配置(通常は、x軸が横軸、y軸が縦軸)されるが、平行座標においては互いに平行に配置(x軸とy軸が平行、以下z軸も平行…)される。散布図では、項目が点で表示されるのに対し、平行座標では、1つの項目が平行軸をジグザグに結ぶポリライン(ギザギザの折れ線)で表現され、関連する属性値の位置で各軸と1回だけ交差する。パラレルコーディネートプロットや平行座標プロットと表記されることもある。パラレルカテゴリに似ているが、パラレルカテゴリは質的変数に用いられるもので、パラレルコーディネートでは量的変数を扱う。離散値も扱うこともできる。
概要.
平行座標は、多変量の属性間の相関関係を確認したいという動機で設計されている。一般的に、相関を見つけるには散布図行列()を利用するが、多変量"n"の場合はCの組み合わせが必要で多次元になるほど現実的ではなくなる。これに対し平行座標は多変量にも対応しており、全属性の概要把握、個々の属性の範囲の特定、外れ値の検出、クラスタの検出など、様々なメリットがあり、多変量解析に適している。ビッグデータの特徴の一つである高次元データには散布図の代替えとして有用であるが、必ずしも大規模データに対しては適していないことに注意が必要(散布図も大規模データでは破綻するが平行座標のほうがよりシビア)で、そのような場合はダウンサンプリングなどを行う。
軸の並び順に関しては、データセットからデータを読み出した際の登録順もしくは読出順、属性名のアルファベット順や類似性などによるが、特により多次元になった際に並び順が重要なため、相関係数順など数学的に決定した基準で並び変えられることもある。
19世紀頃から、パラレルコーディネートの概念を持つチャートは存在していたものの、コンセプトとして記されたものは、1981年にIBM研究者のAlfred Inselbergによるもの。
インターフェイス.
相関関係の把握には並び順が重要なため、インタラクティブなインターフェイスを持つものもあり、軸の位置を入れ替えたり、一部の値(例えば上限と下限を超える値)のみを表示することができ(ブラッシング と呼ばれる機能)、目的の変数に対して他の変数ではどのように分布しているかといったことを容易に把握できる。
ポリラインの場合は数万個レベルのデータが実質上の限界であり、これを超えるデータを扱う場合は密度分布に基づく濃淡描画を行うこともあるが、ブラッシングなどが困難となるため、利点を生かしたい場合は数千点程度で使用するのが現実的。軸数も数千次元でも扱うこともできるが現実的なのは数十次元までの範囲で、より大量の変数を扱いたい場合は、変数選択などを行い有効な変数を絞り込み次元数を下げて利用する。
各項目(変数)に対して、着色できるインターフェイスもあり、例えば目的の変数の大小に合わせて虹色にした場合、正の相関を持つ変数は同じ方向の虹色、負の相関を持つ変数は上下逆方向の虹色になり、相関関係を直感的に把握することができる。色が無秩序に混ざっている変数は無相関と考えられ、また、色が塊に分かれる変数はクラスタリングしている可能性が分かる。
ソフトウェア.
データベースを平行座標に変換するために公開されている著名なソフトウェアはELKI、GGobi、Mondrian、Orange、ROOTなど。ライブラリにはJavaScriptではProtovis.js、D3.jsがあり、D3.Parcoords.jsは、平行座標プロット作成に特化したライブラリ。PythonのPandasでは、matplotlibが使用できる。R言語では標準で含まれているMASSライブラリのparcoordがあるもののインタラクティブではない。ggplot用にはGGallyライブラリのggparcoordなどがある。クロスプラットホームで使えるライブラリとしてPlotlyがあり、Python/R/ggplot2/Julia/Javascript/F#/MATLABなどで使用できる。