Notice: On March 31, it was announced that Statalist is moving from an email list to a forum. The old list will shut down on April 23, and its replacement, statalist.org is already up and running.

# Re: st: moving average.. conditioning on a date

 From Francesco To statalist@hsphsun2.harvard.edu Subject Re: st: moving average.. conditioning on a date Date Mon, 5 Nov 2012 09:16:54 +0100

```Dear Nick,

Many thanks for your very interesting suggestion. Tsspell should do
the job indeed
However the condition I am interested in is slighly more complicated
(at least for me) than the one I used in the above minimal example
I would like to obtain a running sum of all X's observations that
occur -at most- 30 days before the current date

So the example I gave was correct
1    sep-7   1    2
because I only consider observations -at most - one day from the
current observation .. that is sep 7th and sept 6th but not sept 5th
because it is two days from sept 7th

Do you know how to express this with Stata's lag operators?

Many thanks again

On 5 November 2012 01:48, Nick Cox <njcoxstata@gmail.com> wrote:
> If I understand this correctly, Francesco wants running sums to be
> calculated within spells of consecutive days, and separately by
> panels.
>
> Identifying spells of consecutive dates is an FAQ
>
> FAQ     . . . . . . Identifying runs of consecutive observations in panel data
>         . . . . . . . . . . . . . . . . . . . . . . . N. J. Cox and V. Wiggins
>         8/02    How do I identify runs of consecutive observations
>                 in panel data?
> http://www.stata.com/support/faqs/data-management/identifying-runs-of-consecutive-observations/
>
> One solution covered there is to use -tsspell- from SSC
>
> . tsset id date
> . tsspell, f(L.date == .)
> . bysort id _spell (_seq) : gen Y = sum(X) if _spell
> . by id _spell : gen aveY = Y/_seq
>
> Here I am guessing that the moving average required is running
> sum/number in sequence
>
> I am also guessing that the example should end
>
>  1    sep-7   1    3
>
> Note that unbalanced panels in no sense rule out the use of time
> series operators.
>
> The -egen- function -filter()- is from -egenmore- (SSC).
>
>
> SJ-7-2  dm0029  . . . . . . . . . . . . . . Speaking Stata: Identifying spells
>         . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  N. J. Cox
>         Q2/07   SJ 7(2):249--265                                 (no commands)
>         shows how to handle spells with complete control over
>         spell specification
>
>
> Nick
>
> On Sun, Nov 4, 2012 at 10:50 PM, Francesco <k7br@gmx.fr> wrote:
>
>> Many thanks for your suggestion but unfortunately it does not fit...
>> movavg only computes moving average over the last n periods... which
>> is not what I want
>>
>> In order to be more clear, my dataset looks like
>>
>> ID  date     X   Y
>> 1    jan-1   1    1
>> 1    feb-4   1    1
>> 1    feb-5   1    2
>> 1    sep-5   1    1
>> 1    sep-6   1    2
>> 1    sep-7   1    2
>>
>> Here Y is the running sum of X for values of X that occur at most 1
>> days before the current observation ...
>> Is there a way to obtain this variable (and a moving average version too) ?
>
>  On 4 November 2012 23:35, Steve Samuels <sjsamuels@gmail.com> wrote:
>
>>> the -help-, you will see that it does not require balanced panels.
>
> On Nov 4, 2012, at 5:24 PM, Francesco wrote:
>
>>> Well, Thank you for your kind suggestion (I already checked tssmooth
>>> and egen filter) but I cannot find what I am looking for (in
>>> particular for the running sum)
>>> As the panel is unbalanced, I think I cannot use the L. operator ...
>
> On 4 November 2012 22:51, Steve Samuels <sjsamuels@gmail.com> wrote:
>
>>>> The Statalist archives are not a good place to look for
>>>> commands. Try -findit- first.  "findit moving average" would
>>>> have turned up -movag- at SSC. If -findit- had not been successful.
>>>> then a second  step would have been to Google "Stata moving average".
>
> On Nov 4, 2012, at 3:58 PM, Marco Francesco wrote:
>
>>>> I looked into the archives, and still I am not sure how to proceed :
>>>>
>>>> I have a panel dataset (id - day) and I would like to obtain a variable X that keeps the running sum (or the average) of variable Y's observations that occur in a given moving time window : that is between today's observation date and (today's observation date - X) where X is fixed.
>
> *
> *   For searches and help try:
> *   http://www.stata.com/help.cgi?search
> *   http://www.stata.com/support/faqs/resources/statalist-faq/
> *   http://www.ats.ucla.edu/stat/stata/

*
*   For searches and help try:
*   http://www.stata.com/help.cgi?search
*   http://www.stata.com/support/faqs/resources/statalist-faq/
*   http://www.ats.ucla.edu/stat/stata/
```