[R] different results from nls in 2.10.1 and 2.11.1

Philip Bett pbett at astro.uni-bonn.de
Sat Jun 18 15:44:13 CEST 2011


Hi,
I've noticed I get different results fitting a function to some data on 
my laptop to when I do it on my computer at work.

Here's a code snippet of what I do:

##------------------------------------------------------------------
require(circular) ## for Bessel function I.0

## Data:
dd <- c(0.9975948929787, 0.9093316197395, 0.7838819026947, 
0.9096108675003, 0.8901804089546, 0.2995955049992, 0.9461286067963, 
0.8248071670532, 0.2442084848881, 0.2836948633194, 0.7353935241699, 
0.5812761187553, 0.8705610632896, 0.8744471669197, 0.7490273118019, 
0.9947383403778, 0.9154829382896, 0.8659985661507, 0.6448246836662, 
0.8588128685951, 0.7347437739372, -0.1645197421312, 0.970999121666, 
0.8038327097893, 0.9558997154236, 0.6846113204956, 0.6286814808846, 
0.9201356172562, 0.9422197341919, 0.3470877110958, 0.4154576957226, 
0.0721184238791, 0.14151956141, -0.6142936348915, -0.4688512086868, 
0.6805665493011, 0.3594025671482, 0.8991097211838, 0.7656877636909, 
0.9282909035683, 0.9454715847969, 0.9766132831573, 0.4316343963146, 
0.62679708004,   0.2093886137009, 0.3937581181526, 0.4254160523415, 
0.8684504628181, 0.3844584524632, 0.9578431844711, 0.956972181797, 
0.4456568360329, 0.9793710708618, 0.5825698971748, 0.929228246212, 
0.9211971759796, 0.9407976865768, 0.821156680584, 0.2048042863607, 
0.6473184227943, 0.9456319212914, 0.7021154165268, 0.9761978387833, 
0.1485801786184, 0.2195029109716, 0.5378785729408, 0.8304615020752, 
0.8596342802048, 0.950027525425, 0.9102076888084, 0.5108731985092, 
0.7200184464455, 0.3571084141731, 0.9765330553055, -0.143017962575, 
0.8576183915138, 0.1283493340015, -0.3226098418236, 0.7031792402267, 
0.8708582520485, 0.56754809618, 0.060470353812, 0.8015220761299, 
0.7363410592079, 0.671902179718, 0.8082517385483, 0.9468197822571, 
0.9729647636414, 0.7919752597809, 0.9539568424225, 0.4840737581253, 
0.850653231144, 0.5909016132355, 0.8414449691772, 0.9699150323868)

xlims <- c(-1,1)
bw <- 0.05
b <- seq(xlims[1],xlims[2],by=bw)   ;  nb <- length(b)
h <- hist( dd, breaks=b, plot=FALSE)

FisherAvgdPdf <- function(theta,theta0,kappa){
   A <- kappa/(2*sinh(kappa))
   A * I.0( kappa*sin(theta)*sin(theta0) ) * exp( 
kappa*cos(theta)*cos(theta0) )
}


nls(dens ~ FisherAvgdPdf(theta,theta0,kappa),
     data = data.frame( theta=acos(h$mids), dens=h$density ),
     start=c( theta0=0.5, kappa=4.0 ),
     algorithm="port", lower=c(0,0), upper=c(acos(xlims[1]),500),
     control=list(warnOnly=TRUE) )

##------------------------------------------------------------------

On one machine, nls converges, and on the other it doesn't.  Any ideas 
why, and which is "right"?   I can't see anything in R News that could 
be relevant.


The different R versions (and computers) are:
 > R.version
                _
platform       i686-pc-linux-gnu
arch           i686
os             linux-gnu
system         i686, linux-gnu
status
major          2
minor          11.1
year           2010
month          05
day            31
svn rev        52157
language       R
version.string R version 2.11.1 (2010-05-31)


and

 > R.version
                _
platform       x86_64-pc-linux-gnu
arch           x86_64
os             linux-gnu
system         x86_64, linux-gnu
status
major          2
minor          10.1
year           2009
month          12
day            14
svn rev        50720
language       R
version.string R version 2.10.1 (2009-12-14)




Thanks,

Phil Bett



-- 
------------------------------------------------------------------------
Dr Philip Bett    (Room 2.009)       http://www.astro.uni-bonn.de/~pbett
Argelander-Institut für Astronomie   Tel  : +49 (0)228-73-5084
Auf dem Hügel 71, D-53121 Bonn       Email: p.e.bett at dunelm.org.uk
Rheinische Friedrich-Wilhelms-Universität Bonn



More information about the R-help mailing list