CLUSTER、TREEプロシジャを用いてデンドログラムを描画した際に、正しく描かれないときがある
[OS]ALL
[リリース] 8.2
[キーワード] CLUSTER TREE TRIM
[質問]
SAS 8.2において、CLUSTERプロシジャを用いてクラスター分析を行い、次にTREEプロシジャでデンドログラムを描いたところ、
グラフウィンドウへの出力がおかしくなってしまいます。
/*********************実行したプログラム*********************/ proc cluster data=test method=ward trim=20 k=3 outtree=tree noprint; var x y z; run; proc tree data=tree; run; /***************************ここまで*************************/
[回答]
この問題は、SAS 8.2のTREEプロシジャ固有の不具合に原因があります。 具体的には、CLUSTERプロシジャにおいてTRIM=オプションを利用した場合、OUTTREE=オプションで指定して出力したデータセットの内容を、 TREEプロシジャ側で正しく認識することができないことに問題があります。
回避方法としては、OUTTREE=オプションで指定したデータセットにおいて変数 _NAME_ が CL1 ではなく、
また変数 _PARENT_ の値が「ヌル」であるオブザベーションをTREEプロシジャが正しく認識できていないため、
そのようなものがあればデータから除外してからTREEプロシジャを実行することが考えられます。
/***********************修正例****************************/ proc cluster data=test method=ward trim=20 k=3 outtree=tree noprint; var x y z; run; data tree2; set tree; if _name_ ne 'CL1' and _parent_ eq '' then delete; run; proc tree data=tree2; run; /***********************ここまで**************************/ |