Рассчитать кумулятивное нормальное распределение переменной - PullRequest
0 голосов
/ 24 февраля 2019

Я хотел бы создать новую переменную, которая является кумулятивным нормальным распределением другой переменной.

В Microsoft Excel я могу использовать функцию NORM.DIST() для этой цели.

Почему функция normal() в Stata дает неверные результаты?

1 Ответ

0 голосов
/ 24 февраля 2019

Две функции принимают разные аргументы и вычисляют разные вещи.

Как указывает файл справки, 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 |
     +----------------------+
...