I'm trying to fit and plot (using ggplot2
) a double first-order exponential decay equation "y=[a1exp(-k1t)]+[a2exp(-k2t)]" to my experimental data (radioactive decay) using the nls
function but I unable since the following warning messages are displayed:
Warning messages:
1: In (function (formula, data = parent.frame(), start, control = nls.control(), :
No starting values specified for some parameters. Initializing ‘a1’, ‘k1’, ‘a2’, ‘k2’ to '1.'. Consider specifying 'start' or using a selfStart model
2: Computation failed instat_smooth()
: singular gradient matrix at initial parameter estimates.
This error is probably related to bad initial guess for a1, k1, a2, and k2. Therefore, I noticed that R can "guess" my start parameters with the self-starting function (SSasymp
). However, I'm not able to implement this function for a double first-order exponential decay equation, which is mandatory for my experimental data (both compartments a1 and a2 and needed). I was capable to fit a simple exponential decay equation using SSasymp
, which line is commented in the code, but does not meet my needs, sadly. I also need to read out the fit parameters, which will be submitted to statistical tests. This is the code that I'm using:
Fig1a <- ggplot(CREMglucose, aes(x = Day, y = Mean, color = factor(Fert, levels = c("Control", "Ammonium nitrate", "Ammonium sulfate", "Diammonium phosphate", "Potassium nitrate", "Struvite", "Urea")))) +
geom_point(aes(size = factor(Fert, levels = c("Control", "Ammonium nitrate", "Ammonium sulfate", "Diammonium phosphate", "Potassium nitrate", "Struvite", "Urea")), shape = factor(Fert, levels = c("Control", "Ammonium nitrate", "Ammonium sulfate", "Diammonium phosphate", "Potassium nitrate", "Struvite", "Urea"))), alpha = 0.7, show.legend = FALSE) +
geom_errorbar(aes(ymin = Mean - se, ymax = Mean + se), size = 0.2, show.legend = FALSE) +
#geom_smooth(method = "nls", formula = y ~ SSasymp(x, Asym, R0, lrc), se = FALSE, lwd = 0.4, show.legend = FALSE) +
geom_smooth(method = "nls", formula = y ~ (a1 * exp(-k1 * x)) + (a2 * exp(-k2 * x)), start = list(a1 = 1, k1 = 0.01, a2 = 1, k2 = 0.01), se = FALSE, lwd = 0.4, show.legend = FALSE) +
xlab(expression('Time after compound addition (d)')) +
ylab(expression({}^{14}*'C remaining (% of the total added)')) +
coord_cartesian(xlim = c(0, 21), ylim = c(0, 100)) +
scale_x_continuous(breaks = c(0, 4, 8, 12, 16, 20)) +
scale_y_continuous(breaks = c(0, 20, 40, 60, 80, 100)) +
scale_shape_manual(values = c(6, 0, 15, 1, 16, 2, 17)) +
scale_size_manual(values = c(2.2, 2.2, 2.3, 2.2, 2.3, 2.2, 2.3)) +
annotate("text", x = 17.5, y = 100, label = "(a) Glucosamine", size = 3.5, fontface = "bold") +
theme(axis.text.y = element_text(size = 10, color = "black"),
axis.text.x = element_blank(),
axis.title.y = element_text(size = 10),
axis.title.x = element_blank(),
legend.text = element_blank(),
legend.title = element_blank(),
panel.background = element_blank(),
panel.grid.major = element_line(color = "gray96", size = 0.50),
panel.grid.minor = element_line(color = "gray96", size = 0.30),
axis.line = element_line(color = "black", size = 0.5),
panel.border = element_rect(color = "black", fill = NA, size = 0.5))
Fig1a
In addition to my data:
Fert Day CREMglucose
Control 0.00 100
Control 0.00 100
Control 0.00 100
Control 0.00 100
Control 0.08 94
Control 0.08 95
Control 0.08 94
Control 0.08 93
Control 0.17 89
Control 0.17 91
Control 0.17 89
Control 0.17 89
Control 0.33 85
Control 0.33 86
Control 0.33 86
Control 0.33 85
Control 1.00 81
Control 1.00 81
Control 1.00 83
Control 1.00 81
Control 2.00 79
Control 2.00 78
Control 2.00 81
Control 2.00 79
Control 3.00 77
Control 3.00 77
Control 3.00 80
Control 3.00 78
Control 5.00 75
Control 5.00 75
Control 5.00 78
Control 5.00 77
Control 8.00 74
Control 8.00 74
Control 8.00 77
Control 8.00 75
Control 11.00 73
Control 11.00 72
Control 11.00 76
Control 11.00 74
Control 15.00 72
Control 15.00 71
Control 15.00 74
Control 15.00 73
Control 20.00 70
Control 20.00 70
Control 20.00 73
Control 20.00 72
Ammonium nitrate 0.00 100
Ammonium nitrate 0.00 100
Ammonium nitrate 0.00 100
Ammonium nitrate 0.00 100
Ammonium nitrate 0.08 96
Ammonium nitrate 0.08 97
Ammonium nitrate 0.08 96
Ammonium nitrate 0.08 95
Ammonium nitrate 0.17 93
Ammonium nitrate 0.17 94
Ammonium nitrate 0.17 92
Ammonium nitrate 0.17 91
Ammonium nitrate 0.33 86
Ammonium nitrate 0.33 88
Ammonium nitrate 0.33 86
Ammonium nitrate 0.33 85
Ammonium nitrate 1.00 78
Ammonium nitrate 1.00 78
Ammonium nitrate 1.00 80
Ammonium nitrate 1.00 79
Ammonium nitrate 2.00 74
Ammonium nitrate 2.00 74
Ammonium nitrate 2.00 76
Ammonium nitrate 2.00 75
Ammonium nitrate 3.00 71
Ammonium nitrate 3.00 71
Ammonium nitrate 3.00 74
Ammonium nitrate 3.00 73
Ammonium nitrate 5.00 68
Ammonium nitrate 5.00 68
Ammonium nitrate 5.00 71
Ammonium nitrate 5.00 70
Ammonium nitrate 8.00 66
Ammonium nitrate 8.00 65
Ammonium nitrate 8.00 69
Ammonium nitrate 8.00 68
Ammonium nitrate 11.00 64
Ammonium nitrate 11.00 64
Ammonium nitrate 11.00 67
Ammonium nitrate 11.00 66
Ammonium nitrate 15.00 63
Ammonium nitrate 15.00 62
Ammonium nitrate 15.00 65
Ammonium nitrate 15.00 64
Ammonium nitrate 20.00 61
Ammonium nitrate 20.00 59
Ammonium nitrate 20.00 63
Ammonium nitrate 20.00 62
Ammonium sulfate 0.00 100
Ammonium sulfate 0.00 100
Ammonium sulfate 0.00 100
Ammonium sulfate 0.00 100
Ammonium sulfate 0.08 95
Ammonium sulfate 0.08 97
Ammonium sulfate 0.08 95
Ammonium sulfate 0.08 93
Ammonium sulfate 0.17 91
Ammonium sulfate 0.17 94
Ammonium sulfate 0.17 91
Ammonium sulfate 0.17 88
Ammonium sulfate 0.33 85
Ammonium sulfate 0.33 88
Ammonium sulfate 0.33 85
Ammonium sulfate 0.33 84
Ammonium sulfate 1.00 79
Ammonium sulfate 1.00 79
Ammonium sulfate 1.00 81
Ammonium sulfate 1.00 79
Ammonium sulfate 2.00 77
Ammonium sulfate 2.00 76
Ammonium sulfate 2.00 78
Ammonium sulfate 2.00 77
Ammonium sulfate 3.00 75
Ammonium sulfate 3.00 74
Ammonium sulfate 3.00 76
Ammonium sulfate 3.00 75
Ammonium sulfate 5.00 73
Ammonium sulfate 5.00 71
Ammonium sulfate 5.00 74
Ammonium sulfate 5.00 72
Ammonium sulfate 8.00 71
Ammonium sulfate 8.00 68
Ammonium sulfate 8.00 72
Ammonium sulfate 8.00 69
Ammonium sulfate 11.00 69
Ammonium sulfate 11.00 66
Ammonium sulfate 11.00 70
Ammonium sulfate 11.00 68
Ammonium sulfate 15.00 68
Ammonium sulfate 15.00 65
Ammonium sulfate 15.00 69
Ammonium sulfate 15.00 67
Ammonium sulfate 20.00 66
Ammonium sulfate 20.00 63
Ammonium sulfate 20.00 67
Ammonium sulfate 20.00 65
Diammonium phosphate 0.00 100
Diammonium phosphate 0.00 100
Diammonium phosphate 0.00 100
Diammonium phosphate 0.00 100
Diammonium phosphate 0.08 95
Diammonium phosphate 0.08 95
Diammonium phosphate 0.08 95
Diammonium phosphate 0.08 94
Diammonium phosphate 0.17 90
Diammonium phosphate 0.17 90
Diammonium phosphate 0.17 90
Diammonium phosphate 0.17 89
Diammonium phosphate 0.33 83
Diammonium phosphate 0.33 82
Diammonium phosphate 0.33 83
Diammonium phosphate 0.33 82
Diammonium phosphate 1.00 76
Diammonium phosphate 1.00 75
Diammonium phosphate 1.00 77
Diammonium phosphate 1.00 76
Diammonium phosphate 2.00 73
Diammonium phosphate 2.00 71
Diammonium phosphate 2.00 74
Diammonium phosphate 2.00 73
Diammonium phosphate 3.00 71
Diammonium phosphate 3.00 69
Diammonium phosphate 3.00 72
Diammonium phosphate 3.00 71
Diammonium phosphate 5.00 68
Diammonium phosphate 5.00 65
Diammonium phosphate 5.00 69
Diammonium phosphate 5.00 68
Diammonium phosphate 8.00 65
Diammonium phosphate 8.00 63
Diammonium phosphate 8.00 66
Diammonium phosphate 8.00 65
Diammonium phosphate 11.00 64
Diammonium phosphate 11.00 61
Diammonium phosphate 11.00 64
Diammonium phosphate 11.00 63
Diammonium phosphate 15.00 62
Diammonium phosphate 15.00 59
Diammonium phosphate 15.00 62
Diammonium phosphate 15.00 62
Diammonium phosphate 20.00 60
Diammonium phosphate 20.00 57
Diammonium phosphate 20.00 60
Diammonium phosphate 20.00 59
Potassium nitrate 0.00 100
Potassium nitrate 0.00 100
Potassium nitrate 0.00 100
Potassium nitrate 0.00 100
Potassium nitrate 0.08 97
Potassium nitrate 0.08 98
Potassium nitrate 0.08 96
Potassium nitrate 0.08 96
Potassium nitrate 0.17 93
Potassium nitrate 0.17 95
Potassium nitrate 0.17 93
Potassium nitrate 0.17 92
Potassium nitrate 0.33 87
Potassium nitrate 0.33 90
Potassium nitrate 0.33 88
Potassium nitrate 0.33 87
Potassium nitrate 1.00 79
Potassium nitrate 1.00 80
Potassium nitrate 1.00 82
Potassium nitrate 1.00 81
Potassium nitrate 2.00 75
Potassium nitrate 2.00 75
Potassium nitrate 2.00 78
Potassium nitrate 2.00 78
Potassium nitrate 3.00 73
Potassium nitrate 3.00 72
Potassium nitrate 3.00 76
Potassium nitrate 3.00 76
Potassium nitrate 5.00 70
Potassium nitrate 5.00 70
Potassium nitrate 5.00 73
Potassium nitrate 5.00 73
Potassium nitrate 8.00 67
Potassium nitrate 8.00 67
Potassium nitrate 8.00 71
Potassium nitrate 8.00 71
Potassium nitrate 11.00 65
Potassium nitrate 11.00 65
Potassium nitrate 11.00 69
Potassium nitrate 11.00 69
Potassium nitrate 15.00 63
Potassium nitrate 15.00 63
Potassium nitrate 15.00 67
Potassium nitrate 15.00 67
Potassium nitrate 20.00 61
Potassium nitrate 20.00 60
Potassium nitrate 20.00 64
Potassium nitrate 20.00 65
Struvite 0.00 100
Struvite 0.00 100
Struvite 0.00 100
Struvite 0.00 100
Struvite 0.08 95
Struvite 0.08 96
Struvite 0.08 94
Struvite 0.08 95
Struvite 0.17 90
Struvite 0.17 92
Struvite 0.17 89
Struvite 0.17 90
Struvite 0.33 85
Struvite 0.33 86
Struvite 0.33 86
Struvite 0.33 87
Struvite 1.00 81
Struvite 1.00 82
Struvite 1.00 83
Struvite 1.00 83
Struvite 2.00 78
Struvite 2.00 79
Struvite 2.00 81
Struvite 2.00 81
Struvite 3.00 77
Struvite 3.00 77
Struvite 3.00 80
Struvite 3.00 80
Struvite 5.00 75
Struvite 5.00 75
Struvite 5.00 78
Struvite 5.00 78
Struvite 8.00 73
Struvite 8.00 73
Struvite 8.00 76
Struvite 8.00 77
Struvite 11.00 72
Struvite 11.00 72
Struvite 11.00 75
Struvite 11.00 76
Struvite 15.00 71
Struvite 15.00 70
Struvite 15.00 74
Struvite 15.00 75
Struvite 20.00 69
Struvite 20.00 69
Struvite 20.00 72
Struvite 20.00 73
Urea 0.00 100
Urea 0.00 100
Urea 0.00 100
Urea 0.00 100
Urea 0.08 98
Urea 0.08 98
Urea 0.08 99
Urea 0.08 98
Urea 0.17 96
Urea 0.17 95
Urea 0.17 97
Urea 0.17 96
Urea 0.33 90
Urea 0.33 89
Urea 0.33 93
Urea 0.33 90
Urea 1.00 76
Urea 1.00 74
Urea 1.00 80
Urea 1.00 79
Urea 2.00 67
Urea 2.00 66
Urea 2.00 69
Urea 2.00 70
Urea 3.00 62
Urea 3.00 61
Urea 3.00 62
Urea 3.00 64
Urea 5.00 54
Urea 5.00 53
Urea 5.00 53
Urea 5.00 55
Urea 8.00 47
Urea 8.00 45
Urea 8.00 44
Urea 8.00 47
Urea 11.00 42
Urea 11.00 40
Urea 11.00 39
Urea 11.00 41
Urea 15.00 37
Urea 15.00 35
Urea 15.00 35
Urea 15.00 37
Urea 20.00 33
Urea 20.00 31
Urea 20.00 30
Urea 20.00 32
Does anyone know how to fit and plot this equation in R?