[R] Optimisation with Normalisation Constraint

David Winsemius dw|n@em|u@ @end|ng |rom comc@@t@net
Thu Jun 21 02:04:28 CEST 2018


> On Jun 20, 2018, at 8:50 AM, Lorenzo Isella <lorenzo.isella using gmail.com> wrote:
> 
> Dear All,
> I have a problem I haver been struggling with for a while: I need to
> carry out a non-linear fit (and this is the
> easy part).
> I have a set of discrete values {x1,x2...xN} and the corresponding
> {y1, y2...yN}. The difficulty is that I would like the linear fit to
> preserve the sum of the values y1+y2+...yN.
> I give an example below (for which there may even be an analytical
> solution, but that is not the point here)
> 
> ############################################################################
> library(minpack.lm)
> 
> 
> 
> set.seed(124)
> 
> z <- rexp(3000,3)
> 
> 
> zf <- z[z<= 0.5 | z>=0.9]
> 
> myhist <- hist(zf, plot=FALSE) 
> 
> 
> df <- data.frame(x=myhist$mids, y=myhist$density)
> 
> 
> 
> myfit <- nlsLM(y~(A*exp(-lambda*x))
>               ,data=df, start=list(A=1,lambda=1))
> 
> 
> 
>> sum(myhist$density)
> [1] 5
>> sum(predict(myfit))
> [1] 4.931496
> 
> ############################################################################
> I would like sum(predict(myfit)) to be exactly 5 from the start,
> without renormalising a posteriori the fit.

Wouldn't that happen if you minimized that absolute deviations from the fit rather than minimizing the sums of squares??
> 
> Any suggestion is appreciated.
> Cheers
> 
> Lorenzo
> 

David Winsemius
Alameda, CA, USA

'Any technology distinguishable from magic is insufficiently advanced.'   -Gehm's Corollary to Clarke's Third Law




More information about the R-help mailing list