右裾の長い連続データの簡単フォーマット

Last-modified: 2009-02-19 (木) 17:04:29

年間取引額など,値が大きくなるほど度数が小さくなる右に裾の長いデータに
平均や上限値などを気にせず,適当な範囲でリグルーピングする手っ取り早いフォーマットを紹介します.
右裾の長い指数分布にちかいデータは,10,100,1000という風に指数幅でフォーマットをきれば,
どこか一箇所の範囲にデータが集中することなく,だいたいうまく値を散らばらせることができます.
特に,経験的にビジネスデータでは,10,100の間に10の1.5乗(=31.6=約30),100と1000の間に10の2.5乗(=約300)
を挟み込んでいくと,もうすこし使いやすくなります.

proc format;
*指数分布を簡単にリグルーピングするフォーマット*;
value exp
low-0=0
0<-1=1
1<-3=3
3<-10=10
10<-30=30
30<-100=100
100<-300=300
300<-1000=1000
1000<-3000=3000
3000<-10000=10000
10000<-30000=30000
30000<-100000=100000
100000<-300000=300000
300000<-1000000=1000000
1000000<-high=gt1M
;
run;


proc tabulate data=sum formchar="           " missing noseps format=comma7.;
  class item;
  tables all item
        ,n pctn/rts=10;
  format item exp.;
run;

/*
             N     PctN

 All      100,000     100
 item
 10             2       0
 30         9,266       9
 100       38,155      38
 300       42,002      42
 1000      10,527      11
 3000          48       0
 */