Короче, нет.
Результаты вытекают из того факта, что Stata обрабатывает пропущенные наблюдения не так, как ожидалось.
Результаты в foo_sum
можно охарактеризовать как нелогично , поскольку:
. display .
.
. display . + 1
.
Однако:
. display sum(.)
0
. display sum(. + 1)
0
Так что же на самом деле здесь происходит?
Похоже, что Stata рассматривает пропущенные значения как ноль в этом случае.
Другой пример:
. generate foo_max = max(foo, foo_sum)
. list
+-------------------------------------+
| random foo foo_sum foo_max |
|-------------------------------------|
1. | .06692297 . 0 0 |
2. | .85529108 1 1 1 |
3. | .35454616 . 1 1 |
4. | .4995136 . 1 1 |
5. | .53638222 1 2 2 |
|-------------------------------------|
6. | .84661429 1 3 3 |
7. | .15198199 . 3 3 |
8. | .33054815 . 3 3 |
9. | .06141655 . 3 3 |
10. | .01555962 . 3 3 |
+-------------------------------------+
Учитывая, что пропущенные значения в Stata обычно рассматриваются как положительная бесконечность , ожидаемое значение в этом случае составляет .
, а не 0
или 3
в наблюдениях 1
и, скажем, 7
.
Похоже, что Stata просто игнорирует пропущенное значение!
Приведенные выше примеры иллюстрируют довольно удивительное открытие, которое я недавно сделал во время программирования, и я подумал, что должен поделиться здесь.