r - 使用 nls 拟合威 bool 模型

标签 r nls weibull

我不是 R 方面的专家,我正在尝试将热死亡细菌数据拟合到威 bool 模型中:

log._CFU.ml=c(9.6,9.2,9,8.5,9,7.5,6.8,5.8)
time_min=c(0,10,15,20,25,30,35,45)
ecoli_52=data.frame(log._CFU.ml,time_min)
weibull=function(x,a,b){-(1/2.303)*((x/a)^b)} #first i defined the function

然后,我应用了nls:

mod.ecoli_52=nls(ecoli_52$log._CFU.ml~weibull(ecoli_52$time_min,a,b),
                 ecoli_52,start=list(a=1,b=1))

之后,我发现了错误

Error in numericDeriv(form[[3L]], names(ind), env) : 
  Missing value or an infinity produced when evaluating the model

我确信这个错误与 start 中的 a 和 b 值有关。是否存在估计这些值的方法?

最佳答案

如果N是每毫升菌落形成单位的数量,N0是时间 0 时的数字,那么您可能想要模型 log(N/N0) ~ ...而不是log(N) ~ ...log(N/N0) = log(N) - log(N0)以来我们有:

 log_ratio <- with(ecoli_52, log._CFU.ml - log._CFU.ml[1])
 fm <- nls(log_ratio ~ weibull(time_min, a, b), ecoli_52, start = list(a = 1, b = 1))

 plot(log_ratio ~ time_min, ecoli_52)
 lines(fitted(fm) ~ time_min, ecoli_52, col = "red")

给予:

> fm
Nonlinear regression model
  model: log_ratio ~ weibull(time_min, a, b)
   data: ecoli_52
     a      b 
13.314  1.804 
 residual sum-of-squares: 0.7894

Number of iterations to convergence: 7 
Achieved convergence tolerance: 6.363e-07

screenshot

关于r - 使用 nls 拟合威 bool 模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34082396/

相关文章:

r - 读取() : reading table with\r\r\n as newline symbol

r - 用 R 制作一份关于 Latex 的漂亮报告

r - 带有 knitr 和 .Rnw 的内联代码格式

r - R 中的 Wordcloud 使用不同的功能

r - R 中的非线性回归 (nls) 问题

r - 使用 nls 的指数回归

c# - 为 Weibull 分布设置种子

stata - 计算 Stata 中的标准偏差以近似 beta 分布

r - R中的变点检测

r - 威 bool 分布的置信区间