CC BY-NC-ND 3.0
Comparison of Thermal Performance Equations in Describing Temperature-Dependent Developmental Rates of Insects: (I) Empirical Models
Table 1. Models used by Shi et al. 2016
Model name | Model name in devRate |
---|---|
Briere-1 | briere1_99 |
Briere-2 | briere2_99 |
Lactin | lactin2_95 |
Performance-2 | perf2_11 |
Beta | beta_16 |
Ratkowsky | ratkowsky_83 |
Table 2. Datasets of temperature-dependent development rates used by Shi et al. 2016.
Sample species | Source |
---|---|
Helicoverpa armigera | Wu et al. (2009) |
Kampimodromus aberrans | Broufas et al. (2007) |
Toxorhyynchites brevipalpis | Trpis (1972) |
Bactrocera dorsalis | Messenger and Flitters (1958) |
Aedes aegypti | Gilpin and McClelland (1979) |
Bemisia tabaci (B-biotype) | Xiang et al. (2007) |
Lipaphis erysimi | Liu and Meng (2000) |
Myzus persicae | Liu and Meng (1999) |
Epilachna varivestis | Shirai and Yara (2001) |
Drosophila buzzatii | de Jong (2010) |
wuDS <- data.frame(
temp = seq(from = 15, to = 37, by = 1),
devRate = 1/c(41.24, 37.16, 32.47, 26.22, 22.71,
19.01, 16.79, 15.63, 14.27, 12.48,
11.3, 10.56, 9.69, 9.14, 8.24, 8.02,
7.43, 7.27, 7.35, 7.49, 7.63, 7.9, 10.03))
broufasDS <- data.frame(
temp = c(15.0, 17.0, 20.0, 22.0, 25.0, 27.0,
30.0, 33.0, 35.0),
devRate = 1/(c(595.4, 463.0, 260.5, 222.5,
161.8, 153.1, 136.0, 147.8,
182.1)/24))
trpisDS <- data.frame(
temp = c(14.0, 15.0, 16.0, 17.0, 18.0, 19.0,
20.0, 21.0, 22.0, 23.0, 24.0, 25.0,
26.0, 27.0, 28.0, 29.0, 30.0, 31.0,
32.0),
devRate = 1/(c(209.0, 174.0, 165.0, 125.0,
102.0, 90.0, 76.0, 62.0, 55.0,
50.0, 48.0, 44.0, 41.0, 39.0,
38.0, 37.5, 37.0, 38.0, 39.0)/24))
messengerDS <- data.frame(
temp = (c(55.0, 56.0, 57.0, 58.0, 60.0, 62.5,
65.0, 67.5, 70.0, 75.0, 80.0, 85.0, 87.5,
90.0, 92.5, 95.0, 96.0, 97.0, 97.5) - 32)/1.8,
devRate = 1/(c(263.0, 232.0, 170.5, 148.0,
121.3, 95.5, 74.0, 62.5, 51.5,
38.0, 30.5, 27.0, 25.0, 24.0, 23.5,
25.0, 26.5, 29.3, 34.3)/24))
gilpinDS <- data.frame(
temp = c(15.5, 17, 18.5, 20, 21.5, 23, 24.5, 25,
26, 27.5, 29, 30.5, 32, 33.5, 35),
devRate = 1/(c(20.83, 16.57, 11.74, 10.235, 7.855,
6.765, 6.07, 5.482, 4.81, 4.39, 3.945,
3.705, 3.625, 3.94, 4.37)))
xiangDS <- data.frame(
temp = c(18, 21, 24, 27, 30, 33, 36),
devRate = 1/c(33.6, 27, 20.4, 17.3, 15.1, 14.4, 23.1))
liu1DS <- data.frame(
temp = c(8.3, 11.3, 14.3, 17.3, 20.1, 22.3,
24.7, 26.5, 28.0, 30.0, 33.0, 35.1),
devRate = 1/c(41.61, 23.5, 13.62, 10.26, 7.21,
6.03, 5.59, 5.3, 5.03, 4.99, 5.38, 6.72))
liu2DS <- data.frame(
temp = c(6.2, 8.3, 11.3, 14.3, 17.3, 20.1, 22.3, 24.7,
26.5, 28.0, 30.0),
devRate = 1/c(44.52, 29.01, 17.76, 11.78, 9.6, 6.95,
5.95, 5.49, 5.35, 5.35, 6.23))
shiraiDS <- data.frame(
temp = c(12.5, 15.0, 17.5, 20.0, 22.5, 25.0,
27.5, 30.0, 32.5),
devRate = 1/c(87.0, 55.5, 41.9, 32.4, 26.9,
21.7, 20.1, 20.6, 20.8))
deJongDS <- data.frame(
temp = c(15.1, 16.1, 17.1, 18.0, 21.8, 25, 28, 30.1, 31.8),
devRate = 1/c(39.36082405, 33.92153041, 26.93523738,
25.9465829, 13.99272382, 10.86965642,
9.118355084, 8.937974031, 9.948863636))
pkgCheck <- function(x){
if (!require(x, character.only = TRUE)){
install.packages(x, dependencies = TRUE)
if(!require(x, character.only = TRUE)) {
stop()
}
}
}
pkgCheck("devRate")
## Loading required package: devRate
[1] Briere-1 model
listDS <- list(wuDS, broufasDS, trpisDS, messengerDS,
gilpinDS, xiangDS, liu1DS, liu2DS, shiraiDS, deJongDS)
briere1NLS <- lapply(seq_along(listDS), function(i){
if(i == 1| i == 4 | i == 6 | i == 7){
devRateModel(eq = briere1_99,
df = listDS[[i]],
startValues = list(aa = 0.01, Tmin = 10, Tmax = 40)
)
}else{
devRateModel(eq = briere1_99,
df = listDS[[i]],
startValues = list(aa = 0.01, Tmin = 10, Tmax = 35)
)
}
})
[2] Briere-2 model
briere2NLS <- lapply(seq_along(listDS), function(i){
# print(i)
if(i == 6){
# devRateModel(eq = briere2_99,
# df = listDS[[i]],
# startValues = list(aa = 0.01, Tmin = 5, Tmax = 40, bb = 2)
# )
NA
}else{
devRateModel(eq = briere2_99,
df = listDS[[i]],
startValues = list(aa = 0.01, Tmin = 10, Tmax = 40, bb = 2)
)
}
})
[3] Lactin-2 model
lactin2NLS <- lapply(listDS, function(myDataSet){
devRateModel(eq = lactin2_95,
df = myDataSet,
startValues = list(aa = 0.03, Tmax = 30, deltaT = 5.0, bb = -1.5)
)
})
[4] Perf-2 model
perf2NLS <- lapply(listDS, function(myDataSet){
devRateModel(eq = perf2_11,
df = myDataSet,
startValues = list(cc = 0.02, T1 = 10, k = 0.5, T2 = 35)
)
})
[5] Beta model
betaNLS <- lapply(listDS, function(myDataSet){
devRateModel(eq = beta_16,
df = myDataSet,
startValues = list(rm = 0.2, T1 = 5, T2 = 40, Tm = 30)
)
})
[6] Ratkowsky model
ratkowskyNLS <- lapply(listDS, function(myDataSet){
devRateModel(eq = ratkowsky_83,
df = myDataSet,
startValues = list(cc = 0.02, T1 = 5, T2 = 40, k = 0.2)
)
})
listNLS <- list(briere1NLS, briere2NLS, lactin2NLS,
perf2NLS, betaNLS, ratkowskyNLS)
RSS <- t(sapply(1:6, function(myModel){
sapply(1:10, function(myDS){
if(!is.na(listNLS[[myModel]][[myDS]][1])){
return(sum((listDS[[myDS]][,2] -
predict(listNLS[[myModel]][[myDS]]))^2))
}else{
return(NA)
}
})
}))
rownames(RSS) <- c("Briere-1", "Briere-2", "Lactin",
"Perf-2", "Beta", "Ratkowsky")
colnames(RSS) <- c("wu", "broufas", "trpis", "messenger",
"gilpinDS", "xiangDS", "liu1", "liu2",
"shirai", "deJong")
wu | broufas | trpis | messenger | gilpinDS | xiangDS | |
---|---|---|---|---|---|---|
Briere-1 | 0.0004788 | 0.0001129 | 0.0032660 | 0.0246757 | 0.0012781 | 4.75e-05 |
Briere-2 | 0.0001240 | 0.0001113 | 0.0031075 | 0.0016649 | 0.0006436 | NA |
Lactin | 0.0001841 | 0.0001299 | 0.0038827 | 0.0048035 | 0.0007026 | 3.60e-06 |
Perf-2 | 0.0002115 | 0.0001375 | 0.0048966 | 0.0052585 | 0.0008630 | 3.70e-06 |
Beta | 0.0001187 | 0.0000953 | 0.0019916 | 0.0155084 | 0.0002775 | 5.20e-06 |
Ratkowsky | 0.0001054 | 0.0000975 | 0.0021200 | 0.0111390 | 0.0003040 | 3.90e-06 |
xiangDS | liu1 | liu2 | shirai | deJong | |
---|---|---|---|---|---|
Briere-1 | 4.75e-05 | 0.0001841 | 0.0002932 | 1.03e-05 | 5.03e-05 |
Briere-2 | NA | 0.0001549 | 0.0001366 | 1.02e-05 | 2.19e-05 |
Lactin | 3.60e-06 | 0.0002911 | 0.0002573 | 1.29e-05 | 3.05e-05 |
Perf-2 | 3.70e-06 | 0.0003288 | 0.0003163 | 1.31e-05 | 3.28e-05 |
Beta | 5.20e-06 | 0.0001485 | 0.0001014 | 8.60e-06 | 1.99e-05 |
Ratkowsky | 3.90e-06 | 0.0001622 | 0.0000989 | 8.60e-06 | 1.99e-05 |
con:
\[\begin{equation} L = -\frac{n}{2}ln\frac{RSS}{n} \end{equation}\]equation (8) from Shi et al. 2016.
\[\begin{equation} R^2 = 1 - \frac{\sum_{i=1}^n (obs_i - pred_i)^2}{\sum_{i=1}^n (obs_i - meanObs_i)^2} \end{equation}\]R2 <- t(sapply(1:6, function(myModel){
sapply(1:10, function(myDS){
if(!is.na(listNLS[[myModel]][[myDS]][1])){
return(1 - sum((listDS[[myDS]][,2] -
predict(listNLS[[myModel]][[myDS]]))^2) /
sum((listDS[[myDS]][,2] -
mean(listDS[[myDS]][,2]))^2))
}else{
return(NA)
}
})
}))
rownames(R2) <- c("Briere-1", "Briere-2", "Lactin",
"Perf-2", "Beta", "Ratkowsky")
colnames(R2) <- c("wu", "broufas", "trpis", "messenger",
"gilpinDS", "xiangDS", "liu1", "liu2",
"shirai", "deJong")
wu | broufas | trpis | messenger | gilpinDS | xiangDS | |
---|---|---|---|---|---|---|
Briere-1 | 0.9859933 | 0.9941166 | 0.9952558 | 0.9886810 | 0.9849288 | 0.9641512 |
Briere-2 | 0.9963717 | 0.9942003 | 0.9954862 | 0.9992363 | 0.9924106 | NA |
Lactin | 0.9946136 | 0.9932272 | 0.9943601 | 0.9977966 | 0.9917149 | 0.9972622 |
Perf-2 | 0.9938124 | 0.9928342 | 0.9928873 | 0.9975878 | 0.9898241 | 0.9971731 |
Beta | 0.9965280 | 0.9950336 | 0.9971070 | 0.9928861 | 0.9967272 | 0.9960601 |
Ratkowsky | 0.9969156 | 0.9949172 | 0.9969205 | 0.9948904 | 0.9964150 | 0.9970663 |
xiangDS | liu1 | liu2 | shirai | deJong | |
---|---|---|---|---|---|
Briere-1 | 0.9641512 | 0.9957098 | 0.9926138 | 0.9938871 | 0.9951759 |
Briere-2 | NA | 0.9963895 | 0.9965590 | 0.9939267 | 0.9979037 |
Lactin | 0.9972622 | 0.9932158 | 0.9935199 | 0.9923072 | 0.9970721 |
Perf-2 | 0.9971731 | 0.9923391 | 0.9920328 | 0.9922152 | 0.9968504 |
Beta | 0.9960601 | 0.9965405 | 0.9974452 | 0.9948750 | 0.9980929 |
Ratkowsky | 0.9970663 | 0.9962207 | 0.9975087 | 0.9948778 | 0.9980894 |
equation (9) from Shi et al. 2016.
\[\begin{equation} R^2_{adj} = 1 - \frac{n-1}{n-p}(1-R^2) \end{equation}\]R2adj <- t(sapply(1:6, function(myModel){
p <- 1 + length(coef(listNLS[[myModel]][[1]]))
sapply(1:10, function(myDS){
if(!is.na(listNLS[[myModel]][[myDS]][1])){
n <- length(listDS[[myDS]][,2])
Rsq <- 1 - sum((listDS[[myDS]][,2] -
predict(listNLS[[myModel]][[myDS]]))^2) /
sum((listDS[[myDS]][,2] - mean(listDS[[myDS]][,2]))^2)
return(1 - (n - 1)/(n - p) * (1 - Rsq))
}else{
return(NA)
}
})
}))
rownames(R2adj) <- c("Briere-1", "Briere-2", "Lactin",
"Perf-2", "Beta", "Ratkowsky")
colnames(R2adj) <- c("wu", "broufas", "trpis", "messenger",
"gilpinDS", "xiangDS", "liu1", "liu2",
"shirai", "deJong")
wu | broufas | trpis | messenger | gilpinDS | xiangDS | |
---|---|---|---|---|---|---|
Briere-1 | 0.9837817 | 0.9905866 | 0.9943070 | 0.9864172 | 0.9808184 | 0.9283024 |
Briere-2 | 0.9955654 | 0.9884006 | 0.9941965 | 0.9990181 | 0.9893749 | NA |
Lactin | 0.9934167 | 0.9864544 | 0.9927487 | 0.9971670 | 0.9884008 | 0.9917867 |
Perf-2 | 0.9924374 | 0.9856684 | 0.9908551 | 0.9968987 | 0.9857537 | 0.9915192 |
Beta | 0.9957564 | 0.9900672 | 0.9962804 | 0.9908536 | 0.9954180 | 0.9881804 |
Ratkowsky | 0.9962301 | 0.9898344 | 0.9960407 | 0.9934305 | 0.9949811 | 0.9911990 |
xiangDS | liu1 | liu2 | shirai | deJong | |
---|---|---|---|---|---|
Briere-1 | 0.9283024 | 0.9941010 | 0.9894483 | 0.9902193 | 0.9922814 |
Briere-2 | NA | 0.9943264 | 0.9942650 | 0.9878535 | 0.9958075 |
Lactin | 0.9917867 | 0.9893391 | 0.9891998 | 0.9846144 | 0.9941442 |
Perf-2 | 0.9915192 | 0.9879614 | 0.9867214 | 0.9844304 | 0.9937008 |
Beta | 0.9881804 | 0.9945637 | 0.9957420 | 0.9897499 | 0.9961857 |
Ratkowsky | 0.9911990 | 0.9940610 | 0.9958479 | 0.9897556 | 0.9961789 |
equation (10) from Shi et al. 2016.
\[\begin{equation} RMSE = \sqrt{RSS/(n-p+1)} \end{equation}\]RMSE <- t(sapply(1:6, function(myModel){
p <- 1 + length(coef(listNLS[[myModel]][[1]]))
sapply(1:10, function(myDS){
if(!is.na(listNLS[[myModel]][[myDS]][1])){
n <- length(listDS[[myDS]][,2])
RSS <- sum((listDS[[myDS]][,2] -
predict(listNLS[[myModel]][[myDS]]))^2)
return(sqrt(RSS / (n - p + 1)))
}else{
return(NA)
}
})
}))
rownames(RMSE) <- c("Briere-1", "Briere-2", "Lactin",
"Perf-2", "Beta", "Ratkowsky")
colnames(RMSE) <- c("wu", "broufas", "trpis", "messenger",
"gilpinDS", "xiangDS", "liu1", "liu2",
"shirai", "deJong")
wu | broufas | trpis | messenger | gilpinDS | xiangDS | |
---|---|---|---|---|---|---|
Briere-1 | 0.0048931 | 0.0043370 | 0.0142873 | 0.0392713 | 0.0103202 | 0.0034459 |
Briere-2 | 0.0025551 | 0.0047171 | 0.0143932 | 0.0105354 | 0.0076491 | NA |
Lactin | 0.0031131 | 0.0050975 | 0.0160886 | 0.0178950 | 0.0079921 | 0.0010996 |
Perf-2 | 0.0033367 | 0.0052433 | 0.0180677 | 0.0187235 | 0.0088572 | 0.0011173 |
Beta | 0.0024994 | 0.0043651 | 0.0115229 | 0.0321542 | 0.0050231 | 0.0013191 |
Ratkowsky | 0.0023558 | 0.0044159 | 0.0118884 | 0.0272507 | 0.0052572 | 0.0011382 |
xiangDS | liu1 | liu2 | shirai | deJong | |
---|---|---|---|---|---|
Briere-1 | 0.0034459 | 0.0045229 | 0.0060542 | 0.0013088 | 0.0028951 |
Briere-2 | NA | 0.0044009 | 0.0044176 | 0.0014291 | 0.0020906 |
Lactin | 0.0010996 | 0.0060327 | 0.0060622 | 0.0016084 | 0.0024707 |
Perf-2 | 0.0011173 | 0.0064106 | 0.0067219 | 0.0016180 | 0.0025625 |
Beta | 0.0013191 | 0.0043079 | 0.0038065 | 0.0013128 | 0.0019940 |
Ratkowsky | 0.0011382 | 0.0045026 | 0.0037588 | 0.0013124 | 0.0019958 |
equations (11) and (12) from Shi et al. 2016.
\[\begin{equation} AIC_c = -2L+2pn/(n-p-1) \end{equation}\] \[\begin{equation} L = -\frac{n}{2}ln\frac{RSS}{n} \end{equation}\]AICc <- t(sapply(1:6, function(myModel){
p <- 1 + length(coef(listNLS[[myModel]][[1]]))
sapply(1:10, function(myDS){
if(!is.na(listNLS[[myModel]][[myDS]][1])){
n <- length(listDS[[myDS]][,2])
RSS <- sum((listDS[[myDS]][,2] -
predict(listNLS[[myModel]][[myDS]]))^2)
L <- -n/2 * log(RSS / n)
return(-2 * L + 2 * p * n / (n - p - 1))
}else{
return(NA)
}
})
}))
# number of parameters + 1
p <- sapply(1:6, function(myModel){
p <- 1 + length(coef(listNLS[[myModel]][[1]]))
return(p)
})
# sample size
n <- sapply(1:10, function(myDS){
n <- length(listDS[[myDS]][,2])
return(n)
})
rownames(AICc) <- paste0(c("Briere-1", "Briere-2", "Lactin",
"Perf-2", "Beta", "Ratkowsky"), " (", p, ")")
colnames(AICc) <- paste0(c("wu", "broufas", "trpis", "messenger",
"gilpinDS", "xiangDS", "liu1", "liu2",
"shirai", "deJong"), " (", n, ")")
wu (23) | broufas (9) | trpis (19) | messenger (19) | gilpinDS (15) | xiangDS (7) | |
---|---|---|---|---|---|---|
Briere-1 (4) | -237.7094 | -83.57931 | -153.8467 | -115.4240 | -128.5566 | -55.30548 |
Briere-2 (5) | -265.4701 | -71.70819 | -151.0340 | -162.8907 | -134.1805 | NA |
Lactin (5) | -256.3825 | -70.31223 | -146.8024 | -142.7588 | -132.8648 | -31.31062 |
Perf-2 (5) | -253.1931 | -69.80455 | -142.3940 | -141.0391 | -129.7814 | -31.08628 |
Beta (5) | -266.4824 | -73.10415 | -159.4861 | -120.4901 | -146.7968 | -28.76262 |
Ratkowsky (5) | -269.2051 | -72.89570 | -158.2993 | -126.7777 | -145.4306 | -30.82689 |
xiangDS (7) | liu1 (12) | liu2 (11) | shirai (9) | deJong (9) | |
---|---|---|---|---|---|
Briere-1 (4) | -55.30548 | -119.3041 | -101.19051 | -105.14419 | -90.85472 |
Briere-2 (5) | NA | -115.0882 | -102.25952 | -93.20277 | -86.35589 |
Lactin (5) | -31.31062 | -107.5192 | -95.29675 | -91.07526 | -83.34882 |
Perf-2 (5) | -31.08628 | -106.0607 | -93.02421 | -90.96829 | -82.69184 |
Beta (5) | -28.76262 | -115.6010 | -105.53505 | -94.73057 | -87.20695 |
Ratkowsky (5) | -30.82689 | -114.5398 | -105.81219 | -94.73557 | -87.19076 |
AIC function in the stats package.
AIC <- t(sapply(1:6, function(myModel){
sapply(1:10, function(myDS){
if(!is.na(listNLS[[myModel]][[myDS]][1])){
return(AIC(listNLS[[myModel]][[myDS]]))
}else{
return(NA)
}
})
}))
rownames(AIC) <- c("Briere-1", "Briere-2", "Lactin",
"Perf-2", "Beta", "Ratkowsky")
colnames(AIC) <- c("wu", "broufas", "trpis", "messenger",
"gilpinDS", "xiangDS", "liu1", "liu2",
"shirai", "deJong")
wu | broufas | trpis | messenger | gilpinDS | xiangDS | |
---|---|---|---|---|---|---|
Briere-1 | -174.6604 | -68.03842 | -102.78414 | -64.36146 | -89.98845 | -55.44034 |
Briere-2 | -203.7283 | -66.16729 | -101.72973 | -113.58638 | -98.27902 | NA |
Lactin | -194.6407 | -64.77133 | -97.49810 | -93.45456 | -96.96329 | -71.44548 |
Perf-2 | -191.4513 | -64.26366 | -93.08971 | -91.73482 | -93.87988 | -71.22114 |
Beta | -204.7406 | -67.56325 | -110.18178 | -71.18581 | -110.89535 | -68.89749 |
Ratkowsky | -207.4633 | -67.35481 | -108.99506 | -77.47345 | -109.52909 | -70.96175 |
xiangDS | liu1 | liu2 | shirai | deJong | |
---|---|---|---|---|---|
Briere-1 | -55.44034 | -90.96385 | -76.64052 | -89.60330 | -75.31382 |
Briere-2 | NA | -91.03368 | -83.04287 | -87.66187 | -80.81500 |
Lactin | -71.44548 | -83.46467 | -76.08011 | -85.53437 | -77.80792 |
Perf-2 | -71.22114 | -82.00622 | -73.80756 | -85.42739 | -77.15095 |
Beta | -68.89749 | -91.54643 | -86.31841 | -89.18968 | -81.66606 |
Ratkowsky | -70.96175 | -90.48525 | -86.59555 | -89.19468 | -81.64987 |
RSS_shi <- c(0.000479, 0.000124, 0.000184, 0.000212,
0.000211, 0.000105, 0.000113, 0.000111, 0.000130,
0.000137, 0.000098, 0.000098, 0.003266, 0.003108,
0.003883, 0.004897, 0.001992, 0.002120, 0.024668,
0.001668, 0.004809, 0.005263, 0.015509, 0.011143,
0.001278, 0.000644, 0.000703, 0.000863, 0.000323,
0.000304, 0.000048, 0.000011, 0.000004, 0.000004,
0.000040, 0.000023, 0.000116, 0.000101, 0.000225,
0.000263, 0.000100, 0.000109, 0.000279, 0.000103,
0.000206, 0.000261, 0.000153, 0.000077, 0.000009,
0.000005, 0.000005, 0.000004, 0.000016, 0.000005,
0.000049, 0.000022, 0.000031, 0.000033, 0.000037,
0.000020)
cor(as.vector(RSS), RSS_shi, use = "complete.obs")
## [1] 0.9999776
RMSE_shi <- c(0.004893, 0.002555, 0.003113, 0.003337,
0.003329, 0.002356, 0.004337, 0.004717, 0.005097,
0.005243, 0.004423, 0.004416, 0.014287, 0.014393,
0.016089, 0.018068, 0.011523, 0.011888, 0.039265,
0.010545, 0.017905, 0.018732, 0.032155, 0.027256,
0.010320, 0.007649, 0.007992, 0.008857, 0.005417,
0.005257, 0.003446, 0.001932, 0.001133, 0.001120,
0.003670, 0.002763, 0.003596, 0.003554, 0.005305,
0.005737, 0.003527, 0.003690, 0.005906, 0.003828,
0.005421, 0.006111, 0.004671, 0.003319, 0.001328,
0.001170, 0.001100, 0.001001, 0.001975, 0.001143,
0.002849, 0.002098, 0.002486, 0.002573, 0.002731,
0.002020)
cor(as.vector(RMSE), RMSE_shi, use = "complete.obs")
## [1] 0.9975379
R2_shi <- c(0.9860, 0.9964, 0.9946, 0.9938, 0.9938,
0.9969, 0.9941, 0.9942, 0.9932, 0.9928, 0.9949,
0.9949, 0.9953, 0.9955, 0.9944, 0.9929, 0.9971,
0.9969, 0.9887, 0.9992, 0.9978, 0.9976, 0.9929,
0.9949, 0.9849, 0.9924, 0.9917, 0.9898, 0.9962,
0.9964, 0.9642, 0.9915, 0.9971, 0.9972, 0.9695,
0.9827, 0.9973, 0.9977, 0.9948, 0.9939, 0.9977,
0.9975, 0.9930, 0.9974, 0.9948, 0.9934, 0.9962,
0.9981, 0.9941, 0.9963, 0.9967, 0.9973, 0.9895,
0.9965, 0.9954, 0.9979, 0.9970, 0.9968, 0.9964,
0.9981)
cor(as.vector(R2), R2_shi, use = "complete.obs")
## [1] 0.7291213
plot(as.vector(R2) - R2_shi)
R2adj_shi <- c(0.9838, 0.9956, 0.9934, 0.9924, 0.9925,
0.9962, 0.9906, 0.9884, 0.9865, 0.9857,0.9898,
0.9898, 0.9943, 0.9942, 0.9928, 0.9909, 0.9963,
0.9960, 0.9864, 0.9990, 0.9972,0.9969, 0.9909,
0.9934, 0.9808, 0.9894, 0.9884, 0.9858, 0.9947,
0.9950, 0.9283, 0.9746,0.9913, 0.9915, 0.9085,
0.9482, 0.9963, 0.9963, 0.9918, 0.9904, 0.9964,
0.9960, 0.9900,0.9957, 0.9914, 0.9890, 0.9936,
0.9968, 0.9896, 0.9914, 0.9924, 0.9937, 0.9754,
0.9918,0.9926, 0.9958, 0.9941, 0.9937, 0.9929,
0.9961)
cor(as.vector(R2adj), R2adj_shi, use = "complete.obs")
## [1] 0.6064386
plot(as.vector(R2adj) - R2adj_shi)
AICc_shi <- c(-237.7, -265.5, -256.4, -253.2, -253.3,
-269.2, -83.6, -71.7, -70.3, -69.8, -72.9, -72.9,
-153.8, -151.0, -146.8, -142.4, -159.5, -158.3,
-115.4, -162.9, -142.7, -141.0, -120.5, -126.8,
-128.6, -134.2, -132.9, -129.8, -144.5, -145.4,
-55.3, -23.4, -30.9, -31.1, -14.4, -18.4, -124.8,
-120.2, -110.6, -108.7, -120.4, -119.3, -101.7,
-105.4, -97.8, -95.1, -101.0, -108.6, -88.4, -73.6,
-74.5, -76.1, -65.2, -73.9, -91.1, -86.3, -83.2,
-82.6, -81.5, -87.0)
cor(as.vector(AICc), AICc_shi, use = "complete.obs")
## [1] 0.9928205