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

Re: st: nl -choice between alternative parametrisations of sigmoid models

From   "Rosy Reynolds" <>
To   <>
Subject   Re: st: nl -choice between alternative parametrisations of sigmoid models
Date   Fri, 26 Oct 2007 17:18:51 +0100

Perfect! That deals with everything, including where to find the code for -log4-.
Yes, our dose-response curves are descending, unlike my synthetic example data. It makes sense to me (as well as Nick Holford) to think of inhibitory curves as having negative Emax. That's why I wanted the model to give me the coefficient set with negative Emax and positive Hill coefficient, rather than the alternative set with positive Emax and negative Hill which was what -nl log4- naturally produced.
I have a choice of ways forward now. I'll compare fitting the sigmoid Emax directly, using a little substitutable expression program to pick starting values, with the 4-parameter logistic, and compare also with results from other software that colleagues have used previously.
Thanks again to you, and everyone else who has contributed.
best wishes

----- Original Message ----- From: "Joseph Coveney" <>
To: "Statalist" <>
Sent: Saturday, October 27, 2007 8:18 AM
Subject: Re: st: nl -choice between alternative parametrisations of sigmoid models

Rosy Reynolds wrote (excerpted):

In the other set, b2 is negative, the sign of b1 is reversed, and b0 becomes
the outcome at infinitely high dose instead of at the lowest doses. The
lowest-dose outcome is now given by b0+b1.

With our data, -nl- naturally produces the set of coefficients with negative


I wonder if your dose-response curve is descending (e.g., growth rate of a
bacterium in presence of increasing concentrations of an antibiotic drug to
which it's susceptible). If that's the case, then it explains
why -nllog4.ado- sets up initial values that lead to what you've been
seeing. If it's the case, then you can reparameterize your model to
accommodate that the response is inhibitory in nature. Take a look at: . Scroll down about halfway, where
Nick Holford posts a reply. The pertinent text includes,

"The inhibitory sigmoid Emax model simply has a negative value for
Emax but can also be written like this (the inhibitory fractional
sigmoid Emax model):
E = E0*(1 - Emax * C^Hill / (EC50^Hill + C^Hill))
where Emax is now a (non-negative) fraction between 0 and 1. If
Emax=1 then the response will be 0 at infinite C i.e. the drug
produces complete inhibition of the response."

On the otherhand, if your dose-response curve is ascending with
homoscedastic errors as in the example do-files that you've posted, and if
you set up your initial values with Emax >> Emin, Hill >=1 and any
reasonable estimate for log ED50, then I can't imagine why -nl- would wander
off toward negative values for Hill coefficients with any dataset where it's
going to attain convergence with nonmissing coefficient standard errors.
About the only other thought that occurs (other than imposing nonlinear
constraints, as others have already suggested) would be to automatically
calculate initial values:

summarize response, meanonly
local Emax = r(max)
local E0 = r(min)
summarize log_dose, meanonly
local log_ED50 = r(mean)
nl log4: . . . , initial(b0 `E0' b1 `Emax' b2 1 b3 `log_ED50')

If your dose-response is descending (inhibitory) and you're using Nick
Holford's suggestion to parameterize as an inhibitory fraction sigmoid Emax
model, then you'd set E0 to be r(max), and set Emax to be 1 - r(min) /
r(max). If the middle dose is always the same in your designed experiments,
then there's no need to go through the motions of -summarize log_dose- each
replicate to get an initial value. Likewise, if you some prior knowledge
that the Hill coefficient should be in the neighborhood of, say, 3, then
that will be a better fixed initial value than 1.

You might be able to accommodate zero doses by modifying the four-parameter
logistic model in the manner that Daniel Waxman suggests, i.e., set up an
indicator variable for zero-valued doses, create a modified logarithmically
transformed dose variable that has nonmissing value (pick one arbitrarily)
for observations at zero dose, and fit:

nl (response = {Emin} * dose_is_zero_dummy + ///
{Emax} * (1 - dose_is_zero_dummy) / (1 + ///
exp({Hill} * ({ED50} - log_dose))), initial(. . .)

I'm not sure that that would be my first choice over just using the
conventional parameterization of the sigmoid Emax model, but it might be
worth a try if you insist upon the four-parameter logistic.

In your reply to Austin Nichols, you indicated a reluctance to choose
starting values. With nonlinear regression, you're liable to encounter a
few occasions where you'll need to choose starting values manually.

Joseph Coveney

* For searches and help try:

*   For searches and help try:

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