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

From |
"Alexander Severinsen" <alexande@nfh.uit.no> |

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

Subject |
st: Gary King's Clarify for Stata - looping |

Date |
Thu, 4 Nov 2004 10:30:57 +0100 |

Dear Statalister, I am trying to use Clarify to construct confidence intervals for predicted probabilities from a logit model. I have based my analysis on the below code used in King, Tomz and Wittenberg's paper in American Journal of Political Science: "Making the most of statistical analyses: improving interpretation and presentation". --- start code ---- version 6.0 estsimp logit turnout educate age agesqrd income white /* run logit */ setx (income white) mean /* hold inc,wt at means */ set more off /* let output scroll */ generate plo12 = . /* lower bound if ed=12 */ generate phi12 = . /* upper bound if ed=12 */ generate plo16 = . /* lower bound if ed=16 */ generate phi16 = . /* upper bound if ed=16 */ generate ageaxis = _n+17 in 1/78 /* contains 18,19,..,95 */ setx mean /* set all vars to mean */ local a = 18 /* begin with 18 ys old */ while `a' <= 95 { /* go to 95 years old */ display "Simulating for age = `a'" /* monitor our progress */ setx educate 12 age `a' agesqrd `a'^2*.01 /* set age, educ=12 ys */ simqi, prval(1) genpr(edis12) /* save Pr(Y=1|educ=12) */ _pctile edis12, p(.5,99.5) /* fetch percentiles */ replace plo12 = r(r1) if ageaxis==`a' /* save lo bound of ci */ replace phi12 = r(r2) if ageaxis==`a' /* save hi bound of ci */ setx educate 16 /* change educ to 16ys */ simqi, prval(1) genpr(edis16) /* save Pr(Y=1|educ=16) */ _pctile edis16, p(.5,99.5) /* fetch percentiles */ replace plo16 = r(r1) if ageaxis==`a' /* save lo bound of ci */ replace phi16 = r(r2) if ageaxis==`a' /* save hi bound of ci */ drop edis12 edis16 /* clean-up our mess */ local a = `a' + 1 /* advance age 1 year */ } sort ageaxis set textsize 130 graph7 plo12 phi12 plo16 phi16 ageaxis, s(iiii) c(||||) /* */ xlabel(18,24,30,36,42,48,54,60,66,72,78,84,90,95) /* */ ylabel(.2,.4,.6,.8,1) l1(Probability of Voting) /* */ gap(3) b2(Age of Respondent) -------- end code ------- Now here King et al. uses a loop to go through all ages from 18 to 95, and give CI for each year, in two different scenarios, saving the low and hi of the CI in 4 different variables. Both the constructed ageaxis and age are exactly similar. However, I am trying to plot predicted probabilities for the difference in price between two products, together with different scenarios of promotion. My price difference variables consists of thousands of different prices, for example: price -3.7021 -3.7020 -2.6789 etc etc until 2.7987 I have followed the approach above, but I count with: local a = `a' + 0.0001 This seems to work, Stata is counting until 2.7987, which is the last price, but Stata does not save the CI's in new variables. I have worked on this a couple of days, but I can't figure out why I can't get the CI's saved in the new variables. I am using Stata 8.2. Any help on this would be greatly appreciated. And while I'm at it being stuck, King et al. use: graph7 plo12 phi12 plo16 phi16 ageaxis, s(iiii) c(||||) for plotting the CI's. It works under Stata7, but not under 8. Do I have any better options available in Stata 8 to do this? Thanks. Best wishes, Alexander Severinsen * * 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/

- Prev by Date:
**st: Identification - panel data two-stage random effects model with binary dependent variable** - Next by Date:
**st: RE: Gary King's Clarify for Stata - looping** - Previous by thread:
**st: Identification - panel data two-stage random effects model with binary dependent variable** - Next by thread:
**st: RE: Gary King's Clarify for Stata - looping** - Index(es):

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