R语言绘制逻辑斯蒂(logistic)生长曲线

我们在做真菌或者细菌的时候,一般都需要绘制一条生长曲线。我一般选择用冻干仪将菌丝冻干然后称量干重。

很多物种的生长都符合逻辑斯蒂模型,这里就不过多讲解。直接上代码。

PS:这还是我本科写的代码,时隔两年翻出来用,好有年代感,怀念。


定义数据集:发酵时间为15天,也就是称量15次干重。

m<-c(0:15)
n<-c(0.15,0.15,0.20,0.28,0.35,0.4,0.44,0.47,0.49,0.51,0.53,0.56,0.56,0.57,0.6,0.58)
df<-as.data.frame(cbind(m,n))

逻辑斯蒂模型参数选择

公式:KN0exp(Rm)/(K + N0(exp(R*m) - 1))
可见,需要估计的参数有:K,R,N0

本次使用的deSolve包
一 估计参数的初始值
## 估计参数初始值
library(deSolve)
SS <- getInitial(n ~ SSlogis(m, alpha, xmid, scale), data = df)
K_start <- SS["alpha"]
R_start <- 1/SS["scale"]
N0_start <- SS["alpha"]/(exp(SS["xmid"]/SS["scale"])+1)
二 拟合函数方程
log_formula <- formula(n ~ K*N0*exp(R*m)/(K + N0*(exp(R*m) - 1)))
formu<-nls(log_formula, start = list(K = K_start, R = R_start, N0 = N0_start))
三 查看拟合方程的结果
summary(formu)

Parameters:
Estimate Std. Error t value Pr(>|t|)
K.alpha 0.585421 0.009304 62.92 < 2e-16 ***
R.scale 0.382174 0.024379 15.68 8.00e-10 ***
N0.alpha 0.129702 0.008803 14.73 1.72e-09
Signif. codes: 0 ‘’ 0.001 ‘’ 0.01 ‘’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 0.01577 on 13 degrees of freedom
Number of iterations to convergence: 0
Achieved convergence tolerance: 9.839e-06
参数的值都给出了。

四 绘制生长曲线
library(ggplot2)
ggplot(df,aes(m,predict(formu)))+geom_line()+
  geom_point(aes(y=n))+
  theme_bw()+
  theme(panel.grid.minor = element_blank(),panel.grid.major = element_blank())+
  scale_x_discrete(limits=c(0:15))+xlab("Fermentation days")+ylab("Dry weight of biomass (mg)")

你可能感兴趣的:(R语言绘制逻辑斯蒂(logistic)生长曲线)