X17 - Ejercicios

François Rebaudo, IRD francois.rebaudo@ird.fr

Marzo 2019 ; PUCE-Quito-Ecuador http://myrbooksp.netlify.com/

CC BY-NC-ND 3.0

Reproducibilidad

Shi et al. 2016

Comparison of Thermal Performance Equations in Describing Temperature-Dependent Developmental Rates of Insects: (I) Empirical Models

Shi et al. 2016 Methods

Shi et al. 2016 Methods

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

Shi et al. 2016 Methods

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)

Shi et al. 2016 Methods

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))

Shi et al. 2016 Methods

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))

Shi et al. 2016 Methods

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))

Shi et al. 2016 Methods

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))

Shi et al. 2016 Methods

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)))

Shi et al. 2016 Methods

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))

Shi et al. 2016 Methods

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))

Shi et al. 2016 Methods

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))

Shi et al. 2016 Methods

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))

Shi et al. 2016 Methods

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))

Shi et al. 2016 Fitting devRate models

Shi et al. 2016 Fitting devRate models

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

Shi et al. 2016 Fitting devRate models

[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)
    )
  }
})

Shi et al. 2016 Fitting devRate models

[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)
    )
  }
})

Shi et al. 2016 Fitting devRate models

[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)
  )
})

Shi et al. 2016 Fitting devRate models

[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)
  )
})

Shi et al. 2016 Fitting devRate models

[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)
  )
})

Shi et al. 2016 Fitting devRate models

[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)
  )
})

Shi et al. 2016 Fitting devRate models

listNLS <- list(briere1NLS, briere2NLS, lactin2NLS, 
  perf2NLS, betaNLS, ratkowskyNLS)

Shi et al. 2016 Make functions

Shi et al. 2016 Make functions

\[\begin{equation} RSS = \sum_{i=1}^n (obs_i - pred_i)^2 \end{equation}\]

Shi et al. 2016 Make functions

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")

Shi et al. 2016 Make functions

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

Shi et al. 2016 Make functions

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

Shi et al. 2016 Make functions

\[\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}\]

Shi et al. 2016 Make functions

\[\begin{equation} R^2_{adj} = 1 - \frac{n-1}{n-p}(1-R^2) \end{equation}\]

Shi et al. 2016 Make functions

\[\begin{equation} RMSE = \sqrt{RSS/(n-p+1)} \end{equation}\]

Shi et al. 2016 Make functions

\[\begin{equation} AIC_c = -2L+2pn/(n-p-1) \end{equation}\]

con:

\[\begin{equation} L = -\frac{n}{2}ln\frac{RSS}{n} \end{equation}\]

Shi et al. 2016 Make functions results

Shi et al. 2016 Make functions

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")

Shi et al. 2016 Make functions

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

Shi et al. 2016 Make functions

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

Shi et al. 2016 Make functions

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")

Shi et al. 2016 Make functions

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

Shi et al. 2016 Make functions

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

Shi et al. 2016 Make functions

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")

Shi et al. 2016 Make functions

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

Shi et al. 2016 Make functions

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

Shi et al. 2016 Make functions

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, ")")

Shi et al. 2016 Make functions

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

Shi et al. 2016 Make functions

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

Shi et al. 2016 Make functions

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")

Shi et al. 2016 Make functions

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

Shi et al. 2016 Make functions

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

Shi et al. 2016 Compare results

Shi et al. 2016 Make functions

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

Shi et al. 2016 Make functions

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

Shi et al. 2016 Make functions

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

Shi et al. 2016 Make functions

plot(as.vector(R2) - R2_shi)

Shi et al. 2016 Make functions

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

Shi et al. 2016 Make functions

plot(as.vector(R2adj) - R2adj_shi)

Shi et al. 2016 Make functions

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