用非线性回归预测值

时间:2018-01-17 19:58:33

标签: r regression predict nls non-linear-regression

我的非线性模型如下:

fhw <- data.frame(
    time=c(10800, 10810, 10820, 10830, 10840, 10850, 10860, 10870, 10880, 10890),
  water=c( 105, 103, 103, 104, 107, 109, 112, 113, 113, 112)
)
nl <- nls(formula = water ~ cbind(1,poly(time,4),sin(omega_1*time+phi_1),
                        sin(omega_2*time+phi_2),
                        sin(omega_3*time+phi_3)), data = fhw, 
          start = list(omega_1=(2*pi)/545, omega_2=(2*pi)/205,
              omega_3=(2*pi)/85, phi_1=pi, phi_2=pi, phi_3=pi),
          algorithm = "plinear", control = list(maxiter = 1000))

时间在10800到17220之间,但我想提前预测。使用函数预测如下:

predict(nl,data.frame(time=17220:17520))

给出错误的结果,因为它返回的第一个值与我使用predict(nl)时返回的最后一个值完全不同。我认为这个问题与poly有关,但我不确定。此外,在一个时间点预测,给出错误:度'必须小于唯一点的数量。有人可以帮忙吗?

0 个答案:

没有答案