我有以下模型:
我在 R 中将其编码为:
function(t,C,Ao,s,wd,ph) C + Ao * exp(-s*t) * cos(wd*t + ph)
我想用这个方程来形成一个预测模型。
但是,我不知道如何成功运行或绘制这个方程。
- I tried
nls
但遇到了各种错误(包括那些警告我有关singular gradient
.
我看了here https://stats.stackexchange.com/q/13053/80624但鉴于我的模型似乎不起作用,我不知道该从哪里开始。
如何在 R 中对该函数进行建模和绘制图形?
我尝试过的:
LTI.func <- function(t,C,Ao,s,wd,ph) C + Ao * exp(-s*t) * cos(wd * t + ph)
mod <- nls(Y ~ LTI.func(t = I(scale(t)), C, Ao, s, wd, ph),
data = dat,
start = list(C = 1, Ao = 1, s = 1, w = 1, ph = 1))
我不知道是什么starts
选择,所以我尝试了一堆随机的,这导致了错误。即使当我选择以我可以看到的 y(t) ~ t 趋势为指导的开始时,我总是会遇到某种错误:
Error in nlsModel(formula, mf, start, wts) :
singular gradient matrix at initial parameter estimates
Error in nls(Y ~ LTI.func(I(scale(t)), C, Ao, s, wd, ph), data = dat :
singular gradient
Update:
这是一组示例数据:
dat <- data.frame(t = c(72, 25, 10, 88, 67, 63, 34, 41, 75, 13, 59, 8, 30, 52, 21),
Y = c(108.7, 157.5, 17.7, 175, 246.8, 233.5, 208.6, 246.5, 126.5,
45.5, 214.1, 4.9, 184, 239.2, 113.3))