Я пытаюсь вычислить скользящее среднее абсолютное отклонение (MAD) переменной x
для каждой группы id
, используя 20
наблюдения.
Пример данных:
clear
set obs 100
generate id = _n
expand 100
generate x = rnormal()
bysort id: generate time = _n
Мне уже удалось вычислить медиану для скользящих наблюдений с помощью команды *1010*, предоставленной сообществом rangestat
:
rangestat (median) x, by(id) interval(time -20 0) // this works
Затем я попытался использовать сообщество -contributed команда tsegen
с функцией egen
mad()
для вычисления абсолютного отклонения скользящего медианного значения:
xtset id time
tsegen mad_x = mad(L(0/20).x) // this does not work
Однако эта последняя команда приводит к следующей ошибке:
x__000001__000002__000003__000004__000005__000006__000007__000008__000009__00000A__00000B__00000C__00000D__00000E__00000F__00000G__00
> 000H__00000I__00000J__00000K invalid name
r(198);
Как я могу передать требование "использовать 20 наблюдений" в mad()
?
Перекрестно опубликовано Statalist .