前使ったダミーデータを雑にずらして二峰性にしたのでなんか、ラクダのコブか、戦艦みたいになっちゃいました
3Dグラフの、視点角度をループでずらして何枚も作図しながらanimationでまとめてGIFファイルにしてみました
なんか微妙に縮尺がブレて、ん?みたいになるので、ほんとはなんか調整がいるのかも
底面に配置したのはHPBINプロシジャでの単純なQuantile Binningの10ビンバージョンです
ようするに各変量で、ただ10%ごとに分位点だしてそれでメッシュしただけっす。
2変量に対しての3次元RCPがプロットとして有用かどうかは、ちょっと私自身、まだ実装例がないので、ちょっと保留で。散布図とヒートマップ、BAGPLOTなど2次元のプロットで複合評価するほうが正確に把握できる気もしている… 身も蓋もないけど(笑)
data wk1;
seed = 15678;
do i = 1 to 500;
z1 = rannor(seed);
z2 = rannor(seed);
z3 = rannor(seed);
x = 3*z1 + z2;
y = 3*z1 + z3;
output;
end;
do i = 1 to 500;
z1 = rannor(seed)+3;
z2 = rannor(seed)+3;
z3 = rannor(seed)+3;
x = 3*z1 + z2;
y = 3*z1 + z3;
output;
end;
drop seed;
run;
proc kde data=wk1 ;
bivar x y/ out=kde;
run;
data wk2;
set wk1(in=wk) kde(in=kde);
if wk then do;
density2=ranuni(777)*0.004;
end;
if kde then do;
x=value1;
y=value2;
if density>10**-5 then density2=density+0.01;
else delete;
end;
keep x y density2;
run;
ods output Mapping=map;
proc hpbin data=wk1 numbin=10 quantile ;
input x y;
run;
data anno2;
set map;
where same ^missing(LB);
if variable="x" then do;
function='move'; xsys='1';ysys='2';zsys='2';color="gray";line=2;size=0.1; x=0; y=LB; z=0;output;
function='draw'; x=100; y=LB; z=0;output;
end;
if variable="y" then do;
function='move'; xsys='2';ysys='1';zsys='2';color="gray";line=2;size=0.1; x=LB; y=0; z=0;output;
function='draw'; x=LB; y=100; z=0;output;
end;
run;
%macro plot;
%do rotate=0 %to 360 %by 10;
goptions reset=all border cback=white htitle=12pt;
proc g3d data=wk2;
scatter x*y=density2 /shape="balloon" annotate=anno2 yticknum=2 xticknum=2 size=0.5 rotate=&rotate noneedle
;
run;
%end;
%mend;
options ANIMATION=START ANIMDURATION=0.5 PRINTERPATH=GIF nodate;
ods printer file="xxxxx\test\test.gif" ;
%plot
ods printer close ;
options ANIMATION=STOP ;
0 件のコメント:
コメントを投稿