Statalist


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

st: Triprobit & mvprobit errors (trivariate probit model)


From   "Stephen P. Jenkins" <[email protected]>
To   <[email protected]>
Subject   st: Triprobit & mvprobit errors (trivariate probit model)
Date   Wed, 30 Jul 2008 11:25:07 +0100

------------------------------

Date: Tue, 29 Jul 2008 15:01:38 -0400
From: "Tiffany Davenport" <[email protected]>
Subject: st: Triprobit & mvprobit errors (trivariate probit model)

Dear Statalist,

I am experiencing difficulties simultaneously estimating three
equations in
order to estimate the average treatment effects of two interventions
relative to a control group in a randomized experiment.  I have used
both
triprobit and mvprobit commands and have different problems with each.
I
have searched the Statalist archives for applicable posts, but did not
turn
up enough information to resolve these issues.  

I am estimating the following three equations: 

1. Outcome= �1 + �1TreatmentAContact + �2TreatmentBContact +
�3Stratum1 +
�4Covariate1 +.+  �9Covariate6 + �1

2. TreatmentAContact= � + �1Treatment A + �2Stratum1 + �3Covariate1
+.+
�8Covariate6 + �2 

3. TreatmentBContact = � + � 1TreatmentB + �2Stratum1 + �3Covariate1
+.+
�8Covariate6 + �3

Where

- - All variables are binary including the "Outcome" dependent
variable and
all explanatory variables.
- -  TreatmentAContact and TreatmentBContact are binary indicators of
a
subject's successfully having received the respective treatment.
- - TreatmentA and TreatmentB are binary indicators of random
assignment to
treatment groups A and B, respectively. "Control" is the reference
group.
- - Standard errors are clustered by unit of randomization.

The syntax I have been using is the following:

Triprobit [or mvprobit] (Outcome= TreatmentAContact TreatmentBContact
covariate1 covariate2 covariate3 covariate4 covariate5 covariate6
stratum1)
(TreatmentAContact = TreatmentA covariate1 covariate2 covariate3
covariate4
covariate5 covariate6 Stratum1) (TreatmentBContact = TreatmentB
covariate1
covariate2 covariate3 covariate4 covariate5 covariate6 Stratum1), cl
(randomization unit)

Errors I receive:

triprobit:
When I use triprobit with up to 5000 draws, I get the error "matrix
not
positive definite, r(506);"  or "could not calculate numerical
derivatives
missing values encountered r(430);" When I specify "difficult" for
triprobit, the output includes hundreds of iterations of the same log
likelihood that are nonconcave, and though I have halted the process,
it
does not seem as though convergence will be reached..

mvprobit:
When I use the mvprobit command with fewer draws (50, for example) I
get the
error, "flat or discontinuous region encountered, r(430);"

In either case, all iterations after the first few result in log
likelihoods
that are listed as "nonconcave."  Both commands work with a low number
of
draws, but the estimates are not stable. (If I slightly increase the
number
of draws, the estimates of the coefficients change.)

I believe the presence of the control group, for which either contact
variable is always 0 might be causing these problems.  Does anyone
have
suggestions of alterations to triprobit or mvprobit that might help or
perhaps a more appropriate estimation strategy than maximum simulated
likelihood? 

-----------------------------------------------
You haven't shown us EXACTLY what you typed or was in your do/log file
-- this is essential to ascertain EXACTLY what options you applied to
these commands. Nor do you say what the sample size is.

It's strange too that you report using only 50 draws for -mvprobit-
but 5000 with -triprobit-. 

The problems appear to be with your data and model specification
rather than MSL.

The convergence problems you report suggest that. But there may be
other things that you have or have not tried.  E.g. with -mvprobit-,
consider also the difficult option, and also varying the technique
option, e.g. something like technique(dfp nr) can help.  

Also have a look at the Cappellari and Jenkins article in Stata
Journal 6(2), with associated code, showing how you can speed up
estimation of MV Probit models using a plugin, and also exploiting
Halton draws rather than pseudo-random ones. (Preprint available as an
ISER working paper.)   On the choice of number of draws, see earlier
Statalist thread on this topic. Also see C + J article in SJ 3(3)
(downloadable from SJ website).    In short, once you get convergence,
you should explore what happens if you increase the number of draws
... keep going until there is no change in the estimates to speak of.


Stephen
-------------------------------------------------------------
Professor Stephen P. Jenkins <[email protected]>
Director, Institute for Social and Economic Research
University of Essex, Colchester CO4 3SQ, U.K.
Tel: +44 1206 873374.  Fax: +44 1206 873151.
http://www.iser.essex.ac.uk  
Survival Analysis using Stata:
http://www.iser.essex.ac.uk/teaching/degree/stephenj/ec968/ 
Downloadable papers and software: http://ideas.repec.org/e/pje7.html

Learn about the UK's new household panel survey, the United Kingdom
Household Longitudinal Study: http://www.iser.essex.ac.uk/ukhls/ 


*
*   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–2024 StataCorp LLC   |   Terms of use   |   Privacy   |   Contact us   |   What's new   |   Site index