Две функции принимают разные аргументы и вычисляют разные вещи.
Как указывает файл справки, normal()
в Stata дает кумулятивное стандартное нормальное распределение.Следовательно, вам нужно вручную запрограммировать среднее и стандартное отклонение в расчетах.
Рассмотрите игрушечную переменную 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 |
+----------------------+