Notice: On April 23, 2014, Statalist moved from an email list to a forum, based at statalist.org.
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: st: averaging previous observations in panel data with missing observations
From
Mike McDonald <[email protected]>
To
[email protected]
Subject
Re: st: averaging previous observations in panel data with missing observations
Date
Wed, 25 Jul 2012 10:35:02 -0400
answer. Hope everyone has a great day.
Mike
On Tue, Jul 24, 2012 at 8:09 AM, Scott Merryman
<[email protected]> wrote:
> -tssmooth ma-
>
> For example:
>
> . webuse grunfeld,clear
>
> . set seed 554321
>
> . replace invest = . if runiform()< .33
> (53 real changes made, 53 to missing)
>
> . tssmooth ma invest2 = invest, w(10)
> The smoother applied was
> by company : (1/10)*[x(t-10) + x(t-9) + x(t-8) + x(t-7) + x(t-6)
> + x(t-5) + x(t-4) + x(t-3) + x(t-2) + x(t-1) + ...; x(t)= invest
>
> . l com year invest* if com == 1
>
> +------------------------------------+
> | company year invest invest2 |
> |------------------------------------|
> 1. | 1 1935 . . |
> 2. | 1 1936 391.8 . |
> 3. | 1 1937 . 391.8 |
> 4. | 1 1938 257.7 391.8 |
> 5. | 1 1939 . 324.75 |
> |------------------------------------|
> 6. | 1 1940 461.2 324.75 |
> 7. | 1 1941 . 370.2333 |
> 8. | 1 1942 . 370.2333 |
> 9. | 1 1943 . 370.2333 |
> 10. | 1 1944 547.5 370.2333 |
> |------------------------------------|
> 11. | 1 1945 . 414.55 |
> 12. | 1 1946 688.1 414.55 |
> 13. | 1 1947 568.9 488.625 |
> 14. | 1 1948 529.2 504.68 |
> 15. | 1 1949 555.1 558.98 |
> |------------------------------------|
> 16. | 1 1950 . 558.3333 |
> 17. | 1 1951 . 577.76 |
> 18. | 1 1952 891.2 577.76 |
> 19. | 1 1953 1304.4 630 |
> 20. | 1 1954 . 726.3428 |
> +------------------------------------+
>
>
> Scott
>
> On Mon, Jul 23, 2012 at 9:20 PM, Mike McDonald <[email protected]> wrote:
>> Hi Statalisters:
>>
>> I have panel data across countries for each year 1960-2010. For each
>> country/year, I want to create a variable, y_avg, that is the average
>> of that variable over the past 10 years. I know I can do this manually
>> like this:
>>
>> gen y_avg = (L1.x + L2.x + ... + L10.x) / 10
>>
>> The problem is that there is missing data all over the place, so this
>> breaks down for any 10-year period with missing observations.
>>
>> I have seen some other suggestions in searching the statalist archive
>> -- for instance using egen with filter() -- but it is not clear to me
>> that any of these ideas overcome the missing data problem.
>>
>> Can anyone suggest an easy way to accomplish what I want, ignoring
>> missing observations in each average?
>>
>> Thanks!
>>
>> Mike McDonald
>> University of Maryland
> *
> * For searches and help try:
> * http://www.stata.com/help.cgi?search
> * http://www.stata.com/support/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/statalist/faq
* http://www.ats.ucla.edu/stat/stata/