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

st: ml probit with nonlinear argument(s)

From   "Alexis Belianin" <[email protected]>
To   [email protected]
Subject   st: ml probit with nonlinear argument(s)
Date   Mon, 29 Sep 2008 14:19:28 +0400

Dear Statalisters,

I am trying to estimate the parameters of individual utility function
under risk using -ml- command in Stata 9.2 (updated). The model is
probit: the lhs codes individual preferences in a sequence of pairwise
choices from the set of lotteries of a form [p_1,x_1;  p_2,x_2;
p_3,x_3] vs [q_1,x_1; q_2,x_2; q_3,x_3], where p's and q's are
probabilities, and x's are outcomes.

The EU theory says that choice depends on whether p_1*u(x_1) +
p_2*u(x_2) + p_3*u(x_3) is greater or less than q_1*u(x_1) +
q_2*u(x_2) + q_3*u(x_3). I estimate the parameter(s) of the u function
of a specified form – say, a power CRRA function u(x_i)=(x_i)^\alpha.
Normalizing utilities and defining d_2=p_2 – q_2, d_3=p_3 - q_3, the
probit specification is Prob(y=1|\alpha) = \Phi( d_2 +
d_3*(x_3)^\alpha ), where \Phi is standard normal cdf, whose value
depends on known d_2, d_3 and x_3, and the parameter \alpha to be

How should I fit this model in Stata? Statalist and guides, including
Gould e.a. book on -ml- do not seem to contain straightforward hints.
My guess is something like

program define pcrra
      version 9.2
      args lnf alpha
      tempvar xb
      gen double `xb' = d3*x3^`alpha'+d2
      quietly replace `lnf'=ln(normal(`xb'))  if $ML_y1 == 1
      quietly replace `lnf'=ln(normal(-`xb')) if $ML_y1 == 0

. ml model lf pcrra (alpha: y= )
. ml check
. ml maximize

This is what I got:

initial:       log likelihood = -35.802634
rescale:       log likelihood = -34.554852
Iteration 0:   log likelihood = -34.554852
Iteration 1:   log likelihood = -34.551539
Iteration 2:   log likelihood = -34.551469
Iteration 3:   log likelihood = -34.551469

                                             Number of obs   =         50
                                             Wald chi2(0)    =          .
Log likelihood = -34.551469      Prob > chi2     =          .

      y | Coef.  Std.Err.    z    P>|z|     [95% Conf. interval]
 _cons  |-.37933  1.4415  -0.26   0.792    -3.2046    .4459

I suspect this is wrong, not least because of no values of Wald
statistics; but the outcome is qualitatively the same on different
(e.g. larger) datasets. Any suggestion on how to proceed with this

Thanks in advance,

Alexis Belianin
[email protected]

*   For searches and help try:

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