Notice: On April 23, 2014, Statalist moved from an email list to a forum, based at statalist.org.
From | Keith Kapetan <keith.kapetan@gmail.com> |
To | statalist@hsphsun2.harvard.edu |
Subject | Re: st: Concavity issues using -gmm- estimating parameters from a normal distribution |
Date | Mon, 23 Aug 2010 11:54:09 -0500 |
Hi, Thank you for the response. I believe I understand the issue now. Keith On Sun, Aug 22, 2010 at 10:47 PM, Stas Kolenikov <skolenik@gmail.com> wrote: > This is an identification issue, that is, your fault, not -gmm-'s one. > The parameters {mean} and {SD} are not identified: if you change the > scale of the normal variate to the standard normal, and redefine your > thresholds {NO}, {MAYBE}, {YES} accordingly, you will get exactly the > same observed data. As in any model with a latent index/latent > variables, you need to set the location and scale of those latents, > and your call to -gmm- does not specify these. > > On Fri, Aug 20, 2010 at 11:05 AM, Keith Kapetan <keith.kapetan@gmail.com> wrote: >> Hi all, >> >> I am using stata 11.1 to estimate some parameters and the mean and >> standard deviation of a normal distribution using the -gmm- command. >> >> I have data in the form of 1's and 0's with 1's occurring if it falls >> left of a cutoff from some normal distribution. I am trying to >> determine the mean and standard deviation of this distribution and >> also estimate the parameters that determine the cutoffs. >> >> Here is some sample code illustrating what I am trying to do: >> >> set obs 10000 >> gen random=20+10*rnormal() >> >> gen X_1_NO=0 >> gen X_2_NO=0 >> gen X_1_MAYBE=0 >> gen X_2_MAYBE=0 >> gen X_1_YES=0 >> gen X_2_YES=0 >> >> replace X_1_NO = 1 if random<25 >> replace X_2_NO = 1 if random<35 >> replace X_1_MAYBE = 1 if random<15 >> replace X_2_MAYBE = 1 if random<20 >> replace X_1_YES = 1 if random<5 >> replace X_2_YES = 1 if random<10 >> >> gmm (X_1_NO-normal((25-{mean})/{ >> SD}))(X_2_NO-normal((35-{mean})/{SD}))(X_1_MAYBE-normal((15-{mean})/{SD}))(X_2_MAYBE-normal((20-{mean})/{SD}))(X_1_YES-normal((5-{mean})/{SD}))(X_2_YES-normal((10-{mean})/{SD})), >> from(mean 5 SD 5) winitial(identity) onestep >> >> >> gmm (X_1_NO-normal((1*{P}-{NO}-20)/10))(X_2_NO-normal((2*{P}-{NO}-20)/10))(X_1_MAYBE-normal((1*{P}-{MAYBE}-20)/10))(X_2_MAYBE-normal((2*{P}-{MAYBE}-20)/10))(X_1_YES-normal((1*{P}-{YES}-20)/10))(X_2_YES-normal((2*{P}-{YES}-20)/10)), >> from(NO -20 MAYBE -5 YES 0 P .5) winitial(identity) onestep >> >> gmm (X_1_NO-normal((1*{P}-{NO}-{mean})/{SD}))(X_2_NO-normal((2*{P}-{NO}-{mean})/{SD}))(X_1_MAYBE-normal((1*{P}-{MAYBE}-{mean})/{SD}))(X_2_MAYBE-normal((2*{P}-{MAYBE}-{mean})/{SD}))(X_1_YES-normal((1*{P}-{YES}-{mean})/{SD}))(X_2_YES-normal((2*{P}-{YES}-{mean})/{SD})), >> from(NO -10 MAYBE -5 YES 0 P .5 mean 5 SD 5) winitial(identity) >> onestep >> >> >> The first gmm output correctly returns the mean and standard deviation >> of 20 and 10 respectively. >> >> The second gmm output correctly estimates the parameters P, NO, MAYBE, and YES. >> >> The last gmm output is what I am trying to do, which combines the >> first and second commands. It does not converge and returns the error >> "(not concave)" on every iteration. Is there a way to estimate P, NO, >> MAYBE, YES, mean, and SD using -gmm-? >> >> Keith >> >> * >> * 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/ >> > > > > -- > Stas Kolenikov, also found at http://stas.kolenikov.name > Small print: I use this email account for mailing lists only. > > * > * 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/