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 on April 23, and its replacement, statalist.org is already up and running.


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

Re: st: Replace with returned results in svy loop


From   Kate Schneider <schneider.kate1@gmail.com>
To   statalist@hsphsun2.harvard.edu
Subject   Re: st: Replace with returned results in svy loop
Date   Sun, 29 May 2011 16:53:59 -0700

Thank you so much Richard! It totally works! We can't get it to only
replace the missing values, but I think it is more valid to create a
new variable with the estimated value anyways. Thanks so much!

Kate

On Sun, May 29, 2011 at 5:42 PM, Richard Williams
<richardwilliams.ndu@gmail.com> wrote:
> First off, you may not have e(mean), but you do have the matrix e(b), which
> contains the mean of your variable. Sometimes you have to do something like
>
> mat list e(b)
>
> to see where values are stored. ereturn list doesn't show you what values
> are stored in the matrices.
>
> As for how to handle missing data, I suggest taking a look at Paul Allison's
> small book, "Missing Data," and reading through the Stata 11 documentation
> on multiple imputation. Others who are more familiar with these methods can
> perhaps advise you further.
>
>
> At 06:27 PM 5/29/2011, Kate Schneider wrote:
>>
>> Thanks so much Richard,
>>
>> We are trying to monetize own consumption of food items, so the mean
>> we are calculating is the average price reported by households who
>> bought the food and we want to apply this to the missing data.
>> Observations are missing where households ate food they produced
>> themselves or did not report the price they paid for the item if they
>> bought it.
>>
>> Is there a better way you recommend attributing these prices to the
>> cases where we don't have a value? We were previously manually keeping
>> track of the mean prices and then manually telling stata to replace
>> (for example) price_eggs == $1 if price_eggs==. We are trying to avoid
>> manually going between excel and stata, thinking that it would be more
>> valid to have stata do all of this for us.
>>
>> The other approach we were considering would be to create a new
>> variable where every observation of eggs get the mean egg price value,
>> and then when we calculate the total value of egg consumption to
>> specify drawing from the reported price if not missing, and if missing
>> use the new value. Does that sound like a more valid approach?
>> Regardless when we use ereturn list, there isn't a scalar listed for
>> our mean. We tried e(mean), but it returned an error. Do we have to
>> tell stata to store e(mean) before our svy: mean calculation?
>>
>> The other thing we should specify is that our data is hierarchical
>> with 2 unique identifiers, a household ID and an id for each of the 65
>> different food items. We are trying to value total consumption per
>> food item and also per household. We thought about collapsing food
>> items to their mean price, but thought that probably wouldn't apply
>> our survey weights (though perhaps stata is smarter than we are?).
>>
>> Thanks so much for your assistance, we are really grateful!
>>
>> Kate
>>
>> On Sun, May 29, 2011 at 5:11 PM, Richard Williams
>> <richardwilliams.ndu@gmail.com> wrote:
>> > If in doubt where a value is stored, type -ereturn list- after the
>> > estimation command. After -mean-, e(b) has the mean of the variable. So,
>> > to
>> > get the mean stored in a scalar, do something like
>> >
>> > webuse nhanes2f, clear
>> > svy: mean houssiz
>> > mat varmean = e(b)
>> > scalar vmean = varmean[1,1]
>> >
>> > Having said that, substituting the mean for missing data is generally
>> > not
>> > considered the best practice in the world. And, there may be other
>> > errors in
>> > your code (e.g. the == in the replace command looks wrong) but I imagine
>> > those will become obvious once you tidy other things up.
>> >
>> > At 03:11 PM 5/29/2011, Kate Schneider wrote:
>> >>
>> >> Hello,
>> >> Sorr to bug everyone on a holiday weekend, but we're a graduate
>> >> student research group at the University of Washington working with a
>> >> large household survey dataset and have come up against some trouble.
>> >>
>> >> We're trying to replace missing values of a variable with the results
>> >> of some other operation we've just performed (basically, a mean).
>> >> Right now, we're having trouble with the replace component of the
>> >> below operation. Does anyone know how torecall the previous command's
>> >> results from the svy calculation and use that data to replace missing
>> >> in a loop?  Is this possible with survey data?
>> >>
>> >> foreach X of varlist $fooditemall {
>> >> quietly count if `X'==1 & priceperkilo !=.
>> >>  if `r(N)'>0 {
>> >>  display "Variable is: " "`X'"
>> >>  svy, subpop(`X'): mean priceperkilo
>> >>  }
>> >> quietly count if `X'==1 & priceperkilo ==.
>> >>  if `r(N)'>0 {
>> >>  replace priceperkilo == e(????) if `X'==1 & priceperkilo ==.
>> >>  }
>> >> }
>> >>
>> >> Thanks for your insight!  If you need more information please let me
>> >> know.
>> >> Kate
>> >>
>> >> *
>> >> *   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/
>> >
>> > -------------------------------------------
>> > Richard Williams, Notre Dame Dept of Sociology
>> > OFFICE: (574)631-6668, (574)631-6463
>> > HOME:   (574)289-5227
>> > EMAIL:  Richard.A.Williams.5@ND.Edu
>> > WWW:    http://www.nd.edu/~rwilliam
>> >
>> > *
>> > *   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/
>
> -------------------------------------------
> Richard Williams, Notre Dame Dept of Sociology
> OFFICE: (574)631-6668, (574)631-6463
> HOME:   (574)289-5227
> EMAIL:  Richard.A.Williams.5@ND.Edu
> WWW:    http://www.nd.edu/~rwilliam
>
> *
> *   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