Mathematica 9 is now available
Services & Resources / Wolfram Forums / MathGroup Archive
-----

MathGroup Archive 2008

[Date Index] [Thread Index] [Author Index]

Search the Archive

NMaximize problem

  • To: mathgroup at smc.vnet.net
  • Subject: [mg89962] NMaximize problem
  • From: Ramiro <ramiro.barrantes at gmail.com>
  • Date: Wed, 25 Jun 2008 06:27:44 -0400 (EDT)

Hello,

I am trying to calculate the maximum likelihood of a logarithmic
function over 17 parameters.    I am using NMaximize and setting all
the parameters to be over 0, and the sum of the a group of them (t's)
to be equal to 1 (i.e.  t1 + t2 + t3 + t4 + t5 + t6 + t7 + t8 + t9 +
t10 + t11 + t12 ==  1) (complete code at the end).   My constraints
would then be:

l1 > 0, l2 > 0, l3 > 0, l4 > 0, t1 > 0, t2 > 0, t3 > 0, t4 > 0, t5 >
0, t6 > 0, t7 > 0, t8 > 0, t9 > 0, t10 >0, t11 > 0, t12 > 0, t1 + t2 +
t3 + t4 + t5 + t6 + t7 + t8 + t9 + t10 + t11 + t12 == 1

When I run NMaximize over my function I get:

NMaximize::nrnum: "The function value 28.2245-6.28319I is not a
real number at {a,l1,l2,l3,l4,t1,t10,t11,t12,t2,<<7>>}
={1.,2.,2.,<<6>>,0.0799689,<<7>>}."

which is because the number inside the logarithm is negative.  When I
used EvaluationMonitor and looked at the iterations I saw that the
first iteration was:

In[189]:= data[[1, 1]]

Out[189]= {1., {2., 2., 2., 2.}, {1.22125*10^-15, 0.,
-2.22045*10^-16,  0., -2.22045*10^-16, -2.22045*10^-16,
-2.22045*10^-16, -1.11022*10^-16, 1., -2.22045*10^-16, 0., 0.}}

As you can see there are several negative numbers, even though the
constraints should enforce otherwise.  The error I get I think is a
consequence of that,

In[188]:= data[[1, -1]]

Out[188]= {1., {2., 2., 2., 2.}, {-0.549516, 0.0799689, 0.0478029,
  0.0263613, 0.0356839, 0.0720513, 0.066108, 0.0861263, 1., 0.0849883,
   0.0498477, 0.000577809}}

This input would lead to my function evaluating a negative logarithm.
However, NMaximize shouldn't be evaluating any negative numbers in the
parameters right?

Any ideas?
Thank you,

Ramiro


{res, data} =
  Reap[NMaximize[{logLikelihood[{{5, 5, 0, 0}, {3, 1, 0, 1}}, {33, 83,
        11, 14}, S,
      a, {l1, l2, l3, l4}, {t1, t2, t3, t4, t5, t6, t7, t8, t9, t10,
       t11, t12}], l1 > 0, l2 > 0, l3 > 0, l4 > 0, t1 > 0, t2 > 0,
     t3 > 0, t4 > 0, t5 > 0, t6 > 0, t7 > 0, t8 > 0, t9 > 0, t10 > 0,
     t11 > 0, t12 > 0,
     t1 + t2 + t3 + t4 + t5 + t6 + t7 + t8 + t9 + t10 + t11 + t12 ==
      1}, {a, l1, l2, l3, l4, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10,
      t11, t12},
    EvaluationMonitor :>
     Sow[{a, {l1, l2, l3, l4}, {t1, t2, t3, t4, t5, t6, t7, t8, t9,
        t10, t11, t12}}]]];

NMaximize::nrnum: The function value 28.2245-6.28319 I is not a real \
number at {a,l1,l2,l3,l4,t1,t10,t11,t12,t2,<<7>>} = \
{1.,2.,2.,<<6>>,0.0799689,<<7>>}. >>


  • Prev by Date: Re: ParameterCITable vs. ParameterConfidenceRegion:
  • Next by Date: Re: Re: How to add a title to a cell and then collapse
  • Previous by thread: Re: ParameterCITable vs. ParameterConfidenceRegion:
  • Next by thread: Re: NMaximize problem