MAIN PAGE

1 INTRODUCTION

This post includes a comprehensive summary of the process we at Green Geotechnics went through to build a machine learning (ML) model for the Data Science Prediction Event created under the framework of the ISFOG2020 conference, to be held in Texas (August 16-19, 2020). The competition was hosted in Kaggle and run through a period of eight months, from April to December 2019. The problem proposed for the prediction event is to use piezocone (CPTu, herein and after denoted as CPT) data to predict blowcounts needed for the installation of jacket piles, located in North Sea soil. A detailed description of the problem can be found here.

We start with loading the data and by doing some exploratory data analysis (EDA), trying to get some initial insights. Then we explore possibilities to incorporate engineering/geotechnical knowledge by introducing new parameters in the analysis. Next, we dive into the model-building process, where we train various ML models, moving from Simple Linear Regressions to more complex models like Neural Networks.

All the analysis is performed using R and the RStudio environment. This report is generated using R Markdown.

2 DATA

We have previously downloaded the data from here and saved them locally. We set the working directory so all the work is saved in one location. Various data sets were provided so we are going to separately load and comment on them.

setwd("F:/isfog2020")

2.1 Basic data

The available data contain information about the soil conditions and installation of 114 jacket piles. The data are divided into two groups:

  • training - contains information on 94 piles;
  • validation - contains information on 20 piles.

The training data will be used to train the ML model while the validation data will be used to validate the model and assess its performance. Let’s read and view the data.

library(tidyverse)
training <- read_csv("F:/isfog2020/training_data_cleaned.csv")
validation <- read_csv("F:/isfog2020/validation_data_cleaned.csv")
library(knitr)
library(kableExtra)
kable(top_n(training, 100),
      digits = 3,
      caption = "Training data.",
      align = "r") %>%
  kable_styling(font_size = 11) %>%
  row_spec(0, color = "grey10", background = "#F4F5F6") %>%
  scroll_box(height = "300px")
Training data.
z [m] qc [MPa] fs [MPa] u2 [MPa] ID Location ID Blowcount [Blows/m] Normalised ENTRHU [-] Normalised hammer energy [-] Number of blows Diameter [m] Bottom wall thickness [mm] Pile penetration [m]
4.0 11.434 0.082 0.036 AA__4_0 AA 8 0.130 0.173 8.00 2.48 55 34
4.5 14.955 0.109 0.035 AA__4_5 AA 8 0.140 0.187 11.00 2.48 55 34
5.0 15.722 0.125 0.037 AA__5_0 AA 8 0.151 0.201 14.00 2.48 55 34
5.5 15.727 0.123 0.039 AA__5_5 AA 16 0.131 0.175 29.00 2.48 55 34
6.0 11.347 0.111 0.045 AA__6_0 AA 24 0.112 0.149 44.00 2.48 55 34
6.5 13.989 0.105 0.051 AA__6_5 AA 22 0.147 0.195 55.00 2.48 55 34
7.0 16.632 0.098 0.058 AA__7_0 AA 20 0.182 0.242 66.00 2.48 55 34
7.5 24.536 0.146 0.063 AA__7_5 AA 24 0.174 0.233 77.50 2.48 55 34
8.0 24.622 0.183 0.059 AA__8_0 AA 28 0.167 0.223 89.00 2.48 55 34
8.5 24.245 0.191 0.058 AA__8_5 AA 34 0.171 0.228 105.50 2.48 55 34
9.0 28.871 0.175 0.058 AA__9_0 AA 40 0.175 0.233 122.00 2.48 55 34
9.5 25.603 0.181 0.061 AA__9_5 AA 64 0.181 0.242 162.00 2.48 55 34
10.0 28.036 0.153 0.069 AA__10_0 AA 88 0.188 0.251 202.00 2.48 55 34
10.5 25.148 0.132 0.089 AA__10_5 AA 88 0.206 0.274 245.50 2.48 55 34
11.0 24.442 0.203 0.087 AA__11_0 AA 88 0.223 0.298 289.00 2.48 55 34
11.5 6.894 0.084 0.085 AA__11_5 AA 74 0.225 0.300 325.50 2.48 55 34
12.0 5.528 0.039 0.020 AA__12_0 AA 60 0.227 0.302 362.00 2.48 55 34
12.5 6.805 0.052 0.097 AA__12_5 AA 36 0.251 0.334 372.00 2.48 55 34
13.0 6.492 0.048 0.106 AA__13_0 AA 12 0.275 0.367 382.00 2.48 55 34
13.5 8.541 0.032 -0.043 AA__13_5 AA 10 0.269 0.358 387.50 2.48 55 34
14.0 28.151 0.167 -0.114 AA__14_0 AA 8 0.262 0.350 393.00 2.48 55 34
14.5 23.779 0.187 -0.067 AA__14_5 AA 10 0.214 0.286 398.50 2.48 55 34
15.0 12.522 0.118 -0.362 AA__15_0 AA 12 0.166 0.221 404.00 2.48 55 34
15.5 6.764 0.043 -0.339 AA__15_5 AA 20 0.187 0.249 414.50 2.48 55 34
16.0 7.552 0.052 -0.261 AA__16_0 AA 28 0.208 0.277 425.00 2.48 55 34
16.5 5.400 0.022 -0.145 AA__16_5 AA 22 0.213 0.284 432.50 2.48 55 34
17.0 5.900 0.017 -0.093 AA__17_0 AA 16 0.219 0.292 440.00 2.48 55 34
17.5 4.048 0.024 -0.144 AA__17_5 AA 28 0.213 0.284 450.50 2.48 55 34
18.0 20.823 0.108 -0.294 AA__18_0 AA 40 0.207 0.276 461.00 2.48 55 34
18.5 27.700 0.225 -0.238 AA__18_5 AA 70 0.214 0.286 507.00 2.48 55 34
19.0 25.179 0.177 -0.188 AA__19_0 AA 100 0.222 0.296 553.00 2.48 55 34
19.5 22.926 0.151 -0.069 AA__19_5 AA 108 0.255 0.341 611.00 2.48 55 34
20.0 20.674 0.124 0.049 AA__20_0 AA 116 0.289 0.386 669.00 2.48 55 34
20.5 25.997 0.231 0.185 AA__20_5 AA 126 0.293 0.390 733.00 2.48 55 34
21.0 29.572 0.304 0.175 AA__21_0 AA 136 0.296 0.395 797.00 2.48 55 34
21.5 40.627 0.408 0.158 AA__21_5 AA 128 0.311 0.415 859.50 2.48 55 34
22.0 39.834 0.368 0.170 AA__22_0 AA 120 0.326 0.434 922.00 2.48 55 34
22.5 34.681 0.356 0.163 AA__22_5 AA 122 0.324 0.432 988.50 2.48 55 34
23.0 26.795 0.273 0.166 AA__23_0 AA 124 0.322 0.430 1055.00 2.48 55 34
23.5 21.606 0.222 0.205 AA__23_5 AA 124 0.352 0.469 1118.50 2.48 55 34
24.0 27.394 0.295 0.197 AA__24_0 AA 124 0.381 0.508 1182.00 2.48 55 34
24.5 20.538 0.258 0.198 AA__24_5 AA 122 0.388 0.517 1239.50 2.48 55 34
25.0 27.088 0.211 -0.038 AA__25_0 AA 120 0.395 0.526 1297.00 2.48 55 34
25.5 35.413 0.319 0.210 AA__25_5 AA 104 0.426 0.568 1354.50 2.48 55 34
26.0 36.892 0.315 0.215 AA__26_0 AA 88 0.457 0.609 1412.00 2.48 55 34
26.5 46.709 0.456 0.250 AA__26_5 AA 94 0.489 0.653 1459.50 2.48 55 34
27.0 45.741 0.473 0.238 AA__27_0 AA 100 0.522 0.696 1507.00 2.48 55 34
27.5 50.310 0.469 0.211 AA__27_5 AA 92 0.573 0.763 1553.00 2.48 55 34
28.0 42.441 0.388 0.267 AA__28_0 AA 84 0.623 0.831 1599.00 2.48 55 34
28.5 42.527 0.487 0.292 AA__28_5 AA 84 0.618 0.824 1643.00 2.48 55 34
29.0 53.361 0.661 0.297 AA__29_0 AA 84 0.613 0.817 1687.00 2.48 55 34
29.5 47.392 0.373 0.302 AA__29_5 AA 88 0.622 0.830 1731.50 2.48 55 34
30.0 44.926 0.521 0.308 AA__30_0 AA 92 0.632 0.843 1776.00 2.48 55 34
30.5 46.653 0.574 0.313 AA__30_5 AA 92 0.630 0.840 1820.00 2.48 55 34
31.0 51.331 0.652 0.318 AA__31_0 AA 92 0.628 0.837 1864.00 2.48 55 34
31.5 48.796 0.531 0.323 AA__31_5 AA 90 0.628 0.837 1909.00 2.48 55 34
32.0 46.261 0.411 0.328 AA__32_0 AA 88 0.628 0.837 1954.00 2.48 55 34
32.5 59.915 0.812 0.333 AA__32_5 AA 90 0.630 0.841 2001.00 2.48 55 34
33.0 60.356 0.810 0.338 AA__33_0 AA 92 0.633 0.844 2048.00 2.48 55 34
33.5 57.943 0.757 0.343 AA__33_5 AA 90 0.649 0.865 2094.00 2.48 55 34
34.0 58.148 0.677 0.348 AA__34_0 AA 88 0.664 0.886 2140.00 2.48 55 34
5.0 15.722 0.125 0.037 AB__5_0 AB 8 0.117 0.157 14.00 2.48 55 34
5.5 15.727 0.123 0.039 AB__5_5 AB 8 0.115 0.154 20.50 2.48 55 34
6.0 11.347 0.111 0.045 AB__6_0 AB 8 0.113 0.151 27.00 2.48 55 34
6.5 13.989 0.105 0.051 AB__6_5 AB 6 0.151 0.202 30.00 2.48 55 34
7.0 16.632 0.098 0.058 AB__7_0 AB 4 0.189 0.252 33.00 2.48 55 34
7.5 24.536 0.146 0.063 AB__7_5 AB 16 0.152 0.202 43.00 2.48 55 34
8.0 24.622 0.183 0.059 AB__8_0 AB 28 0.114 0.152 53.00 2.48 55 34
8.5 24.245 0.191 0.058 AB__8_5 AB 66 0.113 0.150 98.50 2.48 55 34
9.0 28.871 0.175 0.058 AB__9_0 AB 104 0.112 0.149 144.00 2.48 55 34
9.5 25.603 0.181 0.061 AB__9_5 AB 90 0.137 0.182 182.00 2.48 55 34
10.0 28.036 0.153 0.069 AB__10_0 AB 76 0.162 0.216 220.00 2.48 55 34
10.5 25.148 0.132 0.089 AB__10_5 AB 96 0.165 0.220 266.50 2.48 55 34
11.0 24.442 0.203 0.087 AB__11_0 AB 116 0.168 0.224 313.00 2.48 55 34
11.5 6.894 0.084 0.085 AB__11_5 AB 98 0.205 0.273 362.50 2.48 55 34
12.0 5.528 0.039 0.020 AB__12_0 AB 80 0.242 0.322 412.00 2.48 55 34
12.5 6.805 0.052 0.097 AB__12_5 AB 68 0.244 0.325 448.50 2.48 55 34
13.0 6.492 0.048 0.106 AB__13_0 AB 56 0.246 0.328 485.00 2.48 55 34
13.5 8.541 0.032 -0.043 AB__13_5 AB 38 0.242 0.322 495.00 2.48 55 34
14.0 28.151 0.167 -0.114 AB__14_0 AB 20 0.237 0.316 505.00 2.48 55 34
14.5 23.779 0.187 -0.067 AB__14_5 AB 20 0.208 0.278 515.50 2.48 55 34
15.0 12.522 0.118 -0.362 AB__15_0 AB 20 0.180 0.240 526.00 2.48 55 34
15.5 6.764 0.043 -0.339 AB__15_5 AB 24 0.188 0.250 546.50 2.48 55 34
16.0 7.552 0.052 -0.261 AB__16_0 AB 28 0.195 0.260 567.00 2.48 55 34
16.5 5.400 0.022 -0.145 AB__16_5 AB 28 0.198 0.264 581.00 2.48 55 34
17.0 5.900 0.017 -0.093 AB__17_0 AB 28 0.201 0.268 595.00 2.48 55 34
17.5 4.048 0.024 -0.144 AB__17_5 AB 48 0.196 0.261 615.50 2.48 55 34
18.0 20.823 0.108 -0.294 AB__18_0 AB 68 0.191 0.255 636.00 2.48 55 34
18.5 27.700 0.225 -0.238 AB__18_5 AB 82 0.225 0.299 684.50 2.48 55 34
19.0 25.179 0.177 -0.188 AB__19_0 AB 96 0.258 0.344 733.00 2.48 55 34
19.5 22.926 0.151 -0.069 AB__19_5 AB 90 0.313 0.418 779.00 2.48 55 34
20.0 20.674 0.124 0.049 AB__20_0 AB 84 0.369 0.492 825.00 2.48 55 34
20.5 25.997 0.231 0.185 AB__20_5 AB 92 0.383 0.510 871.00 2.48 55 34
21.0 29.572 0.304 0.175 AB__21_0 AB 100 0.397 0.529 917.00 2.48 55 34
21.5 40.627 0.408 0.158 AB__21_5 AB 104 0.385 0.513 968.00 2.48 55 34
22.0 39.834 0.368 0.170 AB__22_0 AB 108 0.373 0.498 1019.00 2.48 55 34
22.5 34.681 0.356 0.163 AB__22_5 AB 102 0.419 0.559 1067.00 2.48 55 34
23.0 26.795 0.273 0.166 AB__23_0 AB 96 0.465 0.620 1115.00 2.48 55 34
23.5 21.606 0.222 0.205 AB__23_5 AB 90 0.495 0.661 1159.50 2.48 55 34
24.0 27.394 0.295 0.197 AB__24_0 AB 84 0.526 0.702 1204.00 2.48 55 34
24.5 20.538 0.258 0.198 AB__24_5 AB 86 0.553 0.738 1248.50 2.48 55 34
25.0 27.088 0.211 -0.038 AB__25_0 AB 88 0.580 0.774 1293.00 2.48 55 34
25.5 35.413 0.319 0.210 AB__25_5 AB 86 0.590 0.787 1336.50 2.48 55 34
26.0 36.892 0.315 0.215 AB__26_0 AB 84 0.600 0.799 1380.00 2.48 55 34
26.5 46.709 0.456 0.250 AB__26_5 AB 84 0.594 0.792 1432.00 2.48 55 34
27.0 45.741 0.473 0.238 AB__27_0 AB 84 0.589 0.785 1484.00 2.48 55 34
27.5 50.310 0.469 0.211 AB__27_5 AB 84 0.601 0.801 1528.00 2.48 55 34
28.0 42.441 0.388 0.267 AB__28_0 AB 84 0.613 0.817 1572.00 2.48 55 34
28.5 42.527 0.487 0.292 AB__28_5 AB 86 0.610 0.813 1618.00 2.48 55 34
29.0 53.361 0.661 0.297 AB__29_0 AB 88 0.606 0.808 1664.00 2.48 55 34
29.5 47.392 0.373 0.302 AB__29_5 AB 92 0.606 0.808 1710.50 2.48 55 34
30.0 44.926 0.521 0.308 AB__30_0 AB 96 0.607 0.809 1757.00 2.48 55 34
30.5 46.653 0.574 0.313 AB__30_5 AB 96 0.615 0.820 1803.50 2.48 55 34
31.0 51.331 0.652 0.318 AB__31_0 AB 96 0.623 0.830 1850.00 2.48 55 34
31.5 48.796 0.531 0.323 AB__31_5 AB 96 0.617 0.822 1898.50 2.48 55 34
32.0 46.261 0.411 0.328 AB__32_0 AB 96 0.610 0.814 1947.00 2.48 55 34
32.5 59.915 0.812 0.333 AB__32_5 AB 102 0.600 0.800 2000.50 2.48 55 34
33.0 60.356 0.810 0.338 AB__33_0 AB 108 0.590 0.786 2054.00 2.48 55 34
33.5 57.943 0.757 0.343 AB__33_5 AB 106 0.573 0.764 2112.50 2.48 55 34
34.0 58.148 0.677 0.348 AB__34_0 AB 104 0.556 0.742 2171.00 2.48 55 34
4.0 11.434 0.082 0.036 AC__4_0 AC 6 0.118 0.158 6.50 2.48 55 34
4.5 14.955 0.109 0.035 AC__4_5 AC 5 0.112 0.150 7.25 2.48 55 34
5.0 15.722 0.125 0.037 AC__5_0 AC 4 0.106 0.142 8.00 2.48 55 34
5.5 15.727 0.123 0.039 AC__5_5 AC 10 0.104 0.139 14.50 2.48 55 34
6.0 11.347 0.111 0.045 AC__6_0 AC 16 0.103 0.137 21.00 2.48 55 34
6.5 13.989 0.105 0.051 AC__6_5 AC 20 0.104 0.139 31.00 2.48 55 34
7.0 16.632 0.098 0.058 AC__7_0 AC 24 0.106 0.142 41.00 2.48 55 34
7.5 24.536 0.146 0.063 AC__7_5 AC 38 0.122 0.163 63.00 2.48 55 34
8.0 24.622 0.183 0.059 AC__8_0 AC 52 0.138 0.184 85.00 2.48 55 34
8.5 24.245 0.191 0.058 AC__8_5 AC 48 0.169 0.225 112.00 2.48 55 34
9.0 28.871 0.175 0.058 AC__9_0 AC 44 0.199 0.265 139.00 2.48 55 34
9.5 25.603 0.181 0.061 AC__9_5 AC 62 0.191 0.255 171.00 2.48 55 34
10.0 28.036 0.153 0.069 AC__10_0 AC 80 0.183 0.244 203.00 2.48 55 34
10.5 25.148 0.132 0.089 AC__10_5 AC 88 0.204 0.272 251.00 2.48 55 34
11.0 24.442 0.203 0.087 AC__11_0 AC 96 0.225 0.300 299.00 2.48 55 34
11.5 6.894 0.084 0.085 AC__11_5 AC 84 0.258 0.344 342.50 2.48 55 34
12.0 5.528 0.039 0.020 AC__12_0 AC 72 0.290 0.387 386.00 2.48 55 34
12.5 6.805 0.052 0.097 AC__12_5 AC 76 0.267 0.356 427.00 2.48 55 34
13.0 6.492 0.048 0.106 AC__13_0 AC 80 0.244 0.325 468.00 2.48 55 34
13.5 8.541 0.032 -0.043 AC__13_5 AC 54 0.244 0.325 491.00 2.48 55 34
14.0 28.151 0.167 -0.114 AC__14_0 AC 28 0.243 0.324 514.00 2.48 55 34
14.5 23.779 0.187 -0.067 AC__14_5 AC 28 0.289 0.385 525.50 2.48 55 34
15.0 12.522 0.118 -0.362 AC__15_0 AC 28 0.334 0.445 537.00 2.48 55 34
15.5 6.764 0.043 -0.339 AC__15_5 AC 26 0.322 0.429 547.00 2.48 55 34
16.0 7.552 0.052 -0.261 AC__16_0 AC 24 0.310 0.413 557.00 2.48 55 34
16.5 5.400 0.022 -0.145 AC__16_5 AC 20 0.300 0.400 565.50 2.48 55 34
17.0 5.900 0.017 -0.093 AC__17_0 AC 16 0.290 0.387 574.00 2.48 55 34
17.5 4.048 0.024 -0.144 AC__17_5 AC 18 0.267 0.356 583.50 2.48 55 34
18.0 20.823 0.108 -0.294 AC__18_0 AC 20 0.244 0.326 593.00 2.48 55 34
18.5 27.700 0.225 -0.238 AC__18_5 AC 72 0.217 0.290 626.50 2.48 55 34
19.0 25.179 0.177 -0.188 AC__19_0 AC 124 0.190 0.254 660.00 2.48 55 34
19.5 22.926 0.151 -0.069 AC__19_5 AC 100 0.279 0.372 709.00 2.48 55 34
20.0 20.674 0.124 0.049 AC__20_0 AC 76 0.368 0.490 758.00 2.48 55 34
20.5 25.997 0.231 0.185 AC__20_5 AC 90 0.387 0.516 808.00 2.48 55 34
21.0 29.572 0.304 0.175 AC__21_0 AC 104 0.407 0.543 858.00 2.48 55 34
21.5 40.627 0.408 0.158 AC__21_5 AC 98 0.452 0.603 903.50 2.48 55 34
22.0 39.834 0.368 0.170 AC__22_0 AC 92 0.498 0.664 949.00 2.48 55 34
22.5 34.681 0.356 0.163 AC__22_5 AC 92 0.507 0.677 994.50 2.48 55 34
23.0 26.795 0.273 0.166 AC__23_0 AC 92 0.517 0.690 1040.00 2.48 55 34
23.5 21.606 0.222 0.205 AC__23_5 AC 90 0.518 0.691 1088.50 2.48 55 34
24.0 27.394 0.295 0.197 AC__24_0 AC 88 0.519 0.692 1137.00 2.48 55 34
24.5 20.538 0.258 0.198 AC__24_5 AC 94 0.531 0.709 1184.50 2.48 55 34
25.0 27.088 0.211 -0.038 AC__25_0 AC 100 0.544 0.725 1232.00 2.48 55 34
25.5 35.413 0.319 0.210 AC__25_5 AC 98 0.560 0.746 1280.50 2.48 55 34
26.0 36.892 0.315 0.215 AC__26_0 AC 96 0.576 0.768 1329.00 2.48 55 34
26.5 46.709 0.456 0.250 AC__26_5 AC 94 0.582 0.776 1373.00 2.48 55 34
27.0 45.741 0.473 0.238 AC__27_0 AC 92 0.588 0.784 1417.00 2.48 55 34
27.5 50.310 0.469 0.211 AC__27_5 AC 92 0.593 0.790 1464.00 2.48 55 34
28.0 42.441 0.388 0.267 AC__28_0 AC 92 0.597 0.796 1511.00 2.48 55 34
28.5 42.527 0.487 0.292 AC__28_5 AC 94 0.586 0.781 1557.50 2.48 55 34
29.0 53.361 0.661 0.297 AC__29_0 AC 96 0.574 0.766 1604.00 2.48 55 34
29.5 47.392 0.373 0.302 AC__29_5 AC 108 0.516 0.689 1670.00 2.48 55 34
30.0 44.926 0.521 0.308 AC__30_0 AC 120 0.459 0.612 1736.00 2.48 55 34
30.5 46.653 0.574 0.313 AC__30_5 AC 110 0.502 0.670 1784.50 2.48 55 34
31.0 51.331 0.652 0.318 AC__31_0 AC 100 0.546 0.728 1833.00 2.48 55 34
31.5 48.796 0.531 0.323 AC__31_5 AC 98 0.562 0.750 1883.00 2.48 55 34
32.0 46.261 0.411 0.328 AC__32_0 AC 96 0.579 0.771 1933.00 2.48 55 34
32.5 59.915 0.812 0.333 AC__32_5 AC 94 0.589 0.786 1981.00 2.48 55 34
33.0 60.356 0.810 0.338 AC__33_0 AC 92 0.600 0.800 2029.00 2.48 55 34
33.5 57.943 0.757 0.343 AC__33_5 AC 102 0.591 0.788 2080.00 2.48 55 34
34.0 58.148 0.677 0.348 AC__34_0 AC 112 0.583 0.777 2131.00 2.48 55 34
kable(top_n(validation, 100),
      digits = 3,
      caption = "Validation data.",
      align = "r") %>%
  kable_styling(font_size = 11) %>%
  row_spec(0, color = "grey10", background = "#F4F5F6") %>%
  scroll_box(height = "300px")
