如何在SAS中获得每个观察值的加权百分位数

如何在SAS中获得每个观察值的加权百分位数,sas,Sas,我有这样的数据集: data providers; input prv_id mbr_cnt value; datalines; 1100 25860 3.9025 4700 71855 8.8566 5500 72147 6.9918 6400 25144 4.5200 7000 58114 9.3391 7900 67222 7.5189 8300 54039 8.9301 880

我有这样的数据集:

data providers;
      input prv_id mbr_cnt value;
    datalines;
    1100  25860  3.9025
    4700  71855  8.8566
    5500  72147  6.9918
    6400  25144  4.5200
    7000  58114  9.3391
    7900  67222  7.5189
    8300  54039  8.9301
    8800  2204   3.2221
    9400  71600  9.9682
    10000 68807  7.6581
    10200 16322  8.6505
    10700 115118 12.4198
    11100 148235 18.2053
    11700 56441  8.6987
    12100 58556  7.6724
    12500 81865  10.1048
    12900 18106  3.7881
    13400 98701  12.9679
    13900 10347  3.7001
    14400 45516  6.3924
    ;
run;

我需要计算通过
mbr\u cnt
加权的每个观察值的百分位数。有没有办法在SAS中实现这一点?我尝试使用
proc-rank-data=providers-groups=100 out=providers\u百分位数但这只是给了我未加权的百分比。

PROC FREQ有一个权重选项,可以计算加权的累积百分比

proc freq data=providers;
   ods output list=freqout;
   weight mbr_cnt;
   tables value * prv_id / list missing;
run;

不确定这是否正是您需要的。

Reeza,您发送的链接解释了如何计算人口的百分位数。我想知道的是,例如,提供者1100所在的百分比,提供者5500所在的百分比,等等。我想创建一个新变量,显示每个观察值的百分位数,通过mbr_cnt加权。上面的链接不能做到这一点。那么,我建议改为通过数据步骤进行蛮力手动计算。或使用CDF图进行单变量预测。