首页 > 解决方案 > 使用 z 分数与 SAS 进行分位数转换?

问题描述

给定的是一个值quantile_x(比如 42 欧元),它对应于x(非归一化)高斯分布的分位数(比如 99%)。我现在对与-quantilequantile_y对应的值(比如 95%)感兴趣。y

我很想简单地写

proc sql;
   create table want as
   select quantile_x
         ,%transform(quantile_x,x,y) as quantile_y
   from have;
quit;

对于给定的示例,%transform()实际上应该简单地执行以下产品

quantile_y = quantile_x * 1.645 / 2.326

这些数字分别是97% 分位数和 99% 分位数的z 分数。不知何故,我无法弄清楚如何使用 SAS 获得这两个数字。

编辑:在它上面阅读SAS 文档probnorm看起来我在使用它的反函数,因为probnorm(1.96)=0.9750021049.

参考

标签: sasgaussianquantile

解决方案


使用该quantile()功能。

data have;
  input x y actual;
  z_x = quantile('NORMAL',x);
  z_y = quantile('NORMAL',y);
  adjusted = actual * z_y / z_x;
cards;
 .99 .95 2.32635
 .99 .95 42
;

结果:

Obs      x       y      actual      z_x        z_y      adjusted

 1     0.99    0.95     2.3264    2.32635    1.64485      1.6449
 2     0.99    0.95    42.0000    2.32635    1.64485     29.6963

推荐阅读