Validation data.
z [m] qc [MPa] fs [MPa] u2 [MPa] ID Location ID Normalised ENTRHU [-] Normalised hammer energy [-] Diameter [m] Bottom wall thickness [mm] Pile penetration [m]
3.0 8.859 0.071 0.041 CG__3_0 CG 0.120 0.160 2.48 50 33
3.5 12.484 0.111 0.041 CG__3_5 CG 0.122 0.162 2.48 50 33
4.0 26.119 0.214 0.052 CG__4_0 CG 0.124 0.165 2.48 50 33
4.5 31.922 0.298 0.066 CG__4_5 CG 0.118 0.157 2.48 50 33
5.0 31.822 0.292 0.079 CG__5_0 CG 0.112 0.149 2.48 50 33
5.5 29.064 0.268 0.090 CG__5_5 CG 0.117 0.155 2.48 50 33
6.0 25.606 0.216 0.078 CG__6_0 CG 0.121 0.162 2.48 50 33
6.5 28.187 0.251 0.062 CG__6_5 CG 0.124 0.165 2.48 50 33
7.0 22.891 0.232 0.078 CG__7_0 CG 0.126 0.168 2.48 50 33
7.5 22.283 0.199 0.090 CG__7_5 CG 0.137 0.183 2.48 50 33
8.0 25.220 0.240 0.099 CG__8_0 CG 0.148 0.198 2.48 50 33
8.5 24.819 0.244 0.107 CG__8_5 CG 0.174 0.232 2.48 50 33
9.0 25.353 0.235 0.109 CG__9_0 CG 0.200 0.267 2.48 50 33
9.5 29.594 0.261 0.101 CG__9_5 CG 0.233 0.311 2.48 50 33
10.0 33.834 0.287 0.094 CG__10_0 CG 0.267 0.356 2.48 50 33
10.5 27.980 0.143 0.075 CG__10_5 CG 0.295 0.393 2.48 50 33
11.0 25.273 0.217 0.121 CG__11_0 CG 0.323 0.431 2.48 50 33
11.5 14.002 0.148 0.132 CG__11_5 CG 0.322 0.430 2.48 50 33
12.0 15.830 0.118 0.126 CG__12_0 CG 0.322 0.429 2.48 50 33
12.5 11.260 0.110 0.143 CG__12_5 CG 0.318 0.424 2.48 50 33
13.0 9.934 0.119 0.097 CG__13_0 CG 0.314 0.419 2.48 50 33
13.5 18.624 0.144 0.126 CG__13_5 CG 0.310 0.413 2.48 50 33
14.0 13.182 0.109 0.136 CG__14_0 CG 0.306 0.408 2.48 50 33
14.5 10.605 0.092 0.126 CG__14_5 CG 0.301 0.402 2.48 50 33
15.0 8.276 0.083 0.092 CG__15_0 CG 0.297 0.396 2.48 50 33
15.5 14.220 0.140 0.132 CG__15_5 CG 0.334 0.445 2.48 50 33
16.0 21.716 0.156 0.116 CG__16_0 CG 0.371 0.494 2.48 50 33
16.5 19.388 0.134 0.129 CG__16_5 CG 0.394 0.526 2.48 50 33
17.0 16.566 0.136 0.155 CG__17_0 CG 0.418 0.557 2.48 50 33
17.5 22.589 0.174 0.172 CG__17_5 CG 0.454 0.606 2.48 50 33
18.0 31.932 0.247 0.007 CG__18_0 CG 0.491 0.654 2.48 50 33
18.5 50.331 0.298 0.192 CG__18_5 CG 0.507 0.676 2.48 50 33
19.0 35.054 0.305 0.161 CG__19_0 CG 0.524 0.698 2.48 50 33
19.5 38.511 0.366 0.179 CG__19_5 CG 0.525 0.700 2.48 50 33
20.0 41.968 0.426 0.197 CG__20_0 CG 0.526 0.702 2.48 50 33
20.5 43.108 0.460 0.196 CG__20_5 CG 0.534 0.712 2.48 50 33
21.0 44.592 0.520 0.161 CG__21_0 CG 0.541 0.722 2.48 50 33
21.5 47.682 0.567 0.155 CG__21_5 CG 0.558 0.744 2.48 50 33
22.0 36.740 0.394 -0.059 CG__22_0 CG 0.574 0.766 2.48 50 33
22.5 30.662 0.268 -0.259 CG__22_5 CG 0.590 0.787 2.48 50 33
23.0 29.587 0.362 -0.180 CG__23_0 CG 0.606 0.807 2.48 50 33
23.5 33.710 0.410 0.222 CG__23_5 CG 0.608 0.810 2.48 50 33
24.0 40.111 0.503 0.287 CG__24_0 CG 0.610 0.813 2.48 50 33
24.5 40.079 0.511 0.291 CG__24_5 CG 0.612 0.816 2.48 50 33
25.0 32.575 0.505 0.285 CG__25_0 CG 0.614 0.819 2.48 50 33
25.5 25.071 0.499 0.279 CG__25_5 CG 0.617 0.823 2.48 50 33
26.0 17.567 0.493 0.273 CG__26_0 CG 0.619 0.826 2.48 50 33
26.5 23.495 0.550 0.272 CG__26_5 CG 0.616 0.821 2.48 50 33
27.0 31.133 0.600 0.277 CG__27_0 CG 0.612 0.816 2.48 50 33
27.5 33.581 0.524 0.282 CG__27_5 CG 0.604 0.805 2.48 50 33
28.0 29.700 0.528 0.287 CG__28_0 CG 0.596 0.794 2.48 50 33
28.5 30.296 0.590 0.292 CG__28_5 CG 0.594 0.792 2.48 50 33
29.0 29.597 0.565 0.297 CG__29_0 CG 0.593 0.791 2.48 50 33
29.5 32.513 0.582 0.302 CG__29_5 CG 0.592 0.790 2.48 50 33
30.0 35.430 0.600 0.308 CG__30_0 CG 0.591 0.788 2.48 50 33
30.5 48.335 0.804 0.313 CG__30_5 CG 0.592 0.790 2.48 50 33
31.0 30.961 0.550 0.318 CG__31_0 CG 0.593 0.791 2.48 50 33
31.5 29.890 0.543 0.323 CG__31_5 CG 0.595 0.794 2.48 50 33
32.0 22.136 0.416 0.328 CG__32_0 CG 0.598 0.797 2.48 50 33
4.0 26.119 0.214 0.052 CH__4_0 CH 0.126 0.168 2.48 50 33
4.5 31.922 0.298 0.066 CH__4_5 CH 0.122 0.162 2.48 50 33
5.0 31.822 0.292 0.079 CH__5_0 CH 0.117 0.156 2.48 50 33
5.5 29.064 0.268 0.090 CH__5_5 CH 0.117 0.156 2.48 50 33
6.0 25.606 0.216 0.078 CH__6_0 CH 0.117 0.157 2.48 50 33
6.5 28.187 0.251 0.062 CH__6_5 CH 0.140 0.186 2.48 50 33
7.0 22.891 0.232 0.078 CH__7_0 CH 0.162 0.216 2.48 50 33
7.5 22.283 0.199 0.090 CH__7_5 CH 0.175 0.233 2.48 50 33
8.0 25.220 0.240 0.099 CH__8_0 CH 0.188 0.251 2.48 50 33
8.5 24.819 0.244 0.107 CH__8_5 CH 0.188 0.251 2.48 50 33
9.0 25.353 0.235 0.109 CH__9_0 CH 0.189 0.252 2.48 50 33
9.5 29.594 0.261 0.101 CH__9_5 CH 0.232 0.309 2.48 50 33
10.0 33.834 0.287 0.094 CH__10_0 CH 0.275 0.367 2.48 50 33
10.5 27.980 0.143 0.075 CH__10_5 CH 0.295 0.393 2.48 50 33
11.0 25.273 0.217 0.121 CH__11_0 CH 0.314 0.419 2.48 50 33
11.5 14.002 0.148 0.132 CH__11_5 CH 0.312 0.416 2.48 50 33
12.0 15.830 0.118 0.126 CH__12_0 CH 0.310 0.413 2.48 50 33
12.5 11.260 0.110 0.143 CH__12_5 CH 0.314 0.419 2.48 50 33
13.0 9.934 0.119 0.097 CH__13_0 CH 0.318 0.424 2.48 50 33
13.5 18.624 0.144 0.126 CH__13_5 CH 0.314 0.419 2.48 50 33
14.0 13.182 0.109 0.136 CH__14_0 CH 0.311 0.414 2.48 50 33
14.5 10.605 0.092 0.126 CH__14_5 CH 0.305 0.407 2.48 50 33
15.0 8.276 0.083 0.092 CH__15_0 CH 0.300 0.400 2.48 50 33
15.5 14.220 0.140 0.132 CH__15_5 CH 0.329 0.439 2.48 50 33
16.0 21.716 0.156 0.116 CH__16_0 CH 0.359 0.478 2.48 50 33
16.5 19.388 0.134 0.129 CH__16_5 CH 0.392 0.523 2.48 50 33
17.0 16.566 0.136 0.155 CH__17_0 CH 0.426 0.568 2.48 50 33
17.5 22.589 0.174 0.172 CH__17_5 CH 0.478 0.637 2.48 50 33
18.0 31.932 0.247 0.007 CH__18_0 CH 0.529 0.706 2.48 50 33
18.5 50.331 0.298 0.192 CH__18_5 CH 0.525 0.700 2.48 50 33
19.0 35.054 0.305 0.161 CH__19_0 CH 0.521 0.695 2.48 50 33
19.5 38.511 0.366 0.179 CH__19_5 CH 0.517 0.690 2.48 50 33
20.0 41.968 0.426 0.197 CH__20_0 CH 0.513 0.684 2.48 50 33
20.5 43.108 0.460 0.196 CH__20_5 CH 0.512 0.682 2.48 50 33
21.0 44.592 0.520 0.161 CH__21_0 CH 0.510 0.680 2.48 50 33
21.5 47.682 0.567 0.155 CH__21_5 CH 0.510 0.680 2.48 50 33
22.0 36.740 0.394 -0.059 CH__22_0 CH 0.510 0.680 2.48 50 33
22.5 30.662 0.268 -0.259 CH__22_5 CH 0.529 0.705 2.48 50 33
23.0 29.587 0.362 -0.180 CH__23_0 CH 0.548 0.731 2.48 50 33
23.5 33.710 0.410 0.222 CH__23_5 CH 0.554 0.738 2.48 50 33
24.0 40.111 0.503 0.287 CH__24_0 CH 0.559 0.746 2.48 50 33
24.5 40.079 0.511 0.291 CH__24_5 CH 0.561 0.748 2.48 50 33
25.0 32.575 0.505 0.285 CH__25_0 CH 0.563 0.751 2.48 50 33
25.5 25.071 0.499 0.279 CH__25_5 CH 0.567 0.756 2.48 50 33
26.0 17.567 0.493 0.273 CH__26_0 CH 0.571 0.761 2.48 50 33
26.5 23.495 0.550 0.272 CH__26_5 CH 0.576 0.768 2.48 50 33
27.0 31.133 0.600 0.277 CH__27_0 CH 0.581 0.775 2.48 50 33
27.5 33.581 0.524 0.282 CH__27_5 CH 0.587 0.782 2.48 50 33
28.0 29.700 0.528 0.287 CH__28_0 CH 0.592 0.789 2.48 50 33
28.5 30.296 0.590 0.292 CH__28_5 CH 0.598 0.797 2.48 50 33
29.0 29.597 0.565 0.297 CH__29_0 CH 0.603 0.804 2.48 50 33
29.5 32.513 0.582 0.302 CH__29_5 CH 0.601 0.801 2.48 50 33
30.0 35.430 0.600 0.308 CH__30_0 CH 0.599 0.798 2.48 50 33
30.5 48.335 0.804 0.313 CH__30_5 CH 0.597 0.795 2.48 50 33
31.0 30.961 0.550 0.318 CH__31_0 CH 0.594 0.792 2.48 50 33
31.5 29.890 0.543 0.323 CH__31_5 CH 0.594 0.792 2.48 50 33
32.0 22.136 0.416 0.328 CH__32_0 CH 0.594 0.792 2.48 50 33
32.5 62.235 0.873 0.333 CH__32_5 CH 0.585 0.780 2.48 50 33
33.0 77.961 1.010 0.338 CH__33_0 CH 0.577 0.769 2.48 50 33
5.0 31.822 0.292 0.079 CI__5_0 CI 0.121 0.162 2.48 50 33
5.5 29.064 0.268 0.090 CI__5_5 CI 0.122 0.163 2.48 50 33
6.0 25.606 0.216 0.078 CI__6_0 CI 0.124 0.165 2.48 50 33
6.5 28.187 0.251 0.062 CI__6_5 CI 0.122 0.162 2.48 50 33
7.0 22.891 0.232 0.078 CI__7_0 CI 0.119 0.159 2.48 50 33
7.5 22.283 0.199 0.090 CI__7_5 CI 0.116 0.155 2.48 50 33
8.0 25.220 0.240 0.099 CI__8_0 CI 0.113 0.151 2.48 50 33
8.5 24.819 0.244 0.107 CI__8_5 CI 0.146 0.195 2.48 50 33
9.0 25.353 0.235 0.109 CI__9_0 CI 0.179 0.239 2.48 50 33
9.5 29.594 0.261 0.101 CI__9_5 CI 0.190 0.254 2.48 50 33
10.0 33.834 0.287 0.094 CI__10_0 CI 0.201 0.268 2.48 50 33
10.5 27.980 0.143 0.075 CI__10_5 CI 0.244 0.325 2.48 50 33
11.0 25.273 0.217 0.121 CI__11_0 CI 0.287 0.382 2.48 50 33
11.5 14.002 0.148 0.132 CI__11_5 CI 0.288 0.384 2.48 50 33
12.0 15.830 0.118 0.126 CI__12_0 CI 0.289 0.386 2.48 50 33
12.5 11.260 0.110 0.143 CI__12_5 CI 0.289 0.385 2.48 50 33
13.0 9.934 0.119 0.097 CI__13_0 CI 0.288 0.384 2.48 50 33
13.5 18.624 0.144 0.126 CI__13_5 CI 0.290 0.387 2.48 50 33
14.0 13.182 0.109 0.136 CI__14_0 CI 0.292 0.389 2.48 50 33
14.5 10.605 0.092 0.126 CI__14_5 CI 0.298 0.398 2.48 50 33
15.0 8.276 0.083 0.092 CI__15_0 CI 0.305 0.407 2.48 50 33
15.5 14.220 0.140 0.132 CI__15_5 CI 0.342 0.456 2.48 50 33
16.0 21.716 0.156 0.116 CI__16_0 CI 0.379 0.505 2.48 50 33
16.5 19.388 0.134 0.129 CI__16_5 CI 0.401 0.534 2.48 50 33
17.0 16.566 0.136 0.155 CI__17_0 CI 0.422 0.563 2.48 50 33
17.5 22.589 0.174 0.172 CI__17_5 CI 0.434 0.579 2.48 50 33
18.0 31.932 0.247 0.007 CI__18_0 CI 0.446 0.595 2.48 50 33
18.5 50.331 0.298 0.192 CI__18_5 CI 0.453 0.605 2.48 50 33
19.0 35.054 0.305 0.161 CI__19_0 CI 0.461 0.614 2.48 50 33
19.5 38.511 0.366 0.179 CI__19_5 CI 0.490 0.654 2.48 50 33
20.0 41.968 0.426 0.197 CI__20_0 CI 0.520 0.693 2.48 50 33
20.5 43.108 0.460 0.196 CI__20_5 CI 0.518 0.690 2.48 50 33
21.0 44.592 0.520 0.161 CI__21_0 CI 0.515 0.687 2.48 50 33
21.5 47.682 0.567 0.155 CI__21_5 CI 0.514 0.686 2.48 50 33
22.0 36.740 0.394 -0.059 CI__22_0 CI 0.514 0.685 2.48 50 33
22.5 30.662 0.268 -0.259 CI__22_5 CI 0.509 0.679 2.48 50 33
23.0 29.587 0.362 -0.180 CI__23_0 CI 0.505 0.673 2.48 50 33
23.5 33.710 0.410 0.222 CI__23_5 CI 0.514 0.685 2.48 50 33
24.0 40.111 0.503 0.287 CI__24_0 CI 0.522 0.697 2.48 50 33
24.5 40.079 0.511 0.291 CI__24_5 CI 0.549 0.732 2.48 50 33
25.0 32.575 0.505 0.285 CI__25_0 CI 0.576 0.768 2.48 50 33
25.5 25.071 0.499 0.279 CI__25_5 CI 0.574 0.765 2.48 50 33
26.0 17.567 0.493 0.273 CI__26_0 CI 0.571 0.762 2.48 50 33
26.5 23.495 0.550 0.272 CI__26_5 CI 0.570 0.760 2.48 50 33
27.0 31.133 0.600 0.277 CI__27_0 CI 0.568 0.757 2.48 50 33
27.5 33.581 0.524 0.282 CI__27_5 CI 0.581 0.775 2.48 50 33
28.0 29.700 0.528 0.287 CI__28_0 CI 0.594 0.792 2.48 50 33
28.5 30.296 0.590 0.292 CI__28_5 CI 0.596 0.794 2.48 50 33
29.0 29.597 0.565 0.297 CI__29_0 CI 0.597 0.796 2.48 50 33
29.5 32.513 0.582 0.302 CI__29_5 CI 0.596 0.795 2.48 50 33
30.0 35.430 0.600 0.308 CI__30_0 CI 0.596 0.794 2.48 50 33
30.5 48.335 0.804 0.313 CI__30_5 CI 0.608 0.811 2.48 50 33
31.0 30.961 0.550 0.318 CI__31_0 CI 0.621 0.828 2.48 50 33
31.5 29.890 0.543 0.323 CI__31_5 CI 0.619 0.825 2.48 50 33
32.0 22.136 0.416 0.328 CI__32_0 CI 0.618 0.823 2.48 50 33
32.5 62.235 0.873 0.333 CI__32_5 CI 0.615 0.820 2.48 50 33
33.0 77.961 1.010 0.338 CI__33_0 CI 0.613 0.817 2.48 50 33

