计算变量的累积正态分布

时间:2019-02-23 22:25:00

标签: stata

我想创建一个新变量,它是另一个变量的累积正态分布。

在Microsoft Excel中,可以为此目的使用NORM.DIST()函数。

为什么Stata中的normal()函数会给出错误的结果?

1 个答案:

答案 0 :(得分:1)

这两个函数采用不同的参数并计算不同的事物。

如帮助文件所示,Stata中的normal()会产生累积的 standard 标准 分配。因此,您需要手动编程均值和标准差 在计算中。

考虑玩具变量foo

clear

input float foo
2173.0742
2359.8853
 2348.756
 2230.948
2287.8667
2240.9429
 2347.436
2187.2986
2214.4404
2085.7507
 2169.026
 2109.919
2093.1243
2095.3267
2257.6838
2096.9065
2435.4988
 2204.931
 2389.233
2395.1487
end

您可以获得具有所需输出的变量wanted,如下所示:

summarize foo
generate double wanted = normal((foo - r(mean)) / r(sd))

sort foo
list, separator(0)

     +----------------------+
     |      foo      wanted |
     |----------------------|
  1. | 2085.751   .09156513 |
  2. | 2093.124   .10277087 |
  3. | 2095.327   .10630367 |
  4. | 2096.906    .1088913 |
  5. | 2109.919   .13193719 |
  6. | 2169.026   .27620211 |
  7. | 2173.074   .28830887 |
  8. | 2187.299   .33271053 |
  9. | 2204.931   .39112507 |
 10. |  2214.44     .423783 |
 11. | 2230.948   .48160468 |
 12. | 2240.943   .51688294 |
 13. | 2257.684   .57553974 |
 14. | 2287.867    .6763894 |
 15. | 2347.436   .83764808 |
 16. | 2348.756    .8405014 |
 17. | 2359.885   .86324563 |
 18. | 2389.233   .91225237 |
 19. | 2395.149   .92030306 |
 20. | 2435.499   .96115312 |
     +----------------------+
相关问题