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: collapse with multiple sets of weights


From   Scott Merryman <scott.merryman@gmail.com>
To   statalist@hsphsun2.harvard.edu
Subject   Re: st: collapse with multiple sets of weights
Date   Thu, 12 Apr 2012 10:55:00 -0500

Normalize the weights to sum to n and rescale population so the
weighting cancels out:

clear
input pop avgwage
10      20
20      10
40      30
end

egen double w=total(pop)
replace  w=3*pop/w
gen double pop2 =pop/w^2
collapse (sum) pop2  (mean) avgwage [w=w]
l


Scott


On Thu, Apr 12, 2012 at 10:05 AM, Dimitriy V. Masterov
<dvmaster@gmail.com> wrote:
> I am trying to aggregate some spatial data. Here's a simplified
> version of my problem. I have two variables, average wage and
> population, in three areas. I would like to sum the population, but
> calculate a weighted mean of the average wage. Is there a way to do
> this in one step using collapse?
>
> For example, the following code gets the mean right, but the population "wrong":
> set obs 3;
> input
> pop avgwage;
> 10      20;
> 20      10;
> 40      30;
> egen double w=total(pop);
> replace w=pop/w;
> collapse (sum) pop (mean) avgwage [w=w];
>
> I would like to see 70, not 90.
>
> Is there a collapse-like command where I apply the weight only to the
> mean calculation? I suppose I could do this in two collapse steps, but
> that seems clunky.
>
> DVM

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