SAS- 计算最高人口百分比

SAS- Calculate Top Percent of Population

我正在尝试寻求一些验证,这对大多数人来说可能微不足道,但我绝不是统计学专家。我正在尝试 select 根据每种药物和位置的得分排名前 1% 的患者。数据看起来像这样(规模更大):

Patient    drug    place    score
John         a      TX        12
Steven       a      TX        10 
Jim          B      TX        9
Sara         B      TX        4   
Tony         B      TX        2
Megan        a      OK        20
Tom          a      OK        10
Phil         B      OK        9 
Karen        B      OK        2 

我编写的用于计算前 1% 患者的代码片段如下: 过程 sql;

create table example as 
select *,
score/avg(score) as test_measure
from prior_table
group by drug, place
having test_measure>.99;
quit;

这是否实现了我正在尝试做的事情,或者我所做的一切都是错误的?对不起,如果这对大多数人来说真的很微不足道。 谢谢

有多种方法可以计算和估计百分位数。一个简单的方法是使用 PROC SUMMARY

proc summary data=have;
var score;
output out=pct p99=p99;
run;

这将创建一个名为 pct 的数据集,其变量 p99 包含第 99 个百分位数。

然后过滤您的 table 值 >=p99

proc sql noprint;
create table want as
select a.*
    from have as a
    where a.score >= (select p99 from pct);
quit;