Bookmark and Share

Notice: On April 23, 2014, Statalist moved from an email list to a forum, based at

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

st: RE: initial values in ivprobit

From   "Brian P. Poi" <[email protected]>
To   <[email protected]>
Subject   st: RE: initial values in ivprobit
Date   Sat, 15 Jan 2011 10:30:12 -0500

-----Original Message-----
From: [email protected]
[mailto:[email protected]] On Behalf Of xueliansharon
Sent: Friday, January 14, 2011 10:54 AM
To: [email protected]
Subject: st: initial values in ivprobit

Dear all,

I want to estimate an ivprobit model, and I need to specify the initial
values using a matrix coeff, I always got an error message as : "initial
vector: extra parameter r1 found", How can I deal with this problem? 

The following are my codes (using nlsw88 as an example):

est clear
sysuse nlsw88, clear
matrix define coeff=(1\2)
ivprobit collgrad tenure (wage=smsa grade), from(coeff)

I know that in the "from" option, I could specify numbers for initial values
directly rather than a matrix, but in my own program, I need to use a matrix
as initial values.

Many thanks.


To figure out how to specify initial values as a matrix, the easiest thing
to do is first fit a simple model and examine the coefficient vector e(b).
Your initial value matrix will be the same size as e(b), and the values will
need to appear in the same order.  In the case of -ivprobit-, you'll also
want to add the option 'first' to see the "first-stage" coefficients; that
makes figuring out what is in e(b) easier.

. webuse laborsup

. ivprobit fem_work fem_educ kids (other_inc = male_educ), first
(output omitted)

. matrix list e(b)

      fem_work:   fem_work:   fem_work:   fem_work:  other_inc:  other_inc:
     other_inc    fem_educ        kids       _cons    fem_educ        kids
y1  -.05427563   .21111102  -.18209291   .36720829   .33518665   .83290555

     other_inc:  other_inc:     athrho:    lnsigma:
     male_educ       _cons       _cons       _cons
y1   2.8452531   9.8725609   .39078578   2.8133833

Here we see that the coefficients for the probit equation come first,
followed by the coefficients for the (loosely speaking) first-stage
regression equation, then the hyperbolic arctangent of rho and the log of
sigma.  Those last two parameters are defined in the Methods and Formulas
section of the reference manual entry for -ivprobit-.  The order of the
parameters for the probit equation is <endogenous variable>, <exogenous
variables>, constant and for the first-stage regression <exogenous variables
in probit>, <additional instruments>, constant.

Looking at the model you specified

. ivprobit collgrad tenure (wage=smsa grade)

The probit equation will have 3 parameters (for wage, tenure, and a
constant), and the regression equation will have 4 parameters (for tenure,
smsa, grade, and a constant), so your initial value matrix will need to have
3 + 4 + 2 = 9 columns.

Having said all that, I'm not sure specifying different initial values will
help, as the ones -ivprobit- uses by default are probably as good as any.
-ivprobit- uses OLS to get the first-stage initial values (and sigma) and
probit ignoring endogeneity to get initial values for the probit equation
parameters.  If your model doesn't converge on its own, I'd consider trying
a simpler specification rather than playing with initial values.

   -- Brian Poi
   -- [email protected]

*   For searches and help try:

© Copyright 1996–2018 StataCorp LLC   |   Terms of use   |   Privacy   |   Contact us   |   Site index