The above tables show the first 100 rows of the training and validation datasets. The two datasets have the same structure. The parameters included in the data can be divided into four categories:

  • CPT test data:
    • z [m] - depth;
    • qc [MPa] - cone tip resistance;
    • fs [MPa - cone sleeve friction;
    • u2 [MPa] - pore pressure;
  • pile foundations data:
    • Diameter [m] - pile outer diameter;
    • Bottom wall thickness [mm] - wall thickness at the bottom of the pile;
  • pile installation data:
    • Pile penetration [m] - final penetration of the pile below mudline;
    • Normalised ENTRHU [-] - energy transmitted to the pile (normalised to be between 0 and 1);
    • Normalised hammer energy [-] - energy provided by the hammer (normalised to be between 0 and 1);
    • Blowcount [Blows/m] - number of blows required for an additional meter of pile penetration;
    • Number of blows - total number of blows to reach the selected depth;
  • identification data:
    • Location ID - anonymized location ID;
    • ID - a unique ID combining the location name and depth.

To facilitate the model-building process, the data have been pre-processed to a regular grid with a vertical spacing of 0.5m (notice the values of z [m]). In overall there are 4610 and 1008 data points in the training and validation datasets, respectively.

Note that for the validation dataset, Blowcount [Blows/m] and Number of blows are not provided, as these are the parameters to be predicted by the model (i.e. outcome). The remaining 11 variables can potentially be used as input to build the predictive model (i.e. features).

2.2 Normalised data

In addition, normalised data for CPT registrations, for both training and validation, are also provided. We load and view these data here but, for now, we are not really going to detail them.

training_no <- read_csv("F:/isfog2020/training_data_withnormalised.csv")
validation_no <- read_csv("F:/isfog2020/validation_data_withnormalised.csv")
kable(top_n(training_no, 100),
      digits = 3,
      caption = "Normalised training data.",
      align = "r") %>%
  kable_styling(font_size = 11) %>%
  row_spec(0, color = "grey10", background = "#F4F5F6") %>%
  scroll_box(height = "300px")
Normalised training data.
z [m] qc [MPa] fs [MPa] u2 [MPa] ID Location ID Blowcount [Blows/m] Normalised ENTRHU [-] Normalised hammer energy [-] Number of blows Diameter [m] Bottom wall thickness [mm] Pile penetration [m] area ratio [-] Push Total unit weight [kN/m3] Layer no Vertical total stress [kPa] Water pressure [kPa] Vertical effective stress [kPa] qt [MPa] Delta u2 [MPa] Rf [%] Bq [-] Qt [-] Fr [%] qnet [MPa] Ic [-]
11.5 1.641 0.024 0.080 CD__11_5 CD 28 0.228 0.304 224.0 2.48 70 32 0.75 1 19 1 218.5 117.875 100.625 1.661 -0.038 1.433 -0.026 14.338 1.650 1.443 2.724
25.0 6.689 0.296 0.550 CD__25_0 CD 72 0.534 0.711 1102.0 2.48 70 32 0.75 1 19 1 475.0 256.250 218.750 6.826 0.294 4.333 0.046 29.034 4.657 6.351 2.756
25.5 4.287 0.121 0.665 CD__25_5 CD 64 0.533 0.711 1131.5 2.48 70 32 0.75 1 19 1 484.5 261.375 223.125 4.454 0.404 2.712 0.102 17.789 3.043 3.969 2.798
26.0 4.829 0.160 1.263 CD__26_0 CD 56 0.533 0.710 1161.0 2.48 70 32 0.75 1 19 1 494.0 266.500 227.500 5.145 0.996 3.114 0.214 20.444 3.444 4.651 2.784
26.5 5.456 0.128 1.912 CD__26_5 CD 56 0.541 0.722 1190.5 2.48 70 32 0.75 1 19 1 503.5 271.625 231.875 5.934 1.640 2.162 0.302 23.418 2.363 5.430 2.627
27.0 5.487 0.105 0.113 CD__27_0 CD 56 0.550 0.733 1220.0 2.48 70 32 0.75 1 19 1 513.0 276.750 236.250 5.515 -0.164 1.911 -0.033 21.172 2.107 5.002 2.633
10.5 2.046 0.060 0.133 CA__10_5 CA 34 0.170 0.226 196.5 2.48 50 27 0.75 1 19 1 199.5 107.625 91.875 2.079 0.026 2.881 0.014 20.463 3.186 1.880 2.764
11.5 2.311 0.057 0.219 CA__11_5 CA 32 0.173 0.230 230.0 2.48 50 27 0.75 1 19 1 218.5 117.875 100.625 2.366 0.102 2.396 0.047 21.342 2.640 2.148 2.698
27.5 4.705 0.126 0.179 DW__27_5 DW 100 0.386 0.514 1934.0 2.48 50 32 0.75 1 19 1 522.5 281.875 240.625 4.750 -0.102 2.652 -0.024 17.567 2.980 4.227 2.797
10.5 3.111 0.114 0.262 AU__10_5 AU 70 0.229 0.310 253.0 2.48 55 32 0.75 1 19 1 199.5 107.625 91.875 3.177 0.154 3.595 0.052 32.403 3.836 2.977 2.666
13.5 3.585 0.131 -0.140 EC__13_5 EC 24 0.328 0.438 163.0 2.48 70 27 0.75 1 19 1 256.5 138.375 118.125 3.550 -0.278 3.695 -0.084 27.886 3.983 3.294 2.720
15.0 2.971 0.062 -0.284 AR__15_0 AR 60 0.466 0.621 229.0 2.48 55 29 0.75 1 19 1 285.0 153.750 131.250 2.900 -0.438 2.153 -0.167 19.924 2.388 2.615 2.690
25.5 4.827 0.187 0.269 CM__25_5 CM 72 0.533 0.711 1277.0 2.48 50 30 0.75 1 19 1 484.5 261.375 223.125 4.895 0.008 3.814 0.002 19.766 4.233 4.410 2.853
12.5 2.705 0.115 -0.082 CY__12_5 CY 26 0.233 0.310 170.0 2.48 70 25 0.75 1 19 1 237.5 128.125 109.375 2.685 -0.210 4.298 -0.086 22.377 4.715 2.448 2.842
11.5 3.228 0.098 0.126 EE__11_5 EE 52 0.242 0.323 387.5 2.48 50 30 0.75 1 19 1 218.5 117.875 100.625 3.259 0.008 3.007 0.003 30.216 3.223 3.041 2.635
11.0 2.627 0.074 0.126 DK__11_0 DK 20 0.237 0.316 121.0 2.48 50 31 0.75 1 19 1 209.0 112.750 96.250 2.658 0.013 2.795 0.005 25.448 3.033 2.449 2.677
1.0 0.347 0.016 0.025 AL__1_0 AL NA NA NA NA 2.48 55 30 0.75 1 19 1 19.0 10.250 8.750 0.353 0.015 4.490 0.044 38.200 4.745 0.334 2.750
38.5 9.247 0.236 -0.208 BA__38_5 BA NA NA NA NA NA NA NA 0.75 1 19 1 731.5 394.625 336.875 9.195 -0.602 2.563 -0.071 25.124 2.785 8.464 2.656
41.0 6.616 0.212 -0.119 BA__41_0 BA NA NA NA NA NA NA NA 0.75 1 19 1 779.0 420.250 358.750 6.586 -0.539 3.222 -0.093 16.187 3.654 5.807 2.879
41.5 5.836 0.231 0.353 BA__41_5 BA NA NA NA NA NA NA NA 0.75 1 19 1 788.5 425.375 363.125 5.925 -0.072 3.894 -0.014 14.144 4.492 5.136 2.981
42.0 5.571 0.215 1.179 BA__42_0 BA NA NA NA NA NA NA NA 0.75 1 19 1 798.0 430.500 367.500 5.865 0.749 3.664 0.148 13.789 4.241 5.067 2.974
42.5 5.012 0.201 1.243 BA__42_5 BA NA NA NA NA NA NA NA 0.75 1 19 1 807.5 435.625 371.875 5.322 0.808 3.784 0.179 12.141 4.461 4.515 3.031
43.0 3.789 0.151 0.760 BA__43_0 BA NA NA NA NA NA NA NA 0.75 1 19 1 817.0 440.750 376.250 3.979 0.319 3.787 0.101 8.404 4.766 3.162 3.175
43.5 3.956 0.176 1.057 BA__43_5 BA NA NA NA NA NA NA NA 0.75 1 19 1 826.5 445.875 380.625 4.221 0.611 4.158 0.180 8.917 5.171 3.394 3.176
44.0 6.573 0.196 1.105 BA__44_0 BA NA NA NA NA NA NA NA 0.75 1 19 1 836.0 451.000 385.000 6.850 0.654 2.869 0.109 15.620 3.268 6.014 2.862
45.5 7.516 0.169 -0.260 BA__45_5 BA NA NA NA NA NA NA NA 0.75 1 19 1 864.5 466.375 398.125 7.451 -0.727 2.267 -0.110 16.544 2.564 6.586 2.779
46.5 4.458 0.179 -0.241 BA__46_5 BA NA NA NA NA NA NA NA 0.75 1 19 1 883.5 476.625 406.875 4.398 -0.718 4.077 -0.204 8.637 5.102 3.514 3.184
47.0 4.204 0.169 0.021 BA__47_0 BA NA NA NA NA NA NA NA 0.75 1 19 1 893.0 481.750 411.250 4.209 -0.461 4.011 -0.139 8.063 5.091 3.316 3.207
47.5 4.129 0.106 0.374 BA__47_5 BA NA NA NA NA NA NA NA 0.75 1 19 1 902.5 486.875 415.625 4.222 -0.113 2.519 -0.034 7.988 3.204 3.320 3.094
48.0 6.130 0.196 -0.424 BA__48_0 BA NA NA NA NA NA NA NA 0.75 1 19 1 912.0 492.000 420.000 6.024 -0.916 3.254 -0.179 12.171 3.834 5.112 2.990
48.5 3.613 0.098 1.463 BA__48_5 BA NA NA NA NA NA NA NA 0.75 1 19 1 921.5 497.125 424.375 3.979 0.966 2.470 0.316 7.205 3.215 3.058 3.132
49.5 6.013 0.172 -0.499 BA__49_5 BA NA NA NA NA NA NA NA 0.75 1 19 1 940.5 507.375 433.125 5.888 -1.007 2.920 -0.203 11.423 3.474 4.947 2.987
50.0 4.809 0.111 0.340 BA__50_0 BA NA NA NA NA NA NA NA 0.75 1 19 1 950.0 512.500 437.500 4.894 -0.172 2.266 -0.044 9.015 2.812 3.944 3.018
14.5 3.169 0.129 0.127 DB__14_5 DB 44 0.237 0.315 209.0 2.48 50 26 0.75 1 19 1 275.5 148.625 126.875 3.201 -0.021 4.024 -0.007 23.058 4.403 2.925 2.812
11.5 1.641 0.024 0.080 CE__11_5 CE 58 0.217 0.289 352.0 2.48 70 32 0.75 1 19 1 218.5 117.875 100.625 1.661 -0.038 1.433 -0.026 14.338 1.650 1.443 2.724
25.0 6.689 0.296 0.550 CE__25_0 CE 72 0.576 0.768 1383.0 2.48 70 32 0.75 1 19 1 475.0 256.250 218.750 6.826 0.294 4.333 0.046 29.034 4.657 6.351 2.756
25.5 4.287 0.121 0.665 CE__25_5 CE 76 0.569 0.759 1421.0 2.48 70 32 0.75 1 19 1 484.5 261.375 223.125 4.454 0.404 2.712 0.102 17.789 3.043 3.969 2.798
26.0 4.829 0.160 1.263 CE__26_0 CE 80 0.562 0.750 1459.0 2.48 70 32 0.75 1 19 1 494.0 266.500 227.500 5.145 0.996 3.114 0.214 20.444 3.444 4.651 2.784
26.5 5.456 0.128 1.912 CE__26_5 CE 78 0.565 0.753 1495.5 2.48 70 32 0.75 1 19 1 503.5 271.625 231.875 5.934 1.640 2.162 0.302 23.418 2.363 5.430 2.627
27.0 5.487 0.105 0.113 CE__27_0 CE 76 0.567 0.756 1532.0 2.48 70 32 0.75 1 19 1 513.0 276.750 236.250 5.515 -0.164 1.911 -0.033 21.172 2.107 5.002 2.633
10.5 2.046 0.060 0.133 CB__10_5 CB 32 0.159 0.212 142.5 2.48 50 27 0.75 1 19 1 199.5 107.625 91.875 2.079 0.026 2.881 0.014 20.463 3.186 1.880 2.764
11.5 2.311 0.057 0.219 CB__11_5 CB 30 0.142 0.189 169.0 2.48 50 27 0.75 1 19 1 218.5 117.875 100.625 2.366 0.102 2.396 0.047 21.342 2.640 2.148 2.698
27.5 4.705 0.126 0.179 DX__27_5 DX 90 0.487 0.649 1904.5 2.48 50 32 0.75 1 19 1 522.5 281.875 240.625 4.750 -0.102 2.652 -0.024 17.567 2.980 4.227 2.797
10.5 3.111 0.114 0.262 AV__10_5 AV 28 0.317 0.422 295.5 2.48 55 32 0.75 1 19 1 199.5 107.625 91.875 3.177 0.154 3.595 0.052 32.403 3.836 2.977 2.666
15.0 2.971 0.062 -0.284 AS__15_0 AS 84 0.476 0.634 366.0 2.48 55 29 0.75 1 19 1 285.0 153.750 131.250 2.900 -0.438 2.153 -0.167 19.924 2.388 2.615 2.690
25.5 4.827 0.187 0.269 CN__25_5 CN 88 0.491 0.655 1569.0 2.48 50 30 0.75 1 19 1 484.5 261.375 223.125 4.895 0.008 3.814 0.002 19.766 4.233 4.410 2.853
12.5 2.705 0.115 -0.082 CZ__12_5 CZ 38 0.181 0.242 175.5 2.48 70 25 0.75 1 19 1 237.5 128.125 109.375 2.685 -0.210 4.298 -0.086 22.377 4.715 2.448 2.842
11.5 3.228 0.098 0.126 EF__11_5 EF 82 0.254 0.338 498.0 2.48 50 30 0.75 1 19 1 218.5 117.875 100.625 3.259 0.008 3.007 0.003 30.216 3.223 3.041 2.635
11.0 2.627 0.074 0.126 DL__11_0 DL 24 0.223 0.297 259.0 2.48 50 31 0.75 1 19 1 209.0 112.750 96.250 2.658 0.013 2.795 0.005 25.448 3.033 2.449 2.677
1.0 0.347 0.016 0.025 AM__1_0 AM NA NA NA NA 2.48 55 30 0.75 1 19 1 19.0 10.250 8.750 0.353 0.015 4.490 0.044 38.200 4.745 0.334 2.750
38.5 9.247 0.236 -0.208 BB__38_5 BB NA NA NA NA NA NA NA 0.75 1 19 1 731.5 394.625 336.875 9.195 -0.602 2.563 -0.071 25.124 2.785 8.464 2.656
41.0 6.616 0.212 -0.119 BB__41_0 BB NA NA NA NA NA NA NA 0.75 1 19 1 779.0 420.250 358.750 6.586 -0.539 3.222 -0.093 16.187 3.654 5.807 2.879
41.5 5.836 0.231 0.353 BB__41_5 BB NA NA NA NA NA NA NA 0.75 1 19 1 788.5 425.375 363.125 5.925 -0.072 3.894 -0.014 14.144 4.492 5.136 2.981
42.0 5.571 0.215 1.179 BB__42_0 BB NA NA NA NA NA NA NA 0.75 1 19 1 798.0 430.500 367.500 5.865 0.749 3.664 0.148 13.789 4.241 5.067 2.974
42.5 5.012 0.201 1.243 BB__42_5 BB NA NA NA NA NA NA NA 0.75 1 19 1 807.5 435.625 371.875 5.322 0.808 3.784 0.179 12.141 4.461 4.515 3.031
43.0 3.789 0.151 0.760 BB__43_0 BB NA NA NA NA NA NA NA 0.75 1 19 1 817.0 440.750 376.250 3.979 0.319 3.787 0.101 8.404 4.766 3.162 3.175
43.5 3.956 0.176 1.057 BB__43_5 BB NA NA NA NA NA NA NA 0.75 1 19 1 826.5 445.875 380.625 4.221 0.611 4.158 0.180 8.917 5.171 3.394 3.176
44.0 6.573 0.196 1.105 BB__44_0 BB NA NA NA NA NA NA NA 0.75 1 19 1 836.0 451.000 385.000 6.850 0.654 2.869 0.109 15.620 3.268 6.014 2.862
45.5 7.516 0.169 -0.260 BB__45_5 BB NA NA NA NA NA NA NA 0.75 1 19 1 864.5 466.375 398.125 7.451 -0.727 2.267 -0.110 16.544 2.564 6.586 2.779
46.5 4.458 0.179 -0.241 BB__46_5 BB NA NA NA NA NA NA NA 0.75 1 19 1 883.5 476.625 406.875 4.398 -0.718 4.077 -0.204 8.637 5.102 3.514 3.184
47.0 4.204 0.169 0.021 BB__47_0 BB NA NA NA NA NA NA NA 0.75 1 19 1 893.0 481.750 411.250 4.209 -0.461 4.011 -0.139 8.063 5.091 3.316 3.207
47.5 4.129 0.106 0.374 BB__47_5 BB NA NA NA NA NA NA NA 0.75 1 19 1 902.5 486.875 415.625 4.222 -0.113 2.519 -0.034 7.988 3.204 3.320 3.094
48.0 6.130 0.196 -0.424 BB__48_0 BB NA NA NA NA NA NA NA 0.75 1 19 1 912.0 492.000 420.000 6.024 -0.916 3.254 -0.179 12.171 3.834 5.112 2.990
48.5 3.613 0.098 1.463 BB__48_5 BB NA NA NA NA NA NA NA 0.75 1 19 1 921.5 497.125 424.375 3.979 0.966 2.470 0.316 7.205 3.215 3.058 3.132
49.5 6.013 0.172 -0.499 BB__49_5 BB NA NA NA NA NA NA NA 0.75 1 19 1 940.5 507.375 433.125 5.888 -1.007 2.920 -0.203 11.423 3.474 4.947 2.987
50.0 4.809 0.111 0.340 BB__50_0 BB NA NA NA NA NA NA NA 0.75 1 19 1 950.0 512.500 437.500 4.894 -0.172 2.266 -0.044 9.015 2.812 3.944 3.018
14.5 3.169 0.129 0.127 DC__14_5 DC 62 0.319 0.425 486.0 2.48 50 26 0.75 1 19 1 275.5 148.625 126.875 3.201 -0.021 4.024 -0.007 23.058 4.403 2.925 2.812
11.5 1.641 0.024 0.080 CF__11_5 CF 34 0.268 0.357 295.5 2.48 70 32 0.75 1 19 1 218.5 117.875 100.625 1.661 -0.038 1.433 -0.026 14.338 1.650 1.443 2.724
25.0 6.689 0.296 0.550 CF__25_0 CF 72 0.555 0.740 1252.0 2.48 70 32 0.75 1 19 1 475.0 256.250 218.750 6.826 0.294 4.333 0.046 29.034 4.657 6.351 2.756
25.5 4.287 0.121 0.665 CF__25_5 CF 72 0.550 0.733 1289.5 2.48 70 32 0.75 1 19 1 484.5 261.375 223.125 4.454 0.404 2.712 0.102 17.789 3.043 3.969 2.798
26.0 4.829 0.160 1.263 CF__26_0 CF 72 0.544 0.726 1327.0 2.48 70 32 0.75 1 19 1 494.0 266.500 227.500 5.145 0.996 3.114 0.214 20.444 3.444 4.651 2.784
26.5 5.456 0.128 1.912 CF__26_5 CF 66 0.556 0.741 1361.5 2.48 70 32 0.75 1 19 1 503.5 271.625 231.875 5.934 1.640 2.162 0.302 23.418 2.363 5.430 2.627
27.0 5.487 0.105 0.113 CF__27_0 CF 60 0.567 0.756 1396.0 2.48 70 32 0.75 1 19 1 513.0 276.750 236.250 5.515 -0.164 1.911 -0.033 21.172 2.107 5.002 2.633
10.5 2.046 0.060 0.133 CC__10_5 CC 20 0.180 0.240 102.0 2.48 50 27 0.75 1 19 1 199.5 107.625 91.875 2.079 0.026 2.881 0.014 20.463 3.186 1.880 2.764
11.5 2.311 0.057 0.219 CC__11_5 CC 20 0.164 0.218 124.5 2.48 50 27 0.75 1 19 1 218.5 117.875 100.625 2.366 0.102 2.396 0.047 21.342 2.640 2.148 2.698
27.5 4.705 0.126 0.179 DY__27_5 DY 90 0.478 0.638 1988.5 2.48 50 32 0.75 1 19 1 522.5 281.875 240.625 4.750 -0.102 2.652 -0.024 17.567 2.980 4.227 2.797
10.5 3.111 0.114 0.262 AW__10_5 AW 46 0.301 0.402 337.0 2.48 55 32 0.75 1 19 1 199.5 107.625 91.875 3.177 0.154 3.595 0.052 32.403 3.836 2.977 2.666
13.5 3.585 0.131 -0.140 ED__13_5 ED 28 0.313 0.417 254.5 2.48 70 27 0.75 1 19 1 256.5 138.375 118.125 3.550 -0.278 3.695 -0.084 27.886 3.983 3.294 2.720
15.0 2.971 0.062 -0.284 AT__15_0 AT 72 0.478 0.637 353.0 2.48 55 29 0.75 1 19 1 285.0 153.750 131.250 2.900 -0.438 2.153 -0.167 19.924 2.388 2.615 2.690
25.5 4.827 0.187 0.269 CO__25_5 CO 86 0.523 0.698 1482.5 2.48 50 30 0.75 1 19 1 484.5 261.375 223.125 4.895 0.008 3.814 0.002 19.766 4.233 4.410 2.853
12.5 2.705 0.115 -0.082 DA__12_5 DA 24 0.218 0.290 143.0 2.48 70 25 0.75 1 19 1 237.5 128.125 109.375 2.685 -0.210 4.298 -0.086 22.377 4.715 2.448 2.842
11.5 3.228 0.098 0.126 EG__11_5 EG 50 0.262 0.349 310.5 2.48 50 30 0.75 1 19 1 218.5 117.875 100.625 3.259 0.008 3.007 0.003 30.216 3.223 3.041 2.635
11.0 2.627 0.074 0.126 DM__11_0 DM 24 0.243 0.324 225.0 2.48 50 31 0.75 1 19 1 209.0 112.750 96.250 2.658 0.013 2.795 0.005 25.448 3.033 2.449 2.677
1.0 0.347 0.016 0.025 AN__1_0 AN NA NA NA NA 2.48 55 30 0.75 1 19 1 19.0 10.250 8.750 0.353 0.015 4.490 0.044 38.200 4.745 0.334 2.750
38.5 9.247 0.236 -0.208 BC__38_5 BC NA NA NA NA NA NA NA 0.75 1 19 1 731.5 394.625 336.875 9.195 -0.602 2.563 -0.071 25.124 2.785 8.464 2.656
41.0 6.616 0.212 -0.119 BC__41_0 BC NA NA NA NA NA NA NA 0.75 1 19 1 779.0 420.250 358.750 6.586 -0.539 3.222 -0.093 16.187 3.654 5.807 2.879
41.5 5.836 0.231 0.353 BC__41_5 BC NA NA NA NA NA NA NA 0.75 1 19 1 788.5 425.375 363.125 5.925 -0.072 3.894 -0.014 14.144 4.492 5.136 2.981
42.0 5.571 0.215 1.179 BC__42_0 BC NA NA NA NA NA NA NA 0.75 1 19 1 798.0 430.500 367.500 5.865 0.749 3.664 0.148 13.789 4.241 5.067 2.974
42.5 5.012 0.201 1.243 BC__42_5 BC NA NA NA NA NA NA NA 0.75 1 19 1 807.5 435.625 371.875 5.322 0.808 3.784 0.179 12.141 4.461 4.515 3.031
43.0 3.789 0.151 0.760 BC__43_0 BC NA NA NA NA NA NA NA 0.75 1 19 1 817.0 440.750 376.250 3.979 0.319 3.787 0.101 8.404 4.766 3.162 3.175
43.5 3.956 0.176 1.057 BC__43_5 BC NA NA NA NA NA NA NA 0.75 1 19 1 826.5 445.875 380.625 4.221 0.611 4.158 0.180 8.917 5.171 3.394 3.176
44.0 6.573 0.196 1.105 BC__44_0 BC NA NA NA NA NA NA NA 0.75 1 19 1 836.0 451.000 385.000 6.850 0.654 2.869 0.109 15.620 3.268 6.014 2.862
45.5 7.516 0.169 -0.260 BC__45_5 BC NA NA NA NA NA NA NA 0.75 1 19 1 864.5 466.375 398.125 7.451 -0.727 2.267 -0.110 16.544 2.564 6.586 2.779
46.5 4.458 0.179 -0.241 BC__46_5 BC NA NA NA NA NA NA NA 0.75 1 19 1 883.5 476.625 406.875 4.398 -0.718 4.077 -0.204 8.637 5.102 3.514 3.184
47.0 4.204 0.169 0.021 BC__47_0 BC NA NA NA NA NA NA NA 0.75 1 19 1 893.0 481.750 411.250 4.209 -0.461 4.011 -0.139 8.063 5.091 3.316 3.207
47.5 4.129 0.106 0.374 BC__47_5 BC NA NA NA NA NA NA NA 0.75 1 19 1 902.5 486.875 415.625 4.222 -0.113 2.519 -0.034 7.988 3.204 3.320 3.094
48.0 6.130 0.196 -0.424 BC__48_0 BC NA NA NA NA NA NA NA 0.75 1 19 1 912.0 492.000 420.000 6.024 -0.916 3.254 -0.179 12.171 3.834 5.112 2.990
48.5 3.613 0.098 1.463 BC__48_5 BC NA NA NA NA NA NA NA 0.75 1 19 1 921.5 497.125 424.375 3.979 0.966 2.470 0.316 7.205 3.215 3.058 3.132
49.5 6.013 0.172 -0.499 BC__49_5 BC NA NA NA NA NA NA NA 0.75 1 19 1 940.5 507.375 433.125 5.888 -1.007 2.920 -0.203 11.423 3.474 4.947 2.987
50.0 4.809 0.111 0.340 BC__50_0 BC NA NA NA NA NA NA NA 0.75 1 19 1 950.0 512.500 437.500 4.894 -0.172 2.266 -0.044 9.015 2.812 3.944 3.018
14.5 3.169 0.129 0.127 DD__14_5 DD 42 0.366 0.488 356.5 2.48 50 26 0.75 1 19 1 275.5 148.625 126.875 3.201 -0.021 4.024 -0.007 23.058 4.403 2.925 2.812
kable(top_n(validation_no, 100),
      digits = 3,
      caption = "Normalised validation data.",
      align = "r") %>%
  kable_styling(font_size = 11) %>%
  row_spec(0, color = "grey10", background = "#F4F5F6") %>%
  scroll_box(height = "300px")
Normalised validation data.
z [m] qc [MPa] fs [MPa] u2 [MPa] ID Location ID Normalised ENTRHU [-] Normalised hammer energy [-] Diameter [m] Bottom wall thickness [mm] Pile penetration [m] area ratio [-] Push Total unit weight [kN/m3] Layer no Vertical total stress [kPa] Water pressure [kPa] Vertical effective stress [kPa] qt [MPa] Delta u2 [MPa] Rf [%] Bq [-] Qt [-] Fr [%] qnet [MPa] Ic [-]
32.5 7.863 0.224 0.906 BX__32_5 BX NA NA NA NA NA 0.75 1 19 1 617.5 333.125 284.375 8.089 0.573 2.773 0.077 26.275 3.003 7.472 2.662
33.0 3.015 0.050 1.318 BX__33_0 BX NA NA NA NA NA 0.75 1 19 1 627.0 338.250 288.750 3.344 0.980 1.491 0.361 9.411 1.835 2.717 2.904
33.5 2.712 0.038 1.438 BX__33_5 BX NA NA NA NA NA 0.75 1 19 1 636.5 343.375 293.125 3.072 1.095 1.228 0.450 8.307 1.549 2.435 2.914
34.0 3.168 0.069 0.041 BX__34_0 BX NA NA NA NA NA 0.75 1 19 1 646.0 348.500 297.500 3.178 -0.308 2.184 -0.121 8.512 2.741 2.532 3.033
36.0 5.779 0.215 0.123 BX__36_0 BX NA NA NA NA NA 0.75 1 19 1 684.0 369.000 315.000 5.810 -0.246 3.693 -0.048 16.272 4.186 5.126 2.914
36.5 8.903 0.267 -0.316 BX__36_5 BX NA NA NA NA NA 0.75 1 19 1 693.5 374.125 319.375 8.824 -0.690 3.022 -0.085 25.457 3.280 8.130 2.697
40.0 10.292 0.257 -0.386 BX__40_0 BX NA NA NA NA NA 0.75 1 19 1 760.0 410.000 350.000 10.195 -0.796 2.517 -0.084 26.958 2.720 9.435 2.626
40.5 3.886 0.079 -0.395 BX__40_5 BX NA NA NA NA NA 0.75 1 19 1 769.5 415.125 354.375 3.787 -0.810 2.085 -0.269 8.516 2.617 3.018 3.022
41.0 3.027 0.046 -0.380 BX__41_0 BX NA NA NA NA NA 0.75 1 19 1 779.0 420.250 358.750 2.932 -0.800 1.583 -0.372 6.001 2.156 2.153 3.108
41.5 4.140 0.140 -0.362 BX__41_5 BX NA NA NA NA NA 0.75 1 19 1 788.5 425.375 363.125 4.049 -0.788 3.452 -0.242 8.980 4.287 3.261 3.125
42.0 4.848 0.141 -0.216 BX__42_0 BX NA NA NA NA NA 0.75 1 19 1 798.0 430.500 367.500 4.794 -0.646 2.944 -0.162 10.872 3.532 3.996 3.008
42.5 5.117 0.194 0.067 BX__42_5 BX NA NA NA NA NA 0.75 1 19 1 807.5 435.625 371.875 5.134 -0.369 3.781 -0.085 11.634 4.487 4.327 3.047
43.0 5.387 0.247 0.349 BX__43_0 BX NA NA NA NA NA 0.75 1 19 1 817.0 440.750 376.250 5.474 -0.091 4.514 -0.020 12.379 5.306 4.657 3.071
43.5 7.043 0.235 0.580 BX__43_5 BX NA NA NA NA NA 0.75 1 19 1 826.5 445.875 380.625 7.188 0.134 3.274 0.021 16.713 3.699 6.361 2.872
44.5 8.339 0.251 0.085 BX__44_5 BX NA NA NA NA NA 0.75 1 19 1 845.5 456.125 389.375 8.360 -0.371 2.997 -0.049 19.299 3.334 7.515 2.795
45.0 8.044 0.239 0.279 BX__45_0 BX NA NA NA NA NA 0.75 1 19 1 855.0 461.250 393.750 8.114 -0.182 2.947 -0.025 18.435 3.294 7.259 2.807
45.5 4.854 0.206 0.189 BX__45_5 BX NA NA NA NA NA 0.75 1 19 1 864.5 466.375 398.125 4.901 -0.278 4.195 -0.069 10.139 5.093 4.037 3.128
46.0 3.901 0.183 0.697 BX__46_0 BX NA NA NA NA NA 0.75 1 19 1 874.0 471.500 402.500 4.076 0.225 4.482 0.070 7.954 5.705 3.202 3.242
46.5 4.080 0.236 0.684 BX__46_5 BX NA NA NA NA NA 0.75 1 19 1 883.5 476.625 406.875 4.251 0.208 5.548 0.062 8.277 7.004 3.368 3.283
47.0 4.199 0.195 0.450 BX__47_0 BX NA NA NA NA NA 0.75 1 19 1 893.0 481.750 411.250 4.312 -0.031 4.515 -0.009 8.313 5.694 3.419 3.226
47.5 4.333 0.198 0.348 BX__47_5 BX NA NA NA NA NA 0.75 1 19 1 902.5 486.875 415.625 4.420 -0.138 4.475 -0.039 8.463 5.623 3.518 3.216
48.0 4.478 0.263 1.248 BX__48_0 BX NA NA NA NA NA 0.75 1 19 1 912.0 492.000 420.000 4.790 0.756 5.486 0.195 9.233 6.776 3.878 3.237
48.5 4.854 0.256 2.002 BX__48_5 BX NA NA NA NA NA 0.75 1 19 1 921.5 497.125 424.375 5.355 1.505 4.778 0.340 10.446 5.771 4.433 3.152
49.0 5.238 0.210 2.240 BX__49_0 BX NA NA NA NA NA 0.75 1 19 1 931.0 502.250 428.750 5.798 1.738 3.630 0.357 11.351 4.324 4.867 3.046
49.5 4.987 0.199 2.080 BX__49_5 BX NA NA NA NA NA 0.75 1 19 1 940.5 507.375 433.125 5.507 1.572 3.615 0.344 10.543 4.359 4.566 3.073
50.0 4.736 0.188 1.919 BX__50_0 BX NA NA NA NA NA 0.75 1 19 1 950.0 512.500 437.500 5.216 1.406 3.598 0.330 9.751 4.400 4.266 3.103
50.5 8.496 0.234 0.502 BX__50_5 BX NA NA NA NA NA 0.75 1 19 1 959.5 517.625 441.875 8.621 -0.016 2.709 -0.002 17.339 3.048 7.662 2.807
51.0 3.739 0.102 2.134 BX__51_0 BX NA NA NA NA NA 0.75 1 19 1 969.0 522.750 446.250 4.272 1.611 2.386 0.488 7.403 3.086 3.303 3.112
51.5 4.661 0.199 0.870 BX__51_5 BX NA NA NA NA NA 0.75 1 19 1 978.5 527.875 450.625 4.878 0.342 4.087 0.088 8.654 5.113 3.900 3.184
52.0 11.025 0.235 -0.570 BX__52_0 BX NA NA NA NA NA 0.75 1 19 1 988.0 533.000 455.000 10.882 -1.103 2.161 -0.112 21.746 2.377 9.894 2.664
52.5 14.213 0.437 -0.415 BX__52_5 BX NA NA NA NA NA 0.75 1 19 1 997.5 538.125 459.375 14.109 -0.954 3.101 -0.073 28.542 3.337 13.112 2.664
54.0 11.391 0.420 0.123 BX__54_0 BX NA NA NA NA NA 0.75 1 19 1 1026.0 553.500 472.500 11.422 -0.430 3.675 -0.041 22.002 4.038 10.396 2.804
57.5 5.914 0.269 -0.017 BX__57_5 BX NA NA NA NA NA 0.75 1 19 1 1092.5 589.375 503.125 5.910 -0.606 4.559 -0.126 9.575 5.593 4.817 3.173
58.0 10.613 0.352 -0.069 BX__58_0 BX NA NA NA NA NA 0.75 1 19 1 1102.0 594.500 507.500 10.596 -0.663 3.326 -0.070 18.707 3.712 9.494 2.834
32.5 7.863 0.224 0.906 BY__32_5 BY NA NA NA NA NA 0.75 1 19 1 617.5 333.125 284.375 8.089 0.573 2.773 0.077 26.275 3.003 7.472 2.662
33.0 3.015 0.050 1.318 BY__33_0 BY NA NA NA NA NA 0.75 1 19 1 627.0 338.250 288.750 3.344 0.980 1.491 0.361 9.411 1.835 2.717 2.904
33.5 2.712 0.038 1.438 BY__33_5 BY NA NA NA NA NA 0.75 1 19 1 636.5 343.375 293.125 3.072 1.095 1.228 0.450 8.307 1.549 2.435 2.914
34.0 3.168 0.069 0.041 BY__34_0 BY NA NA NA NA NA 0.75 1 19 1 646.0 348.500 297.500 3.178 -0.308 2.184 -0.121 8.512 2.741 2.532 3.033
36.0 5.779 0.215 0.123 BY__36_0 BY NA NA NA NA NA 0.75 1 19 1 684.0 369.000 315.000 5.810 -0.246 3.693 -0.048 16.272 4.186 5.126 2.914
36.5 8.903 0.267 -0.316 BY__36_5 BY NA NA NA NA NA 0.75 1 19 1 693.5 374.125 319.375 8.824 -0.690 3.022 -0.085 25.457 3.280 8.130 2.697
40.0 10.292 0.257 -0.386 BY__40_0 BY NA NA NA NA NA 0.75 1 19 1 760.0 410.000 350.000 10.195 -0.796 2.517 -0.084 26.958 2.720 9.435 2.626
40.5 3.886 0.079 -0.395 BY__40_5 BY NA NA NA NA NA 0.75 1 19 1 769.5 415.125 354.375 3.787 -0.810 2.085 -0.269 8.516 2.617 3.018 3.022
41.0 3.027 0.046 -0.380 BY__41_0 BY NA NA NA NA NA 0.75 1 19 1 779.0 420.250 358.750 2.932 -0.800 1.583 -0.372 6.001 2.156 2.153 3.108
41.5 4.140 0.140 -0.362 BY__41_5 BY NA NA NA NA NA 0.75 1 19 1 788.5 425.375 363.125 4.049 -0.788 3.452 -0.242 8.980 4.287 3.261 3.125
42.0 4.848 0.141 -0.216 BY__42_0 BY NA NA NA NA NA 0.75 1 19 1 798.0 430.500 367.500 4.794 -0.646 2.944 -0.162 10.872 3.532 3.996 3.008
42.5 5.117 0.194 0.067 BY__42_5 BY NA NA NA NA NA 0.75 1 19 1 807.5 435.625 371.875 5.134 -0.369 3.781 -0.085 11.634 4.487 4.327 3.047
43.0 5.387 0.247 0.349 BY__43_0 BY NA NA NA NA NA 0.75 1 19 1 817.0 440.750 376.250 5.474 -0.091 4.514 -0.020 12.379 5.306 4.657 3.071
43.5 7.043 0.235 0.580 BY__43_5 BY NA NA NA NA NA 0.75 1 19 1 826.5 445.875 380.625 7.188 0.134 3.274 0.021 16.713 3.699 6.361 2.872
44.5 8.339 0.251 0.085 BY__44_5 BY NA NA NA NA NA 0.75 1 19 1 845.5 456.125 389.375 8.360 -0.371 2.997 -0.049 19.299 3.334 7.515 2.795
45.0 8.044 0.239 0.279 BY__45_0 BY NA NA NA NA NA 0.75 1 19 1 855.0 461.250 393.750 8.114 -0.182 2.947 -0.025 18.435 3.294 7.259 2.807
45.5 4.854 0.206 0.189 BY__45_5 BY NA NA NA NA NA 0.75 1 19 1 864.5 466.375 398.125 4.901 -0.278 4.195 -0.069 10.139 5.093 4.037 3.128
46.0 3.901 0.183 0.697 BY__46_0 BY NA NA NA NA NA 0.75 1 19 1 874.0 471.500 402.500 4.076 0.225 4.482 0.070 7.954 5.705 3.202 3.242
46.5 4.080 0.236 0.684 BY__46_5 BY NA NA NA NA NA 0.75 1 19 1 883.5 476.625 406.875 4.251 0.208 5.548 0.062 8.277 7.004 3.368 3.283
47.0 4.199 0.195 0.450 BY__47_0 BY NA NA NA NA NA 0.75 1 19 1 893.0 481.750 411.250 4.312 -0.031 4.515 -0.009 8.313 5.694 3.419 3.226
47.5 4.333 0.198 0.348 BY__47_5 BY NA NA NA NA NA 0.75 1 19 1 902.5 486.875 415.625 4.420 -0.138 4.475 -0.039 8.463 5.623 3.518 3.216
48.0 4.478 0.263 1.248 BY__48_0 BY NA NA NA NA NA 0.75 1 19 1 912.0 492.000 420.000 4.790 0.756 5.486 0.195 9.233 6.776 3.878 3.237
48.5 4.854 0.256 2.002 BY__48_5 BY NA NA NA NA NA 0.75 1 19 1 921.5 497.125 424.375 5.355 1.505 4.778 0.340 10.446 5.771 4.433 3.152
49.0 5.238 0.210 2.240 BY__49_0 BY NA NA NA NA NA 0.75 1 19 1 931.0 502.250 428.750 5.798 1.738 3.630 0.357 11.351 4.324 4.867 3.046
49.5 4.987 0.199 2.080 BY__49_5 BY NA NA NA NA NA 0.75 1 19 1 940.5 507.375 433.125 5.507 1.572 3.615 0.344 10.543 4.359 4.566 3.073
50.0 4.736 0.188 1.919 BY__50_0 BY NA NA NA NA NA 0.75 1 19 1 950.0 512.500 437.500 5.216 1.406 3.598 0.330 9.751 4.400 4.266 3.103
50.5 8.496 0.234 0.502 BY__50_5 BY NA NA NA NA NA 0.75 1 19 1 959.5 517.625 441.875 8.621 -0.016 2.709 -0.002 17.339 3.048 7.662 2.807
51.0 3.739 0.102 2.134 BY__51_0 BY NA NA NA NA NA 0.75 1 19 1 969.0 522.750 446.250 4.272 1.611 2.386 0.488 7.403 3.086 3.303 3.112
51.5 4.661 0.199 0.870 BY__51_5 BY NA NA NA NA NA 0.75 1 19 1 978.5 527.875 450.625 4.878 0.342 4.087 0.088 8.654 5.113 3.900 3.184
52.0 11.025 0.235 -0.570 BY__52_0 BY NA NA NA NA NA 0.75 1 19 1 988.0 533.000 455.000 10.882 -1.103 2.161 -0.112 21.746 2.377 9.894 2.664
52.5 14.213 0.437 -0.415 BY__52_5 BY NA NA NA NA NA 0.75 1 19 1 997.5 538.125 459.375 14.109 -0.954 3.101 -0.073 28.542 3.337 13.112 2.664
54.0 11.391 0.420 0.123 BY__54_0 BY NA NA NA NA NA 0.75 1 19 1 1026.0 553.500 472.500 11.422 -0.430 3.675 -0.041 22.002 4.038 10.396 2.804
57.5 5.914 0.269 -0.017 BY__57_5 BY NA NA NA NA NA 0.75 1 19 1 1092.5 589.375 503.125 5.910 -0.606 4.559 -0.126 9.575 5.593 4.817 3.173
58.0 10.613 0.352 -0.069 BY__58_0 BY NA NA NA NA NA 0.75 1 19 1 1102.0 594.500 507.500 10.596 -0.663 3.326 -0.070 18.707 3.712 9.494 2.834
32.5 7.863 0.224 0.906 BZ__32_5 BZ NA NA NA NA NA 0.75 1 19 1 617.5 333.125 284.375 8.089 0.573 2.773 0.077 26.275 3.003 7.472 2.662
33.0 3.015 0.050 1.318 BZ__33_0 BZ NA NA NA NA NA 0.75 1 19 1 627.0 338.250 288.750 3.344 0.980 1.491 0.361 9.411 1.835 2.717 2.904
33.5 2.712 0.038 1.438 BZ__33_5 BZ NA NA NA NA NA 0.75 1 19 1 636.5 343.375 293.125 3.072 1.095 1.228 0.450 8.307 1.549 2.435 2.914
34.0 3.168 0.069 0.041 BZ__34_0 BZ NA NA NA NA NA 0.75 1 19 1 646.0 348.500 297.500 3.178 -0.308 2.184 -0.121 8.512 2.741 2.532 3.033
36.0 5.779 0.215 0.123 BZ__36_0 BZ NA NA NA NA NA 0.75 1 19 1 684.0 369.000 315.000 5.810 -0.246 3.693 -0.048 16.272 4.186 5.126 2.914
36.5 8.903 0.267 -0.316 BZ__36_5 BZ NA NA NA NA NA 0.75 1 19 1 693.5 374.125 319.375 8.824 -0.690 3.022 -0.085 25.457 3.280 8.130 2.697
40.0 10.292 0.257 -0.386 BZ__40_0 BZ NA NA NA NA NA 0.75 1 19 1 760.0 410.000 350.000 10.195 -0.796 2.517 -0.084 26.958 2.720 9.435 2.626
40.5 3.886 0.079 -0.395 BZ__40_5 BZ NA NA NA NA NA 0.75 1 19 1 769.5 415.125 354.375 3.787 -0.810 2.085 -0.269 8.516 2.617 3.018 3.022
41.0 3.027 0.046 -0.380 BZ__41_0 BZ NA NA NA NA NA 0.75 1 19 1 779.0 420.250 358.750 2.932 -0.800 1.583 -0.372 6.001 2.156 2.153 3.108
41.5 4.140 0.140 -0.362 BZ__41_5 BZ NA NA NA NA NA 0.75 1 19 1 788.5 425.375 363.125 4.049 -0.788 3.452 -0.242 8.980 4.287 3.261 3.125
42.0 4.848 0.141 -0.216 BZ__42_0 BZ NA NA NA NA NA 0.75 1 19 1 798.0 430.500 367.500 4.794 -0.646 2.944 -0.162 10.872 3.532 3.996 3.008
42.5 5.117 0.194 0.067 BZ__42_5 BZ NA NA NA NA NA 0.75 1 19 1 807.5 435.625 371.875 5.134 -0.369 3.781 -0.085 11.634 4.487 4.327 3.047
43.0 5.387 0.247 0.349 BZ__43_0 BZ NA NA NA NA NA 0.75 1 19 1 817.0 440.750 376.250 5.474 -0.091 4.514 -0.020 12.379 5.306 4.657 3.071
43.5 7.043 0.235 0.580 BZ__43_5 BZ NA NA NA NA NA 0.75 1 19 1 826.5 445.875 380.625 7.188 0.134 3.274 0.021 16.713 3.699 6.361 2.872
44.5 8.339 0.251 0.085 BZ__44_5 BZ NA NA NA NA NA 0.75 1 19 1 845.5 456.125 389.375 8.360 -0.371 2.997 -0.049 19.299 3.334 7.515 2.795
45.0 8.044 0.239 0.279 BZ__45_0 BZ NA NA NA NA NA 0.75 1 19 1 855.0 461.250 393.750 8.114 -0.182 2.947 -0.025 18.435 3.294 7.259 2.807
45.5 4.854 0.206 0.189 BZ__45_5 BZ NA NA NA NA NA 0.75 1 19 1 864.5 466.375 398.125 4.901 -0.278 4.195 -0.069 10.139 5.093 4.037 3.128
46.0 3.901 0.183 0.697 BZ__46_0 BZ NA NA NA NA NA 0.75 1 19 1 874.0 471.500 402.500 4.076 0.225 4.482 0.070 7.954 5.705 3.202 3.242
46.5 4.080 0.236 0.684 BZ__46_5 BZ NA NA NA NA NA 0.75 1 19 1 883.5 476.625 406.875 4.251 0.208 5.548 0.062 8.277 7.004 3.368 3.283
47.0 4.199 0.195 0.450 BZ__47_0 BZ NA NA NA NA NA 0.75 1 19 1 893.0 481.750 411.250 4.312 -0.031 4.515 -0.009 8.313 5.694 3.419 3.226
47.5 4.333 0.198 0.348 BZ__47_5 BZ NA NA NA NA NA 0.75 1 19 1 902.5 486.875 415.625 4.420 -0.138 4.475 -0.039 8.463 5.623 3.518 3.216
48.0 4.478 0.263 1.248 BZ__48_0 BZ NA NA NA NA NA 0.75 1 19 1 912.0 492.000 420.000 4.790 0.756 5.486 0.195 9.233 6.776 3.878 3.237
48.5 4.854 0.256 2.002 BZ__48_5 BZ NA NA NA NA NA 0.75 1 19 1 921.5 497.125 424.375 5.355 1.505 4.778 0.340 10.446 5.771 4.433 3.152
49.0 5.238 0.210 2.240 BZ__49_0 BZ NA NA NA NA NA 0.75 1 19 1 931.0 502.250 428.750 5.798 1.738 3.630 0.357 11.351 4.324 4.867 3.046
49.5 4.987 0.199 2.080 BZ__49_5 BZ NA NA NA NA NA 0.75 1 19 1 940.5 507.375 433.125 5.507 1.572 3.615 0.344 10.543 4.359 4.566 3.073
50.0 4.736 0.188 1.919 BZ__50_0 BZ NA NA NA NA NA 0.75 1 19 1 950.0 512.500 437.500 5.216 1.406 3.598 0.330 9.751 4.400 4.266 3.103
50.5 8.496 0.234 0.502 BZ__50_5 BZ NA NA NA NA NA 0.75 1 19 1 959.5 517.625 441.875 8.621 -0.016 2.709 -0.002 17.339 3.048 7.662 2.807
51.0 3.739 0.102 2.134 BZ__51_0 BZ NA NA NA NA NA 0.75 1 19 1 969.0 522.750 446.250 4.272 1.611 2.386 0.488 7.403 3.086 3.303 3.112
51.5 4.661 0.199 0.870 BZ__51_5 BZ NA NA NA NA NA 0.75 1 19 1 978.5 527.875 450.625 4.878 0.342 4.087 0.088 8.654 5.113 3.900 3.184
52.0 11.025 0.235 -0.570 BZ__52_0 BZ NA NA NA NA NA 0.75 1 19 1 988.0 533.000 455.000 10.882 -1.103 2.161 -0.112 21.746 2.377 9.894 2.664
52.5 14.213 0.437 -0.415 BZ__52_5 BZ NA NA NA NA NA 0.75 1 19 1 997.5 538.125 459.375 14.109 -0.954 3.101 -0.073 28.542 3.337 13.112 2.664
54.0 11.391 0.420 0.123 BZ__54_0 BZ NA NA NA NA NA 0.75 1 19 1 1026.0 553.500 472.500 11.422 -0.430 3.675 -0.041 22.002 4.038 10.396 2.804
57.5 5.914 0.269 -0.017 BZ__57_5 BZ NA NA NA NA NA 0.75 1 19 1 1092.5 589.375 503.125 5.910 -0.606 4.559 -0.126 9.575 5.593 4.817 3.173
58.0 10.613 0.352 -0.069 BZ__58_0 BZ NA NA NA NA NA 0.75 1 19 1 1102.0 594.500 507.500 10.596 -0.663 3.326 -0.070 18.707 3.712 9.494 2.834

2.3 Interdistance data

An additional file, which classifies the interdistance between each location pair, is provided. This file can be used to explore spatial correlation between locations.

interdistance <- read_csv("F:/isfog2020/interdistance_data.csv")
kable(top_n(interdistance, 100),
      digits = 3,
      caption = "Interdistance data.",
      align = "r") %>%
  kable_styling(full_width = T, font_size = 11, position = "center") %>%
  row_spec(0, color = "grey10", background = "#F4F5F6") %>%
  scroll_box(height = "300px")
Interdistance data.
ID location 1 ID location 2 Interdistance class
AA AD 500m - 1500m
AA AE 500m - 1500m
AA AL 500m - 1500m
AA AM 500m - 1500m
AA AN 500m - 1500m
AA AO 500m - 1500m
AA AP 500m - 1500m
AA AQ 500m - 1500m
AB AD 500m - 1500m
AB AE 500m - 1500m
AB AL 500m - 1500m
AB AM 500m - 1500m
AB AN 500m - 1500m
AB AO 500m - 1500m
AB AP 500m - 1500m
AB AQ 500m - 1500m
AC AD 500m - 1500m
AC AE 500m - 1500m
AC AL 500m - 1500m
AC AM 500m - 1500m
AC AN 500m - 1500m
AC AO 500m - 1500m
AC AP 500m - 1500m
AC AQ 500m - 1500m
AD AA 500m - 1500m
AD AB 500m - 1500m
AD AC 500m - 1500m
AD AF 500m - 1500m
AD AG 500m - 1500m
AD AH 500m - 1500m
AD AL 500m - 1500m
AD AM 500m - 1500m
AD AN 500m - 1500m
AD AO 500m - 1500m
AD AP 500m - 1500m
AD AQ 500m - 1500m
AD AR 500m - 1500m
AD AS 500m - 1500m
AD AT 500m - 1500m
AE AA 500m - 1500m
AE AB 500m - 1500m
AE AC 500m - 1500m
AE AF 500m - 1500m
AE AG 500m - 1500m
AE AH 500m - 1500m
AE AL 500m - 1500m
AE AM 500m - 1500m
AE AN 500m - 1500m
AE AO 500m - 1500m
AE AP 500m - 1500m
AE AQ 500m - 1500m
AE AR 500m - 1500m
AE AS 500m - 1500m
AE AT 500m - 1500m
AF AD 500m - 1500m
AF AE 500m - 1500m
AF AI 500m - 1500m
AF AJ 500m - 1500m
AF AK 500m - 1500m
AF AO 500m - 1500m
AF AP 500m - 1500m
AF AQ 500m - 1500m
AF AR 500m - 1500m
AF AS 500m - 1500m
AF AT 500m - 1500m
AF AU 500m - 1500m
AF AV 500m - 1500m
AF AW 500m - 1500m
AG AD 500m - 1500m
AG AE 500m - 1500m
AG AI 500m - 1500m
AG AJ 500m - 1500m
AG AK 500m - 1500m
AG AO 500m - 1500m
AG AP 500m - 1500m
AG AQ 500m - 1500m
AG AR 500m - 1500m
AG AS 500m - 1500m
AG AT 500m - 1500m
AG AU 500m - 1500m
AG AV 500m - 1500m
AG AW 500m - 1500m
AH AD 500m - 1500m
AH AE 500m - 1500m
AH AI 500m - 1500m
AH AJ 500m - 1500m
AH AK 500m - 1500m
AH AO 500m - 1500m
AH AP 500m - 1500m
AH AQ 500m - 1500m
AH AR 500m - 1500m
AH AS 500m - 1500m
AH AT 500m - 1500m
AH AU 500m - 1500m
AH AV 500m - 1500m
AH AW 500m - 1500m
AI AF 500m - 1500m
AI AG 500m - 1500m
AI AH 500m - 1500m
AI AR 500m - 1500m
AI AS 500m - 1500m
AI AT 500m - 1500m
AI AU 500m - 1500m
AI AV 500m - 1500m
AI AW 500m - 1500m
AJ AF 500m - 1500m
AJ AG 500m - 1500m
AJ AH 500m - 1500m
AJ AR 500m - 1500m
AJ AS 500m - 1500m
AJ AT 500m - 1500m
AJ AU 500m - 1500m
AJ AV 500m - 1500m
AJ AW 500m - 1500m
AK AF 500m - 1500m
AK AG 500m - 1500m
AK AH 500m - 1500m
AK AR 500m - 1500m
AK AS 500m - 1500m
AK AT 500m - 1500m
AK AU 500m - 1500m
AK AV 500m - 1500m
AK AW 500m - 1500m
AL AA 500m - 1500m
AL AB 500m - 1500m
AL AC 500m - 1500m
AL AD 500m - 1500m
AL AE 500m - 1500m
AL AO 500m - 1500m
AL AP 500m - 1500m
AL AQ 500m - 1500m
AL AX 500m - 1500m
AL AY 500m - 1500m
AL AZ 500m - 1500m
AL BA 500m - 1500m
AL BB 500m - 1500m
AL BC 500m - 1500m
AM AA 500m - 1500m
AM AB 500m - 1500m
AM AC 500m - 1500m
AM AD 500m - 1500m
AM AE 500m - 1500m
AM AO 500m - 1500m
AM AP 500m - 1500m
AM AQ 500m - 1500m
AM AX 500m - 1500m
AM AY 500m - 1500m
AM AZ 500m - 1500m
AM BA 500m - 1500m
AM BB 500m - 1500m
AM BC 500m - 1500m
AN AA 500m - 1500m
AN AB 500m - 1500m
AN AC 500m - 1500m
AN AD 500m - 1500m
AN AE 500m - 1500m
AN AO 500m - 1500m
AN AP 500m - 1500m
AN AQ 500m - 1500m
AN AX 500m - 1500m
AN AY 500m - 1500m
AN AZ 500m - 1500m
AN BA 500m - 1500m
AN BB 500m - 1500m
AN BC 500m - 1500m
AO AA 500m - 1500m
AO AB 500m - 1500m
AO AC 500m - 1500m
AO AD 500m - 1500m
AO AE 500m - 1500m
AO AF 500m - 1500m
AO AG 500m - 1500m
AO AH 500m - 1500m
AO AL 500m - 1500m
AO AM 500m - 1500m
AO AN 500m - 1500m
AO AR 500m - 1500m
AO AS 500m - 1500m
AO AT 500m - 1500m
AO AX 500m - 1500m
AO AY 500m - 1500m
AO AZ 500m - 1500m
AO BA 500m - 1500m
AO BB 500m - 1500m
AO BC 500m - 1500m
AO BD 500m - 1500m
AO BE 500m - 1500m
AO BF 500m - 1500m
AP AA 500m - 1500m
AP AB 500m - 1500m
AP AC 500m - 1500m
AP AD 500m - 1500m
AP AE 500m - 1500m
AP AF 500m - 1500m
AP AG 500m - 1500m
AP AH 500m - 1500m
AP AL 500m - 1500m
AP AM 500m - 1500m
AP AN 500m - 1500m
AP AR 500m - 1500m
AP AS 500m - 1500m
AP AT 500m - 1500m
AP AX 500m - 1500m
AP AY 500m - 1500m
AP AZ 500m - 1500m
AP BA 500m - 1500m
AP BB 500m - 1500m
AP BC 500m - 1500m
AP BD 500m - 1500m
AP BE 500m - 1500m
AP BF 500m - 1500m
AQ AA 500m - 1500m
AQ AB 500m - 1500m
AQ AC 500m - 1500m
AQ AD 500m - 1500m
AQ AE 500m - 1500m
AQ AF 500m - 1500m
AQ AG 500m - 1500m
AQ AH 500m - 1500m
AQ AL 500m - 1500m
AQ AM 500m - 1500m
AQ AN 500m - 1500m
AQ AR 500m - 1500m
AQ AS 500m - 1500m
AQ AT 500m - 1500m
AQ AX 500m - 1500m
AQ AY 500m - 1500m
AQ AZ 500m - 1500m
AQ BA 500m - 1500m
AQ BB 500m - 1500m
AQ BC 500m - 1500m
AQ BD 500m - 1500m
AQ BE 500m - 1500m
AQ BF 500m - 1500m
AR AD 500m - 1500m
AR AE 500m - 1500m
AR AF 500m - 1500m
AR AG 500m - 1500m
AR AH 500m - 1500m
AR AI 500m - 1500m
AR AJ 500m - 1500m
AR AK 500m - 1500m
AR AO 500m - 1500m
AR AP 500m - 1500m
AR AQ 500m - 1500m
AR AU 500m - 1500m
AR AV 500m - 1500m
AR AW 500m - 1500m
AR BA 500m - 1500m
AR BB 500m - 1500m
AR BC 500m - 1500m
AR BD 500m - 1500m
AR BE 500m - 1500m
AR BF 500m - 1500m
AR BG 500m - 1500m
AR BH 500m - 1500m
AR BI 500m - 1500m
AS AD 500m - 1500m
AS AE 500m - 1500m
AS AF 500m - 1500m
AS AG 500m - 1500m
AS AH 500m - 1500m
AS AI 500m - 1500m
AS AJ 500m - 1500m
AS AK 500m - 1500m
AS AO 500m - 1500m
AS AP 500m - 1500m
AS AQ 500m - 1500m
AS AU 500m - 1500m
AS AV 500m - 1500m
AS AW 500m - 1500m
AS BA 500m - 1500m
AS BB 500m - 1500m
AS BC 500m - 1500m
AS BD 500m - 1500m
AS BE 500m - 1500m
AS BF 500m - 1500m
AS BG 500m - 1500m
AS BH 500m - 1500m
AS BI 500m - 1500m
AT AD 500m - 1500m
AT AE 500m - 1500m
AT AF 500m - 1500m
AT AG 500m - 1500m
AT AH 500m - 1500m
AT AI 500m - 1500m
AT AJ 500m - 1500m
AT AK 500m - 1500m
AT AO 500m - 1500m
AT AP 500m - 1500m
AT AQ 500m - 1500m
AT AU 500m - 1500m
AT AV 500m - 1500m
AT AW 500m - 1500m
AT BA 500m - 1500m
AT BB 500m - 1500m
AT BC 500m - 1500m
AT BD 500m - 1500m
AT BE 500m - 1500m
AT BF 500m - 1500m
AT BG 500m - 1500m
AT BH 500m - 1500m
AT BI 500m - 1500m
AU AF 500m - 1500m
AU AG 500m - 1500m
AU AH 500m - 1500m
AU AI 500m - 1500m
AU AJ 500m - 1500m
AU AK 500m - 1500m
AU AR 500m - 1500m
AU AS 500m - 1500m
AU AT 500m - 1500m
AU BD 500m - 1500m
AU BE 500m - 1500m
AU BF 500m - 1500m
AU BG 500m - 1500m
AU BH 500m - 1500m
AU BI 500m - 1500m
AV AF 500m - 1500m
AV AG 500m - 1500m
AV AH 500m - 1500m
AV AI 500m - 1500m
AV AJ 500m - 1500m
AV AK 500m - 1500m
AV AR 500m - 1500m
AV AS 500m - 1500m
AV AT 500m - 1500m
AV BD 500m - 1500m
AV BE 500m - 1500m
AV BF 500m - 1500m
AV BG 500m - 1500m
AV BH 500m - 1500m
AV BI 500m - 1500m
AW AF 500m - 1500m
AW AG 500m - 1500m
AW AH 500m - 1500m
AW AI 500m - 1500m
AW AJ 500m - 1500m
AW AK 500m - 1500m
AW AR 500m - 1500m
AW AS 500m - 1500m
AW AT 500m - 1500m
AW BD 500m - 1500m
AW BE 500m - 1500m
AW BF 500m - 1500m
AW BG 500m - 1500m
AW BH 500m - 1500m
AW BI 500m - 1500m
AX AL 500m - 1500m
AX AM 500m - 1500m
AX AN 500m - 1500m
AX AO 500m - 1500m
AX AP 500m - 1500m
AX AQ 500m - 1500m
AX BA 500m - 1500m
AX BB 500m - 1500m
AX BC 500m - 1500m
AX BR 500m - 1500m
AX BS 500m - 1500m
AX BT 500m - 1500m
AX BU 500m - 1500m
AX BV 500m - 1500m
AX BW 500m - 1500m
AY AL 500m - 1500m
AY AM 500m - 1500m
AY AN 500m - 1500m
AY AO 500m - 1500m
AY AP 500m - 1500m
AY AQ 500m - 1500m
AY BA 500m - 1500m
AY BB 500m - 1500m
AY BC 500m - 1500m
AY BR 500m - 1500m
AY BS 500m - 1500m
AY BT 500m - 1500m
AY BU 500m - 1500m
AY BV 500m - 1500m
AY BW 500m - 1500m
AZ AL 500m - 1500m
AZ AM 500m - 1500m
AZ AN 500m - 1500m
AZ AO 500m - 1500m
AZ AP 500m - 1500m
AZ AQ 500m - 1500m
AZ BA 500m - 1500m
AZ BB 500m - 1500m
AZ BC 500m - 1500m
AZ BR 500m - 1500m
AZ BS 500m - 1500m
AZ BT 500m - 1500m
AZ BU 500m - 1500m
AZ BV 500m - 1500m
AZ BW 500m - 1500m
BA AL 500m - 1500m
BA AM 500m - 1500m
BA AN 500m - 1500m
BA AO 500m - 1500m
BA AP 500m - 1500m
BA AQ 500m - 1500m
BA AR 500m - 1500m
BA AS 500m - 1500m
BA AT 500m - 1500m
BA AX 500m - 1500m
BA AY 500m - 1500m
BA AZ 500m - 1500m
BA BD 500m - 1500m
BA BE 500m - 1500m
BA BF 500m - 1500m
BA BR 500m - 1500m
BA BS 500m - 1500m
BA BT 500m - 1500m
BA BU 500m - 1500m
BA BV 500m - 1500m
BA BW 500m - 1500m
BA BX 500m - 1500m
BA BY 500m - 1500m
BA BZ 500m - 1500m
BB AL 500m - 1500m
BB AM 500m - 1500m
BB AN 500m - 1500m
BB AO 500m - 1500m
BB AP 500m - 1500m
BB AQ 500m - 1500m
BB AR 500m - 1500m
BB AS 500m - 1500m
BB AT 500m - 1500m
BB AX 500m - 1500m
BB AY 500m - 1500m
BB AZ 500m - 1500m
BB BD 500m - 1500m
BB BE 500m - 1500m
BB BF 500m - 1500m
BB BR 500m - 1500m
BB BS 500m - 1500m
BB BT 500m - 1500m
BB BU 500m - 1500m
BB BV 500m - 1500m
BB BW 500m - 1500m
BB BX 500m - 1500m
BB BY 500m - 1500m
BB BZ 500m - 1500m
BC AL 500m - 1500m
BC AM 500m - 1500m
BC AN 500m - 1500m
BC AO 500m - 1500m
BC AP 500m - 1500m
BC AQ 500m - 1500m
BC AR 500m - 1500m
BC AS 500m - 1500m
BC AT 500m - 1500m
BC AX 500m - 1500m
BC AY 500m - 1500m
BC AZ 500m - 1500m
BC BD 500m - 1500m
BC BE 500m - 1500m
BC BF 500m - 1500m
BC BR 500m - 1500m
BC BS 500m - 1500m
BC BT 500m - 1500m
BC BU 500m - 1500m
BC BV 500m - 1500m
BC BW 500m - 1500m
BC BX 500m - 1500m
BC BY 500m - 1500m
BC BZ 500m - 1500m
BD AO 500m - 1500m
BD AP 500m - 1500m
BD AQ 500m - 1500m
BD AR 500m - 1500m
BD AS 500m - 1500m
BD AT 500m - 1500m
BD AU 500m - 1500m
BD AV 500m - 1500m
BD AW 500m - 1500m
BD BA 500m - 1500m
BD BB 500m - 1500m
BD BC 500m - 1500m
BD BG 500m - 1500m
BD BH 500m - 1500m
BD BI 500m - 1500m
BD BU 500m - 1500m
BD BV 500m - 1500m
BD BW 500m - 1500m
BD BX 500m - 1500m
BD BY 500m - 1500m
BD BZ 500m - 1500m
BD CA 500m - 1500m
BD CB 500m - 1500m
BD CC 500m - 1500m
BE AO 500m - 1500m
BE AP 500m - 1500m
BE AQ 500m - 1500m
BE AR 500m - 1500m
BE AS 500m - 1500m
BE AT 500m - 1500m
BE AU 500m - 1500m
BE AV 500m - 1500m
BE AW 500m - 1500m
BE BA 500m - 1500m
BE BB 500m - 1500m
BE BC 500m - 1500m
BE BG 500m - 1500m
BE BH 500m - 1500m
BE BI 500m - 1500m
BE BU 500m - 1500m
BE BV 500m - 1500m
BE BW 500m - 1500m
BE BX 500m - 1500m
BE BY 500m - 1500m
BE BZ 500m - 1500m
BE CA 500m - 1500m
BE CB 500m - 1500m
BE CC 500m - 1500m
BF AO 500m - 1500m
BF AP 500m - 1500m
BF AQ 500m - 1500m
BF AR 500m - 1500m
BF AS 500m - 1500m
BF AT 500m - 1500m
BF AU 500m - 1500m
BF AV 500m - 1500m
BF AW 500m - 1500m
BF BA 500m - 1500m
BF BB 500m - 1500m
BF BC 500m - 1500m
BF BG 500m - 1500m
BF BH 500m - 1500m
BF BI 500m - 1500m
BF BU 500m - 1500m
BF BV 500m - 1500m
BF BW 500m - 1500m
BF BX 500m - 1500m
BF BY 500m - 1500m
BF BZ 500m - 1500m
BF CA 500m - 1500m
BF CB 500m - 1500m
BF CC 500m - 1500m
BG AR 500m - 1500m
BG AS 500m - 1500m
BG AT 500m - 1500m
BG AU 500m - 1500m
BG AV 500m - 1500m
BG AW 500m - 1500m
BG BD 500m - 1500m
BG BE 500m - 1500m
BG BF 500m - 1500m
BG BX 500m - 1500m
BG BY 500m - 1500m
BG BZ 500m - 1500m
BG CA 500m - 1500m
BG CB 500m - 1500m
BG CC 500m - 1500m
BH AR 500m - 1500m
BH AS 500m - 1500m
BH AT 500m - 1500m
BH AU 500m - 1500m
BH AV 500m - 1500m
BH AW 500m - 1500m
BH BD 500m - 1500m
BH BE 500m - 1500m
BH BF 500m - 1500m
BH BX 500m - 1500m
BH BY 500m - 1500m
BH BZ 500m - 1500m
BH CA 500m - 1500m
BH CB 500m - 1500m
BH CC 500m - 1500m
BI AR 500m - 1500m
BI AS 500m - 1500m
BI AT 500m - 1500m
BI AU 500m - 1500m
BI AV 500m - 1500m
BI AW 500m - 1500m
BI BD 500m - 1500m
BI BE 500m - 1500m
BI BF 500m - 1500m
BI BX 500m - 1500m
BI BY 500m - 1500m
BI BZ 500m - 1500m
BI CA 500m - 1500m
BI CB 500m - 1500m
BI CC 500m - 1500m
BJ BL 500m - 1500m
BJ BM 500m - 1500m
BJ BN 500m - 1500m
BJ CG 500m - 1500m
BJ CH 500m - 1500m
BJ CI 500m - 1500m
BJ CJ 500m - 1500m
BJ CK 500m - 1500m
BJ CL 500m - 1500m
BJ CM 500m - 1500m
BJ CN 500m - 1500m
BJ CO 500m - 1500m
BK BL 500m - 1500m
BK BM 500m - 1500m
BK BN 500m - 1500m
BK CG 500m - 1500m
BK CH 500m - 1500m
BK CI 500m - 1500m
BK CJ 500m - 1500m
BK CK 500m - 1500m
BK CL 500m - 1500m
BK CM 500m - 1500m
BK CN 500m - 1500m
BK CO 500m - 1500m
BL BJ 500m - 1500m
BL BK 500m - 1500m
BL BO 500m - 1500m
BL BP 500m - 1500m
BL BQ 500m - 1500m
BL CJ 500m - 1500m
BL CK 500m - 1500m
BL CL 500m - 1500m
BL CM 500m - 1500m
BL CN 500m - 1500m
BL CO 500m - 1500m
BL CP 500m - 1500m
BL CQ 500m - 1500m
BL CR 500m - 1500m
BM BJ 500m - 1500m
BM BK 500m - 1500m
BM BO 500m - 1500m
BM BP 500m - 1500m
BM BQ 500m - 1500m
BM CJ 500m - 1500m
BM CK 500m - 1500m
BM CL 500m - 1500m
BM CM 500m - 1500m
BM CN 500m - 1500m
BM CO 500m - 1500m
BM CP 500m - 1500m
BM CQ 500m - 1500m
BM CR 500m - 1500m
BN BJ 500m - 1500m
BN BK 500m - 1500m
BN BO 500m - 1500m
BN BP 500m - 1500m
BN BQ 500m - 1500m
BN CJ 500m - 1500m
BN CK 500m - 1500m
BN CL 500m - 1500m
BN CM 500m - 1500m
BN CN 500m - 1500m
BN CO 500m - 1500m
BN CP 500m - 1500m
BN CQ 500m - 1500m
BN CR 500m - 1500m
BO BL 500m - 1500m
BO BM 500m - 1500m
BO BN 500m - 1500m
BO CM 500m - 1500m
BO CN 500m - 1500m
BO CO 500m - 1500m
BO CP 500m - 1500m
BO CQ 500m - 1500m
BO CR 500m - 1500m
BP BL 500m - 1500m
BP BM 500m - 1500m
BP BN 500m - 1500m
BP CM 500m - 1500m
BP CN 500m - 1500m
BP CO 500m - 1500m
BP CP 500m - 1500m
BP CQ 500m - 1500m
BP CR 500m - 1500m
BQ BL 500m - 1500m
BQ BM 500m - 1500m
BQ BN 500m - 1500m
BQ CM 500m - 1500m
BQ CN 500m - 1500m
BQ CO 500m - 1500m
BQ CP 500m - 1500m
BQ CQ 500m - 1500m
BQ CR 500m - 1500m
BR AX 500m - 1500m
BR AY 500m - 1500m
BR AZ 500m - 1500m
BR BA 500m - 1500m
BR BB 500m - 1500m
BR BC 500m - 1500m
BR BU 500m - 1500m
BR BV 500m - 1500m
BR BW 500m - 1500m
BR CS 500m - 1500m
BR CT 500m - 1500m
BR CU 500m - 1500m
BS AX 500m - 1500m
BS AY 500m - 1500m
BS AZ 500m - 1500m
BS BA 500m - 1500m
BS BB 500m - 1500m
BS BC 500m - 1500m
BS BU 500m - 1500m
BS BV 500m - 1500m
BS BW 500m - 1500m
BS CS 500m - 1500m
BS CT 500m - 1500m
BS CU 500m - 1500m
BT AX 500m - 1500m
BT AY 500m - 1500m
BT AZ 500m - 1500m
BT BA 500m - 1500m
BT BB 500m - 1500m
BT BC 500m - 1500m
BT BU 500m - 1500m
BT BV 500m - 1500m
BT BW 500m - 1500m
BT CS 500m - 1500m
BT CT 500m - 1500m
BT CU 500m - 1500m
BU AX 500m - 1500m
BU AY 500m - 1500m
BU AZ 500m - 1500m
BU BA 500m - 1500m
BU BB 500m - 1500m
BU BC 500m - 1500m
BU BD 500m - 1500m
BU BE 500m - 1500m
BU BF 500m - 1500m
BU BR 500m - 1500m
BU BS 500m - 1500m
BU BT 500m - 1500m
BU BX 500m - 1500m
BU BY 500m - 1500m
BU BZ 500m - 1500m
BU CS 500m - 1500m
BU CT 500m - 1500m
BU CU 500m - 1500m
BU CV 500m - 1500m
BU CW 500m - 1500m
BU CX 500m - 1500m
BV AX 500m - 1500m
BV AY 500m - 1500m
BV AZ 500m - 1500m
BV BA 500m - 1500m
BV BB 500m - 1500m
BV BC 500m - 1500m
BV BD 500m - 1500m
BV BE 500m - 1500m
BV BF 500m - 1500m
BV BR 500m - 1500m
BV BS 500m - 1500m
BV BT 500m - 1500m
BV BX 500m - 1500m
BV BY 500m - 1500m
BV BZ 500m - 1500m
BV CS 500m - 1500m
BV CT 500m - 1500m
BV CU 500m - 1500m
BV CV 500m - 1500m
BV CW 500m - 1500m
BV CX 500m - 1500m
BW AX 500m - 1500m
BW AY 500m - 1500m
BW AZ 500m - 1500m
BW BA 500m - 1500m
BW BB 500m - 1500m
BW BC 500m - 1500m
BW BD 500m - 1500m
BW BE 500m - 1500m
BW BF 500m - 1500m
BW BR 500m - 1500m
BW BS 500m - 1500m
BW BT 500m - 1500m
BW BX 500m - 1500m
BW BY 500m - 1500m
BW BZ 500m - 1500m
BW CS 500m - 1500m
BW CT 500m - 1500m
BW CU 500m - 1500m
BW CV 500m - 1500m
BW CW 500m - 1500m
BW CX 500m - 1500m
BX BA 500m - 1500m
BX BB 500m - 1500m
BX BC 500m - 1500m
BX BD 500m - 1500m
BX BE 500m - 1500m
BX BF 500m - 1500m
BX BG 500m - 1500m
BX BH 500m - 1500m
BX BI 500m - 1500m
BX BU 500m - 1500m
BX BV 500m - 1500m
BX BW 500m - 1500m
BX CA 500m - 1500m
BX CB 500m - 1500m
BX CC 500m - 1500m
BX CS 500m - 1500m
BX CT 500m - 1500m
BX CU 500m - 1500m
BX CV 500m - 1500m
BX CW 500m - 1500m
BX CX 500m - 1500m
BX CY 500m - 1500m
BX CZ 500m - 1500m
BX DA 500m - 1500m
BY BA 500m - 1500m
BY BB 500m - 1500m
BY BC 500m - 1500m
BY BD 500m - 1500m
BY BE 500m - 1500m
BY BF 500m - 1500m
BY BG 500m - 1500m
BY BH 500m - 1500m
BY BI 500m - 1500m
BY BU 500m - 1500m
BY BV 500m - 1500m
BY BW 500m - 1500m
BY CA 500m - 1500m
BY CB 500m - 1500m
BY CC 500m - 1500m
BY CS 500m - 1500m
BY CT 500m - 1500m
BY CU 500m - 1500m
BY CV 500m - 1500m
BY CW 500m - 1500m
BY CX 500m - 1500m
BY CY 500m - 1500m
BY CZ 500m - 1500m
BY DA 500m - 1500m
BZ BA 500m - 1500m
BZ BB 500m - 1500m
BZ BC 500m - 1500m
BZ BD 500m - 1500m
BZ BE 500m - 1500m
BZ BF 500m - 1500m
BZ BG 500m - 1500m
BZ BH 500m - 1500m
BZ BI 500m - 1500m
BZ BU 500m - 1500m
BZ BV 500m - 1500m
BZ BW 500m - 1500m
BZ CA 500m - 1500m
BZ CB 500m - 1500m
BZ CC 500m - 1500m
BZ CS 500m - 1500m
BZ CT 500m - 1500m
BZ CU 500m - 1500m
BZ CV 500m - 1500m
BZ CW 500m - 1500m
BZ CX 500m - 1500m
BZ CY 500m - 1500m
BZ CZ 500m - 1500m
BZ DA 500m - 1500m
CA BD 500m - 1500m
CA BE 500m - 1500m
CA BF 500m - 1500m
CA BG 500m - 1500m
CA BH 500m - 1500m
CA BI 500m - 1500m
CA BX 500m - 1500m
CA BY 500m - 1500m
CA BZ 500m - 1500m
CA CV 500m - 1500m
CA CW 500m - 1500m
CA CX 500m - 1500m
CA CY 500m - 1500m
CA CZ 500m - 1500m
CA DA 500m - 1500m
CA DB 500m - 1500m
CA DC 500m - 1500m
CA DD 500m - 1500m
CB BD 500m - 1500m
CB BE 500m - 1500m
CB BF 500m - 1500m
CB BG 500m - 1500m
CB BH 500m - 1500m
CB BI 500m - 1500m
CB BX 500m - 1500m
CB BY 500m - 1500m
CB BZ 500m - 1500m
CB CV 500m - 1500m
CB CW 500m - 1500m
CB CX 500m - 1500m
CB CY 500m - 1500m
CB CZ 500m - 1500m
CB DA 500m - 1500m
CB DB 500m - 1500m
CB DC 500m - 1500m
CB DD 500m - 1500m
CC BD 500m - 1500m
CC BE 500m - 1500m
CC BF 500m - 1500m
CC BG 500m - 1500m
CC BH 500m - 1500m
CC BI 500m - 1500m
CC BX 500m - 1500m
CC BY 500m - 1500m
CC BZ 500m - 1500m
CC CV 500m - 1500m
CC CW 500m - 1500m
CC CX 500m - 1500m
CC CY 500m - 1500m
CC CZ 500m - 1500m
CC DA 500m - 1500m
CC DB 500m - 1500m
CC DC 500m - 1500m
CC DD 500m - 1500m
CD CG 500m - 1500m
CD CH 500m - 1500m
CD CI 500m - 1500m
CD DH 500m - 1500m
CD DI 500m - 1500m
CD DJ 500m - 1500m
CD DK 500m - 1500m
CD DL 500m - 1500m
CD DM 500m - 1500m
CE CG 500m - 1500m
CE CH 500m - 1500m
CE CI 500m - 1500m
CE DH 500m - 1500m
CE DI 500m - 1500m
CE DJ 500m - 1500m
CE DK 500m - 1500m
CE DL 500m - 1500m
CE DM 500m - 1500m
CF CG 500m - 1500m
CF CH 500m - 1500m
CF CI 500m - 1500m
CF DH 500m - 1500m
CF DI 500m - 1500m
CF DJ 500m - 1500m
CF DK 500m - 1500m
CF DL 500m - 1500m
CF DM 500m - 1500m
CG BJ 500m - 1500m
CG BK 500m - 1500m
CG CD 500m - 1500m
CG CE 500m - 1500m
CG CF 500m - 1500m
CG CJ 500m - 1500m
CG CK 500m - 1500m
CG CL 500m - 1500m
CG DK 500m - 1500m
CG DL 500m - 1500m
CG DM 500m - 1500m
CG DN 500m - 1500m
CG DO 500m - 1500m
CG DP 500m - 1500m
CH BJ 500m - 1500m
CH BK 500m - 1500m
CH CD 500m - 1500m
CH CE 500m - 1500m
CH CF 500m - 1500m
CH CJ 500m - 1500m
CH CK 500m - 1500m
CH CL 500m - 1500m
CH DK 500m - 1500m
CH DL 500m - 1500m
CH DM 500m - 1500m
CH DN 500m - 1500m
CH DO 500m - 1500m
CH DP 500m - 1500m
CI BJ 500m - 1500m
CI BK 500m - 1500m
CI CD 500m - 1500m
CI CE 500m - 1500m
CI CF 500m - 1500m
CI CJ 500m - 1500m
CI CK 500m - 1500m
CI CL 500m - 1500m
CI DK 500m - 1500m
CI DL 500m - 1500m
CI DM 500m - 1500m
CI DN 500m - 1500m
CI DO 500m - 1500m
CI DP 500m - 1500m
CJ BJ 500m - 1500m
CJ BK 500m - 1500m
CJ BL 500m - 1500m
CJ BM 500m - 1500m
CJ BN 500m - 1500m
CJ CG 500m - 1500m
CJ CH 500m - 1500m
CJ CI 500m - 1500m
CJ CM 500m - 1500m
CJ CN 500m - 1500m
CJ CO 500m - 1500m
CJ DN 500m - 1500m
CJ DO 500m - 1500m
CJ DP 500m - 1500m
CJ DQ 500m - 1500m
CJ DR 500m - 1500m
CJ DS 500m - 1500m
CK BJ 500m - 1500m
CK BK 500m - 1500m
CK BL 500m - 1500m
CK BM 500m - 1500m
CK BN 500m - 1500m
CK CG 500m - 1500m
CK CH 500m - 1500m
CK CI 500m - 1500m
CK CM 500m - 1500m
CK CN 500m - 1500m
CK CO 500m - 1500m
CK DN 500m - 1500m
CK DO 500m - 1500m
CK DP 500m - 1500m
CK DQ 500m - 1500m
CK DR 500m - 1500m
CK DS 500m - 1500m
CL BJ 500m - 1500m
CL BK 500m - 1500m
CL BL 500m - 1500m
CL BM 500m - 1500m
CL BN 500m - 1500m
CL CG 500m - 1500m
CL CH 500m - 1500m
CL CI 500m - 1500m
CL CM 500m - 1500m
CL CN 500m - 1500m
CL CO 500m - 1500m
CL DN 500m - 1500m
CL DO 500m - 1500m
CL DP 500m - 1500m
CL DQ 500m - 1500m
CL DR 500m - 1500m
CL DS 500m - 1500m
CM BJ 500m - 1500m
CM BK 500m - 1500m
CM BL 500m - 1500m
CM BM 500m - 1500m
CM BN 500m - 1500m
CM BO 500m - 1500m
CM BP 500m - 1500m
CM BQ 500m - 1500m
CM CJ 500m - 1500m
CM CK 500m - 1500m
CM CL 500m - 1500m
CM CP 500m - 1500m
CM CQ 500m - 1500m
CM CR 500m - 1500m
CM DN 500m - 1500m
CM DO 500m - 1500m
CM DP 500m - 1500m
CM DQ 500m - 1500m
CM DR 500m - 1500m
CM DS 500m - 1500m
CM DT 500m - 1500m
CM DU 500m - 1500m
CM DV 500m - 1500m
CN BJ 500m - 1500m
CN BK 500m - 1500m
CN BL 500m - 1500m
CN BM 500m - 1500m
CN BN 500m - 1500m
CN BO 500m - 1500m
CN BP 500m - 1500m
CN BQ 500m - 1500m
CN CJ 500m - 1500m
CN CK 500m - 1500m
CN CL 500m - 1500m
CN CP 500m - 1500m
CN CQ 500m - 1500m
CN CR 500m - 1500m
CN DN 500m - 1500m
CN DO 500m - 1500m
CN DP 500m - 1500m
CN DQ 500m - 1500m
CN DR 500m - 1500m
CN DS 500m - 1500m
CN DT 500m - 1500m
CN DU 500m - 1500m
CN DV 500m - 1500m
CO BJ 500m - 1500m
CO BK 500m - 1500m
CO BL 500m - 1500m
CO BM 500m - 1500m
CO BN 500m - 1500m
CO BO 500m - 1500m
CO BP 500m - 1500m
CO BQ 500m - 1500m
CO CJ 500m - 1500m
CO CK 500m - 1500m
CO CL 500m - 1500m
CO CP 500m - 1500m
CO CQ 500m - 1500m
CO CR 500m - 1500m
CO DN 500m - 1500m
CO DO 500m - 1500m
CO DP 500m - 1500m
CO DQ 500m - 1500m
CO DR 500m - 1500m
CO DS 500m - 1500m
CO DT 500m - 1500m
CO DU 500m - 1500m
CO DV 500m - 1500m
CP BL 500m - 1500m
CP BM 500m - 1500m
CP BN 500m - 1500m
CP BO 500m - 1500m
CP BP 500m - 1500m
CP BQ 500m - 1500m
CP CM 500m - 1500m
CP CN 500m - 1500m
CP CO 500m - 1500m
CP DQ 500m - 1500m
CP DR 500m - 1500m
CP DS 500m - 1500m
CP DT 500m - 1500m
CP DU 500m - 1500m
CP DV 500m - 1500m
CQ BL 500m - 1500m
CQ BM 500m - 1500m
CQ BN 500m - 1500m
CQ BO 500m - 1500m
CQ BP 500m - 1500m
CQ BQ 500m - 1500m
CQ CM 500m - 1500m
CQ CN 500m - 1500m
CQ CO 500m - 1500m
CQ DQ 500m - 1500m
CQ DR 500m - 1500m
CQ DS 500m - 1500m
CQ DT 500m - 1500m
CQ DU 500m - 1500m
CQ DV 500m - 1500m
CR BL 500m - 1500m
CR BM 500m - 1500m
CR BN 500m - 1500m
CR BO 500m - 1500m
CR BP 500m - 1500m
CR BQ 500m - 1500m
CR CM 500m - 1500m
CR CN 500m - 1500m
CR CO 500m - 1500m
CR DQ 500m - 1500m
CR DR 500m - 1500m
CR DS 500m - 1500m
CR DT 500m - 1500m
CR DU 500m - 1500m
CR DV 500m - 1500m
CS BR 500m - 1500m
CS BS 500m - 1500m
CS BT 500m - 1500m
CS BU 500m - 1500m
CS BV 500m - 1500m
CS BW 500m - 1500m
CS BX 500m - 1500m
CS BY 500m - 1500m
CS BZ 500m - 1500m
CS CV 500m - 1500m
CS CW 500m - 1500m
CS CX 500m - 1500m
CT BR 500m - 1500m
CT BS 500m - 1500m
CT BT 500m - 1500m
CT BU 500m - 1500m
CT BV 500m - 1500m
CT BW 500m - 1500m
CT BX 500m - 1500m
CT BY 500m - 1500m
CT BZ 500m - 1500m
CT CV 500m - 1500m
CT CW 500m - 1500m
CT CX 500m - 1500m
CU BR 500m - 1500m
CU BS 500m - 1500m
CU BT 500m - 1500m
CU BU 500m - 1500m
CU BV 500m - 1500m
CU BW 500m - 1500m
CU BX 500m - 1500m
CU BY 500m - 1500m
CU BZ 500m - 1500m
CU CV 500m - 1500m
CU CW 500m - 1500m
CU CX 500m - 1500m
CV BU 500m - 1500m
CV BV 500m - 1500m
CV BW 500m - 1500m
CV BX 500m - 1500m
CV BY 500m - 1500m
CV BZ 500m - 1500m
CV CA 500m - 1500m
CV CB 500m - 1500m
CV CC 500m - 1500m
CV CS 500m - 1500m
CV CT 500m - 1500m
CV CU 500m - 1500m
CV CY 500m - 1500m
CV CZ 500m - 1500m
CV DA 500m - 1500m
CW BU 500m - 1500m
CW BV 500m - 1500m
CW BW 500m - 1500m
CW BX 500m - 1500m
CW BY 500m - 1500m
CW BZ 500m - 1500m
CW CA 500m - 1500m
CW CB 500m - 1500m
CW CC 500m - 1500m
CW CS 500m - 1500m
CW CT 500m - 1500m
CW CU 500m - 1500m
CW CY 500m - 1500m
CW CZ 500m - 1500m
CW DA 500m - 1500m
CX BU 500m - 1500m
CX BV 500m - 1500m
CX BW 500m - 1500m
CX BX 500m - 1500m
CX BY 500m - 1500m
CX BZ 500m - 1500m
CX CA 500m - 1500m
CX CB 500m - 1500m
CX CC 500m - 1500m
CX CS 500m - 1500m
CX CT 500m - 1500m
CX CU 500m - 1500m
CX CY 500m - 1500m
CX CZ 500m - 1500m
CX DA 500m - 1500m
CY BX 500m - 1500m
CY BY 500m - 1500m
CY BZ 500m - 1500m
CY CA 500m - 1500m
CY CB 500m - 1500m
CY CC 500m - 1500m
CY CV 500m - 1500m
CY CW 500m - 1500m
CY CX 500m - 1500m
CY DB 500m - 1500m
CY DC 500m - 1500m
CY DD 500m - 1500m
CZ BX 500m - 1500m
CZ BY 500m - 1500m
CZ BZ 500m - 1500m
CZ CA 500m - 1500m
CZ CB 500m - 1500m
CZ CC 500m - 1500m
CZ CV 500m - 1500m
CZ CW 500m - 1500m
CZ CX 500m - 1500m
CZ DB 500m - 1500m
CZ DC 500m - 1500m
CZ DD 500m - 1500m
DA BX 500m - 1500m
DA BY 500m - 1500m
DA BZ 500m - 1500m
DA CA 500m - 1500m
DA CB 500m - 1500m
DA CC 500m - 1500m
DA CV 500m - 1500m
DA CW 500m - 1500m
DA CX 500m - 1500m
DA DB 500m - 1500m
DA DC 500m - 1500m
DA DD 500m - 1500m
DB CA 500m - 1500m
DB CB 500m - 1500m
DB CC 500m - 1500m
DB CY 500m - 1500m
DB CZ 500m - 1500m
DB DA 500m - 1500m
DB DE 500m - 1500m
DB DF 500m - 1500m
DB DG 500m - 1500m
DC CA 500m - 1500m
DC CB 500m - 1500m
DC CC 500m - 1500m
DC CY 500m - 1500m
DC CZ 500m - 1500m
DC DA 500m - 1500m
DC DE 500m - 1500m
DC DF 500m - 1500m
DC DG 500m - 1500m
DD CA 500m - 1500m
DD CB 500m - 1500m
DD CC 500m - 1500m
DD CY 500m - 1500m
DD CZ 500m - 1500m
DD DA 500m - 1500m
DD DE 500m - 1500m
DD DF 500m - 1500m
DD DG 500m - 1500m
DE DB 500m - 1500m
DE DC 500m - 1500m
DE DD 500m - 1500m
DE DH 500m - 1500m
DE DI 500m - 1500m
DE DJ 500m - 1500m
DE DW 500m - 1500m
DE DX 500m - 1500m
DE DY 500m - 1500m
DF DB 500m - 1500m
DF DC 500m - 1500m
DF DD 500m - 1500m
DF DH 500m - 1500m
DF DI 500m - 1500m
DF DJ 500m - 1500m
DF DW 500m - 1500m
DF DX 500m - 1500m
DF DY 500m - 1500m
DG DB 500m - 1500m
DG DC 500m - 1500m
DG DD 500m - 1500m
DG DH 500m - 1500m
DG DI 500m - 1500m
DG DJ 500m - 1500m
DG DW 500m - 1500m
DG DX 500m - 1500m
DG DY 500m - 1500m
DH CD 500m - 1500m
DH CE 500m - 1500m
DH CF 500m - 1500m
DH DE 500m - 1500m
DH DF 500m - 1500m
DH DG 500m - 1500m
DH DK 500m - 1500m
DH DL 500m - 1500m
DH DM 500m - 1500m
DH DW 500m - 1500m
DH DX 500m - 1500m
DH DY 500m - 1500m
DH DZ 500m - 1500m
DH EA 500m - 1500m
DH EB 500m - 1500m
DI CD 500m - 1500m
DI CE 500m - 1500m
DI CF 500m - 1500m
DI DE 500m - 1500m
DI DF 500m - 1500m
DI DG 500m - 1500m
DI DK 500m - 1500m
DI DL 500m - 1500m
DI DM 500m - 1500m
DI DW 500m - 1500m
DI DX 500m - 1500m
DI DY 500m - 1500m
DI DZ 500m - 1500m
DI EA 500m - 1500m
DI EB 500m - 1500m
DJ CD 500m - 1500m
DJ CE 500m - 1500m
DJ CF 500m - 1500m
DJ DE 500m - 1500m
DJ DF 500m - 1500m
DJ DG 500m - 1500m
DJ DK 500m - 1500m
DJ DL 500m - 1500m
DJ DM 500m - 1500m
DJ DW 500m - 1500m
DJ DX 500m - 1500m
DJ DY 500m - 1500m
DJ DZ 500m - 1500m
DJ EA 500m - 1500m
DJ EB 500m - 1500m
DK CD 500m - 1500m
DK CE 500m - 1500m
DK CF 500m - 1500m
DK CG 500m - 1500m
DK CH 500m - 1500m
DK CI 500m - 1500m
DK DH 500m - 1500m
DK DI 500m - 1500m
DK DJ 500m - 1500m
DK DN 500m - 1500m
DK DO 500m - 1500m
DK DP 500m - 1500m
DK DZ 500m - 1500m
DK EA 500m - 1500m
DK EB 500m - 1500m
DK EC 500m - 1500m
DK ED 500m - 1500m
DL CD 500m - 1500m
DL CE 500m - 1500m
DL CF 500m - 1500m
DL CG 500m - 1500m
DL CH 500m - 1500m
DL CI 500m - 1500m
DL DH 500m - 1500m
DL DI 500m - 1500m
DL DJ 500m - 1500m
DL DN 500m - 1500m
DL DO 500m - 1500m
DL DP 500m - 1500m
DL DZ 500m - 1500m
DL EA 500m - 1500m
DL EB 500m - 1500m
DL EC 500m - 1500m
DL ED 500m - 1500m
DM CD 500m - 1500m
DM CE 500m - 1500m
DM CF 500m - 1500m
DM CG 500m - 1500m
DM CH 500m - 1500m
DM CI 500m - 1500m
DM DH 500m - 1500m
DM DI 500m - 1500m
DM DJ 500m - 1500m
DM DN 500m - 1500m
DM DO 500m - 1500m
DM DP 500m - 1500m
DM DZ 500m - 1500m
DM EA 500m - 1500m
DM EB 500m - 1500m
DM EC 500m - 1500m
DM ED 500m - 1500m
DN CG 500m - 1500m
DN CH 500m - 1500m
DN CI 500m - 1500m
DN CJ 500m - 1500m
DN CK 500m - 1500m
DN CL 500m - 1500m
DN CM 500m - 1500m
DN CN 500m - 1500m
DN CO 500m - 1500m
DN DK 500m - 1500m
DN DL 500m - 1500m
DN DM 500m - 1500m
DN DQ 500m - 1500m
DN DR 500m - 1500m
DN DS 500m - 1500m
DN EC 500m - 1500m
DN ED 500m - 1500m
DN EE 500m - 1500m
DN EF 500m - 1500m
DN EG 500m - 1500m
DN EH 500m - 1500m
DN EI 500m - 1500m
DN EJ 500m - 1500m
DO CG 500m - 1500m
DO CH 500m - 1500m
DO CI 500m - 1500m
DO CJ 500m - 1500m
DO CK 500m - 1500m
DO CL 500m - 1500m
DO CM 500m - 1500m
DO CN 500m - 1500m
DO CO 500m - 1500m
DO DK 500m - 1500m
DO DL 500m - 1500m
DO DM 500m - 1500m
DO DQ 500m - 1500m
DO DR 500m - 1500m
DO DS 500m - 1500m
DO EC 500m - 1500m
DO ED 500m - 1500m
DO EE 500m - 1500m
DO EF 500m - 1500m
DO EG 500m - 1500m
DO EH 500m - 1500m
DO EI 500m - 1500m
DO EJ 500m - 1500m
DP CG 500m - 1500m
DP CH 500m - 1500m
DP CI 500m - 1500m
DP CJ 500m - 1500m
DP CK 500m - 1500m
DP CL 500m - 1500m
DP CM 500m - 1500m
DP CN 500m - 1500m
DP CO 500m - 1500m
DP DK 500m - 1500m
DP DL 500m - 1500m
DP DM 500m - 1500m
DP DQ 500m - 1500m
DP DR 500m - 1500m
DP DS 500m - 1500m
DP EC 500m - 1500m
DP ED 500m - 1500m
DP EE 500m - 1500m
DP EF 500m - 1500m
DP EG 500m - 1500m
DP EH 500m - 1500m
DP EI 500m - 1500m
DP EJ 500m - 1500m
DQ CJ 500m - 1500m
DQ CK 500m - 1500m
DQ CL 500m - 1500m
DQ CM 500m - 1500m
DQ CN 500m - 1500m
DQ CO 500m - 1500m
DQ CP 500m - 1500m
DQ CQ 500m - 1500m
DQ CR 500m - 1500m
DQ DN 500m - 1500m
DQ DO 500m - 1500m
DQ DP 500m - 1500m
DQ DT 500m - 1500m
DQ DU 500m - 1500m
DQ DV 500m - 1500m
DQ EE 500m - 1500m
DQ EF 500m - 1500m
DQ EG 500m - 1500m
DQ EH 500m - 1500m
DQ EI 500m - 1500m
DQ EJ 500m - 1500m
DQ EK 500m - 1500m
DQ EL 500m - 1500m
DQ EM 500m - 1500m
DR CJ 500m - 1500m
DR CK 500m - 1500m
DR CL 500m - 1500m
DR CM 500m - 1500m
DR CN 500m - 1500m
DR CO 500m - 1500m
DR CP 500m - 1500m
DR CQ 500m - 1500m
DR CR 500m - 1500m
DR DN 500m - 1500m
DR DO 500m - 1500m
DR DP 500m - 1500m
DR DT 500m - 1500m
DR DU 500m - 1500m
DR DV 500m - 1500m
DR EE 500m - 1500m
DR EF 500m - 1500m
DR EG 500m - 1500m
DR EH 500m - 1500m
DR EI 500m - 1500m
DR EJ 500m - 1500m
DR EK 500m - 1500m
DR EL 500m - 1500m
DR EM 500m - 1500m
DS CJ 500m - 1500m
DS CK 500m - 1500m
DS CL 500m - 1500m
DS CM 500m - 1500m
DS CN 500m - 1500m
DS CO 500m - 1500m
DS CP 500m - 1500m
DS CQ 500m - 1500m
DS CR 500m - 1500m
DS DN 500m - 1500m
DS DO 500m - 1500m
DS DP 500m - 1500m
DS DT 500m - 1500m
DS DU 500m - 1500m
DS DV 500m - 1500m
DS EE 500m - 1500m
DS EF 500m - 1500m
DS EG 500m - 1500m
DS EH 500m - 1500m
DS EI 500m - 1500m
DS EJ 500m - 1500m
DS EK 500m - 1500m
DS EL 500m - 1500m
DS EM 500m - 1500m
DT CM 500m - 1500m
DT CN 500m - 1500m
DT CO 500m - 1500m
DT CP 500m - 1500m
DT CQ 500m - 1500m
DT CR 500m - 1500m
DT DQ 500m - 1500m
DT DR 500m - 1500m
DT DS 500m - 1500m
DT EH 500m - 1500m
DT EI 500m - 1500m
DT EJ 500m - 1500m
DT EK 500m - 1500m
DT EL 500m - 1500m
DT EM 500m - 1500m
DU CM 500m - 1500m
DU CN 500m - 1500m
DU CO 500m - 1500m
DU CP 500m - 1500m
DU CQ 500m - 1500m
DU CR 500m - 1500m
DU DQ 500m - 1500m
DU DR 500m - 1500m
DU DS 500m - 1500m
DU EH 500m - 1500m
DU EI 500m - 1500m
DU EJ 500m - 1500m
DU EK 500m - 1500m
DU EL 500m - 1500m
DU EM 500m - 1500m
DV CM 500m - 1500m
DV CN 500m - 1500m
DV CO 500m - 1500m
DV CP 500m - 1500m
DV CQ 500m - 1500m
DV CR 500m - 1500m
DV DQ 500m - 1500m
DV DR 500m - 1500m
DV DS 500m - 1500m
DV EH 500m - 1500m
DV EI 500m - 1500m
DV EJ 500m - 1500m
DV EK 500m - 1500m
DV EL 500m - 1500m
DV EM 500m - 1500m
DW DE 500m - 1500m
DW DF 500m - 1500m
DW DG 500m - 1500m
DW DH 500m - 1500m
DW DI 500m - 1500m
DW DJ 500m - 1500m
DW DZ 500m - 1500m
DW EA 500m - 1500m
DW EB 500m - 1500m
DX DE 500m - 1500m
DX DF 500m - 1500m
DX DG 500m - 1500m
DX DH 500m - 1500m
DX DI 500m - 1500m
DX DJ 500m - 1500m
DX DZ 500m - 1500m
DX EA 500m - 1500m
DX EB 500m - 1500m
DY DE 500m - 1500m
DY DF 500m - 1500m
DY DG 500m - 1500m
DY DH 500m - 1500m
DY DI 500m - 1500m
DY DJ 500m - 1500m
DY DZ 500m - 1500m
DY EA 500m - 1500m
DY EB 500m - 1500m
DZ DH 500m - 1500m
DZ DI 500m - 1500m
DZ DJ 500m - 1500m
DZ DK 500m - 1500m
DZ DL 500m - 1500m
DZ DM 500m - 1500m
DZ DW 500m - 1500m
DZ DX 500m - 1500m
DZ DY 500m - 1500m
DZ EC 500m - 1500m
DZ ED 500m - 1500m
EA DH 500m - 1500m
EA DI 500m - 1500m
EA DJ 500m - 1500m
EA DK 500m - 1500m
EA DL 500m - 1500m
EA DM 500m - 1500m
EA DW 500m - 1500m
EA DX 500m - 1500m
EA DY 500m - 1500m
EA EC 500m - 1500m
EA ED 500m - 1500m
EB DH 500m - 1500m
EB DI 500m - 1500m
EB DJ 500m - 1500m
EB DK 500m - 1500m
EB DL 500m - 1500m
EB DM 500m - 1500m
EB DW 500m - 1500m
EB DX 500m - 1500m
EB DY 500m - 1500m
EB EC 500m - 1500m
EB ED 500m - 1500m
EC DK 500m - 1500m
EC DL 500m - 1500m
EC DM 500m - 1500m
EC DN 500m - 1500m
EC DO 500m - 1500m
EC DP 500m - 1500m
EC DZ 500m - 1500m
EC EA 500m - 1500m
EC EB 500m - 1500m
EC EE 500m - 1500m
EC EF 500m - 1500m
EC EG 500m - 1500m
ED DK 500m - 1500m
ED DL 500m - 1500m
ED DM 500m - 1500m
ED DN 500m - 1500m
ED DO 500m - 1500m
ED DP 500m - 1500m
ED DZ 500m - 1500m
ED EA 500m - 1500m
ED EB 500m - 1500m
ED EE 500m - 1500m
ED EF 500m - 1500m
ED EG 500m - 1500m
EE DN 500m - 1500m
EE DO 500m - 1500m
EE DP 500m - 1500m
EE DQ 500m - 1500m
EE DR 500m - 1500m
EE DS 500m - 1500m
EE EC 500m - 1500m
EE ED 500m - 1500m
EE EH 500m - 1500m
EE EI 500m - 1500m
EE EJ 500m - 1500m
EF DN 500m - 1500m
EF DO 500m - 1500m
EF DP 500m - 1500m
EF DQ 500m - 1500m
EF DR 500m - 1500m
EF DS 500m - 1500m
EF EC 500m - 1500m
EF ED 500m - 1500m
EF EH 500m - 1500m
EF EI 500m - 1500m
EF EJ 500m - 1500m
EG DN 500m - 1500m
EG DO 500m - 1500m
EG DP 500m - 1500m
EG DQ 500m - 1500m
EG DR 500m - 1500m
EG DS 500m - 1500m
EG EC 500m - 1500m
EG ED 500m - 1500m
EG EH 500m - 1500m
EG EI 500m - 1500m
EG EJ 500m - 1500m
EH DN 500m - 1500m
EH DO 500m - 1500m
EH DP 500m - 1500m
EH DQ 500m - 1500m
EH DR 500m - 1500m
EH DS 500m - 1500m
EH DT 500m - 1500m
EH DU 500m - 1500m
EH DV 500m - 1500m
EH EE 500m - 1500m
EH EF 500m - 1500m
EH EG 500m - 1500m
EH EK 500m - 1500m
EH EL 500m - 1500m
EH EM 500m - 1500m
EI DN 500m - 1500m
EI DO 500m - 1500m
EI DP 500m - 1500m
EI DQ 500m - 1500m
EI DR 500m - 1500m
EI DS 500m - 1500m
EI DT 500m - 1500m
EI DU 500m - 1500m
EI DV 500m - 1500m
EI EE 500m - 1500m
EI EF 500m - 1500m
EI EG 500m - 1500m
EI EK 500m - 1500m
EI EL 500m - 1500m
EI EM 500m - 1500m
EJ DN 500m - 1500m
EJ DO 500m - 1500m
EJ DP 500m - 1500m
EJ DQ 500m - 1500m
EJ DR 500m - 1500m
EJ DS 500m - 1500m
EJ DT 500m - 1500m
EJ DU 500m - 1500m
EJ DV 500m - 1500m
EJ EE 500m - 1500m
EJ EF 500m - 1500m
EJ EG 500m - 1500m
EJ EK 500m - 1500m
EJ EL 500m - 1500m
EJ EM 500m - 1500m
EK DQ 500m - 1500m
EK DR 500m - 1500m
EK DS 500m - 1500m
EK DT 500m - 1500m
EK DU 500m - 1500m
EK DV 500m - 1500m
EK EH 500m - 1500m
EK EI 500m - 1500m
EK EJ 500m - 1500m
EL DQ 500m - 1500m
EL DR 500m - 1500m
EL DS 500m - 1500m
EL DT 500m - 1500m
EL DU 500m - 1500m
EL DV 500m - 1500m
EL EH 500m - 1500m
EL EI 500m - 1500m
EL EJ 500m - 1500m
EM DQ 500m - 1500m
EM DR 500m - 1500m
EM DS 500m - 1500m
EM DT 500m - 1500m
EM DU 500m - 1500m
EM DV 500m - 1500m
EM EH 500m - 1500m
EM EI 500m - 1500m
EM EJ 500m - 1500m

You may notice that we have not been provided the coordinates of each location. Not even the actual distance between locations is provided. Rather, the interdistance between locations is given into categorized ranges, named Interdistance class. We discuss this later.

3 DATA EXPLORATION

In this section we are going to do some exploratory data analyses (EDA) on the previously-loaded datasets, so we can understand them better and get some insights.

3.1 General overview

We start with some basic plots showing CPT test registrations, for the training dataset. To improve interpretability, we have highlighted with the dark step line the data for one pile location (specifically location EK).

# grays
gray_1 <- "#2F2F2FFF"
gray_2 <- "#474747FF"
gray_3 <- "#DFDFDFFF"
gray_4 <- "#F7F7F7FF"

# update default theme
ggtheme <-
  theme_light() +
  theme(
    text = element_text(size = 8.25, color = gray_1),
    plot.title = element_text(face = "bold", size = 8.25, hjust = 0.5),
    axis.title = element_text(face = "bold", size = 8.25),
    axis.text = element_text( size = 8.25, color = gray_2),
    panel.grid.major = element_line(color = gray_3, size = 0.25),
    panel.grid.minor = element_blank(),
    axis.ticks = element_line(color = gray_2, size = 0.25),
    axis.ticks.length = unit(.25, "cm"),
    panel.border = element_rect(color = gray_2, size = 0.25),
    strip.text = element_text(size = 8.25, color = gray_1),
    legend.background = element_blank(),
    plot.background = element_blank(),
    panel.background = element_blank(),
    strip.background = element_blank(),
    legend.key = element_blank(),
    plot.margin = margin(t = 5, r = 10, b = 5, l = 10)
  )

# set theme
theme_set(ggtheme)
library(patchwork)
training_EK <- training %>%
  filter(`Location ID` == "EK")

plot1 <- training %>%
  ggplot(aes(`z [m]`, `qc [MPa]`)) +
  geom_point(alpha = 1/2, colour = "grey") +
  geom_step(data = training_EK, aes(`z [m]`, `qc [MPa]`),
            size = 1,
            colour = "grey20",
            alpha = 1) +
  scale_x_reverse() +
  scale_y_continuous(position = "right") +
  coord_flip(xlim = c(0, 35), ylim = c(0, 100)) +
  theme(panel.grid.minor = element_blank())

plot2 <- training %>%
ggplot(aes(`z [m]`, `fs [MPa]`)) +
  geom_point(alpha = 1/2, colour = "grey") +
  geom_step(data = training_EK, aes(`z [m]`, `fs [MPa]`),
            size = 1,
            colour = "grey20",
            alpha = 1) +
  scale_x_reverse() +
  scale_y_continuous(position = "right") +
  coord_flip(xlim = c(0, 35), ylim = c(0, 2)) +
  labs(x = "") +
  theme(panel.grid.minor = element_blank())

plot3 <- training %>%
ggplot(aes(`z [m]`, `u2 [MPa]`)) +
  geom_point(alpha = 1/2, colour = "grey") +
  geom_step(data = training_EK, aes(`z [m]`, `u2 [MPa]`),
            size = 1,
            colour = "grey20",
            alpha = 1) +
  scale_x_reverse() +
  scale_y_continuous(position = "right") +
  coord_flip(xlim = c(0, 35), ylim = c(-0.5, 0.5)) +
  labs(x = "") +
  theme(panel.grid.minor = element_blank())

plot1 + plot2 + plot3
_CPT test data for `training` (location `EK` with dark step line)._

CPT test data for training (location EK with dark step line).

Next, we built similar graphs for the data related to pile installation.

plot4 <- training %>%
ggplot(aes(`z [m]`, `Blowcount [Blows/m]`)) +
  geom_point(alpha = 1/2, colour = "grey") +
  geom_step(data = training_EK, aes(`z [m]`, `Blowcount [Blows/m]`),
            size = 1,
            colour = "grey20",
            alpha = 1) +
  scale_x_reverse() +
  scale_y_continuous(position = "right") +
  coord_flip(xlim = c(0, 35), ylim = c(0, 150)) +
  theme(panel.grid.minor = element_blank())

plot5 <- training %>%
ggplot(aes(`z [m]`, `Number of blows`)) +
  geom_point(alpha = 1/2, colour = "grey") +
  geom_step(data = training_EK, aes(`z [m]`, `Number of blows`),
            size = 1,
            colour = "grey20",
            alpha = 1) +
  scale_x_reverse() +
  scale_y_continuous(position = "right") +
  coord_flip(xlim = c(0, 35), ylim = c(0, 2500)) +
  labs(x = "") +
  theme(panel.grid.minor = element_blank())

plot6 <- training %>%
ggplot(aes(`z [m]`, `Normalised ENTRHU [-]`)) +
  geom_point(alpha = 1/2, colour = "grey") +
  geom_step(data = training_EK, aes(`z [m]`, `Normalised ENTRHU [-]`),
            size = 1,
            colour = "grey20",
            alpha = 1) +
  scale_x_reverse() +
  scale_y_continuous(position = "right") +
  coord_flip(xlim = c(0, 35), ylim = c(0, 0.70)) +
  labs(x = "") +
  theme(panel.grid.minor = element_blank())

plot4 + plot5 + plot6
_Pile installation data for `training` (location `EK` with dark step line)._

Pile installation data for training (location EK with dark step line).

3.2 Understanding interdistance

Now we try to explore interdistance data, in order to see if we can get an idea on the general layout or on the geometry of the site. As we previously noted, the interdistance between locations is provided in categories. Let’s see what these categories are.

interdistance <- interdistance %>%
  mutate(`Interdistance class` = as_factor(`Interdistance class`))

as_tibble(levels(interdistance$`Interdistance class`))
## # A tibble: 5 x 1
##   value        
##   <chr>        
## 1 <500m        
## 2 500m - 1500m 
## 3 1500m - 3000m
## 4 3000m - 4500m
## 5 >4500m

We have five categories. Having the pile location data in this form seems a bit unusual, since, for a project, we normally know the exact locations where we expect pile foundations to be installed. This data shortcoming most likely limits our ability to incorporate interdistance into our analysis or even to visualize it. Nonetheless, we can try different visualization layouts.

We transform the data a bit so we can express Interdistance class in numerical terms.

interdistance <- interdistance %>%
  mutate(`Interdistance cat` = case_when(`Interdistance class` == "<500m" ~ "A",
                                         `Interdistance class` == "500m - 1500m" ~ "B",
                                         `Interdistance class` == "1500m - 3000m" ~ "C",
                                         `Interdistance class` == "3000m - 4500m" ~ "D",
                                         `Interdistance class` == ">4500m" ~ "E")) %>%
  mutate(`Interdistance num` = case_when(`Interdistance cat` == "A" ~ "1.0",
                                         `Interdistance cat` == "B" ~ "0.8",
                                         `Interdistance cat` == "C" ~ "0.6",
                                         `Interdistance cat` == "D" ~ "0.4",
                                         `Interdistance cat` == "E" ~ "0.2")) %>%
  mutate(`Interdistance num` = as.double(`Interdistance num`))
kable(top_n(interdistance, 100),
      digits = 3,
      caption = "Interdistance data (edited).",
      align = "r") %>%
  kable_styling(full_width = T, font_size = 11, position = "center") %>%
  row_spec(0, color = "grey10", background = "#F4F5F6") %>%
  scroll_box(height = "300px")
Interdistance data (edited).
ID location 1 ID location 2 Interdistance class Interdistance cat Interdistance num
AA AA <500m A 1
AA AB <500m A 1
AA AC <500m A 1
AB AA <500m A 1
AB AB <500m A 1
AB AC <500m A 1
AC AA <500m A 1
AC AB <500m A 1
AC AC <500m A 1
AD AD <500m A 1
AD AE <500m A 1
AE AD <500m A 1
AE AE <500m A 1
AF AF <500m A 1
AF AG <500m A 1
AF AH <500m A 1
AG AF <500m A 1
AG AG <500m A 1
AG AH <500m A 1
AH AF <500m A 1
AH AG <500m A 1
AH AH <500m A 1
AI AI <500m A 1
AI AJ <500m A 1
AI AK <500m A 1
AJ AI <500m A 1
AJ AJ <500m A 1
AJ AK <500m A 1
AK AI <500m A 1
AK AJ <500m A 1
AK AK <500m A 1
AL AL <500m A 1
AL AM <500m A 1
AL AN <500m A 1
AM AL <500m A 1
AM AM <500m A 1
AM AN <500m A 1
AN AL <500m A 1
AN AM <500m A 1
AN AN <500m A 1
AO AO <500m A 1
AO AP <500m A 1
AO AQ <500m A 1
AP AO <500m A 1
AP AP <500m A 1
AP AQ <500m A 1
AQ AO <500m A 1
AQ AP <500m A 1
AQ AQ <500m A 1
AR AR <500m A 1
AR AS <500m A 1
AR AT <500m A 1
AS AR <500m A 1
AS AS <500m A 1
AS AT <500m A 1
AT AR <500m A 1
AT AS <500m A 1
AT AT <500m A 1
AU AU <500m A 1
AU AV <500m A 1
AU AW <500m A 1
AV AU <500m A 1
AV AV <500m A 1
AV AW <500m A 1
AW AU <500m A 1
AW AV <500m A 1
AW AW <500m A 1
AX AX <500m A 1
AX AY <500m A 1
AX AZ <500m A 1
AY AX <500m A 1
AY AY <500m A 1
AY AZ <500m A 1
AZ AX <500m A 1
AZ AY <500m A 1
AZ AZ <500m A 1
BA BA <500m A 1
BA BB <500m A 1
BA BC <500m A 1
BB BA <500m A 1
BB BB <500m A 1
BB BC <500m A 1
BC BA <500m A 1
BC BB <500m A 1
BC BC <500m A 1
BD BD <500m A 1
BD BE <500m A 1
BD BF <500m A 1
BE BD <500m A 1
BE BE <500m A 1
BE BF <500m A 1
BF BD <500m A 1
BF BE <500m A 1
BF BF <500m A 1
BG BG <500m A 1
BG BH <500m A 1
BG BI <500m A 1
BH BG <500m A 1
BH BH <500m A 1
BH BI <500m A 1
BI BG <500m A 1
BI BH <500m A 1
BI BI <500m A 1
BJ BJ <500m A 1
BJ BK <500m A 1
BK BJ <500m A 1
BK BK <500m A 1
BL BL <500m A 1
BL BM <500m A 1
BL BN <500m A 1
BM BL <500m A 1
BM BM <500m A 1
BM BN <500m A 1
BN BL <500m A 1
BN BM <500m A 1
BN BN <500m A 1
BO BO <500m A 1
BO BP <500m A 1
BO BQ <500m A 1
BP BO <500m A 1
BP BP <500m A 1
BP BQ <500m A 1
BQ BO <500m A 1
BQ BP <500m A 1
BQ BQ <500m A 1
BR BR <500m A 1
BR BS <500m A 1
BR BT <500m A 1
BS BR <500m A 1
BS BS <500m A 1
BS BT <500m A 1
BT BR <500m A 1
BT BS <500m A 1
BT BT <500m A 1
BU BU <500m A 1
BU BV <500m A 1
BU BW <500m A 1
BV BU <500m A 1
BV BV <500m A 1
BV BW <500m A 1
BW BU <500m A 1
BW BV <500m A 1
BW BW <500m A 1
BX BX <500m A 1
BX BY <500m A 1
BX BZ <500m A 1
BY BX <500m A 1
BY BY <500m A 1
BY BZ <500m A 1
BZ BX <500m A 1
BZ BY <500m A 1
BZ BZ <500m A 1
CA CA <500m A 1
CA CB <500m A 1
CA CC <500m A 1
CB CA <500m A 1
CB CB <500m A 1
CB CC <500m A 1
CC CA <500m A 1
CC CB <500m A 1
CC CC <500m A 1
CD CD <500m A 1
CD CE <500m A 1
CD CF <500m A 1
CE CD <500m A 1
CE CE <500m A 1
CE CF <500m A 1
CF CD <500m A 1
CF CE <500m A 1
CF CF <500m A 1
CG CG <500m A 1
CG CH <500m A 1
CG CI <500m A 1
CH CG <500m A 1
CH CH <500m A 1
CH CI <500m A 1
CI CG <500m A 1
CI CH <500m A 1
CI CI <500m A 1
CJ CJ <500m A 1
CJ CK <500m A 1
CJ CL <500m A 1
CK CJ <500m A 1
CK CK <500m A 1
CK CL <500m A 1
CL CJ <500m A 1
CL CK <500m A 1
CL CL <500m A 1
CM CM <500m A 1
CM CN <500m A 1
CM CO <500m A 1
CN CM <500m A 1
CN CN <500m A 1
CN CO <500m A 1
CO CM <500m A 1
CO CN <500m A 1
CO CO <500m A 1
CP CP <500m A 1
CP CQ <500m A 1
CP CR <500m A 1
CQ CP <500m A 1
CQ CQ <500m A 1
CQ CR <500m A 1
CR CP <500m A 1
CR CQ <500m A 1
CR CR <500m A 1
CS CS <500m A 1
CS CT <500m A 1
CS CU <500m A 1
CT CS <500m A 1
CT CT <500m A 1
CT CU <500m A 1
CU CS <500m A 1
CU CT <500m A 1
CU CU <500m A 1
CV CV <500m A 1
CV CW <500m A 1
CV CX <500m A 1
CW CV <500m A 1
CW CW <500m A 1
CW CX <500m A 1
CX CV <500m A 1
CX CW <500m A 1
CX CX <500m A 1
CY CY <500m A 1
CY CZ <500m A 1
CY DA <500m A 1
CZ CY <500m A 1
CZ CZ <500m A 1
CZ DA <500m A 1
DA CY <500m A 1
DA CZ <500m A 1
DA DA <500m A 1
DB DB <500m A 1
DB DC <500m A 1
DB DD <500m A 1
DC DB <500m A 1
DC DC <500m A 1
DC DD <500m A 1
DD DB <500m A 1
DD DC <500m A 1
DD DD <500m A 1
DE DE <500m A 1
DE DF <500m A 1
DE DG <500m A 1
DF DE <500m A 1
DF DF <500m A 1
DF DG <500m A 1
DG DE <500m A 1
DG DF <500m A 1
DG DG <500m A 1
DH DH <500m A 1
DH DI <500m A 1
DH DJ <500m A 1
DI DH <500m A 1
DI DI <500m A 1
DI DJ <500m A 1
DJ DH <500m A 1
DJ DI <500m A 1
DJ DJ <500m A 1
DK DK <500m A 1
DK DL <500m A 1
DK DM <500m A 1
DL DK <500m A 1
DL DL <500m A 1
DL DM <500m A 1
DM DK <500m A 1
DM DL <500m A 1
DM DM <500m A 1
DN DN <500m A 1
DN DO <500m A 1
DN DP <500m A 1
DO DN <500m A 1
DO DO <500m A 1
DO DP <500m A 1
DP DN <500m A 1
DP DO <500m A 1
DP DP <500m A 1
DQ DQ <500m A 1
DQ DR <500m A 1
DQ DS <500m A 1
DR DQ <500m A 1
DR DR <500m A 1
DR DS <500m A 1
DS DQ <500m A 1
DS DR <500m A 1
DS DS <500m A 1
DT DT <500m A 1
DT DU <500m A 1
DT DV <500m A 1
DU DT <500m A 1
DU DU <500m A 1
DU DV <500m A 1
DV DT <500m A 1
DV DU <500m A 1
DV DV <500m A 1
DW DW <500m A 1
DW DX <500m A 1
DW DY <500m A 1
DX DW <500m A 1
DX DX <500m A 1
DX DY <500m A 1
DY DW <500m A 1
DY DX <500m A 1
DY DY <500m A 1
DZ DZ <500m A 1
DZ EA <500m A 1
DZ EB <500m A 1
EA DZ <500m A 1
EA EA <500m A 1
EA EB <500m A 1
EB DZ <500m A 1
EB EA <500m A 1
EB EB <500m A 1
EC EC <500m A 1
EC ED <500m A 1
ED EC <500m A 1
ED ED <500m A 1
EE EE <500m A 1
EE EF <500m A 1
EE EG <500m A 1
EF EE <500m A 1
EF EF <500m A 1
EF EG <500m A 1
EG EE <500m A 1
EG EF <500m A 1
EG EG <500m A 1
EH EH <500m A 1
EH EI <500m A 1
EH EJ <500m A 1
EI EH <500m A 1
EI EI <500m A 1
EI EJ <500m A 1
EJ EH <500m A 1
EJ EI <500m A 1
EJ EJ <500m A 1
EK EK <500m A 1
EK EL <500m A 1
EK EM <500m A 1
EL EK <500m A 1
EL EL <500m A 1
EL EM <500m A 1
EM EK <500m A 1
EM EL <500m A 1
EM EM <500m A 1
library(ggraph)
library(igraph)

We use the ggraph and the igraph packages to further visualize interdistance data.

interdistance %>%
  graph_from_data_frame() %>%
  ggraph() +
  geom_edge_link(alpha = 1/100) +
  geom_node_point(size = 2) +
  geom_node_text(aes(label = name), vjust = 1.25, hjust = 1.25, size = 2.5) +
  theme_void()
_Relationship between all locations considering all levels of `Interdistance class`._

Relationship between all locations considering all levels of Interdistance class.

Nice viz but difficult to make any interpretation. We can get a more insightful plot by considering just interdistance of categories <500m and 500m - 1500m.

interdistance %>%
  filter(`Interdistance cat` %in% c("A", "B")) %>%
  graph_from_data_frame() %>%
  ggraph() +
  geom_edge_link(aes(alpha = `Interdistance num`)) +
  geom_node_point(size = 2) +
  geom_node_text(aes(label = name), vjust = 1.25, hjust = 1.25, size = 2.5) +
  theme_void() +
  theme(legend.position = "none")
_Relationship between all locations considering `Interdistance class` of `<500m` and `500m - 1500m` only._

Relationship between all locations considering Interdistance class of <500m and 500m - 1500m only.

From the above graph, we notice the creation of some “clusters”, each containing 3 piles, representing the piles used for each jacket. Within each of these clusters, the Interdistance class is equal to <500m. In other words, when the Interdistance class between piles is <500m, they are basically the same location, as they belong to the same jacket. Let’s see how the CPT and installation data differ for piles within the same jacket. Consider locations DB, DC, and DD.

training_DBDCDD <- training %>%
  filter(`Location ID` %in% c("DB", "DC", "DD"))

plot7 <- training %>%
ggplot(aes(`z [m]`, `qc [MPa]`)) +
  geom_point(alpha = 1/2, colour = "grey") +
  geom_step(data = training_DBDCDD, aes(`z [m]`, `qc [MPa]`, group = `Location ID`, colour = `Location ID`),
            size = 1,
            alpha = 1) +
  scale_colour_manual(values = c("tomato", "steelblue", "grey20")) +
  scale_x_reverse() +
  scale_y_continuous(position = "right") +
  coord_flip(xlim = c(0, 35), ylim = c(0, 100)) +
  theme(legend.position = "none",
        panel.grid.minor = element_blank())

plot8 <- training %>%
ggplot(aes(`z [m]`, `Blowcount [Blows/m]`)) +
  geom_point(alpha = 1/2, colour = "grey") +
  geom_step(data = training_DBDCDD, aes(`z [m]`, `Blowcount [Blows/m]`, group = `Location ID`, colour = `Location ID`),
            size = 1,
            alpha = 1) +
  scale_colour_manual(values = c("tomato", "steelblue", "grey20")) +
  scale_x_reverse() +
  scale_y_continuous(position = "right") +
  coord_flip(xlim = c(0, 35), ylim = c(0, 150)) +
  theme(legend.position = "none",
        panel.grid.minor = element_blank()) +
  labs(x = "")

plot9 <- training %>%
ggplot(aes(`z [m]`, `Number of blows`)) +
  geom_point(alpha = 1/2, colour = "grey") +
  geom_step(data = training_DBDCDD, aes(`z [m]`, `Number of blows`, group = `Location ID`, colour = `Location ID`),
            size = 1,
            alpha = 1) +
  scale_colour_manual(values = c("tomato", "steelblue", "grey20")) +
  scale_x_reverse() +
  scale_y_continuous(position = "right") +
  coord_flip(xlim = c(0, 35), ylim = c(0, 2500)) +
  theme(legend.position = c(0.75, 0.8),
        panel.grid.minor = element_blank()) +
  labs(x = "")

plot7 + plot8 + plot9
_Plot of data for locations `DB`, `DC`, and `DD`._

Plot of data for locations DB, DC, and DD.

From the above graphs we can infer that the same CPT test is used for the three piles of the jacket, since the CPT profiles of all three locations completely overlap. Nonetheless, noticeable differences are observed in the Blowcount [Blows/m] values. These differences represent mostly the spatial variations of the soil conditions between piles of the same jacket.

Another way of looking at this is to emphasize that, although we have data about the installation of 114 piles, the CPT data are relatively scarce. Take the validation dataset, for example. Although it contains data about 20 pile locations, only seven CPT registrations are included. It is very likely that this limits the accuracy of our hypothetical predictive models.

We build the same plot as above but with separated locations for training and validation.

interdistance_tr <- interdistance %>%
  filter(`ID location 1` %in% training$`Location ID`) %>%
  mutate(Category = "training")

interdistance_va <- interdistance %>%
  filter(`ID location 1` %in% validation$`Location ID`) %>%
  mutate(Category = "validation")

interdistance_all <- full_join(interdistance_tr, interdistance_va)

interdistance_all %>%
  filter(`Interdistance cat` %in% c("A", "B")) %>%
  graph_from_data_frame() %>%
  ggraph() +
  geom_edge_link(aes(alpha = `Interdistance num`)) +
  geom_node_point(size = 2) +
  geom_node_text(aes(label = name), vjust = 1.25, hjust = 1.25, size = 2.5) +
  theme_void() +
  facet_wrap(~ Category, nrow = 2) +
  theme(legend.position = "none")
_Relationship between all locations considering `Interdistance class` of `<500m` and `500m - 1500m` only (keeping `training` and `validation` separated)._

Relationship between all locations considering Interdistance class of <500m and 500m - 1500m only (keeping training and validation separated).

The above graph gives an idea on how the locations from training and validation are related to each other, in terms of interdistance. Consider the jacket that contains locations CG, CH and CI. This jacket is part of the validation dataset (we know that from the data but we can infer it from the bottom part of the graph, since these 3 locations are connected by a dark line). We see that the only other jacket from validation, that is closer than 1500m with this jacket, is the one that contains locations BJ and BK. All the other jackets from validation, like the one with locations DT, DU and DV, is further than 1500m.

Further analyses and considerations on the interdistance data can be made and can potentially be incorporated in the model-building process.

3.3 training vs validation data

We make a simple plot of qc [MPA] vs z [m] for training and validation datasets, just to see if there are any significant differences.

plot13 <- training %>%
ggplot(aes(`z [m]`, `qc [MPa]`)) +
  geom_point(alpha = 1/2, colour = "grey") +
  geom_point(data = validation, aes(`z [m]`, `qc [MPa]`),
            alpha = 1/2, colour = "grey") +
  scale_x_reverse() +
  scale_y_continuous(position = "right") +
  coord_flip(xlim = c(0, 35), ylim = c(0, 100)) +
  theme(panel.grid.minor = element_blank(),
        plot.title = element_text(size = 9, face = "italic")) +
  labs(title = "training + validation")

plot14 <- training %>%
ggplot(aes(`z [m]`, `qc [MPa]`)) +
  geom_point(alpha = 1/2, colour = "grey") +
  geom_point(data = validation, aes(`z [m]`, `qc [MPa]`),
            alpha = 1/2, colour = "grey") +
  geom_point(data = training, aes(`z [m]`, `qc [MPa]`),
            alpha = 1,
            colour = "grey20") +
  scale_x_reverse() +
  scale_y_continuous(position = "right") +
  coord_flip(xlim = c(0, 35), ylim = c(0, 100)) +
  labs(x = "") +
  theme(panel.grid.minor = element_blank(),
        plot.title = element_text(size = 9, face = "italic")) +
  labs(title = "training")

plot15 <- training %>%
ggplot(aes(`z [m]`, `qc [MPa]`)) +
  geom_point(alpha = 1/2, colour = "grey") +
  geom_point(data = validation, aes(`z [m]`, `qc [MPa]`),
            alpha = 1/2, colour = "grey") +
  geom_point(data = validation, aes(`z [m]`, `qc [MPa]`),
            alpha = 1,
            colour = "grey20") +
  scale_x_reverse() +
  scale_y_continuous(position = "right") +
  coord_flip(xlim = c(0, 35), ylim = c(0, 100)) +
  labs(x = "") +
  theme(panel.grid.minor = element_blank(),
        plot.title = element_text(size = 9, face = "italic")) +
  labs(title = "validation")

plot13 + plot14 + plot15
_`qc [MPA]` vs `z [m]` for `training` and `validation`._

qc [MPA] vs z [m] for training and validation.

3.4 Relationship and correlation between parameters

For the purpose of our work, it is particularly important to understand the relationship between Blowcount [Blows/m] and all the features (i.e. predictors), so we get a better idea which features we will actually include in the model. A good starting point is to build a scatterplot matrix of the training dataset.

library(ggforce)
ggplot(training, aes(.panel_x, .panel_y)) +
  geom_point(alpha = 1/20, size = 0.5) +
  facet_matrix(vars(`Blowcount [Blows/m]`, `z [m]`, `qc [MPa]`, `fs [MPa]`, `u2 [MPa]`, `Normalised ENTRHU [-]`, `Bottom wall thickness [mm]`, `Pile penetration [m]`)) +
  theme(panel.grid.minor = element_blank(),
        strip.background = element_blank(),
        strip.text = element_text(colour = "grey20"))
_Scatterplot matrix for `training`._

Scatterplot matrix for training.

Notice that we have not included those parameters we know to not have any meaningful influence or that are duplicates. From the previous graph, we can grasp the relationship between Blowcount [Blows/m] and other parameters. For some parameters (z [m], Normalised ENTRHU [-]), some pattern is visually recognizable, while for other parameters, it is not that obvious. All this can be numerically expressed through a correlation plot.

library(corrplot)
library(RColorBrewer)
training_corr <- training %>%
  dplyr::select(`Blowcount [Blows/m]`, `z [m]`, `qc [MPa]`, `fs [MPa]`, `u2 [MPa]`, `Normalised ENTRHU [-]`, `Bottom wall thickness [mm]`, `Pile penetration [m]`)

corr_matrix <- cor(training_corr)

corrplot(corr_matrix,
         method = "color",
         type = "lower",
         tl.col = "black",
         col = brewer.pal(n = 10, name = "RdYlBu"),
         bg = "red",
         addCoef.col = "grey20",
         addgrid.col = "grey20",
         cl.cex = .75,
         tl.cex = .75,
         number.cex = 0.65,
         number.digits = 3,
         diag = FALSE)
_Correlations between parameters for `training`._

Correlations between parameters for training.

By looking at the first column of the correlation plot, Blowcount [Blows/m] looks particularly well-correlated to both z [m] and Normalised ENTRHU [-]. Maybe surprisingly, the correlation with the CPT test parameters isn’t so strong (the coefficient of correlation barely passes the 0.5 mark, for qc [MPa]).

4 NEW FEATURES

Now we try an approach to introduce engineering/geotechnical knowledge by means of creating some additional parameter (i.e. feature) which hopefully provides engineering insights and potentially has better predictive performance. We use the available data to estimate two parameters:

We do this for both, training and validation. The Vertical effective stress [kPa] is necessary asan input in assessments and it is provided within the normalised datasets. Some preparatory and data manipulation is needed at this point, especially considering that the normalised data contain few missing values (NA). Various approaches can be used to deal with the NA values (removing, replacing with the average value, etc) and here we choose to replace them with the next row value. Notice that the friction angle [°] is used here as an input in the estimation of skin friction API [kPa], not as a predictive feature per se.

vert_estress_tr <- training_no %>%
  mutate(`Ic [-]` = replace(`Ic [-]`, which(is.na(`Qt [-]`)), NA)) %>%
  fill(`area ratio [-]`, `qt [MPa]`, `Delta u2 [MPa]`, `Rf [%]`, `Bq [-]`, `Qt [-]`, `Fr [%]`, `qnet [MPa]`, `Ic [-]`, .direction = "up") %>%
  dplyr::select(`ID`, `Vertical effective stress [kPa]`)

training <- training %>%
  inner_join(vert_estress_tr, by = "ID") %>%
  mutate(`friction angle [°]` = 17.6 + 11 * log((`qc [MPa]`/0.1)/(sqrt(`Vertical effective stress [kPa]`/0.1))),
         `skin friction API [kPa]` = 0.8 * `Vertical effective stress [kPa]` * tan((`friction angle [°]` - 5)*3.14/180))
vert_estress_va <- validation_no %>%
  mutate(`Ic [-]` = replace(`Ic [-]`, which(is.na(`Qt [-]`)), NA)) %>%
  fill(`area ratio [-]`, `qt [MPa]`, `Delta u2 [MPa]`, `Rf [%]`, `Bq [-]`, `Qt [-]`, `Fr [%]`, `qnet [MPa]`, `Ic [-]`, .direction = "up") %>%
  dplyr::select(`ID`, `Vertical effective stress [kPa]`)

validation <- validation %>%
  inner_join(vert_estress_va, by = "ID") %>%
  mutate(`friction angle [°]` = 17.6 + 11 * log((`qc [MPa]`/0.1)/(sqrt(`Vertical effective stress [kPa]`/0.1))),
         `skin friction API [kPa]` = 0.8 * `Vertical effective stress [kPa]` * tan((`friction angle [°]` - 5)*3.14/180))

We can visualize the difference between skin friction API [kPa] and qc [MPa] in terms of their relationship with Blowcount [Blows/m]. The next graphs suggest that skin friction API [kPa] is a better predictor for `Blowcount [Blows/m], having a value of the coefficient of correlation around 0.72.

plot16 <- training %>%
ggplot(aes(`qc [MPa]`, `Blowcount [Blows/m]`)) +
  geom_point(alpha = 1/20) +
  scale_x_reverse() +
  scale_y_continuous(position = "right") +
  coord_flip(xlim = c(0, 100), ylim = c(0, 150)) +
  theme(panel.grid.minor = element_blank())

plot17 <- training %>%
ggplot(aes(`fs [MPa]`, `Blowcount [Blows/m]`)) +
  geom_point(alpha = 1/20) +
  scale_x_reverse() +
  scale_y_continuous(position = "right") +
  coord_flip(xlim = c(0, 2), ylim = c(0, 150)) +
  theme(panel.grid.minor = element_blank())

plot18 <- training %>%
ggplot(aes(`skin friction API [kPa]`, `Blowcount [Blows/m]`)) +
  geom_point(alpha = 1/20) +
  scale_x_reverse() +
  scale_y_continuous(position = "right") +
  coord_flip(xlim = c(0, 250), ylim = c(0, 150)) +
  theme(panel.grid.minor = element_blank())

plot16 + plot17 + plot18
_Comparison of `Blowcount [Blows/m]`'s relationship with `qc [MPa]`, `fs [MPa]` and `skin friction API [kPa]`._

Comparison of Blowcount [Blows/m]’s relationship with qc [MPa], fs [MPa] and skin friction API [kPa].

training %>%
  dplyr::select(`Blowcount [Blows/m]`, `skin friction API [kPa]`) %>%
  cor() %>%
kable(digits = 3,
      align = "r") %>%
     kable_styling(full_width = F, font_size = 11, position = "center") %>%
     row_spec(0, color = "grey10", background = "#F4F5F6")
Blowcount [Blows/m] skin friction API [kPa]
Blowcount [Blows/m] 1.000 0.717
skin friction API [kPa] 0.717 1.000

5 MODELING

We now proceed with the model-building process, starting from some simple linear models and then progressing to more advanced ones. Before that, we need to split the data.

5.1 Splitting the training data

The first thing we do is to randomly split the training data into:

  • train - used to train the model/machine;
  • test - used to evaluate how the model performs on new data.

Notice that we have also another set of data, validation, which is used to evaluate the model performance in the context of the competition we introduced at the top of this post.

training <- training %>%
  mutate(`Location ID` = as_factor(`Location ID`))

training_locations <- levels(training$`Location ID`)

set.seed(111)
test_locations <- sample(training_locations, 18)

test <- training %>% filter(`Location ID` %in% test_locations)
train <- training %>% filter (!(`Location ID` %in% test_locations))

5.2 Linear Regression models

Our first attempt involves considering Linear Regression models.

5.2.1 Simple Linear Regression

The idea of a Simple Linear Regression is to predict Blowcount [Blows/m] considering only one feature. We use Normalised ENTRHU [-].

library(broom)
model_slr <- lm(`Blowcount [Blows/m]` ~ `Normalised ENTRHU [-]`, data = train)

model_slr %>%
  glance() %>%
kable(digits = 8,
      align = "r") %>%
     kable_styling(full_width = T, font_size = 11, position = "center") %>%
     row_spec(0, color = "grey10", background = "#F4F5F6")
r.squared adj.r.squared sigma statistic p.value df logLik AIC BIC deviance df.residual nobs
0.4475658 0.4474183 22.19974 3034.898 0 1 -16936.28 33878.57 33897.25 1846136 3746 3748
model_slr %>%
  tidy() %>%
kable(digits = 8,
      align = "r") %>%
     kable_styling(full_width = T, font_size = 11, position = "center") %>%
     row_spec(0, color = "grey10", background = "#F4F5F6")
term estimate std.error statistic p.value
(Intercept) 20.9068 0.8842616 23.64323 0
Normalised ENTRHU [-] 119.2639 2.1648957 55.08991 0

The above tables present some of the key features of the model, like adj.r.squared, p.value, Intercept’s estimate, Intercept’s std.error, etc. These values are useful to evaluate how the model performs. The reference metric, as described in the competition evaluation section, is the RMSE (Root Mean Square Error). Lower the RMSE value, the better. We can estimate RMSE as follows.

train_aug_slr <- model_slr %>%
  augment(data = train)

sqrt(sum((train_aug_slr$`Blowcount [Blows/m]` - train_aug_slr$.fitted)^2)/nrow(train_aug_slr))
## [1] 22.19382

We can also plot the model predictions and compare it to the actual data.

plot_slr1 <- train_aug_slr %>%
  ggplot(aes(`Normalised ENTRHU [-]`, `Blowcount [Blows/m]`)) +
  geom_point(alpha = 1/20) +
  geom_point(aes(y = .fitted), color = "tomato", alpha = 1) +
  expand_limits(x = 0, y = 0) +
  theme(panel.grid.minor = element_blank(),
        aspect.ratio = 1,
        plot.title = element_text(size = 9, face = "italic")) +
  labs(title = "Model fit (red) vs actual data.",
       x = "Normalised ENTRHU [-]",
       y = "Blowcount [Blows/m]")

plot_slr2 <- train_aug_slr %>%
  ggplot(aes(.fitted, `Blowcount [Blows/m]`)) +
  geom_point(alpha = 1/20) +
  expand_limits(x = 0, y = 0) +
  geom_abline(color = "grey20", size = 1) +
  coord_fixed(xlim = c(0, 150), ylim = c(0, 150)) +
  theme(panel.grid.minor = element_blank(),
        aspect.ratio = 1,
        plot.title = element_text(size = 9, face = "italic")) +
  labs(title = "Predicted vs actual Blowcount [Blows/m].",
       x = "Predicted Blowcount [Blows/m]",
       y = "Actual Blowcount [Blows/m]")

plot_slr3 <- train_aug_slr %>%
  ggplot(aes(`Normalised ENTRHU [-]`, .resid)) +
  geom_point(alpha = 1/20) +
  geom_hline(aes(yintercept = 0), color = "grey20", size = 1) +
  theme(panel.grid.minor = element_blank(),
        aspect.ratio = 1,
        plot.title = element_text(size = 9, face = "italic")) +
  labs(title = "Scatter plot of residuals.",
       x = "Normalised ENTRHU [-]",
       y = "Residuals")

plot_slr4 <- train_aug_slr %>%
  ggplot(aes(.resid)) +
  geom_histogram(binwidth = 2, alpha = 1/4) +
  geom_vline(aes(xintercept = 0), color = "grey20", size = 1) +
  theme(panel.grid.minor = element_blank(),
        aspect.ratio = 1,
        plot.title = element_text(size = 9, face = "italic")) +
  labs(title = "Histogram of residuals.",
       x = "Residuals",
       y = "Count") +
  coord_cartesian(xlim = c(-100, 100))

patch_slr1 <- plot_slr1 + plot_slr2
patch_slr2 <- plot_slr3 + plot_slr4

patch_slr1 / patch_slr2
_Results for Simple Linear Regression._

Results for Simple Linear Regression.

The above plots give another overview of our model’s results and performance, in visual terms. As it was obvious, and as it is suggested by the adj.r.squared value as well, a Simple Linear Regression model is not likely to be a good fit for our data. In particular, the residuals scatter plot and histogram suggest that the residuals show some pattern (i.e. they are not random). In this context, we would like the residuals histogram to resemble a normal distribution.

5.2.2 Multiple Linear Regression

A Multiple Linear Regression is similar to the Simple Linear Regression, with the difference that, to predict Blowcount [Blows/m], we now consider more than one feature. We use:

  • Normalised ENTRHU [-];
  • z [m];
  • skin friction API [kPa].

We choose to use these features based on their relatively good correlation with Blowcount [Blows/m]. Note that more rigorous and robust procedures for feature selection (i.e. deciding which features to include in the model) exist. One option could be to introduce a regularization technique by means of lasso regression.

The application steps of Multiple Linear Regression are in analogy of those used for Simple Linear Regression.

model_mlr <- lm(`Blowcount [Blows/m]` ~ `Normalised ENTRHU [-]` + `z [m]` + `skin friction API [kPa]`, data = train)

model_mlr %>%
  glance() %>%
kable(digits = 8,
      align = "r") %>%
     kable_styling(full_width = T, font_size = 11, position = "center") %>%
     row_spec(0, color = "grey10", background = "#F4F5F6")
r.squared adj.r.squared sigma statistic p.value df logLik AIC BIC deviance df.residual nobs
0.5365526 0.5361812 20.33873 1444.862 0 3 -16607.13 33224.26 33255.41 1548758 3744 3748
model_mlr %>%
  tidy() %>%
kable(digits = 8,
      align = "r") %>%
     kable_styling(full_width = T, font_size = 11, position = "center") %>%
     row_spec(0, color = "grey10", background = "#F4F5F6")
term estimate std.error statistic p.value
(Intercept) 17.8893563 0.82998925 21.553720 0.000e+00
Normalised ENTRHU [-] 18.7555493 4.29131009 4.370588 1.273e-05
z [m] 1.2175538 0.11676109 10.427736 0.000e+00
skin friction API [kPa] 0.2475385 0.01849432 13.384571 0.000e+00
train_aug_mlr <- model_mlr %>%
  augment(data = train)

sqrt(sum((train_aug_mlr$`Blowcount [Blows/m]` - train_aug_mlr$.fitted)^2)/nrow(train_aug_mlr))
## [1] 20.32788
plot_mlr1 <- train_aug_mlr %>%
  ggplot(aes(`Normalised ENTRHU [-]`, `Blowcount [Blows/m]`)) +
  geom_point(alpha = 1/20) +
  geom_point(aes(y = .fitted), color = "tomato", alpha = 1) +
  expand_limits(x = 0, y = 0) +
  theme(panel.grid.minor = element_blank(),
        aspect.ratio = 1,
        plot.title = element_text(size = 9, face = "italic")) +
  labs(title = "Model fit (red) vs actual data.",
       x = "Normalised ENTRHU [-]",
       y = "Blowcount [Blows/m]")

plot_mlr2 <- train_aug_mlr %>%
  ggplot(aes(.fitted, `Blowcount [Blows/m]`)) +
  geom_point(alpha = 1/20) +
  expand_limits(x = 0, y = 0) +
  geom_abline(color = "grey20", size = 1) +
  coord_fixed(xlim = c(0, 150), ylim = c(0, 150)) +
  theme(panel.grid.minor = element_blank(),
        aspect.ratio = 1,
        plot.title = element_text(size = 9, face = "italic")) +
  labs(title = "Predicted vs actual Blowcount [Blows/m].",
       x = "Predicted Blowcount [Blows/m]",
       y = "Actual Blowcount [Blows/m]")

plot_mlr3 <- train_aug_mlr %>%
  ggplot(aes(`Normalised ENTRHU [-]`, .resid)) +
  geom_point(alpha = 1/20) +
  geom_hline(aes(yintercept = 0), color = "grey20", size = 1) +
  theme(panel.grid.minor = element_blank(),
        aspect.ratio = 1,
        plot.title = element_text(size = 9, face = "italic")) +
  labs(title = "Scatter plot of residuals.",
       x = "Normalised ENTRHU [-]",
       y = "Residuals")

plot_mlr4 <- train_aug_mlr %>%
  ggplot(aes(.resid)) +
  geom_histogram(binwidth = 2, alpha = 1/4) +
  geom_vline(aes(xintercept = 0), color = "grey20", size = 1) +
  theme(panel.grid.minor = element_blank(),
        aspect.ratio = 1,
        plot.title = element_text(size = 9, face = "italic")) +
  labs(title = "Histogram of residuals.",
       x = "Residuals",
       y = "Count") +
  coord_cartesian(xlim = c(-100, 100))

patch_mlr1 <- plot_mlr1 + plot_mlr2
patch_mlr2 <- plot_mlr3 + plot_mlr4

patch_mlr1 / patch_mlr2
_Results for Multiple Linear Regression._

Results for Multiple Linear Regression.

We see that, the Multiple Linear Regression model performs a bit better than the Simple Linear Regression model. Yet, we are far from capturing the trend of the data.

5.3 Natural splines

Since the relationship between blowcount and other parameters is obviously not perfectly linear, it’s in our interest to explore other models which account for nonlinearity. We explore Natural Splines, which model relationship of various degrees of freedom. These models are similar to Polynomial Regression models.

5.3.1 Second degree Natural Spline - one feature

We start with a Natural Spline with 2 degrees of freedom and one feature.

library(splines)
model_ns2 <- lm(`Blowcount [Blows/m]` ~ ns(`Normalised ENTRHU [-]`, 2), data = train)

model_ns2 %>%
  glance() %>%
kable(digits = 8,
      align = "r") %>%
     kable_styling(full_width = T, font_size = 11, position = "center") %>%
     row_spec(0, color = "grey10", background = "#F4F5F6")
r.squared adj.r.squared sigma statistic p.value df logLik AIC BIC deviance df.residual nobs
0.5254787 0.5252252 20.57754 2073.582 0 2 -16651.38 33310.77 33335.68 1585765 3745 3748
model_ns2 %>%
  tidy() %>%
kable(digits = 8,
      align = "r") %>%
     kable_styling(full_width = T, font_size = 11, position = "center") %>%
     row_spec(0, color = "grey10", background = "#F4F5F6")
term estimate std.error statistic p.value
(Intercept) 17.73742 0.8664459 20.471466 0
ns(Normalised ENTRHU [-], 2)1 116.28418 1.8555944 62.666809 0
ns(Normalised ENTRHU [-], 2)2 15.67978 2.0841856 7.523216 0
train_aug_ns2 <- model_ns2 %>%
  augment(data = train)

sqrt(sum((train_aug_ns2$`Blowcount [Blows/m]` - train_aug_ns2$.fitted)^2)/nrow(train_aug_ns2))
## [1] 20.56931
plot_ns21 <- train_aug_ns2 %>%
  ggplot(aes(`Normalised ENTRHU [-]`, `Blowcount [Blows/m]`)) +
  geom_point(alpha = 1/20) +
  geom_point(aes(y = .fitted), color = "tomato", alpha = 1) +
  expand_limits(x = 0, y = 0) +
  theme(panel.grid.minor = element_blank(),
        aspect.ratio = 1,
        plot.title = element_text(size = 9, face = "italic")) +
  labs(title = "Model fit (red) vs actual data.",
       x = "Normalised ENTRHU [-]",
       y = "Blowcount [Blows/m]")

plot_ns22 <- train_aug_ns2 %>%
  ggplot(aes(.fitted, `Blowcount [Blows/m]`)) +
  geom_point(alpha = 1/20) +
  expand_limits(x = 0, y = 0) +
  geom_abline(color = "grey20", size = 1) +
  coord_fixed(xlim = c(0, 150), ylim = c(0, 150)) +
  theme(panel.grid.minor = element_blank(),
        aspect.ratio = 1,
        plot.title = element_text(size = 9, face = "italic")) +
  labs(title = "Predicted vs actual Blowcount [Blows/m].",
       x = "Predicted Blowcount [Blows/m]",
       y = "Actual Blowcount [Blows/m]")

plot_ns23 <- train_aug_ns2 %>%
  ggplot(aes(`Normalised ENTRHU [-]`, .resid)) +
  geom_point(alpha = 1/20) +
  geom_hline(aes(yintercept = 0), color = "grey20", size = 1) +
  theme(panel.grid.minor = element_blank(),
        aspect.ratio = 1,
        plot.title = element_text(size = 9, face = "italic")) +
  labs(title = "Scatter plot of residuals.",
       x = "Normalised ENTRHU [-]",
       y = "Residuals")

plot_ns24 <- train_aug_ns2 %>%
  ggplot(aes(.resid)) +
  geom_histogram(binwidth = 2, alpha = 1/4) +
  geom_vline(aes(xintercept = 0), color = "grey20", size = 1) +
  theme(panel.grid.minor = element_blank(),
        aspect.ratio = 1,
        plot.title = element_text(size = 9, face = "italic")) +
  labs(title = "Histogram of residuals.",
       x = "Residuals",
       y = "Count") +
  coord_cartesian(xlim = c(-100, 100))

patch_ns21 <- plot_ns21 + plot_ns22
patch_ns22 <- plot_ns23 + plot_ns24

patch_ns21 / patch_ns22
_Results for Natural Spline with 2 degrees of freedom - one feature._

Results for Natural Spline with 2 degrees of freedom - one feature.

5.3.2 Second degree Natural Spline - multiple features

We explore the same model using three features.

model_mns2 <- lm(`Blowcount [Blows/m]` ~ ns(`Normalised ENTRHU [-]`, 2) + ns(`z [m]`, 2) + ns(`skin friction API [kPa]`, 2), data = train)

model_mns2 %>%
  glance() %>%
kable(digits = 8,
      align = "r") %>%
     kable_styling(full_width = T, font_size = 11, position = "center") %>%
     row_spec(0, color = "grey10", background = "#F4F5F6")
r.squared adj.r.squared sigma statistic p.value df logLik AIC BIC deviance df.residual nobs
0.6538748 0.6533197 17.58386 1177.871 0 6 -16060.13 32136.25 32186.08 1156688 3741 3748
model_mns2 %>%
  tidy() %>%
kable(digits = 8,
      align = "r") %>%
     kable_styling(full_width = T, font_size = 11, position = "center") %>%
     row_spec(0, color = "grey10", background = "#F4F5F6")
term estimate std.error statistic p.value
(Intercept) -3.479181 1.062089 -3.275789 0.00106328
ns(Normalised ENTRHU [-], 2)1 -4.445504 3.972912 -1.118954 0.26323175
ns(Normalised ENTRHU [-], 2)2 -35.723600 2.443284 -14.621142 0.00000000
ns(z [m], 2)1 60.878212 5.404193 11.264996 0.00000000
ns(z [m], 2)2 16.451251 2.789028 5.898560 0.00000000
ns(skin friction API [kPa], 2)1 110.762209 4.570665 24.233283 0.00000000
ns(skin friction API [kPa], 2)2 41.499418 3.439455 12.065695 0.00000000
train_aug_mns2 <- model_mns2 %>%
  augment(data = train)

sqrt(sum((train_aug_mns2$`Blowcount [Blows/m]` - train_aug_mns2$.fitted)^2)/nrow(train_aug_mns2))
## [1] 17.56743
plot_mns21 <- train_aug_mns2 %>%
  ggplot(aes(`Normalised ENTRHU [-]`, `Blowcount [Blows/m]`)) +
  geom_point(alpha = 1/20) +
  geom_point(aes(y = .fitted), color = "tomato", alpha = 1) +
  expand_limits(x = 0, y = 0) +
  theme(panel.grid.minor = element_blank(),
        aspect.ratio = 1,
        plot.title = element_text(size = 9, face = "italic")) +
  labs(title = "Model fit (red) vs actual data.",
       x = "Normalised ENTRHU [-]",
       y = "Blowcount [Blows/m]")

plot_mns22 <- train_aug_mns2 %>%
  ggplot(aes(.fitted, `Blowcount [Blows/m]`)) +
  geom_point(alpha = 1/20) +
  expand_limits(x = 0, y = 0) +
  geom_abline(color = "grey20", size = 1) +
  coord_fixed(xlim = c(0, 150), ylim = c(0, 150)) +
  theme(panel.grid.minor = element_blank(),
        aspect.ratio = 1,
        plot.title = element_text(size = 9, face = "italic")) +
  labs(title = "Predicted vs actual Blowcount [Blows/m].",
       x = "Predicted Blowcount [Blows/m]",
       y = "Actual Blowcount [Blows/m]")

plot_mns23 <- train_aug_mns2 %>%
  ggplot(aes(`Normalised ENTRHU [-]`, .resid)) +
  geom_point(alpha = 1/20) +
  geom_hline(aes(yintercept = 0), color = "grey20", size = 1) +
  theme(panel.grid.minor = element_blank(),
        aspect.ratio = 1,
        plot.title = element_text(size = 9, face = "italic")) +
  labs(title = "Scatter plot of residuals.",
       x = "Normalised ENTRHU [-]",
       y = "Residuals")

plot_mns24 <- train_aug_mns2 %>%
  ggplot(aes(.resid)) +
  geom_histogram(binwidth = 2, alpha = 1/4) +
  geom_vline(aes(xintercept = 0), color = "grey20", size = 1) +
  theme(panel.grid.minor = element_blank(),
        aspect.ratio = 1,
        plot.title = element_text(size = 9, face = "italic")) +
  labs(title = "Histogram of residuals.",
       x = "Residuals",
       y = "Count") +
  coord_cartesian(xlim = c(-100, 100))

patch_mns21 <- plot_mns21 + plot_mns22
patch_mns22 <- plot_mns23 + plot_mns24

patch_mns21 / patch_mns22
_Results for Natural Spline with 2 degrees of freedom - multiple features._

Results for Natural Spline with 2 degrees of freedom - multiple features.

This model is already an improvement from the previous ones, achieving an adj.r.squared of 0.67 and a RMSE around 17.1. The residuals histogram seems too look more like following a normal distribution and it’s also narrower, indicating smaller residual values.

5.3.3 Natural Spline of higher degrees of freedom

We expect Natural Spline models with higher degrees of freedom to perform better, considering their higher flexibility. To see how increasing the degrees of freedom impacts the model performance, we explore models with degrees of freedom ranging between 2 and 8, and compare them.

models_ns <- tibble(spline_df = 2:8) %>%
        mutate(lm_model = map(spline_df, ~ lm(`Blowcount [Blows/m]` ~ ns(`Normalised ENTRHU [-]`, df = .), data = train)))

augmented_unnested <- models_ns %>%
        mutate(augmented = map(lm_model, augment, data = train)) %>%
        unnest(augmented)

p1 <- augmented_unnested %>%
  ggplot(aes(`Normalised ENTRHU [-]`, `Blowcount [Blows/m]`)) +
  geom_point(alpha = 1/100) +
  geom_line(aes(y = .fitted, colour = factor(spline_df)), alpha = 1, size = 1.5) +
  expand_limits(x = 0, y = 0) +
  theme(panel.grid.minor = element_blank(),
        aspect.ratio = 1,
        plot.title = element_text(size = 9, face = "italic")) +
  labs(title = "Model fit vs actual data.",
       x = "Normalised ENTRHU [-]",
       y = "Blowcount [Blows/m]",
       colour = "Degrees of freedom") +
  theme(legend.position = "bottom") +
  guides(color = guide_legend(title.position = "top"))

glanced_models <- models_ns %>%
  mutate(glanced = map(lm_model, glance, data = train)) %>%
  unnest(glanced)

p2 <- glanced_models %>%
  ggplot() +
  geom_segment(aes(x = spline_df, xend = spline_df, y = 0.5, yend = adj.r.squared), size = 2, alpha = 1/2) +
  geom_point(data = glanced_models, aes(spline_df, adj.r.squared, colour = adj.r.squared), size = 5) +
  scale_color_distiller(palette = "Spectral", limits = c(0.52, 0.54)) +
  expand_limits(x = 2, y = .5) +
  theme(panel.grid.minor = element_blank(),
        aspect.ratio = 1,
        plot.title = element_text(size = 9, face = "italic")) +
  scale_x_continuous(breaks = c(2:10)) +
  labs(title = "Models comparison by adjusted R-squared value.",
       x = "Number of degrees of freedom",
       y = "Adjusted R-squared", 
       colour = "Adjusted R-squared") +
  theme(legend.position = "bottom",
        legend.key.width = unit(0.7, "cm")) +
  guides(color = guide_legend(title.position = "top"))

p1 + p2
_Performance comparison for Natural Splines with degrees of freedom between 2 and 8._

Performance comparison for Natural Splines with degrees of freedom between 2 and 8.

It looks like there is no significant improvement in model’s performance after we apply 4 degrees of freedom. Thus, we continue with a Natural Spline model with 4 degrees of freedom and by using multiple features.

model_mns4 <- lm(`Blowcount [Blows/m]` ~ ns(`Normalised ENTRHU [-]`, 4) + ns(`z [m]`, 4) + ns(`skin friction API [kPa]`, 4), data = train)

model_mns4 %>%
  glance() %>%
kable(digits = 8,
      align = "r") %>%
     kable_styling(full_width = T, font_size = 11, position = "center") %>%
     row_spec(0, color = "grey10", background = "#F4F5F6")
r.squared adj.r.squared sigma statistic p.value df logLik AIC BIC deviance df.residual nobs
0.6772196 0.6761826 16.99416 653.0279 0 12 -15929.27 31886.53 31973.74 1078674 3735 3748
model_mns4 %>%
  tidy() %>%
kable(digits = 8,
      align = "r") %>%
     kable_styling(full_width = T, font_size = 11, position = "center") %>%
     row_spec(0, color = "grey10", background = "#F4F5F6")
term estimate std.error statistic p.value
(Intercept) -8.548995 1.833634 -4.662323 0.00000324
ns(Normalised ENTRHU [-], 4)1 11.885604 2.500446 4.753394 0.00000208
ns(Normalised ENTRHU [-], 4)2 -21.529732 2.412246 -8.925182 0.00000000
ns(Normalised ENTRHU [-], 4)3 -10.065279 4.795385 -2.098951 0.03588818
ns(Normalised ENTRHU [-], 4)4 8.817843 4.138711 2.130577 0.03318915
ns(z [m], 4)1 37.744106 3.378004 11.173493 0.00000000
ns(z [m], 4)2 34.078242 3.019748 11.285128 0.00000000
ns(z [m], 4)3 83.329878 7.092886 11.748374 0.00000000
ns(z [m], 4)4 30.869633 3.730955 8.273922 0.00000000
ns(skin friction API [kPa], 4)1 55.549457 2.725780 20.379291 0.00000000
ns(skin friction API [kPa], 4)2 45.586043 2.814827 16.194971 0.00000000
ns(skin friction API [kPa], 4)3 84.954922 6.100541 13.925801 0.00000000
ns(skin friction API [kPa], 4)4 68.072852 4.307986 15.801548 0.00000000
train_aug_mns4 <- model_mns4 %>%
  augment(data = train)

sqrt(sum((train_aug_mns4$`Blowcount [Blows/m]` - train_aug_mns4$.fitted)^2)/nrow(train_aug_mns4))
## [1] 16.96467
plot_mns41 <- train_aug_mns4 %>%
  ggplot(aes(`Normalised ENTRHU [-]`, `Blowcount [Blows/m]`)) +
  geom_point(alpha = 1/20) +
  geom_point(aes(y = .fitted), color = "tomato", alpha = 1) +
  expand_limits(x = 0, y = 0) +
  theme(panel.grid.minor = element_blank(),
        aspect.ratio = 1,
        plot.title = element_text(size = 9, face = "italic")) +
  labs(title = "Model fit (red) vs actual data.",
       x = "Normalised ENTRHU [-]",
       y = "Blowcount [Blows/m]")

plot_mns42 <- train_aug_mns4 %>%
  ggplot(aes(.fitted, `Blowcount [Blows/m]`)) +
  geom_point(alpha = 1/20) +
  expand_limits(x = 0, y = 0) +
  geom_abline(color = "grey20", size = 1) +
  coord_fixed(xlim = c(0, 150), ylim = c(0, 150)) +
  theme(panel.grid.minor = element_blank(),
        aspect.ratio = 1,
        plot.title = element_text(size = 9, face = "italic")) +
  labs(title = "Predicted vs actual Blowcount [Blows/m].",
       x = "Predicted Blowcount [Blows/m]",
       y = "Actual Blowcount [Blows/m]")

plot_mns43 <- train_aug_mns4 %>%
  ggplot(aes(`Normalised ENTRHU [-]`, .resid)) +
  geom_point(alpha = 1/20) +
  geom_hline(aes(yintercept = 0), color = "grey20", size = 1) +
  theme(panel.grid.minor = element_blank(),
        aspect.ratio = 1,
        plot.title = element_text(size = 9, face = "italic")) +
  labs(title = "Scatter plot of residuals.",
       x = "Normalised ENTRHU [-]",
       y = "Residuals")

plot_mns44 <- train_aug_mns4 %>%
  ggplot(aes(.resid)) +
  geom_histogram(binwidth = 2, alpha = 1/4) +
  geom_vline(aes(xintercept = 0), color = "grey20", size = 1) +
  theme(panel.grid.minor = element_blank(),
        aspect.ratio = 1,
        plot.title = element_text(size = 9, face = "italic")) +
  labs(title = "Histogram of residuals.",
       x = "Residuals",
       y = "Count") +
  coord_cartesian(xlim = c(-100, 100))

patch_mns41 <- plot_mns41 + plot_mns42
patch_mns42 <- plot_mns43 + plot_mns44

patch_mns41 / patch_mns42
_Results for Natural Spline with 4 degrees of freedom - multiple features._

Results for Natural Spline with 4 degrees of freedom - multiple features.

5.3.4 Validate the best model against the test data

The last model we proposed, having an adj.r.squared of 0.67 and a RMSE around 16.9, seems to be the best-performing model so far. We validate it against the test data. Note that this is indeed the reason we created this dataset, separating it from the initial training data.

test$predictions <- predict(model_mns4, newdata = test)
sqrt(sum((test$'Blowcount [Blows/m]' - test$predictions)^2)/nrow(test))
## [1] 15.26106
plot_t1 <- test %>%
  ggplot(aes(`Normalised ENTRHU [-]`, `Blowcount [Blows/m]`)) +
  geom_point(alpha = 1/20) +
  geom_point(data = test, aes(`Normalised ENTRHU [-]`, predictions), color = "tomato", alpha = 1) +
  expand_limits(x = 0, y = 0) +
  theme(panel.grid.minor = element_blank(),
        aspect.ratio = 1,
        plot.title = element_text(size = 9, face = "italic")) +
  labs(title = "Model fit (red) vs actual data.",
       x = "Normalised ENTRHU [-]",
       y = "Blowcount [Blows/m]")

plot_t2 <- test %>%
  ggplot(aes(predictions, `Blowcount [Blows/m]`)) +
  geom_point(alpha = 1/20) +
  expand_limits(x = 0, y = 0) +
  geom_abline(color = "grey20", size = 1) +
  coord_fixed(xlim = c(0, 150), ylim = c(0, 150)) +
  theme(panel.grid.minor = element_blank(),
        aspect.ratio = 1,
        plot.title = element_text(size = 9, face = "italic")) +
  labs(title = "Predicted vs actual Blowcount [Blows/m].",
       x = "Predicted Blowcount [Blows/m]",
       y = "Actual Blowcount [Blows/m]")

plot_t3 <- test %>%
  ggplot(aes(`Normalised ENTRHU [-]`, predictions - `Blowcount [Blows/m]`)) +
  geom_point(alpha = 1/20) +
  geom_hline(aes(yintercept = 0), color = "grey20", size = 1) +
  theme(panel.grid.minor = element_blank(),
        aspect.ratio = 1,
        plot.title = element_text(size = 9, face = "italic")) +
  labs(title = "Scatter plot of residuals.",
       x = "Normalised ENTRHU [-]",
       y = "Residuals")

plot_t4 <- test %>%
  ggplot(aes(predictions - `Blowcount [Blows/m]`)) +
  geom_histogram(binwidth = 2, alpha = 1/4) +
  geom_vline(aes(xintercept = 0), color = "grey20", size = 1) +
  theme(panel.grid.minor = element_blank(),
        aspect.ratio = 1,
        plot.title = element_text(size = 9, face = "italic")) +
  labs(title = "Histogram of residuals.",
       x = "Residuals",
       y = "Count") +
  coord_cartesian(xlim = c(-100, 100))

patch_t1 <- plot_t1 + plot_t2
patch_t2 <- plot_t3 + plot_t4

patch_t1 / patch_t2
_Results for Natural Spline with 4 degrees of freedom - multiple features - applied to the `test` data._

Results for Natural Spline with 4 degrees of freedom - multiple features - applied to the test data.

The RMSE value of 15.2 and the above plots suggest that the model performs well and consistently against the test dataset. Let’s plot predicted vs actual Blowcount [Blows/m] for the 18 piles from test.

test %>%
  ggplot(aes(`z [m]`, `Blowcount [Blows/m]`)) +
  geom_point(alpha = 1/5) +
  geom_step(data = test, aes(`z [m]`, predictions, group = `Location ID`),
            size = 1,
            alpha = 1,
            colour = "tomato") +
  scale_x_reverse() +
  scale_y_continuous(position = "right") +
  coord_flip(xlim = c(0, 30), ylim = c(0, 150)) +
  theme(panel.grid.minor = element_blank(),
        strip.background = element_blank(),
        strip.text = element_text(colour = "grey20"),
        strip.placement = "outside") +
  facet_wrap(~`Location ID`, ncol = 6)
_Predicted (red stepped line) vs actual (grey dots) `Blowcount [Blows/m]` for `test` piles._

Predicted (red stepped line) vs actual (grey dots) Blowcount [Blows/m] for test piles.

Generally speaking, it looks like the predicted Blowcount [Blows/m] follow the actual values very well. Nonetheless, this is not the case for every Location ID. In few cases, the model considerably overestimates or underestimates the actual data. Further model improvements could address this issue.

The following table shows the relative error in predicting the total number of blows (Number of blows) for each pile.

test_error <- test %>%
  group_by(`Location ID`) %>%
  summarise(actual_blows = sum(`Blowcount [Blows/m]`),
            predicted_blows = sum(predictions),
            error = (predicted_blows - actual_blows)/actual_blows,
            abs_error = abs(error)) %>%
  arrange(desc(abs_error)) %>%
  mutate(error = round(error, 3),
         abs_error = round(abs_error, 3))

kable(top_n(test_error, 100),
      digits = 3,
      align = "r") %>%
  kable_styling(full_width = T, font_size = 11, position = "center") %>%
  row_spec(0, color = "grey10", background = "#F4F5F6")
Location ID actual_blows predicted_blows error abs_error
DA 1926 2567.084 0.333 0.333
CP 3626 2971.899 -0.180 0.180
DD 2184 2562.608 0.173 0.173
BV 2946 3309.033 0.123 0.123
AN 3066 3432.953 0.120 0.120
BS 3958 3485.130 -0.119 0.119
CT 3420 3023.141 -0.116 0.116
DS 3326 2947.367 -0.114 0.114
BM 2262 2517.060 0.113 0.113
CL 2834 3112.687 0.098 0.098
BT 3782 3434.316 -0.092 0.092
CF 3604 3837.019 0.065 0.065
DK 3514 3736.964 0.063 0.063
CA 2594 2707.734 0.044 0.044
AY 3056 2951.616 -0.034 0.034
EG 3570 3454.040 -0.032 0.032
DN 2940 2987.781 0.016 0.016
AS 3116 3129.253 0.004 0.004
library(scales)
test_error %>%
  ggplot(aes(error, `Location ID`)) +
  geom_segment(aes(x = 0, xend = error, y = `Location ID`, yend = `Location ID`), size = 2, alpha = 1/2) +
  geom_point(aes(colour = abs_error), size = 5) +
  scale_colour_distiller(palette = "Spectral", limits = c(0, 0.4)) +
  theme(panel.grid.minor = element_blank(),
        legend.key.height = unit(2.25, "cm")) +
  labs(x = "Error",
       y = "",
       colour = "Error") +
  geom_vline(xintercept = 0, color = "grey20", size = 1) +
  scale_x_continuous(labels = scales::percent_format(accuracy = .1)) +
  coord_cartesian(xlim = c(-0.2, 0.4))
_Relative error in predicting the total number of blows for `test` piles._

Relative error in predicting the total number of blows for test piles.

We see that the relative error in predicting the total number of blows for each pile typically lies between 0% and 13%. Only one location (location DA) shows a much higher error, having an overestimation of around 33%. The mean absolute error for all locations is around 10%.

test_error %>%
  summarise(mean_error = mean(abs_error))
## # A tibble: 1 x 1
##   mean_error
##        <dbl>
## 1      0.102

5.4 Nonlinear Regression Models

In this section we investigate models that are inherently nonlinear in nature. The advantage of using these models rely on the fact that we don’t need to know or specify the nonlinearity of the data prior to model training. Among others, we consider models like neural networks, support vector machines, and random forests. The analysis is done within the framework of the caret package, which is a comprehensive and incredibly powerful machine learning tool for R. It provides a uniform interface to build predictive models and, among other, it contains tools/functions for data splitting, pre-processing, feature selection model tuning using resampling, variable importance estimation, etc. To date, 238 models are available within the caret package.

Note that we are not going into the details of the caret package. Also, not much elaboration is provided on the used models. For more on these topics please se the caret package documentation here and here.

5.4.1 Preparatory work

Before we continue with model training, we need to prepare the scene a bit by performing the following steps.

  • Data splitting - we use the data splitting specified in section 5.1 (to be consistent with the previous models).
  • Parallel computing - to increase the speed of computing (some of the models require considerable computing capabilities).
library(doParallel)
detectCores()
getDoParWorkers()
cl <- makePSOCKcluster(10)
registerDoParallel(cl)
  • Resampling - we estimate the model performance by a technique named k-fold cross-validation. In our case, we use a 10-fold cross-validation technique, repeated 5 times. The basic idea of a k-fold cross-validation consists in using a subset of samples to fit a model and the remaining samples are used to estimate the efficacy of the model. Then, this process is repeated multiple times. This resampling process is defined through trainControl().
library(caret)
control_object <- trainControl(method = "repeatedcv",
                               repeats = 5,
                               number = 10)

5.4.2 Training models

We train the models here and then we discuss on their performance.

5.4.2.1 Boosted Trees

set.seed(111)

gbm <- train(`Blowcount [Blows/m]` ~ `Normalised ENTRHU [-]` + `z [m]` + `skin friction API [kPa]`,
             data = train,
             method = "gbm",
             tuneGrid = expand.grid(interaction.depth = seq(1, 7, by = 2),
                                    n.trees = seq(100, 1000, by = 50),
                                    shrinkage = c(0.01, 0.1),
                                    n.minobsinnode = c(2, 20)),
             verbose = FALSE,
             trControl = control_object)

5.4.2.2 Support Vector Machines

set.seed(111)

svm <- train(`Blowcount [Blows/m]` ~ `Normalised ENTRHU [-]` + `z [m]` + `skin friction API [kPa]`,
             data = train,
             method = "svmRadial",
             tuneLength = 15,
             preProc = c("center", "scale"),
             trControl = control_object)

5.4.2.3 Neural Networks

set.seed(111)

nnet <- train(`Blowcount [Blows/m]` ~ `Normalised ENTRHU [-]` + `z [m]` + `skin friction API [kPa]`,
              data = train,
              method = "avNNet",
              tuneGrid = expand.grid(decay = c(0.001, 0.01, 0.1),
                                     size = seq(1, 27, by = 2),
                                     bag = FALSE),
              preProc = c("center", "scale"),
              linout = TRUE,
              trace = FALSE,
              maxit = 1000,
              trControl = control_object)

5.4.2.4 Random Forests

set.seed(111)

rf <- train(`Blowcount [Blows/m]` ~ `Normalised ENTRHU [-]` + `z [m]` + `skin friction API [kPa]`,
            data = train,
            method = "rf",
            tuneLength = 10,
            ntrees = 1000,
            importance = TRUE,
            trControl = control_object)
## note: only 2 unique complexity parameters in default grid. Truncating the grid to 2 .

5.4.2.5 Cubist

set.seed(111)

cb <- train(`Blowcount [Blows/m]` ~ `Normalised ENTRHU [-]` + `z [m]` + `skin friction API [kPa]`,
            data = train,
            method = "cubist",
            tuneGrid = expand.grid(.committees = c(1, 5, 10, 50, 75, 100),
                                   .neighbors = c(0, 1, 3, 5, 7, 9)),
            trControl = control_object)

Stop parallel computing (we don’t need it anymore).

stopCluster(cl)

5.4.3 Model performance comparison

We put the models together and compare their performance in terms of RMSE.

all_models <- resamples(list("Boosted Trees" = gbm,
                             "Support Vector Machines" = svm,
                             "Neural Networks" = nnet,
                             "Random Forests" = rf,
                             "Cubist" = cb))

gbm_RMSE <- all_models$values %>%
  select(Resample, `Boosted Trees~RMSE`) %>%
  rename(RMSE = `Boosted Trees~RMSE`) %>%
  mutate(Model = "Boosted Trees")

svm_RMSE <- all_models$values %>%
  select(Resample, `Support Vector Machines~RMSE`) %>%
  rename(RMSE = `Support Vector Machines~RMSE`) %>%
  mutate(Model = "Support Vector Machines")

nnet_RMSE <- all_models$values %>%
  select(Resample, `Neural Networks~RMSE`) %>%
  rename(RMSE = `Neural Networks~RMSE`) %>%
  mutate(Model = "Neural Networks")

rf_RMSE <- all_models$values %>%
  select(Resample, `Random Forests~RMSE`) %>%
  rename(RMSE = `Random Forests~RMSE`) %>%
  mutate(Model = "Random Forests")

cb_RMSE <- all_models$values %>%
  select(Resample, `Cubist~RMSE`) %>%
  rename(RMSE = `Cubist~RMSE`) %>%
  mutate(Model = "Cubist")

all_RMSE <- bind_rows(gbm_RMSE, svm_RMSE, nnet_RMSE, rf_RMSE, cb_RMSE)

kable(all_RMSE,
      digits = 3,
      caption = "RMSE values for all models.",
      align = "r") %>%
  kable_styling(full_width = T, font_size = 11, position = "center") %>%
  row_spec(0, color = "grey10", background = "#F4F5F6") %>%
  scroll_box(height = "300px")
RMSE values for all models.
Resample RMSE Model
Fold01.Rep1 16.099 Boosted Trees
Fold01.Rep2 16.893 Boosted Trees
Fold01.Rep3 16.585 Boosted Trees
Fold01.Rep4 17.713 Boosted Trees
Fold01.Rep5 16.167 Boosted Trees
Fold02.Rep1 15.602 Boosted Trees
Fold02.Rep2 14.386 Boosted Trees
Fold02.Rep3 16.885 Boosted Trees
Fold02.Rep4 16.177 Boosted Trees
Fold02.Rep5 16.844 Boosted Trees
Fold03.Rep1 15.678 Boosted Trees
Fold03.Rep2 15.560 Boosted Trees
Fold03.Rep3 16.715 Boosted Trees
Fold03.Rep4 16.984 Boosted Trees
Fold03.Rep5 16.601 Boosted Trees
Fold04.Rep1 17.007 Boosted Trees
Fold04.Rep2 16.288 Boosted Trees
Fold04.Rep3 15.689 Boosted Trees
Fold04.Rep4 16.703 Boosted Trees
Fold04.Rep5 16.022 Boosted Trees
Fold05.Rep1 15.156 Boosted Trees
Fold05.Rep2 16.037 Boosted Trees
Fold05.Rep3 13.842 Boosted Trees
Fold05.Rep4 14.720 Boosted Trees
Fold05.Rep5 15.199 Boosted Trees
Fold06.Rep1 14.469 Boosted Trees
Fold06.Rep2 16.216 Boosted Trees
Fold06.Rep3 15.422 Boosted Trees
Fold06.Rep4 15.421 Boosted Trees
Fold06.Rep5 15.657 Boosted Trees
Fold07.Rep1 17.102 Boosted Trees
Fold07.Rep2 14.901 Boosted Trees
Fold07.Rep3 16.116 Boosted Trees
Fold07.Rep4 15.398 Boosted Trees
Fold07.Rep5 15.292 Boosted Trees
Fold08.Rep1 17.053 Boosted Trees
Fold08.Rep2 18.169 Boosted Trees
Fold08.Rep3 17.881 Boosted Trees
Fold08.Rep4 15.278 Boosted Trees
Fold08.Rep5 17.015 Boosted Trees
Fold09.Rep1 15.866 Boosted Trees
Fold09.Rep2 15.920 Boosted Trees
Fold09.Rep3 15.409 Boosted Trees
Fold09.Rep4 15.598 Boosted Trees
Fold09.Rep5 15.215 Boosted Trees
Fold10.Rep1 16.121 Boosted Trees
Fold10.Rep2 15.896 Boosted Trees
Fold10.Rep3 15.794 Boosted Trees
Fold10.Rep4 16.319 Boosted Trees
Fold10.Rep5 16.050 Boosted Trees
Fold01.Rep1 16.528 Support Vector Machines
Fold01.Rep2 17.512 Support Vector Machines
Fold01.Rep3 17.377 Support Vector Machines
Fold01.Rep4 17.636 Support Vector Machines
Fold01.Rep5 16.696 Support Vector Machines
Fold02.Rep1 15.211 Support Vector Machines
Fold02.Rep2 14.638 Support Vector Machines
Fold02.Rep3 17.494 Support Vector Machines
Fold02.Rep4 16.876 Support Vector Machines
Fold02.Rep5 17.053 Support Vector Machines
Fold03.Rep1 16.236 Support Vector Machines
Fold03.Rep2 15.947 Support Vector Machines
Fold03.Rep3 16.766 Support Vector Machines
Fold03.Rep4 17.163 Support Vector Machines
Fold03.Rep5 16.893 Support Vector Machines
Fold04.Rep1 17.762 Support Vector Machines
Fold04.Rep2 16.280 Support Vector Machines
Fold04.Rep3 15.758 Support Vector Machines
Fold04.Rep4 17.225 Support Vector Machines
Fold04.Rep5 16.387 Support Vector Machines
Fold05.Rep1 15.095 Support Vector Machines
Fold05.Rep2 16.318 Support Vector Machines
Fold05.Rep3 14.439 Support Vector Machines
Fold05.Rep4 15.100 Support Vector Machines
Fold05.Rep5 15.536 Support Vector Machines
Fold06.Rep1 14.680 Support Vector Machines
Fold06.Rep2 16.166 Support Vector Machines
Fold06.Rep3 15.621 Support Vector Machines
Fold06.Rep4 15.561 Support Vector Machines
Fold06.Rep5 16.468 Support Vector Machines
Fold07.Rep1 17.722 Support Vector Machines
Fold07.Rep2 15.570 Support Vector Machines
Fold07.Rep3 16.511 Support Vector Machines
Fold07.Rep4 15.512 Support Vector Machines
Fold07.Rep5 15.492 Support Vector Machines
Fold08.Rep1 17.612 Support Vector Machines
Fold08.Rep2 18.556 Support Vector Machines
Fold08.Rep3 18.004 Support Vector Machines
Fold08.Rep4 15.315 Support Vector Machines
Fold08.Rep5 17.318 Support Vector Machines
Fold09.Rep1 16.165 Support Vector Machines
Fold09.Rep2 15.728 Support Vector Machines
Fold09.Rep3 15.348 Support Vector Machines
Fold09.Rep4 15.760 Support Vector Machines
Fold09.Rep5 14.962 Support Vector Machines
Fold10.Rep1 16.286 Support Vector Machines
Fold10.Rep2 16.657 Support Vector Machines
Fold10.Rep3 16.292 Support Vector Machines
Fold10.Rep4 17.151 Support Vector Machines
Fold10.Rep5 16.732 Support Vector Machines
Fold01.Rep1 15.736 Neural Networks
Fold01.Rep2 17.208 Neural Networks
Fold01.Rep3 16.718 Neural Networks
Fold01.Rep4 17.040 Neural Networks
Fold01.Rep5 16.164 Neural Networks
Fold02.Rep1 15.268 Neural Networks
Fold02.Rep2 14.670 Neural Networks
Fold02.Rep3 17.005 Neural Networks
Fold02.Rep4 16.266 Neural Networks
Fold02.Rep5 17.155 Neural Networks
Fold03.Rep1 15.738 Neural Networks
Fold03.Rep2 15.997 Neural Networks
Fold03.Rep3 16.470 Neural Networks
Fold03.Rep4 16.570 Neural Networks
Fold03.Rep5 16.107 Neural Networks
Fold04.Rep1 17.436 Neural Networks
Fold04.Rep2 16.072 Neural Networks
Fold04.Rep3 15.985 Neural Networks
Fold04.Rep4 16.816 Neural Networks
Fold04.Rep5 15.538 Neural Networks
Fold05.Rep1 15.171 Neural Networks
Fold05.Rep2 16.279 Neural Networks
Fold05.Rep3 14.288 Neural Networks
Fold05.Rep4 15.002 Neural Networks
Fold05.Rep5 14.981 Neural Networks
Fold06.Rep1 14.168 Neural Networks
Fold06.Rep2 15.676 Neural Networks
Fold06.Rep3 15.463 Neural Networks
Fold06.Rep4 15.858 Neural Networks
Fold06.Rep5 15.901 Neural Networks
Fold07.Rep1 16.921 Neural Networks
Fold07.Rep2 15.037 Neural Networks
Fold07.Rep3 16.030 Neural Networks
Fold07.Rep4 15.312 Neural Networks
Fold07.Rep5 15.721 Neural Networks
Fold08.Rep1 17.165 Neural Networks
Fold08.Rep2 17.783 Neural Networks
Fold08.Rep3 17.704 Neural Networks
Fold08.Rep4 15.366 Neural Networks
Fold08.Rep5 16.683 Neural Networks
Fold09.Rep1 15.754 Neural Networks
Fold09.Rep2 15.470 Neural Networks
Fold09.Rep3 14.933 Neural Networks
Fold09.Rep4 16.166 Neural Networks
Fold09.Rep5 15.534 Neural Networks
Fold10.Rep1 16.380 Neural Networks
Fold10.Rep2 16.187 Neural Networks
Fold10.Rep3 15.924 Neural Networks
Fold10.Rep4 16.634 Neural Networks
Fold10.Rep5 16.517 Neural Networks
Fold01.Rep1 15.365 Random Forests
Fold01.Rep2 16.292 Random Forests
Fold01.Rep3 15.618 Random Forests
Fold01.Rep4 16.994 Random Forests
Fold01.Rep5 15.255 Random Forests
Fold02.Rep1 15.714 Random Forests
Fold02.Rep2 14.688 Random Forests
Fold02.Rep3 16.411 Random Forests
Fold02.Rep4 15.962 Random Forests
Fold02.Rep5 16.036 Random Forests
Fold03.Rep1 15.312 Random Forests
Fold03.Rep2 14.772 Random Forests
Fold03.Rep3 16.543 Random Forests
Fold03.Rep4 16.033 Random Forests
Fold03.Rep5 15.624 Random Forests
Fold04.Rep1 16.148 Random Forests
Fold04.Rep2 16.332 Random Forests
Fold04.Rep3 14.804 Random Forests
Fold04.Rep4 16.231 Random Forests
Fold04.Rep5 15.388 Random Forests
Fold05.Rep1 14.062 Random Forests
Fold05.Rep2 15.585 Random Forests
Fold05.Rep3 13.019 Random Forests
Fold05.Rep4 13.993 Random Forests
Fold05.Rep5 14.575 Random Forests
Fold06.Rep1 13.792 Random Forests
Fold06.Rep2 16.092 Random Forests
Fold06.Rep3 14.980 Random Forests
Fold06.Rep4 14.497 Random Forests
Fold06.Rep5 14.712 Random Forests
Fold07.Rep1 16.143 Random Forests
Fold07.Rep2 14.246 Random Forests
Fold07.Rep3 15.592 Random Forests
Fold07.Rep4 14.521 Random Forests
Fold07.Rep5 15.323 Random Forests
Fold08.Rep1 16.371 Random Forests
Fold08.Rep2 16.933 Random Forests
Fold08.Rep3 17.364 Random Forests
Fold08.Rep4 14.776 Random Forests
Fold08.Rep5 16.323 Random Forests
Fold09.Rep1 14.631 Random Forests
Fold09.Rep2 15.350 Random Forests
Fold09.Rep3 14.735 Random Forests
Fold09.Rep4 15.857 Random Forests
Fold09.Rep5 14.345 Random Forests
Fold10.Rep1 15.068 Random Forests
Fold10.Rep2 14.500 Random Forests
Fold10.Rep3 15.366 Random Forests
Fold10.Rep4 15.519 Random Forests
Fold10.Rep5 15.448 Random Forests
Fold01.Rep1 15.883 Cubist
Fold01.Rep2 16.848 Cubist
Fold01.Rep3 16.438 Cubist
Fold01.Rep4 17.456 Cubist
Fold01.Rep5 16.010 Cubist
Fold02.Rep1 15.574 Cubist
Fold02.Rep2 14.889 Cubist
Fold02.Rep3 16.890 Cubist
Fold02.Rep4 16.065 Cubist
Fold02.Rep5 17.243 Cubist
Fold03.Rep1 15.856 Cubist
Fold03.Rep2 15.958 Cubist
Fold03.Rep3 16.510 Cubist
Fold03.Rep4 16.660 Cubist
Fold03.Rep5 15.962 Cubist
Fold04.Rep1 17.266 Cubist
Fold04.Rep2 16.067 Cubist
Fold04.Rep3 15.655 Cubist
Fold04.Rep4 16.260 Cubist
Fold04.Rep5 15.647 Cubist
Fold05.Rep1 14.726 Cubist
Fold05.Rep2 16.052 Cubist
Fold05.Rep3 13.820 Cubist
Fold05.Rep4 14.646 Cubist
Fold05.Rep5 15.088 Cubist
Fold06.Rep1 14.632 Cubist
Fold06.Rep2 15.992 Cubist
Fold06.Rep3 15.044 Cubist
Fold06.Rep4 15.200 Cubist
Fold06.Rep5 15.592 Cubist
Fold07.Rep1 16.871 Cubist
Fold07.Rep2 14.986 Cubist
Fold07.Rep3 16.169 Cubist
Fold07.Rep4 15.456 Cubist
Fold07.Rep5 15.695 Cubist
Fold08.Rep1 17.076 Cubist
Fold08.Rep2 17.512 Cubist
Fold08.Rep3 17.701 Cubist
Fold08.Rep4 15.363 Cubist
Fold08.Rep5 17.108 Cubist
Fold09.Rep1 15.283 Cubist
Fold09.Rep2 15.736 Cubist
Fold09.Rep3 15.292 Cubist
Fold09.Rep4 15.804 Cubist
Fold09.Rep5 14.847 Cubist
Fold10.Rep1 15.642 Cubist
Fold10.Rep2 15.590 Cubist
Fold10.Rep3 16.190 Cubist
Fold10.Rep4 16.659 Cubist
Fold10.Rep5 15.971 Cubist

The above table contains the RMSE values for the resampling results for all models. A plot of these data is shown in the following.

median_RMSE <- all_RMSE %>%
  group_by(Model) %>%
  summarise(`median RMSE` = median(RMSE))

all_RMSE %>%
  ggplot(aes(RMSE, fct_reorder(Model, RMSE, median))) +
  geom_point(aes(fill = RMSE), size = 5, shape = 21, colour = "grey40") +
  scale_fill_distiller(palette = "Spectral") +
  labs(y = "") +
  theme(panel.grid.minor = element_blank(),
        legend.position = "none") +
  geom_point(data = median_RMSE, aes(`median RMSE`, Model), size = 1, colour = "grey20", shape = "|", stroke = 10)
_`RMSE` values for the resampling results for all models._

RMSE values for the resampling results for all models.

5.4.4 Apply the best model to the test data

We validate the best model (Random Forests, choosed based on the median value of RMSE) by checking its performance against the test data. We get a RMSE value of around 13.5, which is a better value compared to previous less-complex models.

test$predictions <- predict(rf, newdata = test)
sqrt(sum((test$'Blowcount [Blows/m]' - test$predictions)^2)/nrow(test))
## [1] 13.57531
plot_rf1 <- test %>%
  ggplot(aes(`Normalised ENTRHU [-]`, `Blowcount [Blows/m]`)) +
  geom_point(alpha = 1/20) +
  geom_point(data = test, aes(`Normalised ENTRHU [-]`, predictions), color = "tomato", alpha = 1) +
  expand_limits(x = 0, y = 0) +
  theme(panel.grid.minor = element_blank(),
        aspect.ratio = 1,
        plot.title = element_text(size = 9, face = "italic")) +
  labs(title = "Model fit (red) vs actual data.",
       x = "Normalised ENTRHU [-]",
       y = "Blowcount [Blows/m]")

plot_rf2 <- test %>%
  ggplot(aes(predictions, `Blowcount [Blows/m]`)) +
  geom_point(alpha = 1/20) +
  expand_limits(x = 0, y = 0) +
  geom_abline(color = "grey20", size = 1) +
  coord_fixed(xlim = c(0, 150), ylim = c(0, 150)) +
  theme(panel.grid.minor = element_blank(),
        aspect.ratio = 1,
        plot.title = element_text(size = 9, face = "italic")) +
  labs(title = "Predicted vs actual Blowcount [Blows/m]",
       x = "Predicted Blowcount [Blows/m]",
       y = "Actual Blowcount [Blows/m]")

plot_rf3 <- test %>%
  ggplot(aes(`Normalised ENTRHU [-]`, predictions - `Blowcount [Blows/m]`)) +
  geom_point(alpha = 1/20) +
  geom_hline(aes(yintercept = 0), color = "grey20", size = 1) +
  theme(panel.grid.minor = element_blank(),
        aspect.ratio = 1,
        plot.title = element_text(size = 9, face = "italic")) +
  labs(title = "Scatter plot of residuals.",
       x = "Normalised ENTRHU [-]",
       y = "Residuals")

plot_rf4 <- test %>%
  ggplot(aes(predictions - `Blowcount [Blows/m]`)) +
  geom_histogram(binwidth = 2, alpha = 1/5) +
  geom_vline(aes(xintercept = 0), color = "grey20", size = 1) +
  theme(panel.grid.minor = element_blank(),
        aspect.ratio = 1,
        plot.title = element_text(size = 9, face = "italic")) +
  labs(title = "Histogram of residuals.",
       x = "Residuals",
       y = "Count") +
  coord_cartesian(xlim = c(-100, 100))

patch_rf1 <- plot_rf1 + plot_rf2
patch_rf2 <- plot_rf3 + plot_rf4

patch_rf1 / patch_rf2
_Results for Random Forests model applied to the `test` dataset._

Results for Random Forests model applied to the test dataset.

In analogy to what we did for the Natural Spline models, we can estimate the relative error in predicting the total number of blows for each pile.

test_error <- test %>%
  group_by(`Location ID`) %>%
  summarise(actual_blows = sum(`Blowcount [Blows/m]`),
            predicted_blows = sum(predictions),
            error = (predicted_blows - actual_blows)/actual_blows,
            abs_error = abs(error)) %>%
  arrange(desc(abs_error)) %>%
  mutate(error = round(error, 3),
         abs_error = round(abs_error, 3))

kable(top_n(test_error, 100),
      digits = 3,
      align = "r") %>%
  kable_styling(full_width = T, font_size = 11, position = "center") %>%
  row_spec(0, color = "grey10", background = "#F4F5F6")
Location ID actual_blows predicted_blows error abs_error
DA 1926 2512.189 0.304 0.304
CP 3626 3081.291 -0.150 0.150
DD 2184 2449.782 0.122 0.122
CT 3420 3063.949 -0.104 0.104
BM 2262 2495.518 0.103 0.103
BS 3958 3550.212 -0.103 0.103
DS 3326 3024.430 -0.091 0.091
BT 3782 3478.317 -0.080 0.080
BV 2946 3159.839 0.073 0.073
AN 3066 3266.817 0.065 0.065
CL 2834 2996.335 0.057 0.057
CF 3604 3779.436 0.049 0.049
DN 2940 3068.092 0.044 0.044
DK 3514 3644.969 0.037 0.037
AY 3056 2970.421 -0.028 0.028
AS 3116 3031.852 -0.027 0.027
EG 3570 3644.214 0.021 0.021
CA 2594 2603.164 0.004 0.004
test_error %>%
  ggplot(aes(error, `Location ID`)) +
  geom_segment(aes(x = 0, xend = error, y = `Location ID`, yend = `Location ID`), size = 2, alpha = 1/2) +
  geom_point(aes(colour = abs_error), size = 5) +
  scale_colour_distiller(palette = "Spectral", limits = c(0, 0.4)) +
  theme(panel.grid.minor = element_blank(),
        legend.key.height = unit(2.25, "cm")) +
  labs(x = "Error",
       y = "",
       colour = "Error") +
  geom_vline(xintercept = 0, color = "grey20", size = 1) +
  scale_x_continuous(labels = scales::percent_format(accuracy = .1)) +
  coord_cartesian(xlim = c(-0.2, 0.4))
_Relative error in predicting the total number of blows for `test` piles._

Relative error in predicting the total number of blows for test piles.

test_error %>%
  summarise(mean_error = mean(abs_error))
## # A tibble: 1 x 1
##   mean_error
##        <dbl>
## 1     0.0812

The results for the Random Forests model are similar to the ones from Natural Splines, but slightly better. We reach an average error of around 8%.

6 SUMMARY

Let’s make a short summary of the work presented in this post, by considering few discussion points.


That’s it! Thanks for reading 👋


7 SESSION INFO

R Version

R version 4.1.3 (2022-03-10)

Packages

 package      * version    date (UTC) lib source
 assertthat     0.2.1      2019-03-21 [1] CRAN (R 4.1.3)
 backports      1.4.1      2021-12-13 [1] CRAN (R 4.1.2)
 bit            4.0.4      2020-08-04 [1] CRAN (R 4.1.3)
 bit64          4.0.5      2020-08-30 [1] CRAN (R 4.1.3)
 broom        * 0.7.12     2022-01-28 [1] CRAN (R 4.1.3)
 bslib          0.3.1      2021-10-06 [1] CRAN (R 4.1.3)
 caret        * 6.0-91     2022-03-11 [1] CRAN (R 4.1.3)
 cellranger     1.1.0      2016-07-27 [1] CRAN (R 4.1.3)
 class          7.3-20     2022-01-16 [2] CRAN (R 4.1.3)
 cli            3.2.0      2022-02-14 [1] CRAN (R 4.1.3)
 clipr          0.8.0      2022-02-22 [1] CRAN (R 4.1.3)
 codetools      0.2-18     2020-11-04 [2] CRAN (R 4.1.3)
 colorspace     2.0-3      2022-02-21 [1] CRAN (R 4.1.3)
 corrplot     * 0.92       2021-11-18 [1] CRAN (R 4.1.3)
 crayon         1.5.1      2022-03-26 [1] CRAN (R 4.1.3)
 Cubist         0.4.0      2022-02-05 [1] CRAN (R 4.1.3)
 data.table     1.14.2     2021-09-27 [1] CRAN (R 4.1.3)
 DBI            1.1.2      2021-12-20 [1] CRAN (R 4.1.3)
 dbplyr         2.1.1      2021-04-06 [1] CRAN (R 4.1.3)
 desc           1.4.1      2022-03-06 [1] CRAN (R 4.1.3)
 details        0.3.0      2022-03-27 [1] CRAN (R 4.1.3)
 digest         0.6.29     2021-12-01 [1] CRAN (R 4.1.3)
 doParallel   * 1.0.17     2022-02-07 [1] CRAN (R 4.1.3)
 dplyr        * 1.0.8      2022-02-08 [1] CRAN (R 4.1.3)
 ellipsis       0.3.2      2021-04-29 [1] CRAN (R 4.1.3)
 evaluate       0.15       2022-02-18 [1] CRAN (R 4.1.3)
 fansi          1.0.3      2022-03-24 [1] CRAN (R 4.1.3)
 farver         2.1.0      2021-02-28 [1] CRAN (R 4.1.3)
 fastmap        1.1.0      2021-01-25 [1] CRAN (R 4.1.3)
 forcats      * 0.5.1      2021-01-27 [1] CRAN (R 4.1.3)
 foreach      * 1.5.2      2022-02-02 [1] CRAN (R 4.1.3)
 fs             1.5.2      2021-12-08 [1] CRAN (R 4.1.3)
 future         1.24.0     2022-02-19 [1] CRAN (R 4.1.3)
 future.apply   1.8.1      2021-08-10 [1] CRAN (R 4.1.3)
 gbm            2.1.8      2020-07-15 [1] CRAN (R 4.1.3)
 generics       0.1.2      2022-01-31 [1] CRAN (R 4.1.3)
 ggforce      * 0.3.3      2021-03-05 [1] CRAN (R 4.1.3)
 ggplot2      * 3.3.5      2021-06-25 [1] CRAN (R 4.1.3)
 ggraph       * 2.0.5      2021-02-23 [1] CRAN (R 4.1.3)
 ggrepel        0.9.1      2021-01-15 [1] CRAN (R 4.1.3)
 globals        0.14.0     2020-11-22 [1] CRAN (R 4.1.1)
 glue           1.6.2      2022-02-24 [1] CRAN (R 4.1.3)
 gower          1.0.0      2022-02-03 [1] CRAN (R 4.1.2)
 graphlayouts   0.8.0      2022-01-03 [1] CRAN (R 4.1.3)
 gridExtra      2.3        2017-09-09 [1] CRAN (R 4.1.3)
 gtable         0.3.0      2019-03-25 [1] CRAN (R 4.1.3)
 hardhat        0.2.0      2022-01-24 [1] CRAN (R 4.1.3)
 haven          2.4.3      2021-08-04 [1] CRAN (R 4.1.3)
 highr          0.9        2021-04-16 [1] CRAN (R 4.1.3)
 hms            1.1.1      2021-09-26 [1] CRAN (R 4.1.3)
 htmltools      0.5.2      2021-08-25 [1] CRAN (R 4.1.3)
 httr           1.4.2      2020-07-20 [1] CRAN (R 4.1.3)
 igraph       * 1.3.0      2022-04-01 [1] CRAN (R 4.1.3)
 ipred          0.9-12     2021-09-15 [1] CRAN (R 4.1.3)
 iterators    * 1.0.14     2022-02-05 [1] CRAN (R 4.1.3)
 jquerylib      0.1.4      2021-04-26 [1] CRAN (R 4.1.3)
 jsonlite       1.8.0      2022-02-22 [1] CRAN (R 4.1.3)
 kableExtra   * 1.3.4      2021-02-20 [1] CRAN (R 4.1.3)
 kernlab        0.9-30     2022-04-02 [1] CRAN (R 4.1.3)
 knitr        * 1.38       2022-03-25 [1] CRAN (R 4.1.3)
 labeling       0.4.2      2020-10-20 [1] CRAN (R 4.1.1)
 lattice      * 0.20-45    2021-09-22 [2] CRAN (R 4.1.3)
 lava           1.6.10     2021-09-02 [1] CRAN (R 4.1.3)
 lifecycle      1.0.1      2021-09-24 [1] CRAN (R 4.1.3)
 listenv        0.8.0      2019-12-05 [1] CRAN (R 4.1.3)
 lubridate      1.8.0      2021-10-07 [1] CRAN (R 4.1.3)
 magrittr       2.0.3      2022-03-30 [1] CRAN (R 4.1.3)
 MASS           7.3-55     2022-01-16 [2] CRAN (R 4.1.3)
 Matrix         1.4-0      2021-12-08 [2] CRAN (R 4.1.3)
 ModelMetrics   1.2.2.2    2020-03-17 [1] CRAN (R 4.1.3)
 modelr         0.1.8      2020-05-19 [1] CRAN (R 4.1.3)
 munsell        0.5.0      2018-06-12 [1] CRAN (R 4.1.3)
 nlme           3.1-155    2022-01-16 [2] CRAN (R 4.1.3)
 nnet           7.3-17     2022-01-16 [2] CRAN (R 4.1.3)
 parallelly     1.31.0     2022-04-07 [1] CRAN (R 4.1.3)
 patchwork    * 1.1.1      2020-12-17 [1] CRAN (R 4.1.3)
 pillar         1.7.0      2022-02-01 [1] CRAN (R 4.1.3)
 pkgconfig      2.0.3      2019-09-22 [1] CRAN (R 4.1.3)
 plyr           1.8.7      2022-03-24 [1] CRAN (R 4.1.3)
 png            0.1-7      2013-12-03 [1] CRAN (R 4.1.1)
 polyclip       1.10-0     2019-03-14 [1] CRAN (R 4.1.1)
 pROC           1.18.0     2021-09-03 [1] CRAN (R 4.1.3)
 prodlim        2019.11.13 2019-11-17 [1] CRAN (R 4.1.3)
 purrr        * 0.3.4      2020-04-17 [1] CRAN (R 4.1.3)
 R6             2.5.1      2021-08-19 [1] CRAN (R 4.1.3)
 randomForest   4.7-1      2022-02-03 [1] CRAN (R 4.1.3)
 RColorBrewer * 1.1-3      2022-04-03 [1] CRAN (R 4.1.3)
 Rcpp           1.0.8.3    2022-03-17 [1] CRAN (R 4.1.3)
 readr        * 2.1.2      2022-01-30 [1] CRAN (R 4.1.3)
 readxl         1.4.0      2022-03-28 [1] CRAN (R 4.1.3)
 recipes        0.2.0      2022-02-18 [1] CRAN (R 4.1.3)
 reprex         2.0.1      2021-08-05 [1] CRAN (R 4.1.3)
 reshape2       1.4.4      2020-04-09 [1] CRAN (R 4.1.3)
 rlang          1.0.2      2022-03-04 [1] CRAN (R 4.1.3)
 rmarkdown      2.13       2022-03-10 [1] CRAN (R 4.1.3)
 rpart          4.1.16     2022-01-24 [2] CRAN (R 4.1.3)
 rprojroot      2.0.3      2022-04-02 [1] CRAN (R 4.1.3)
 rstudioapi     0.13       2020-11-12 [1] CRAN (R 4.1.3)
 rvest          1.0.2      2021-10-16 [1] CRAN (R 4.1.3)
 sass           0.4.1      2022-03-23 [1] CRAN (R 4.1.3)
 scales       * 1.1.1      2020-05-11 [1] CRAN (R 4.1.3)
 sessioninfo    1.2.2      2021-12-06 [1] CRAN (R 4.1.3)
 stringi        1.7.6      2021-11-29 [1] CRAN (R 4.1.2)
 stringr      * 1.4.0      2019-02-10 [1] CRAN (R 4.1.3)
 survival       3.2-13     2021-08-24 [2] CRAN (R 4.1.3)
 svglite        2.1.0      2022-02-03 [1] CRAN (R 4.1.3)
 systemfonts    1.0.4      2022-02-11 [1] CRAN (R 4.1.3)
 tibble       * 3.1.6      2021-11-07 [1] CRAN (R 4.1.3)
 tidygraph      1.2.1      2022-04-05 [1] CRAN (R 4.1.3)
 tidyr        * 1.2.0      2022-02-01 [1] CRAN (R 4.1.3)
 tidyselect     1.1.2      2022-02-21 [1] CRAN (R 4.1.3)
 tidyverse    * 1.3.1      2021-04-15 [1] CRAN (R 4.1.3)
 timeDate       3043.102   2018-02-21 [1] CRAN (R 4.1.2)
 tweenr         1.0.2      2021-03-23 [1] CRAN (R 4.1.3)
 tzdb           0.3.0      2022-03-28 [1] CRAN (R 4.1.3)
 utf8           1.2.2      2021-07-24 [1] CRAN (R 4.1.3)
 vctrs          0.4.0      2022-03-30 [1] CRAN (R 4.1.3)
 viridis        0.6.2      2021-10-13 [1] CRAN (R 4.1.3)
 viridisLite    0.4.0      2021-04-13 [1] CRAN (R 4.1.3)
 vroom          1.5.7      2021-11-30 [1] CRAN (R 4.1.3)
 webshot        0.5.2      2019-11-22 [1] CRAN (R 4.1.3)
 withr          2.5.0      2022-03-03 [1] CRAN (R 4.1.3)
 xfun           0.30       2022-03-02 [1] CRAN (R 4.1.3)
 xml2           1.3.3      2021-11-30 [1] CRAN (R 4.1.3)
 yaml           2.3.5      2022-02-21 [1] CRAN (R 4.1.2)

 [1] C:/Users/User/OneDrive/Documents/R/win-library/4.1
 [2] C:/Program Files/R/R-4.1.3/library