Search code examples
rnls

Confidence Interval for Non Linear Regression Model


My data consist of two columns: time and cumulative number like below:

time <- c(1:14)
cum.num <- c(20, 45, 99, 195, 301, 407, 501, 582, 679, 753, 790, 861, 1011, 1441) 

My non linear function is:

c1*cos(0.6731984259*time)+c2*sin(0.6731984259*time)+c3*(time)^2+c4*time+c5

My objective is to model this function using non linear regression using nls() in R and to compute the confidence interval. I have donr the following:

m1.fit<-nls(cum.vul~c1*cos(0.6731984259*time)+c2*sin(0.6731984259*time)+c3*(time)^2+c4*time+c5,start=list(c1=-50,c2=-60,c3=5,c4=8,c5=100))

I got an error while computing confidence interval, i have tried the following:

confint(m1.fit)

Once i issued this command got the following error:

Waiting for profiling to be done...
Error in prof$getProfile() : 
step factor 0.000488281 reduced below 'minFactor' of 0.000976562

Can anyone help me in this regard?


Solution

  • Try package nlstools:

    > nlstools::confint2(m1.fit)
             2.5 %     97.5 %
    c1  -48.556270  54.959689
    c2 -175.654079 -45.216965
    c3    3.285062   9.529072
    c4  -49.254627  46.007629
    c5  -34.135835 272.864743`