Я использовал следующую модель подгонки для подгонки моих данных в R:
conc <- c(2.5,2.8,3.6,1.8,4.7,3.6,5.5,5.5,5.7,5.7,4.9,5.6,6.5,8.3,5.8,5.8)
time <- c(0,24,48,72,96,120,144,168,192,216,240,264,288,312,336,360)
data.15 <- data.frame(time, conc) # this data at 15°C
data <- data.15
#building the model --> Gompertz
fit.gompertz <- function(conc, time){
data <- data.frame(y=conc, t=time)
# Must have at least 3 datapoints at different times
if (length(unique(data$t)) < 2) stop("too few data points to fit curve")
# Pick starting values ###
i <- which.max(diff(data$y))
starting.values <- c(a=max(data$y),
mu=max(diff(data$y))/(data[i+1,"t"]-data[i, "t"]),
y0 = min(data$y),
lambda=i)
print("Starting Values for Optimization: ")
print(starting.values)
##########################
formula.gompertz <- "y ~ y0 + a*exp(-exp(mu*exp(1)/a*(lambda-t)+1))"
nls(formula.gompertz, data, starting.values,
algorithm = "port",
nls.control(maxiter = 400, tol = 1e-05, printEval = FALSE, warnOnly = TRUE))
}
(fit.growth <- fit.gompertz(data$conc, data$time))
Я запускаю эти данные на одном температурном уровне. В этом примере при 15 ° C. Теперь, как запустить эту модель при разных уровнях температуры одновременно?
data <- data.5
data <- data.10
data <- data.15
data <- data.20
data <- data.25
Я хотел бы использовать ту же модель при 5 ° C, 10 ° C, 15 ° C , 20 ° C, 25 ° C сразу и запишите все результаты (подогнанные параметры, R-квадрат, MSE, RMSE и другие значения статов).
Итак, результат будет такой:
temp a mu y0 lambda R2 MSE RMSE Other modified values
5 ... ... ... ... ... ... ... ...
10 ... ... ... ... ... ... ... ...
15 ... ... ... ... ... ... ... ...
20 ... ... ... ... ... ... ... ...
25 ... ... ... ... ... ... ... ...
Заранее спасибо.