R:优化错误(曲线拟合)

时间:2016-06-20 18:41:55

标签: r excel curve-fitting

我试图找出攻击率a和处理时间h的参数,以用于为我的消耗猎物密度数据集产生最大可能性。

我在R上使用frair包来执行此任务,并使用以下函数:

Rogersfit<-frair_fit(eaten~density, data=bob, response='rogersII', start=list(a=x, h=y), fixed=list(T=24))

但是,这需要我手动输入ah的随机值,这需要相当长的时间。如果输入的值不正确,则返回错误消息:

  

frfunc中的错误(data = moddata,samp = c(1:nrow(moddata)),start = start,:    optim中的错误(par = structure(c(1,0),。Name = c(&#34; a&#34;,&#34; h&#34;)),fn = function(p):
   函数无法在初始参数下进行评估

为了消除查找初始参数值所涉及的猜测工作,我创建了一个excel表,其中包含R将运行的2列值:

# a h #

# 1 0.01 #

# 1 0.02 #

# 1 0.03 #

# . . #

# . . #

# . . #

# 9 0.98 #

# 9 0.99 #

并使用以下代码输入值:

x <- as.numeric(as.character(test$a))

y <- as.numeric(as.character(test$h))


for (i in 1:900){

  for (j in 1:900){

    Rogersfit<-frair_fit(eaten~density, data=bob, response='rogersII', start=list(a=x[i], h=y[j]), fixed=list(T=24))

 }

 }

我已将变量x分配给我的Excel工作表的第一列,表示攻击率。变量y已分配给表示处理时间的第二列。

目标是将这些值输入到函数中,直到它根据最大似然拟合返回真实参数,但上面的代码给出相同的错误消息并停在第一组值(1,0.01)中excel表。

我正在考虑使用布尔运算符,例如if response == error转到下一行值,但我不知道R是否可以这样做,因为我刚开始使用这个语言。

0 个答案:

没有答案