[Date Prev][Date Next][Thread Prev][Thread Next][Date index][Thread index]

From |
Philipp Rehm <philipp.rehm@gmx.de> |

To |
statalist@hsphsun2.harvard.edu |

Subject |
Re: st: RE: Re: corr() with weights, -by- |

Date |
Sun, 08 Jun 2008 17:54:36 +0200 |

.

Thanks, Nick.

That's a good idea, too.

I haven't compared the efficiency of Michael's and your solution. But given that I have 162 county-years with a total of around 3.5 million observations, either solution should be much much more efficient than my -levelsof- approach.

Thanks again. Much appreciated!

Philipp

Nick Cox wrote:

On the other hand, if you want the covariances alongside the data, this

approach is cleaner than recourse to -levelsof-:

gen cov = . egen group = group(country year) su group, meanonly

quietly forval i = 1/`r(max)' { corr x l2.x [aw=weight] if group == `i', cov replace cov = r(cov_12) if group == `i' }

See also

FAQ . . . . . . . . . . Making foreach go through all values of a

variable

8/05 Is there a way to tell Stata to try all values of a

particular variable in a foreach statement without

specifying them?

http://www.stata.com/support/faqs/data/foreach.html

However, -statsby- and then using -merge- may be just as efficient.

Nick n.j.cox@durham.ac.uk

Michael Blasnik

...

You want the -statsby- command. Something like this work:

statsby cov=r(cov_12), by(year country) : corr x l2.x [aw= weight], cov

Philipp Rehm

aI am looking for an efficient way to extract weighted covariances, forby-able problem.by

Currently, I am running a very inefficient loop (using a lot of -levelof-s and if-qualifiers), along these lines (my data is -tsset-):

corr x l2.x [aweight=weight] if year==`i' & country==`j', covariance

I then write the results [r(cov_12)] into a variable, again using if-qualifiers.

A much quicker way to do this is to use the corr() function (written

Nick Winter) from the egenmore package. It does exactly what I want, except that it does not accept weights.

I can also run something like:

bys country year: correlate(x l2.x) [aweight=weight], covariance

but r(C) leaves behind the covariance matrix only for the very last estimation.

So, ideally I am looking for a version of Nick Winter's corr() which accepts weights.

Any ideas / suggestions would be appreciated. I prefer a solution that

works in Stata 9, but I do have access to Stata 10.* * For searches and help try: * http://www.stata.com/support/faqs/res/findit.html * http://www.stata.com/support/statalist/faq * http://www.ats.ucla.edu/stat/stata/

* * For searches and help try: * http://www.stata.com/support/faqs/res/findit.html * http://www.stata.com/support/statalist/faq * http://www.ats.ucla.edu/stat/stata/

**Follow-Ups**:**RE: st: RE: Re: corr() with weights, -by-***From:*"Nick Cox" <n.j.cox@durham.ac.uk>

**References**:**st: corr() with weights, -by-***From:*Philipp Rehm <philipp.rehm@gmx.de>

**st: Re: corr() with weights, -by-***From:*"Michael Blasnik" <michael.blasnik@verizon.net>

**st: RE: Re: corr() with weights, -by-***From:*"Nick Cox" <n.j.cox@durham.ac.uk>

- Prev by Date:
**st: RE: Re: corr() with weights, -by-** - Next by Date:
**RE: st: RE: Re: corr() with weights, -by-** - Previous by thread:
**st: RE: Re: corr() with weights, -by-** - Next by thread:
**RE: st: RE: Re: corr() with weights, -by-** - Index(es):

© Copyright 1996–2015 StataCorp LP | Terms of use | Privacy | Contact us | What's new | Site index |