Bookmark and Share

Notice: On April 23, 2014, Statalist moved from an email list to a forum, based at statalist.org.


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

st: RE: Curve fitting with nl log4, how to put constraints on parameters


From   Nick Cox <[email protected]>
To   "'[email protected]'" <[email protected]>
Subject   st: RE: Curve fitting with nl log4, how to put constraints on parameters
Date   Mon, 14 Nov 2011 17:46:37 +0000

If something must be positive, its logarithm can still be negative. So exp(log(positive)) will always be positive. 

See 

http://www.stata.com/support/faqs/stat/interval-constraints.html

Whether imposing a constraint is valid is more complicated question. There are two opposite truths, which are both correct. 

1. If a model is appropriate, you should not need to force it. Constraints that are natural will be obeyed automatically.

2. Allowing impossible parameter values in model fitting is just silly. You should specify the rules for your model fit as an expression of what makes sense (and of what does not).  

Nick 
[email protected] 

Jennyfer Wolf

I am trying to do curve fitting for survey estimates over time with
the nl:log4... command (y = b0 + b1/(1 + exp(-b2*(x-b3))).
This logistic function seems to me to be the most realistic shape to
describe the data.

However, in some cases (e.g. when I only have survey estimates that
are quite linear over time but the last estimate is going a bit down)
I would need to constraint b2 that it cannot become negative (if not I
get a curve which is strongly declining which is very unlikely to be
true and is not supported by my data). I wrote the formula (instead of
log4) so I could try to get only positive values for b2 with for
example "invlogit({lnb2})

1. Would this be a valid thing to do?

However, when I try the two commands which I thought should give me
the same results:

nl log4:[VARNAME] [VARNAME] if country=="maldives"

and

nl ([VARNAME]={b0}+{b1}/(1+exp(-{
b2}*([VARNAME]-{b3}))) if country=="maldives")

I get different estimates (e.g. if I use the second formula I only get
a value for b0).

2. Could you give me advise on how to do curve fitting by using this
function with the constraint that the b2 does not get negative?


*
*   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–2018 StataCorp LLC   |   Terms of use   |   Privacy   |   Contact us   |   Site index