非线性回归模型的置信区间

时间:2017-05-30 21:23:04

标签: r nls

我的数据包含两列:时间和累计数字如下:

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

我的非线性函数是:

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

我的目标是使用R中的nls()使用非线性回归对此函数进行建模,并计算置信区间。我有以下内容:

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))

我在计算置信区间时遇到错误,我尝试了以下内容:

confint(m1.fit)

一旦我发出此命令,就会出现以下错误:

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

在这方面,有人可以帮助我吗?

1 个答案:

答案 0 :(得分:1)

尝试包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`