使用 z 分数的 SAS 分位数转换?
Quantile transformation with SAS using z-scores?
给出的是一个值 quantile_x
(比如 42 欧元),它对应于(非标准化)高斯分布的 x
-分位数(比如 99%)。我现在对对应于 y
分位数(比如 95%)的值 quantile_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-scores。不知何故,我没弄清楚如何使用 SAS 获取这两个数字。
编辑: 阅读 SAS docu on probnorm
看起来我在追求它的反函数因为 probnorm(1.96)=0.9750021049
.
参考资料
使用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
给出的是一个值 quantile_x
(比如 42 欧元),它对应于(非标准化)高斯分布的 x
-分位数(比如 99%)。我现在对对应于 y
分位数(比如 95%)的值 quantile_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-scores。不知何故,我没弄清楚如何使用 SAS 获取这两个数字。
编辑: 阅读 SAS docu on probnorm
看起来我在追求它的反函数因为 probnorm(1.96)=0.9750021049
.
参考资料
使用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