0シチュエーションの設定いくつかの対となる組み合わせをもつ変数の相関あるいは偏相関の可視化法のひとつで,いうなれば相関行列(or偏―)をより直感的に見せるための工夫です(Figure)。一瞥したときの読み取りやすさ・伝わりやすさといった点では多くの場合表(相関行列)よりも優れます。相関行列なので2変数の線形関係を確認したり...といった必要が生じる場合には力及ぶものではありません(この場合散布図行列)。ここでは,次表のデータをもとにして,変数の組み合わせ方を網羅したうえで,枝(branch)の太さと色で相関係数をあらわすグラフをつくります。ここで枝の太さは相関係数の絶対値を,枝の色は相関係数の正負を表現するものとします。ここでは作図部分でのみVBAを使用します。VBAを利用する観点から,せっかくなので,しくみとして,2つのタイプを選択的に利用できるような構造にしていきたいと思います。ここに言う「2つのタイプ」とは,具体的には,[type1]ノード・枝と,相関係数の絶対値の目安を示す凡例からなる無向グラフ[type2]ノード・枝と,枝の中点に表示される相関係数からなる無向グラフを指すものです。「大は小を兼ねる」的な構造シートのです。ひな形として利用する場合には,最初から多くの変数を想定してシートを仕上げてしまった方が後々はかどるかもしれません。散布図を素地にして図を描きます。ノード・枝およびラベルはそれぞれ単独の系列を消費して表示します。したがってエクセルの仕様上の系列数の上限(255)以内で図のすべての要素が描ける場合のみ正常に機能します。[マクロ]エラー処理は施してありません。筆者にとって想定の至らない事象などを原因に不正確が生じる可能性を排除するものではありません。筆者はこれによって利用される方がこうむった不利益に対しいかなる責任も負いかねますので,このマクロをご利用いただく場合には,他処理系などで事前にアウトプットを十分検証してくださいますようお願い申し上げます。以下,相関を図示するために利用する,無向グラフの具体的な作成の手続きです。「元データ」シートの他に4つのあたらしいシートを追加します。あたらしく追加するシート名とそれらシートの単純な役割は,それぞれ次の通りです。枝の座標を求める以下数式・コードのなかでシートを参照する場面では,すでに上記の名称が組み込まれています。複雑なので基本的には推奨しませんが,他の名称を利用したい場合には,必要な個所すべてを漏らさず変更してください。,「元データ」シートの空いている場所で相関行列を求めます。これはアドイン「分析ツール」を使うと簡単です。相関行列を求めたら,この部分をコピーしておきます。Matrix」シートに切り替え,セルA1に行列を逆にして(入れ替えて)値のみ貼り付けます(「形式を選択して貼り付け」)※。これにより,1つ1つの枝が持つ相関係数の値を「Branch」シートにて与えます。1において,「分析ツール」アドイン以外の方法で右上が省略されないタイプの相関行列を出力した場合には,そのまま値のみコピペでOKです。3[準備]"Legend"シート「Legend」シートに切り替えます。これは凡例用のシートです。DLY)にデータラベルを打つための情報を与えます。...ということで,セルA1からG2に,以下のように入力(or下表をコピペ。rX1X2Y1Y2DLXDLY0.11.52-0.8=D21.75=D2つづいてセルA3およびD3に下表の式を入力し,これらを11行目までコピーします。A3=A2+0.1D3=D2+(0.019*10*A2+0.0794)下図の定数または式をそれぞれ11行目までコピーします(セルE2~G2は必ず1列ずつコピー)。Polygon」シートに切り替えます。見出しおよびすべての変数名を次のように入力します。ここで並べた変数の順番を,後段では「序列」と呼びます。このとき,シートの上方の変数を上位,下方の変数を下位とします。C2およびD2に下表の式を入力し,これらを表の最下行までコピーします。5[準備]"Branch"シート(1)「Branch」シートに切り替えます。セルA1~J1に次の見出しをつくります。No.N1N2N1XN2XN1YN2YrrXrY次にB・C列に必要な枝の組み合わせをつくります。変数の数をnとしたとき,組み合わせの総数はnC2=n!/(2!(n-2)!)となります。この例示ではn=8なので,28本の枝が必要です。これをあらかじめ見積もっておくことは以下の作業に関して必須ではありません。Polygon」シートの"Caption"列の内容]を)埋めていきます。C列は,B列の同じ変数の1つのブロックを基準にして,その変数でいう序列の上位と同位を弾いた残りの変数名を下位に向けて埋めていきます。B列の変数名「E」についてなら,序列の上位と同位はABCDEなので,B列の「E」変数に対応するC列の領域には残りのFGHを入力します。ABACADAEAFAGAHBCBDBEBFBGBHCDCECFCGCHDEDFDGDHEFEGEHFGFHGHセルA2に下表の式を入力し,これを表の最下行までコピーします。6[準備]"Branch"シート(2)セルD2~G2に下表の式を入力します。入力後,これらを表の最下行までコピーします。7[準備]"Branch"シート(3)セルH2~J2に下表の式を入力します。入力後,これらを表の最下行までコピーします。2)I2=D2+(E2-D2)/2J2=F2+(G2-F2)/2念のため,下図は上の操作の直後の状態を示します(サンプルのデータによるもの)。Polygon」シートに切り替えます。このシートの下の範囲のデータを使って,散布図を作成しておきます。この散布図のマーカーを任意の大きさに設定し,変数名でデータラベルをつくります。デフォルトでの枝の最大幅は16ptとしています(変更は直接コードの「初期値設定」から)。したがって,マーカーの大きさは少なくともそれ以上が必要です。筆者個人の嗜好からは,40pt前後がバランス的によさげなように感じます。このあと扱うマクロはアクティブにしたグラフに対してのみ処理を重ねていく仕様です。あれこれ試行したい場合に,すぐ上で作ったようなプレーンなグラフを都度用意していくのも面倒なので,元の図を“ひな形”として利用する(つまり手を加えない)ことを想定した方式を採りました。したがってマクロの運用のしかたとしては,まず“ひな形”を複製し,その複製した方に対して適用していくことをオススメします。9[描画]コードの組み込み下のコードをVBEから標準モジュールを追加して組み込みます。Polygon」シートにつくったグラフのうち,処理の対象とするグラフをアクティブ(選択)にして,「マクロ」ダイアログを呼び出します。0のtype2グラフを作成します。いずれかのマクロを選択し実行ボタンをクリックすると,アクティブにしたグラフに対し適宜処理が加えられていきます。11無向グラフの完成しばらくののち,選択したマクロによって,上下いずれかの形式のグラフへと加工されます。これに対して任意に修正あるいは書式設定を加え,下のような当初に目的としたグラフが完成です。偏相関行列」における偏相関係数のオプションその他の参照このサイトの関連How-toです。等確率楕円付き散布図の作成メインサイト「ひとりマーケティングのためのデータ分析」の散布図に関するHow-toです。