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]

From |
Jorge Eduardo Pérez Pérez <perez.jorge@ur.edu.co> |

To |
"statalist@hsphsun2.harvard.edu" <statalist@hsphsun2.harvard.edu> |

Subject |
Re: st: Append new row to existing matrix |

Date |
Sat, 24 Mar 2012 20:04:25 -0400 |

Regarding your question about the generated variables: qui gen x`i'=uniform() quietly generates a random uniform variable named x`i' (i goes from 0 to 100) I generated random variables to get a example dataset for the example code. In your case, as you already noticed in your adapted code, you do not need to generate random variables. Looking at your adapted code, -statsby. is a more convenient alternative to your problem. It will generate a new dataset with the event number and the coefficients of the regression statsby, by(event): reg rprf rmrf smb hml If you still want to use the matrix approach, you can use -capture- to skip the regressions that fail because of lack of observations. forv i=1(1)917 { capture quietly reg rprf rmrf smb hml if event==`i' if _rc matrix b=[.,.,.] else matrix b=e(b) if `i'==1 matrix betas=b else matrix betas=(betas \ b) } matrix list betas Notice that you could generate a matrix of the coefficients anyway with -statsby- and -mkmat- statsby, by(event): reg rprf rmrf smb hml mkmat *, matrix(betas) If you do not want the event number in the matrix, try statsby, by(event): reg rprf rmrf smb hml mkmat _b*, matrix(betas) _______________________ Jorge Eduardo Pérez Pérez On Sat, Mar 24, 2012 at 7:40 PM, Sandy Y. Zhu <sandy.zhu@yale.edu> wrote: > Hi everyone: > > Sorry to email again, but I just adjusted to my own dataset, and it > won't work. My dataset has 917 events, each with 6 observations. I > would like to regress rprf on rmrf, smb, and hml for each event, > that's why i added reg rprf rmrf smb hml if event==`i'. I'm not sure > if this is correct, but it's coming back as no observation. I know > that some of the events in my dataset have no observation--is there > any chance I can program it in the loop to tell stata to output an > empty space for those and carry on? > > Thanks! > > Current adpated code: > > forv i=1(1)917 { > qui reg rprf rmrf smb hml if event==`i' > matrix b=e(b) > if `i'==1 matrix betas=b > else matrix betas=(betas \ b) > } > matrix list betas > > On Sat, Mar 24, 2012 at 7:31 PM, Sandy Y. Zhu <sandy.zhu@yale.edu> wrote: >> I guess I just want to know what I should do with this portion of the >> code if my variables are y (dependent), X1, X2, and X3 (independent) >> >> gen y=uniform() >> forv i=1(1)100 { >> qui gen x`i'=uniform() >> qui reg y x`i' >> >> >> Thanks! >> >> On Sat, Mar 24, 2012 at 7:28 PM, Sandy Y. Zhu <sandy.zhu@yale.edu> wrote: >>> Thank you! >>> >>> Would some one mind telling me what this portion of the code means? >>> >>>> qui gen x`i'=uniform() >>>> qui reg y x`i' >>> >>> I'm trying to run a multivariate regression, so should I do multiple >>> qui gen x`i'? >>> >>> Thanks! >>> >>> 2012/3/24 Jorge Eduardo Pérez Pérez <perez.jorge@ur.edu.co>: >>>> clear >>>> set obs 100 >>>> gen y=uniform() >>>> forv i=1(1)100 { >>>> qui gen x`i'=uniform() >>>> qui reg y x`i' >>>> matrix b=e(b) >>>> if `i'==1 matrix betas=b >>>> else matrix betas=(betas \ b) >>>> drop x`i' >>>> } >>>> matrix list betas >>>> >>>> Also, take a look at -statsby- >>>> _______________________ >>>> Jorge Eduardo Pérez Pérez >>>> >>>> >>>> >>>> On Sat, Mar 24, 2012 at 7:11 PM, Sandy Y. Zhu <sandy.zhu@yale.edu> wrote: >>>>> Hi guys: >>>>> >>>>> How can I append a new row to an existing matrix? Basically, I'm >>>>> trying to update the matrix in a loop, >>>>> >>>>> I have: >>>>> >>>>> for i=1 to 900 >>>>> {reg y x1 x2 x3 >>>>> mat beta=e(b) >>>>> >>>>> append e(b) to an existing matrix} >>>>> >>>>> Basically, I have 900 regressions to run, and I need to save the >>>>> beta values from each regression. I would like to save them all in a >>>>> matrix, so the first row in the matrix saves the betas from the 1st >>>>> regression, the 2nd row would save the coefficients from the 2nd >>>>> regression, etc.... >>>>> >>>>> >>>>> Thank you! >>>>> >>>>> -- >>>>> Yours sincerely, >>>>> >>>>> Sandy Y. Zhu >>>>> * >>>>> * 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/ >>> >>> >>> >>> -- >>> Yours sincerely, >>> >>> Sandy Y. Zhu >> >> >> >> -- >> Yours sincerely, >> >> Sandy Y. Zhu > > > > -- > Yours sincerely, > > Sandy Y. Zhu > > * > * 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/

**References**:**Re: st: Append new row to existing matrix***From:*Jorge Eduardo Pérez Pérez <perez.jorge@ur.edu.co>

**Re: st: Append new row to existing matrix***From:*"Sandy Y. Zhu" <sandy.zhu@yale.edu>

**Re: st: Append new row to existing matrix***From:*"Sandy Y. Zhu" <sandy.zhu@yale.edu>

- Prev by Date:
**Re: st: Append new row to existing matrix** - Next by Date:
**re: Re: st: Append new row to existing matrix** - Previous by thread:
**Re: st: Append new row to existing matrix** - Next by thread:
**re: Re: st: Append new row to existing matrix** - Index(es):