gpt4 book ai didi

excel - SAS 和 Excel 中百分位数的不同结果

转载 作者:行者123 更新时间:2023-12-04 20:52:54 29 4
gpt4 key购买 nike

我正在尝试在 SAS 中获得百分位数。我在 Excel 中得到了百分位数,我也期望在 SAS 中得到相同的结果,但是当我在 SAS 中得到百分位数时,它与在 excel 中不同。

我正在使用以下示例数据,
1
2
3
4
5
6
7
8
9
10

我使用的 Excel 公式是 =PERCENTILE(A1:A10, K)
(K的值为0.05、0.1、0.2、0.3、0.4、0.5、0.6、0.7、0.8、0.9)

在excel中我得到的结果为

1.45, 1.9, 2.8, 3.7, 4.6, 5.5, 6.4, 7.3, 8.2, 9.1



在 SAS 我使用下面的代码
data nums;
input no 9.;
datalines;
1
2
3
4
5
6
7
8
9
10
;
run;

proc univariate data = nums noprint;
var no;
output out = pctls
pctlpts = 5 10 20 30 40 50 60 70 80 90
pctlpre = no
pctlname = pct5 pct10 pct20 pct30 pct40 pct50 pct60 pct70 pct80 pct90;
run;

在 SAS 中,我得到的结果为

1, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5, 7.5, 8.5, 9.5



我得到不同的结果。

我做错了吗?

需要你的帮助。

最佳答案

使用您的样本数据在 SAS 中编写您自己的百分位数函数
这是一步一步的伪代码

Sample=[1,2,3,4,5,6,7,8,9,10]
Sample size n=10
Percentile p= 0.9
(n-1)=9 (size of the array minus 1)
(n-1)p=(9*0.9)= 8.1
Integer part of (n-1)p, I = 8
Float part of (n-1)p, F=0.1
Supposing the first element of the array index is 1 and not 0
If F=0 then
Result = Sample[I+1]
Else
Result= Sample[I+1]+F(Sample[I+2]-Sample[I+1]
end
Since (n-1)p has a decimal component we take the else route of the If statement, using values:
Result= 9+0.1(10-9)
Result=9.1

关于excel - SAS 和 Excel 中百分位数的不同结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54089046/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com