絶対SASでやらない方がいい気がする
3Dグラフの機能については,もうサポートする気がないって宣言してるレベルで無理.
たぶん,ヒートマップとかもそうですけど,2次元に上手く落とし込めるでしょ?みたいな主張なのかなぁ
SG系での3次元プロットの機能が旧GPLOT系より悪くなってるんだからどうしようもない
ただ,無理ゲーには挑みたくなるのが,魔界塔士の時代からの人のサガなので…
SAS社のサイトに載ってた適当なテストデータから
data wk1;
seed = 15678;
do i = 1 to 1000;
z1 = rannor(seed);
z2 = rannor(seed);
z3 = rannor(seed);
x = 3*z1 + z2;
y = 3*z1 + z3;
output;
end;
drop seed;
run;
2変量に対しての確率密度もKDEで問題なく計算できます
あとの流れは通常のRain cloudと一緒なんですけど
proc G3Dが一種類のプロットしか描けずに,組み合わせができないので 雲の部分をSURFACE(面プロット)で
描くのを諦めて,雨と同じ散布図の集合で表現するしかない… そうすると空を雨が覆ってしまうので
truncateの有無にかかわらず,確率密度関数が極小のところは消してしまうとスッキリ(いいのか?しらん)
proc kde data=wk1 ;
bivar x y/ out=kde;
run;
data wk2;
set wk1(in=wk) kde(in=kde);
if wk then do;
density2=0.1+ranuni(777)*0.01;
end;
if kde then do;
x=value1;
y=value2;
else delete;
end;
keep x y density2;
run;
proc g3d data=wk2;
scatter x*y=density2 /shape="balloon" size=0.5 noneedle;
run;
Z軸に意味ないから軸けしたいけどGPLOTのAXISステートメントがZ軸に効かんという謎制約….NOAXISは3軸とも消すか消さないかを選択できるという,野性的すぎる大胆な仕様…
あとは,これだと,1変量の時の箱髭にあたる,位置の指標がないので
2変量用箱ひげ図的な用途で箱と同じくTukeyさまが編み出したBAGPLOTとかを配置してみたいけど,マイナー過ぎてSASに実装されてない(JMPにはあるのに…)
手で実装するにはしんどいし,実装できたとして,このG3Dに組み込む術は多分ANNOTATEしかない…
0 件のコメント:
コメントを投稿