我的非线性模型如下:
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有关,但我不确定。此外,在一个时间点预测,给出错误:度'必须小于唯一点的数量。有人可以帮忙吗?