[R] Fitting function with if-clause (nls; e.g. heaviside)
Prof Brian Ripley
ripley at stats.ox.ac.uk
Wed Jun 23 18:20:28 CEST 2004
On Wed, 23 Jun 2004, Karl Knoblick wrote:
> I want to fit a function. The function is e.g.:
> y = c+m1*x if x<0, c+m2*x if x>=0
> where m1, m2 and c is a parameter and x, y are
> variables of a data frame.
>
> I think using nls is appropriate. But I do not know,
> how to type this formula in nls. Can anybody help?
It's a linear model (linear in the params)
lm( y ~ I(x*(x>0) + I(x*(x<0)))
although I would define some new variables to make that easier to read,
e.g.
xplus <- x*(x>0)
xminus <- x*(x<0)
lm(y ~ xplus + xminus)
--
Brian D. Ripley, ripley at stats.ox.ac.uk
Professor of Applied Statistics, http://www.stats.ox.ac.uk/~ripley/
University of Oxford, Tel: +44 1865 272861 (self)
1 South Parks Road, +44 1865 272866 (PA)
Oxford OX1 3TG, UK Fax: +44 1865 272595
More information about the R-help
mailing list