Bookmark and Share

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


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: st: Creating a dummy variable under certain conditions


From   Abhimanyu Arora <abhimanyu.arora1987@gmail.com>
To   statalist@hsphsun2.harvard.edu
Subject   Re: st: Creating a dummy variable under certain conditions
Date   Sun, 3 Jun 2012 20:24:33 +0200

Now I see, you have an additional condition, Sebastian.

In that case, you could simply add an additional command in addition
to either Nick's or my solution with L. (not the F. one)
-bys gvkey:replace new_viol_dummy=0 if new_viol_dummy[_n-1]==1


date    gvkey   viol    new_viol_dummy
1997q1 1004    0       0
1997q2 1004    0       0
1997q3 1004    0       0
1997q4 1004    0       0
1998q1 1004    0       0
1998q2 1004    0       0
1997q1 1021    0       0
1997q2 1021    0       0
1997q3 1021    0       0
1997q4 1021    0       0
1998q1 1021    0       0
1998q2 1021    0       0
1998q3 1021    0       0
1998q4 1021    1       1
1999q1 1021    1       0
1999q2 1021    1       0
1999q3 1021    1       0
1999q4 1021    0       0




On Sun, Jun 3, 2012 at 7:46 PM, sebas nicaise <sebasnicaise@hotmail.com> wrote:
> Dear Abhimanyu,
>
> This also does not give me the right answer.It gives:
>
> date    gvkey   viol    new_viol_dummy1998q4    1095    0     01999q1 1095    0     01999q2 1095    0     01999q3 1095    0     01999q4 1095    1     02000q1 1095    0     02000q2 1095    1     12000q3 1095    1     12000q4 1095    1     12001q1 1095    1     12001q2 1095    1     12001q3 1095    1     0
>
> It should be:000010000000
>
> I think the command should be more complicated since the new viol dummy variable is only 1 under certain strict conditions.NEWVIOL is only 1 if the VIOL dummy of the corresponding GVKEY has a 1 IF in the four previous quarters a 0. Furthermore, if NEWVIOL documents a 1, it can only be a 1 again after four quarters of 0.
>
> Hope you, or someone else, can help me with this seemingly easy task :)
>
> Thank you,Sebastiaan
> ----------------------------------------
>> Date: Sat, 2 Jun 2012 17:21:54 +0200
>> Subject: Re: st: Creating a dummy variable under certain conditions
>> From: abhimanyu.arora1987@gmail.com
>> To: statalist@hsphsun2.harvard.edu
>>
>> Okay, if I infer correctly, try this: bys gvkey: gen
>> new_viol_dummy=viol+F1.viol+F2.viol+F3.viol==4.
>> Seems good?
>>
>>
>>
>> On Sat, Jun 2, 2012 at 5:07 PM, sebas nicaise <sebasnicaise@hotmail.com> wrote:
>>> Maybe I can better show it visually:
>>> Your commands give me the following output:
>>> bys gvkey: gen new_viol_dummy=L.viol+L2.viol+L3.viol+L4.viol==0
>>> date    gvkey   viol    new_viol_dummy   1997q1 1004    0       01997q2 1004    0       01997q3 1004    0       01997q4 1004    0       01998q1 1004    0       11998q2 1004    0       11997q1 1021    0       01997q2 1021    0       01997q3 1021    0       01997q4 1021    0       01998q1 1021    0       11998q2 1021    0       11998q3 1021    0       11998q4 1021    1       11999q1 1021    1       01999q2 1021    1       01999q3 1021    1       01999q4 1021    0       0
>>> While I want this: date gvkey   viol    new_viol_dummy   1997q1 1004    0       01997q2 1004    0       01997q3 1004    0       01997q4 1004    0       01998q1 1004    0       01998q2 1004    0       01997q1 1021    0       01997q2 1021    0       01997q3 1021    0       01997q4  1021    0       01998q1        1021    0       01998q2  1021    0       01998q3        1021    0       01998q4 1021    1       11999q1 1021    1       01999q2 1021    1       01999q3 1021    1       01999q4 1021    0       0
>>> If it is not clear what I mean, let me know :)
>>> Thank you,Sebastiaan
>>>> Date: Sat, 2 Jun 2012 16:34:41 +0200
>>>> Subject: Re: st: Creating a dummy variable under certain conditions
>>>> From: abhimanyu.arora1987@gmail.com
>>>> To: statalist@hsphsun2.harvard.edu
>>>>
>>>> Sebas,
>>>> Adding to Nick's comment, did you not -xtset- the data? You also have
>>>> an option of bys id_var: command, otherwise
>>>>
>>>>
>>>> On Sat, Jun 2, 2012 at 4:29 PM, Nick Cox <njcoxstata@gmail.com> wrote:
>>>>> You will probably want to exclude or ignore the first few observations
>>>>> in each panel or -replace- it with missing. Otherwise, what's wrong?
>>>>>
>>>>> Abhimanyu's slip has already been corrected in this thread, as below.
>>>>>
>>>>> Nick
>>>>>
>>>>> On Sat, Jun 2, 2012 at 3:12 PM, sebas nicaise <sebasnicaise@hotmail.com> wrote:
>>>>>
>>>>>> Thank you for the quick replys.
>>>>>>
>>>>>>  However, the suggested solutions did not give the right answer.
>>>>>>
>>>>>> Nick, your solution gives me way too many 1's. I do think the first step with the cusum was the right way to go.
>>>>>>
>>>>>>  Abhimanyu, your solution does not distinquish between the id's, the calculation has to start over for every gvkey.
>>>>>>
>>>>>>
>>>>>>  Hope you can have another look at it, I will also try to work with the suggestions you gave me.
>>>>>>
>>>>>>> From: abhimanyu.arora1987@gmail.com
>>>>>>> To: statalist@hsphsun2.harvard.edu
>>>>>>>
>>>>>>> Thanks Nick, yes.
>>>>>>> But I would go for your solution which would be better in case he had
>>>>>>> a longer lag.
>>>>>>>
>>>>>>> On Sat, Jun 2, 2012 at 2:56 PM, Nick Cox <njcoxstata@gmail.com> wrote:
>>>>>>>> This looks OK as long as you substitute -viol- for -gvkey-. The
>>>>>>>> previous values concerned are for -viol-, not -gvkey-.
>>>>>>>>
>>>>>>>> Nick
>>>>>>>>
>>>>>>>> On Sat, Jun 2, 2012 at 1:51 PM, Abhimanyu Arora
>>>>>>>> <abhimanyu.arora1987@gmail.com> wrote:
>>>>>>>>
>>>>>>>>> Try this if your data is -xtset-ted
>>>>>>>>> gen new_viol_dummy=L.gvkey+L2.gvkey+L3.gvkey+L4.gvkey==0
>>>>>>>>
>>>>>>>>> On Sat, Jun 2, 2012 at 2:06 PM, sebas nicaise <sebasnicaise@hotmail.com>
>>>>>>>>>
>>>>>>>>>> I am struggeling with creating a new dummy variable. I have a very large
>>>>>>>>>> (unbalanced) panel dataset that looks like this:
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> date gvkey viol
>>>>>>>>>> 1997q1 1021 0
>>>>>>>>>> 1997q2 1021 0
>>>>>>>>>> 1997q3 1021 0
>>>>>>>>>> 1997q4 1021 0
>>>>>>>>>> 1998q1 1021 1
>>>>>>>>>> 1998q2 1021 0
>>>>>>>>>> 1998q3 1021 0
>>>>>>>>>> 1998q4 1021 1
>>>>>>>>>> 1999q1 1021 0
>>>>>>>>>>
>>>>>>>>>> 1999q2 1021 0
>>>>>>>>>>
>>>>>>>>>> 1999q3 1021 0
>>>>>>>>>> 1999q2 1023 0
>>>>>>>>>> 1999q3 1023 1
>>>>>>>>>> 1999q4 1023 0
>>>>>>>>>> 2000q1 1023 0
>>>>>>>>>> 2000q2 1023 1
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> Where date is calender quarter, gvkey is the company identifier and viol a
>>>>>>>>>> dummy which equals 1 if the firm is in violation of a covenant in a private
>>>>>>>>>> debt contract.
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> The problem is that I have to create a new dummy variable ( new violation)
>>>>>>>>>> which meets certain conditions.
>>>>>>>>>>
>>>>>>>>>> The new violation dummy is only allowed to be 1 if in the previous 4
>>>>>>>>>> quarters of a certain company (gvkey) is 0.
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> This means for example that:
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> date gvkey viol Newviolation
>>>>>>>>>> 1997q1 1021 0 0
>>>>>>>>>> 1997q2 1021 0 0
>>>>>>>>>> 1997q3 1021 0 0
>>>>>>>>>> 1997q4 1021 0 0
>>>>>>>>>> 1998q1 1021 1 1
>>>>>>>>>> 1998q2 1021 0 0
>>>>>>>>>> 1998q3 1021 0 0
>>>>>>>>>> 1998q4 1021 1 0
>>>>>>>>>> 1999q1 1021 0 0
>>>>>>>>>>
>>>>>>>>>> 1999q2 1021 0 0
>>>>>>>>>>
>>>>>>>>>> 1999q3 1021 0 0
>>>>>>>>>> 1999q2 1023 0 0
>>>>>>>>>> 1999q3 1023 1 0
>>>>>>>>>> 1999q4 1023 0 0
>>>>>>>>>> 2000q1 1023 0 0
>>>>>>>>>> 2000q2 1023 1 0
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> I do not know how to tell Stata to create this variable, Hope someone is
>>>>>>>>>> so kind to help me.
>>>>>>>>
>>>>>>>> *
>>>>>>>> * 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/
>>>>>> *
>>>>>> *   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/
>>>>
>>>> *
>>>> *   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/
>>
>> *
>> * 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/

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


© Copyright 1996–2014 StataCorp LP   |   Terms of use   |   Privacy   |   Contact us   |   Site index