Joshua H Tamayo-Sarver wrote:
--------------------------------------------------------------------------------
Is anyone aware of how to perform the three- or four-parameter logistic dose
response model in Stata? Any guidance would be greatly appreciated.
--------------------------------------------------------------------------------
I believe that what you're referring to as the three-parameter logistic
model is also known in some circles as the Emax model (or "simple" Emax
model), and the four-parameter as the sigmoid Emax model.
To see the relationship between these and logistic regression � la
generalized linear models, see the last two posts at the bottom of
www.boomer.org/pkin/PK96/PK1996097.html and Appendix 1 of
www.anesthesia-analgesia.org/cgi/content/full/95/3/609 .
There are variations in weighting schemes as well as nomenclature. See, for
example, Equations 2 (three-parameter logistic) and 3 (four-parameter
logistic) in a post by David Airey
( www.stata.com/statalist/archive/2003-04/msg00450.html ): Harvey
Motulsky's GraphPad Prism software exponentiates a term involving the
logarithmically transformed ligand concentration or drug dose.
As others have already mentioned, -nl- is probably the easiest approach for
these in Stata, and its use is illustrated below for these. You can also
use -ml-, as David Airey alluded in his earlier post in this thread.
For what it's worth, I've just stumbled across a five-parameter logistic
model in the context of ligand-binding assays (Gottschalk and Dunn, 2005,
cited in Findlay and Dillard, 2007).
Joseph Coveney
P. G. Gottschalk and J. R. Dunn, The five-parameter logistic: a
characterization and comparison with the four-parameter logistic.
_Analytical Biochemistry_ 343:54--65, 2005.
J. W. A. Findlay and R. F. Dillard, Appropriate calibration curve fitting in
ligand binding assays. _The AAPS Journal_ 9(2):E260--67, 2007.
( http://aapspharmsci.org/view.asp?art=aapsj0902029 )
clear
set more off
* Dataset from www.brendan.com/PDF files/Curve Fit Comparison.pdf
input int response float concentration
50 0.08
111 0.24
412 0.48
834 0.96
1120 1.92
1255 3.84
1327 11.52
end
label variable concentration "Concentration (pg/ml)"
label variable response "Adjusted Absorbance � 1000"
* Getting starting values
summarize response, meanonly
local Emin = r(min)
local Emax = r(max)
summarize concentration, meanonly
local EC50 = r(mean)
*
* Three-parameter logistic model
*
nl ( response = {Emax} + ({Emin} - {Emax}) / (1 + ///
concentration / {EC50}) ), ///
initial(Emin `Emin' Emax `Emax' EC50 `EC50') nolog
*
* Four-parameter logistic model
*
nl ( response = {Emax} + ({Emin} - {Emax}) / (1 + ///
(concentration / {EC50})^{Hill}) ), ///
initial(Emin `Emin' Emax `Emax' EC50 `EC50' Hill 1) ///
nolog
*
* Gottschalk-Dunn five-parameter logistic model
*
nl ( response = {Emax} + ({Emin} - {Emax}) / (1 + ///
(concentration / {EC50})^{Hill})^{Asymmetry} ), ///
initial(Emin `Emin' Emax `Emax' EC50 `EC50' Hill 1) ///
nolog
graph twoway function y = _b[/Emax] + (_b[/Emin] - ///
_b[/Emax]) / (1 + (x / _b[/EC50])^_b[/Hill])^_b[/Asymmetry], ///
range(concentration) || scatter response concentration, ///
legend(off) xscale(log) xlabel(0.1 0.3 1 3 10) ///
mcolor(black) ylabel( , angle(horizontal) nogrid) ///
xtitle(`: variable label concentration') ///
ytitle(`: variable label response') ///
caption("ELE-9", ring(0) position(12))
exit
*
* For searches and help try:
* http://www.stata.com/support/faqs/res/findit.html
* http://www.stata.com/support/statalist/faq
* http://www.ats.ucla.edu/stat/stata/