尝试估算整个研究中适合的最佳参数。每项研究都有不同长度的数据集,需要查看在剩余和时间变量之间拟合的负指数模型的最佳参数。样本数据集如下;
Study <- as.factor(c(1, 1, 1, 1, 2, 2, 2, 3, 3))
Time <- as.numeric(c(0, 0.08, 0.16, 0.24, 0, 0.05, 0.88, 0, 0.99))
Remaining <- as.numeric(c(100, 80, 69, 45, 100, 60, 35, 0, 25))
data_n <- cbind(Study, Time, Remaining)
head(data_n)
需要优化负的expoenetial函数可以计算出所有站点中的套件的K和K2。功能是
Predicted_remaining <- 41* exp(-k*Time) + (100-41) * exp(-k2*Time)
值41是常数,-k和-k2是需要优化的负指数函数的参数。尝试优化R所以任何建议 非常感谢。
答案 0 :(得分:1)
首先,我从您的数据创建一个数据框。接下来,我定义适合数据的函数,它将拟合参数p
和time
作为参数。然后,我创建一个成本函数,计算平方和作为拟合质量的度量。之后,我使用optim
来最小化成本函数,最后绘制结果。
# Create data frame
data_n <- data.frame(Study, Time, Remaining)
# Function to be fit
fit_function <- function(p, time){
(41 * exp(-p[1] * time) + 59 * exp(-p[2] * time))
}
# Cost function using the sum of squares
cost_function <- function(p, data){
sum((data$Remaining - fit_function(p, data$Time))^2)
}
# Using 'optim' to minimise the cost function
fit <- optim(c(1, 1), cost_function, data = data_n)
# Plot results
plot(data_n$Time, data_n$Remaining, xlab = "Time", ylab = "Remaining")
lines(seq(0, 1, by = 0.1), fit_function(fit$par, seq(0, 1, by = 0.1)))