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]

From |
Sergiy Radyakin <[email protected]> |

To |
"[email protected]" <[email protected]> |

Subject |
Re: st: Routine from do-file that every time it's run gives a different result |

Date |
Wed, 6 Nov 2013 16:46:57 -0500 |

Clarice, add the option stable to the sort commands. Without this option, the -sort- command will break the ties randomly. See here: http://www.stata.com/help.cgi?sort Best, Sergiy On Wed, Nov 6, 2013 at 4:30 PM, Clarice Martins <[email protected]> wrote: > Dear Statalist group, > > I have a routine that apparently was running ok, and then I noticed that everytime I execute the code I get different results for one of the variables. > (The routine is long, so I don't know how to best provide you guys with enough info.) > > 1) I believe the problem has to do with variable -P5- since this is the variable which average changes every time I run the code. > > 2) Sample of the results, I am getting: as you can see variable P1 is always approximately the same (it should be the same) and variable Strategy is ALWAYS the same, but var -P5- changes by a lot. (I've shown two outputs, but I've ran it several, several times.) > > > . esttab . > > ---------------------------- > (1) > Mean > ---------------------------- > P1 0.300*** > (3.41) > > P5 6.154 > (1.53) > > strategy 7.190 > (1.78) > ---------------------------- > N 150 > ---------------------------- > > > ---------------------------- > (1) > Mean > ---------------------------- > P1 0.223* > (2.24) > > P5 3.286 > (1.15) > > strategy 7.190 > (1.78) > ---------------------------- > N 150 > ---------------------------- > > 3) Piece of the code that deals with creating and changing variable P5: (my apologies if this is confusing or too long) > > ***create variable P1/P5 and sum all 1st/5th quintiles per <yrmonth> > gen P1_sell = . > quietly levelsof yrmonth, local(levs) > quietly foreach lev of local levs { > egen work=total(return) if rtype=="buy_sell_period" & yrmonth == "`lev'" & quintile==1 > replace P1_sell=work if rtype=="buy_sell_period" & yrmonth == "`lev'" & quintile==1 > drop work > } > > gen P5_buy = . > quietly levelsof yrmonth, local(levs) > quietly foreach lev of local levs { > egen work=total(return) if rtype=="buy_sell_period" & yrmonth == "`lev'" & quintile==5 > replace P5_buy=work if rtype=="buy_sell_period" & yrmonth == "`lev'" & quintile==5 > drop work > } > > sort quintile yrmonth rtype > > **undo the buy/sell operation > *in order to do the procedure, first copy quintile #s to same <co_id> but for 6 <yrmonth> LATER > > bysort co_id period: egen tocopy2 = total(quintile / (rtype == "buy_sell_period")) > bysort co_id rtype (negperiod) : replace quintile = tocopy2[_n+6] if missing(quintile) & rtype == "hold_period" > sort quintile yrmonth rtype > > *add sums of 1st/5th quintiles for <hold_period> to variables P1/P5 > > quietly levelsof yrmonth, local(levs) > quietly foreach lev of local levs { > egen work=total(return) if rtype=="hold_period" & yrmonth == "`lev'" & quintile==5 > replace P1_sell=work if rtype=="hold_period" & yrmonth == "`lev'" & quintile==5 > drop work > } > > quietly levelsof yrmonth, local(levs) > quietly foreach lev of local levs { > egen work=total(return) if rtype=="hold_period" & yrmonth == "`lev'" & quintile==1 > replace P5_buy=work if rtype=="hold_period" & yrmonth == "`lev'" & quintile==1 > drop work > } > sort quintile yrmonth rtype > > > ***------procedures for Strategy analysis > **preparing time-series > *P1 is the variable to use for the time-series / keep -P1_sell- intact just for the sake of it > > gen P1 = P1_sell > gen copyP1=P1 > replace P1 = . if P1 == copyP1[_n-1] > drop copyP1 > > *P5 is the variable to use for the time-series / keep -P5_buy- intact just for the sake of it > > gen P5 = P5_buy > gen copyP5=P5 > replace P5 = . if P5 == copyP5[_n-1] > drop copyP5 > > *keeping only time-series variables & unique records > keep P1 P5 period > > sort period P1 P5 > quietly by period P1 P5: gen dup = cond(_N==1,0,_n) > drop if dup>0 > drop dup > > sort period P1 P5 > gen P5copy = P5 > replace P5 = P5copy[_n+1] if P5 >= . > replace P5 = P5copy[_n+3] if P5 >= . > drop P5copy > > sort period > quietly by period: gen dup = cond(_N==1,0,_n) > drop if dup>2 > drop dup > > gen temp = P1 + P5 > drop if temp >= . > drop temp > > by period: egen strategy=total(P1 + P5) > > sort strategy > quietly by strategy: gen dup = cond(_N==1,0,_n) > drop if dup>1 > drop dup > > sort period > > ** changing into a time-series // not sure if it is necessary yet... > tsset period > mean P1 P5 strategy > ******end of code > > Thanks for your consideration! Any comment or suggestions will be appreciated. > Clarice > > > * > * 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/

**Follow-Ups**:

**References**:**st: Routine from do-file that every time it's run gives a different result***From:*Clarice Martins <[email protected]>

- Prev by Date:
**Re: st: Routine from do-file that every time it's run gives a different result** - Next by Date:
**Re: st: specifying the nested design for xtmelogit** - Previous by thread:
**Re: st: Routine from do-file that every time it's run gives a different result** - Next by thread:
**Re: st: Routine from do-file that every time it's run gives a different result** - Index(es):