Bookmark and Share

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: Panel data - Foreach-Collapse commands


From   Nick Cox <[email protected]>
To   "[email protected]" <[email protected]>
Subject   Re: st: Panel data - Foreach-Collapse commands
Date   Wed, 15 Jan 2014 12:00:51 +0000

I havealready explained your immediate Stata problem in posts you
include here, otherwise found at

http://www.stata.com/statalist/archive/2014-01/msg00494.html

and

http://www.stata.com/statalist/archive/2014-01/msg00500.html

Let me try again. Consider the following code

webuse grunfeld, clear
xtset company year

foreach var in   invest kstock {
     mvsumm `var', stat(sd) win(3) gen(`var'3sd) end
     collapse `var' , by(company)
     describe
}

I added the command -describe-. This is what it says first time around the loop.

Contains data
  obs:            10
 vars:             2
 size:           120 (99.9% of memory free)
-------------------------------------------------------------------------------------
              storage  display     value
variable name   type   format      label      variable label
-------------------------------------------------------------------------------------
company         float  %9.0g
invest          float  %9.0g                  (mean) invest
-------------------------------------------------------------------------------------
Sorted by:  company
     Note:  dataset has changed since last saved

In other words, there are only two variables in the dataset, -company-
and -invest-. This is because of your -collapse-. You got what you
asked for. -collapse- changes the existing dataset. Thus -kstock- has
disappeared and, second time round the loop, you inevitably get the
error reported.

In addition, you generated moving SDs and then threw them away. This
seems pointless.

I imagine you really wanted to do something like this. Note that the
repeated -collapse- is a bad idea, as it obliges you to read in the
dataset again. So, don't -collapse- within the loop, but do it later.

webuse grunfeld, clear
xtset company year

foreach var in invest kstock {
     mvsumm `var', stat(sd) win(3) gen(`var'3sd) end
}

collapse *sd , by(company)
describe

All that said, what are you doing? The mean (over its history) of a
moving SD of 3 values doesn't strike me as a well-defined property,
regardless of whether you can find it used in the literature.

I've left your other questions as much more than I want to try to handle.

Nick
[email protected]


On 15 January 2014 04:15, Sadia Khalid <[email protected]> wrote:

> There is no issue of calculating the moving SD of Y and X.
>
> but when i am going to collapse (SD of Y ans X), it is only
> collpaseing the first varialbe, error for the second variable. how to
> aviod this problem . by collapising the varialbes i want to a single
> value for each country.
>
>
>
>
> On 15 January 2014 08:47, Sadia Khalid <[email protected]> wrote:
>> firstly I want to calculate the  the 3 Year Moving Sd of variables (Y
>> and X). like SD of (1,2,3)
>> first three obs and than SD of (2,3,4 )th obs ans so on.
>>
>>
>> than i have to take the average of these variables by country
>> variables, to collapse them to a single number for each country.
>>
>> Regards
>> Sadia Khalid
>>
>> On 15 January 2014 08:26, Nick Cox <[email protected]> wrote:
>>> Your -collapse- ignores your SD results.  Otherwise I stand by my
>>> earlier comments. I have difficulties writing code when the aim seems
>>> ill-judged.
>>> Nick
>>> [email protected]
>>>
>>>
>>> On 15 January 2014 03:14, Sadia Khalid <[email protected]> wrote:
>>>> Yes I want is
>>>>  collapsing on one variable , saving, reopening the original, collapsing...,
>>>>
>>>> I have got the program to do but i cannot modify this to my situtation.
>>>>
>>>> the link to the code is
>>>> http://www.urch.com/forums/phd-economics/125348-stata-repeated-collapse.html
>>>>
>>>> yes i want to calculate the 3 Year  Moving Sd. like SD of (1,2,3)
>>>> first three obs and than SD of (2,3,4 )th obs ans so on.
>>>>  Regards
>>>> Sadia Khalid
>>>>
>>>>
>>>> On 15 January 2014 01:39, Nick Cox <[email protected]> wrote:
>>>>> Too many questions (at least for me to want to answer)!  I'll peel off
>>>>> the first.
>>>>>
>>>>> Once you -collapse- the first time round your loop, -kstock- has
>>>>> disappeared from your dataset. That's what -collapse- does: reduce
>>>>> your dataset to a new one. But the -collapse- is (arguably) illogical.
>>>>> Moving standard deviations are unique to each observation. A mean
>>>>> moving SD could be calculated, but it seems unlikely to be what you
>>>>> want. If it is really what you want, you need to read in the original
>>>>> data again.  On the other hand, I want whether you really want a
>>>>> moving SD. The rest of your question seems to imply otherwise.
>>>>>
>>>>> General comment: Some Statalist members use MS Excel. Many don't in
>>>>> practice or won't on principle.  It's not a good idea to imply that
>>>>> members are inclined to try and work out how to read your data into
>>>>> Stata from Excel.
>>>>>
>>>>> Nick
>>>>> [email protected]
>>>>>
>>>>> On 14 January 2014 20:18, Sadia Khalid [edited]
>>>>>
>>>>> I am working on panel data. I have to create the Rolling SD of Y
>>>>> variable which I am able to create with the help of -mvsumm- (SSC).
>>>>>
>>>>> The command for creating the 3 year moving SD is
>>>>>
>>>>> mvsumm y, stat(mean) win(3) gen(`var'3avg) end
>>>>>
>>>>> As I have to do 3 year moving SD for a number of variables I am trying
>>>>> to use -foreach- and these are the commands in my do file
>>>>>
>>>>> webuse grunfeld,clear
>>>>> xtset company year
>>>>>  *** Code for calculating 3 Year moving SD**
>>>>>
>>>>> foreach var in   invest kstock {
>>>>>      mvsumm `var', stat(sd) win(3) gen(`var'3sd) end
>>>>>      collapse `var' , by(company)
>>>>> }
>>>>>
>>>>> I get the following error message.
>>>>>
>>>>>  “variable kstock not found”
>>>>>
>>>>> How can I overcome this?
>>>>>
>>>>> <big snip>

*
*   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/


© Copyright 1996–2018 StataCorp LLC   |   Terms of use   |   Privacy   |   Contact us   |   Site index