#Call the dataset
data = read.csv("G:/karpur.csv")
library(caret)
## Loading required package: ggplot2
## Loading required package: lattice
#Build MLR model
model1 <- lm(k.core ~ . - Facies, data = data)
summary(model1)
##
## Call:
## lm(formula = k.core ~ . - Facies, data = data)
##
## Residuals:
## Min 1Q Median 3Q Max
## -5549.5 -755.5 -178.1 578.0 11260.8
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 60762.728 16605.360 3.659 0.000269 ***
## depth -7.398 1.446 -5.115 3.92e-07 ***
## caliper -3955.952 1055.105 -3.749 0.000190 ***
## ind.deep -14.183 2.345 -6.048 2.24e-09 ***
## ind.med 17.300 2.509 6.896 1.08e-11 ***
## gamma -77.487 5.475 -14.153 < 2e-16 ***
## phi.N -1784.704 1301.772 -1.371 0.170763
## R.deep -26.007 6.974 -3.729 0.000206 ***
## R.med 63.525 9.841 6.455 1.86e-10 ***
## SP -8.784 3.460 -2.539 0.011313 *
## density.corr -523.060 5358.876 -0.098 0.922269
## density 8011.106 1120.554 7.149 1.96e-12 ***
## phi.core 183.203 23.802 7.697 4.07e-14 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 1442 on 806 degrees of freedom
## Multiple R-squared: 0.5903, Adjusted R-squared: 0.5842
## F-statistic: 96.77 on 12 and 806 DF, p-value: < 2.2e-16
r2_1 <- summary(model1)$r.squared
adj_r2_1 <- summary(model1)$adj.r.squared
cat("Scenario 1 - R2:", r2_1, "Adjusted R2:", adj_r2_1, "\n")
## Scenario 1 - R2: 0.5902845 Adjusted R2: 0.5841845
k.pred1 <- predict(model1, data = data)
plot(k.pred1, data$k.core)
rmse_1 <- RMSE(k.pred1, data$k.core)
rmse_1
## [1] 1430.118
#Stepwise Elimination to the previous model
model2 <- step(model1, direction = "backward")
## Start: AIC=11926.91
## k.core ~ (depth + caliper + ind.deep + ind.med + gamma + phi.N +
## R.deep + R.med + SP + density.corr + density + phi.core +
## Facies) - Facies
##
## Df Sum of Sq RSS AIC
## - density.corr 1 19799 1675068713 11925
## - phi.N 1 3906205 1678955118 11927
## <none> 1675048914 11927
## - SP 1 13394190 1688443104 11931
## - R.deep 1 28897686 1703946599 11939
## - caliper 1 29214826 1704263740 11939
## - depth 1 54372650 1729421563 11951
## - ind.deep 1 76022788 1751071701 11961
## - R.med 1 86603706 1761652619 11966
## - ind.med 1 98823752 1773872666 11972
## - density 1 106221406 1781270319 11975
## - phi.core 1 123125117 1798174031 11983
## - gamma 1 416312526 2091361440 12107
##
## Step: AIC=11924.92
## k.core ~ depth + caliper + ind.deep + ind.med + gamma + phi.N +
## R.deep + R.med + SP + density + phi.core
##
## Df Sum of Sq RSS AIC
## <none> 1675068713 11925
## - phi.N 1 4564880 1679633593 11925
## - SP 1 13491079 1688559792 11930
## - R.deep 1 28896144 1703964857 11937
## - caliper 1 29253869 1704322581 11937
## - depth 1 54825159 1729893872 11949
## - ind.deep 1 77573926 1752642639 11960
## - R.med 1 86772220 1761840933 11964
## - ind.med 1 100740701 1775809413 11971
## - density 1 114209586 1789278299 11977
## - phi.core 1 124694278 1799762991 11982
## - gamma 1 417015194 2092083907 12105
summary(model2)
##
## Call:
## lm(formula = k.core ~ depth + caliper + ind.deep + ind.med +
## gamma + phi.N + R.deep + R.med + SP + density + phi.core,
## data = data)
##
## Residuals:
## Min 1Q Median 3Q Max
## -5545.3 -753.4 -177.1 576.8 11260.2
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 60910.619 16525.937 3.686 0.000243 ***
## depth -7.409 1.442 -5.139 3.46e-07 ***
## caliper -3957.892 1054.270 -3.754 0.000186 ***
## ind.deep -14.146 2.314 -6.113 1.52e-09 ***
## ind.med 17.263 2.478 6.967 6.74e-12 ***
## gamma -77.461 5.465 -14.174 < 2e-16 ***
## phi.N -1825.771 1231.150 -1.483 0.138470
## R.deep -25.972 6.961 -3.731 0.000204 ***
## R.med 63.466 9.816 6.466 1.75e-10 ***
## SP -8.803 3.453 -2.549 0.010974 *
## density 7980.761 1075.902 7.418 3.02e-13 ***
## phi.core 183.436 23.667 7.751 2.75e-14 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 1441 on 807 degrees of freedom
## Multiple R-squared: 0.5903, Adjusted R-squared: 0.5847
## F-statistic: 105.7 on 11 and 807 DF, p-value: < 2.2e-16
r2_2 <- summary(model2)$r.squared
adj_r2_2 <- summary(model2)$adj.r.squared
cat("Scenario 2 - R2:", r2_2, "Adjusted R2:", adj_r2_2, "\n")
## Scenario 2 - R2: 0.5902797 Adjusted R2: 0.5846949
k.pred2 <- predict(model2, data = data)
plot(k.pred2, data$k.core)
rmse_2 <- RMSE(k.pred2, data$k.core)
rmse_2
## [1] 1430.126
#Build MLR model of k using all well logs including Facies
model3 <- lm(k.core ~ ., data = data)
summary(model3)
##
## Call:
## lm(formula = k.core ~ ., data = data)
##
## Residuals:
## Min 1Q Median 3Q Max
## -5585.6 -568.9 49.2 476.5 8928.4
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -6.783e+04 1.760e+04 -3.853 0.000126 ***
## depth 8.544e+00 1.785e+00 4.786 2.02e-06 ***
## caliper 1.413e+03 1.019e+03 1.387 0.165789
## ind.deep -2.418e-01 2.354e+00 -0.103 0.918220
## ind.med 1.224e+00 2.585e+00 0.473 0.636062
## gamma -4.583e+01 6.010e+00 -7.626 6.88e-14 ***
## phi.N -2.010e+03 1.476e+03 -1.362 0.173540
## R.deep -2.344e+01 6.288e+00 -3.727 0.000207 ***
## R.med 5.643e+01 9.065e+00 6.225 7.76e-10 ***
## SP -7.125e+00 3.145e+00 -2.266 0.023736 *
## density.corr -2.567e+03 4.809e+03 -0.534 0.593602
## density 2.319e+03 1.173e+03 1.976 0.048458 *
## phi.core 1.921e+02 2.282e+01 8.418 < 2e-16 ***
## FaciesF10 8.921e+02 3.590e+02 2.485 0.013157 *
## FaciesF2 9.243e+02 5.818e+02 1.589 0.112514
## FaciesF3 4.393e+02 3.344e+02 1.313 0.189394
## FaciesF5 7.411e+02 3.428e+02 2.162 0.030908 *
## FaciesF7 -4.152e+01 5.742e+02 -0.072 0.942377
## FaciesF8 -1.179e+03 3.927e+02 -3.002 0.002770 **
## FaciesF9 -2.969e+03 4.298e+02 -6.908 1.00e-11 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 1262 on 799 degrees of freedom
## Multiple R-squared: 0.6889, Adjusted R-squared: 0.6815
## F-statistic: 93.12 on 19 and 799 DF, p-value: < 2.2e-16
r2_3 <- summary(model3)$r.squared
adj_r2_3 <- summary(model3)$adj.r.squared
cat("Scenario 3 - R2:", r2_3, "Adjusted R2:", adj_r2_3, "\n")
## Scenario 3 - R2: 0.6888892 Adjusted R2: 0.6814911
k.pred3 <- predict(model3, data = data)
plot(k.pred3, data$k.core)
rmse_3 <- RMSE(k.pred3, data$k.core)
rmse_3
## [1] 1246.201
#Stepwise Elimination to the previous model
model4 <- step(model3, direction = "backward")
## Start: AIC=11715.43
## k.core ~ depth + caliper + ind.deep + ind.med + gamma + phi.N +
## R.deep + R.med + SP + density.corr + density + phi.core +
## Facies
##
## Df Sum of Sq RSS AIC
## - ind.deep 1 16793 1271937992 11713
## - ind.med 1 356746 1272277945 11714
## - density.corr 1 453661 1272374861 11714
## - phi.N 1 2953609 1274874809 11715
## - caliper 1 3063007 1274984206 11715
## <none> 1271921199 11715
## - density 1 6217927 1278139127 11717
## - SP 1 8171834 1280093033 11719
## - R.deep 1 22117394 1294038593 11728
## - depth 1 36466976 1308388176 11737
## - R.med 1 61690461 1333611660 11752
## - gamma 1 92579723 1364500923 11771
## - phi.core 1 112793101 1384714301 11783
## - Facies 7 403127714 1675048914 11927
##
## Step: AIC=11713.44
## k.core ~ depth + caliper + ind.med + gamma + phi.N + R.deep +
## R.med + SP + density.corr + density + phi.core + Facies
##
## Df Sum of Sq RSS AIC
## - density.corr 1 437546 1272375538 11712
## - phi.N 1 2938766 1274876758 11713
## - caliper 1 3074396 1275012389 11713
## <none> 1271937992 11713
## - density 1 6228928 1278166920 11715
## - ind.med 1 6905855 1278843848 11716
## - SP 1 8191802 1280129794 11717
## - R.deep 1 22125695 1294063687 11726
## - depth 1 39139470 1311077462 11736
## - R.med 1 61773953 1333711946 11750
## - gamma 1 92865220 1364803212 11769
## - phi.core 1 112960440 1384898432 11781
## - Facies 7 479133709 1751071701 11961
##
## Step: AIC=11711.72
## k.core ~ depth + caliper + ind.med + gamma + phi.N + R.deep +
## R.med + SP + density + phi.core + Facies
##
## Df Sum of Sq RSS AIC
## - caliper 1 2980713 1275356252 11712
## <none> 1272375538 11712
## - phi.N 1 3279032 1275654571 11712
## - density 1 5792837 1278168375 11713
## - ind.med 1 6813959 1279189497 11714
## - SP 1 8391302 1280766840 11715
## - R.deep 1 22009402 1294384940 11724
## - depth 1 38705776 1311081314 11734
## - R.med 1 61436819 1333812357 11748
## - gamma 1 93974329 1366349868 11768
## - phi.core 1 115336515 1387712053 11781
## - Facies 7 480267100 1752642639 11960
##
## Step: AIC=11711.64
## k.core ~ depth + ind.med + gamma + phi.N + R.deep + R.med + SP +
## density + phi.core + Facies
##
## Df Sum of Sq RSS AIC
## - phi.N 1 2534906 1277891157 11711
## <none> 1275356252 11712
## - density 1 7270311 1282626562 11714
## - SP 1 8733336 1284089587 11715
## - ind.med 1 12924050 1288280301 11718
## - R.deep 1 22449117 1297805369 11724
## - depth 1 51507476 1326863728 11742
## - R.med 1 60137982 1335494234 11747
## - phi.core 1 112564835 1387921086 11779
## - gamma 1 141535555 1416891807 11796
## - Facies 7 520094756 1795451008 11978
##
## Step: AIC=11711.26
## k.core ~ depth + ind.med + gamma + R.deep + R.med + SP + density +
## phi.core + Facies
##
## Df Sum of Sq RSS AIC
## <none> 1277891157 11711
## - density 1 5155969 1283047127 11713
## - SP 1 8515796 1286406953 11715
## - ind.med 1 10944937 1288836095 11716
## - R.deep 1 23273312 1301164469 11724
## - depth 1 49725248 1327616405 11740
## - R.med 1 59454645 1337345802 11746
## - phi.core 1 110154394 1388045551 11777
## - gamma 1 219059092 1496950249 11839
## - Facies 7 526383446 1804274603 11980
summary(model4)
##
## Call:
## lm(formula = k.core ~ depth + ind.med + gamma + R.deep + R.med +
## SP + density + phi.core + Facies, data = data)
##
## Residuals:
## Min 1Q Median 3Q Max
## -5608.3 -567.8 35.9 500.7 8989.7
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -4.322e+04 6.625e+03 -6.523 1.22e-10 ***
## depth 6.648e+00 1.189e+00 5.590 3.11e-08 ***
## ind.med 1.078e+00 4.111e-01 2.623 0.008894 **
## gamma -5.324e+01 4.537e+00 -11.733 < 2e-16 ***
## R.deep -2.395e+01 6.264e+00 -3.824 0.000141 ***
## R.med 5.515e+01 9.022e+00 6.112 1.53e-09 ***
## SP -7.214e+00 3.118e+00 -2.313 0.020960 *
## density 1.880e+03 1.044e+03 1.800 0.072240 .
## phi.core 1.817e+02 2.184e+01 8.320 3.77e-16 ***
## FaciesF10 8.266e+02 3.533e+02 2.340 0.019553 *
## FaciesF2 7.035e+02 5.567e+02 1.264 0.206697
## FaciesF3 4.100e+02 3.228e+02 1.270 0.204443
## FaciesF5 5.913e+02 3.211e+02 1.841 0.065924 .
## FaciesF7 -3.159e+02 5.402e+02 -0.585 0.558866
## FaciesF8 -1.455e+03 3.122e+02 -4.661 3.69e-06 ***
## FaciesF9 -3.017e+03 3.764e+02 -8.017 3.82e-15 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 1262 on 803 degrees of freedom
## Multiple R-squared: 0.6874, Adjusted R-squared: 0.6816
## F-statistic: 117.7 on 15 and 803 DF, p-value: < 2.2e-16
r2_4 <- summary(model4)$r.squared
adj_r2_4 <- summary(model4)$adj.r.squared
cat("Scenario 4 - R2:", r2_4, "Adjusted R2:", adj_r2_4, "\n")
## Scenario 4 - R2: 0.687429 Adjusted R2: 0.6815901
k.pred4 <- predict(model4, data = data)
plot(k.pred4, data$k.core)
rmse_4 <- RMSE(k.pred4, data$k.core)
rmse_4
## [1] 1249.122
#Transformation of k into log sacle and building MLR of log10(k) using all well logs including Facies
data$log10_k.core <- log10(data$k.core)
model5 <- lm(log10_k.core ~ . - k.core, data = data)
summary(model5)
##
## Call:
## lm(formula = log10_k.core ~ . - k.core, data = data)
##
## Residuals:
## Min 1Q Median 3Q Max
## -2.5804 -0.1138 0.0322 0.1529 0.7384
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -2.3461877 4.6532000 -0.504 0.61425
## depth 0.0007425 0.0004718 1.574 0.11596
## caliper -0.4605945 0.2693103 -1.710 0.08760 .
## ind.deep -0.0007951 0.0006222 -1.278 0.20168
## ind.med 0.0007137 0.0006833 1.044 0.29659
## gamma -0.0091269 0.0015885 -5.746 1.30e-08 ***
## phi.N -1.7628155 0.3901024 -4.519 7.16e-06 ***
## R.deep -0.0025878 0.0016620 -1.557 0.11987
## R.med 0.0044073 0.0023960 1.839 0.06622 .
## SP -0.0016935 0.0008312 -2.037 0.04194 *
## density.corr 1.4462633 1.2712045 1.138 0.25558
## density 1.6148374 0.3100921 5.208 2.44e-07 ***
## phi.core 0.0948634 0.0060329 15.724 < 2e-16 ***
## FaciesF10 0.0786460 0.0948909 0.829 0.40746
## FaciesF2 -0.0184334 0.1537793 -0.120 0.90462
## FaciesF3 -0.0307548 0.0883957 -0.348 0.72799
## FaciesF5 0.1094193 0.0906034 1.208 0.22753
## FaciesF7 0.2811620 0.1517797 1.852 0.06433 .
## FaciesF8 -0.0976234 0.1038054 -0.940 0.34727
## FaciesF9 -0.3562116 0.1135966 -3.136 0.00178 **
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.3335 on 799 degrees of freedom
## Multiple R-squared: 0.6806, Adjusted R-squared: 0.673
## F-statistic: 89.6 on 19 and 799 DF, p-value: < 2.2e-16
r2_5 <- summary(model5)$r.squared
adj_r2_5 <- summary(model5)$adj.r.squared
cat("Scenario 5 - R2:", r2_5, "Adjusted R2:", adj_r2_5, "\n")
## Scenario 5 - R2: 0.6805741 Adjusted R2: 0.6729783
log_k.pred5 <- predict(model5, data = data)
k.pred5 <- 10^log_k.pred5
plot(k.pred5, data$k.core)
rmse_5 <- RMSE(k.pred5, data$k.core)
rmse_5
## [1] 1333.017
#Stepwise Elimination to the previous model
model6 <- step(model5, direction = "backward")
## Start: AIC=-1779.02
## log10_k.core ~ (depth + caliper + ind.deep + ind.med + gamma +
## phi.N + R.deep + R.med + SP + density.corr + density + phi.core +
## k.core + Facies) - k.core
##
## Df Sum of Sq RSS AIC
## - ind.med 1 0.1213 88.981 -1779.9
## - density.corr 1 0.1440 89.004 -1779.7
## - ind.deep 1 0.1816 89.042 -1779.3
## <none> 88.860 -1779.0
## - R.deep 1 0.2696 89.130 -1778.5
## - depth 1 0.2754 89.135 -1778.5
## - caliper 1 0.3253 89.185 -1778.0
## - R.med 1 0.3763 89.236 -1777.6
## - SP 1 0.4617 89.322 -1776.8
## - phi.N 1 2.2710 91.131 -1760.3
## - density 1 3.0160 91.876 -1753.7
## - gamma 1 3.6713 92.531 -1747.9
## - Facies 7 7.0758 95.936 -1730.3
## - phi.core 1 27.4982 116.358 -1560.2
##
## Step: AIC=-1779.9
## log10_k.core ~ depth + caliper + ind.deep + gamma + phi.N + R.deep +
## R.med + SP + density.corr + density + phi.core + Facies
##
## Df Sum of Sq RSS AIC
## - density.corr 1 0.1931 89.174 -1780.1
## <none> 88.981 -1779.9
## - ind.deep 1 0.2179 89.199 -1779.9
## - R.deep 1 0.2447 89.226 -1779.7
## - caliper 1 0.2921 89.273 -1779.2
## - R.med 1 0.3397 89.321 -1778.8
## - SP 1 0.4101 89.391 -1778.1
## - depth 1 0.4622 89.444 -1777.7
## - phi.N 1 2.2035 91.185 -1761.9
## - density 1 3.0113 91.993 -1754.6
## - gamma 1 3.5761 92.557 -1749.6
## - Facies 7 9.1242 98.106 -1714.0
## - phi.core 1 27.4190 116.400 -1561.9
##
## Step: AIC=-1780.12
## log10_k.core ~ depth + caliper + ind.deep + gamma + phi.N + R.deep +
## R.med + SP + density + phi.core + Facies
##
## Df Sum of Sq RSS AIC
## - ind.deep 1 0.2180 89.392 -1780.1
## <none> 89.174 -1780.1
## - R.deep 1 0.2526 89.427 -1779.8
## - caliper 1 0.2676 89.442 -1779.7
## - R.med 1 0.3598 89.534 -1778.8
## - SP 1 0.3832 89.558 -1778.6
## - depth 1 0.5404 89.715 -1777.2
## - phi.N 1 2.0726 91.247 -1763.3
## - gamma 1 3.4838 92.658 -1750.7
## - density 1 3.6220 92.796 -1749.5
## - Facies 7 9.3567 98.531 -1712.4
## - phi.core 1 27.2273 116.402 -1563.9
##
## Step: AIC=-1780.12
## log10_k.core ~ depth + caliper + gamma + phi.N + R.deep + R.med +
## SP + density + phi.core + Facies
##
## Df Sum of Sq RSS AIC
## <none> 89.392 -1780.1
## - R.deep 1 0.2869 89.679 -1779.5
## - depth 1 0.3332 89.726 -1779.1
## - SP 1 0.4296 89.822 -1778.2
## - R.med 1 0.5085 89.901 -1777.5
## - caliper 1 0.5746 89.967 -1776.9
## - phi.N 1 2.3337 91.726 -1761.0
## - gamma 1 3.8214 93.214 -1747.8
## - density 1 3.8626 93.255 -1747.5
## - Facies 7 9.2100 98.602 -1713.8
## - phi.core 1 27.0935 116.486 -1565.3
summary(model6)
##
## Call:
## lm(formula = log10_k.core ~ depth + caliper + gamma + phi.N +
## R.deep + R.med + SP + density + phi.core + Facies, data = data)
##
## Residuals:
## Min 1Q Median 3Q Max
## -2.58182 -0.12001 0.03437 0.15230 0.70317
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -1.2671250 3.9316796 -0.322 0.74732
## depth 0.0006562 0.0003796 1.729 0.08420 .
## caliper -0.5608681 0.2470292 -2.270 0.02344 *
## gamma -0.0091497 0.0015626 -5.855 6.94e-09 ***
## phi.N -1.7463527 0.3816550 -4.576 5.50e-06 ***
## R.deep -0.0026554 0.0016551 -1.604 0.10903
## R.med 0.0049837 0.0023334 2.136 0.03300 *
## SP -0.0016140 0.0008221 -1.963 0.04996 *
## density 1.7602255 0.2990153 5.887 5.79e-09 ***
## phi.core 0.0927539 0.0059493 15.591 < 2e-16 ***
## FaciesF10 0.0896953 0.0945929 0.948 0.34330
## FaciesF2 0.0152576 0.1523676 0.100 0.92026
## FaciesF3 -0.0292379 0.0869197 -0.336 0.73667
## FaciesF5 0.1022238 0.0879087 1.163 0.24524
## FaciesF7 0.2794793 0.1462763 1.911 0.05641 .
## FaciesF8 -0.0932936 0.0927473 -1.006 0.31477
## FaciesF9 -0.3877078 0.1030388 -3.763 0.00018 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.3339 on 802 degrees of freedom
## Multiple R-squared: 0.6787, Adjusted R-squared: 0.6722
## F-statistic: 105.9 on 16 and 802 DF, p-value: < 2.2e-16
r2_6 <- summary(model6)$r.squared
adj_r2_6 <- summary(model6)$adj.r.squared
cat("Scenario 6 - R2:", r2_6, "Adjusted R2:", adj_r2_6, "\n")
## Scenario 6 - R2: 0.6786603 Adjusted R2: 0.6722495
log_k.pred6 <- predict(model6, data = data)
k.pred6 <- 10^log_k.pred6
plot(k.pred6, data$k.core)
rmse_6 <- RMSE(k.pred6, data$k.core)
rmse_6
## [1] 1330.932
#Random Subsampling Cross-Validation
library(dplyr)
##
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
set.seed(12345)
training <- sample_frac(data, .79)
testing <- anti_join(data, training)
## Joining with `by = join_by(depth, caliper, ind.deep, ind.med, gamma, phi.N,
## R.deep, R.med, SP, density.corr, density, phi.core, k.core, Facies,
## log10_k.core)`
#build MLR model
model7 <- lm(log10_k.core ~ . - k.core, data = training)
summary(model7)
##
## Call:
## lm(formula = log10_k.core ~ . - k.core, data = training)
##
## Residuals:
## Min 1Q Median 3Q Max
## -2.57068 -0.12031 0.02531 0.14496 0.79954
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -2.3338245 5.3405094 -0.437 0.662259
## depth 0.0007730 0.0005476 1.412 0.158585
## caliper -0.4758221 0.3093909 -1.538 0.124570
## ind.deep -0.0005397 0.0007136 -0.756 0.449786
## ind.med 0.0004931 0.0007835 0.629 0.529372
## gamma -0.0084986 0.0018837 -4.512 7.68e-06 ***
## phi.N -1.7446532 0.4555104 -3.830 0.000141 ***
## R.deep -0.0027202 0.0020339 -1.337 0.181566
## R.med 0.0047328 0.0029136 1.624 0.104793
## SP -0.0022489 0.0009696 -2.319 0.020700 *
## density.corr 1.6518025 1.4029122 1.177 0.239479
## density 1.5557138 0.3519394 4.420 1.16e-05 ***
## phi.core 0.0948640 0.0069168 13.715 < 2e-16 ***
## FaciesF10 0.0852007 0.1094278 0.779 0.436508
## FaciesF2 -0.0084986 0.1668517 -0.051 0.959394
## FaciesF3 -0.0733970 0.1032212 -0.711 0.477308
## FaciesF5 0.1222724 0.1070618 1.142 0.253860
## FaciesF7 0.3089534 0.1660316 1.861 0.063239 .
## FaciesF8 -0.1076240 0.1223413 -0.880 0.379357
## FaciesF9 -0.3776886 0.1352314 -2.793 0.005383 **
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.3419 on 627 degrees of freedom
## Multiple R-squared: 0.6658, Adjusted R-squared: 0.6557
## F-statistic: 65.74 on 19 and 627 DF, p-value: < 2.2e-16
r2_7 <- summary(model7)$r.squared
adj_r2_7 <- summary(model7)$adj.r.squared
cat("Scenario 7 - R2:", r2_7, "Adjusted R2:", adj_r2_7, "\n")
## Scenario 7 - R2: 0.6658013 Adjusted R2: 0.6556741
log_k.pred7 <- predict(model7, newdata = testing)
k.pred7 <- 10^log_k.pred7
plot(k.pred7, testing$k.core)
rmse_7 <- RMSE(k.pred7, testing$k.core)
rmse_7
## [1] 1584.6
#Stepwise Elimination to the previous model
model8 <- step(model7, direction = "backward")
## Start: AIC=-1369.03
## log10_k.core ~ (depth + caliper + ind.deep + ind.med + gamma +
## phi.N + R.deep + R.med + SP + density.corr + density + phi.core +
## k.core + Facies) - k.core
##
## Df Sum of Sq RSS AIC
## - ind.med 1 0.0463 73.346 -1370.6
## - ind.deep 1 0.0669 73.366 -1370.4
## - density.corr 1 0.1621 73.461 -1369.6
## - R.deep 1 0.2091 73.508 -1369.2
## <none> 73.299 -1369.0
## - depth 1 0.2329 73.532 -1369.0
## - caliper 1 0.2765 73.576 -1368.6
## - R.med 1 0.3085 73.608 -1368.3
## - SP 1 0.6288 73.928 -1365.5
## - phi.N 1 1.7150 75.014 -1356.1
## - density 1 2.2843 75.584 -1351.2
## - gamma 1 2.3795 75.679 -1350.4
## - Facies 7 6.4097 79.709 -1328.8
## - phi.core 1 21.9898 95.289 -1201.3
##
## Step: AIC=-1370.62
## log10_k.core ~ depth + caliper + ind.deep + gamma + phi.N + R.deep +
## R.med + SP + density.corr + density + phi.core + Facies
##
## Df Sum of Sq RSS AIC
## - ind.deep 1 0.0705 73.416 -1372.0
## - R.deep 1 0.1952 73.541 -1370.9
## - density.corr 1 0.1982 73.544 -1370.9
## <none> 73.346 -1370.6
## - caliper 1 0.2545 73.600 -1370.4
## - R.med 1 0.2889 73.635 -1370.1
## - depth 1 0.3424 73.688 -1369.6
## - SP 1 0.5975 73.943 -1367.4
## - phi.N 1 1.6840 75.030 -1357.9
## - density 1 2.2874 75.633 -1352.8
## - gamma 1 2.3346 75.680 -1352.3
## - Facies 7 7.7371 81.083 -1319.7
## - phi.core 1 21.9485 95.294 -1203.2
##
## Step: AIC=-1372
## log10_k.core ~ depth + caliper + gamma + phi.N + R.deep + R.med +
## SP + density.corr + density + phi.core + Facies
##
## Df Sum of Sq RSS AIC
## - density.corr 1 0.1992 73.615 -1372.2
## - R.deep 1 0.2169 73.633 -1372.1
## <none> 73.416 -1372.0
## - depth 1 0.2721 73.688 -1371.6
## - R.med 1 0.3724 73.789 -1370.7
## - caliper 1 0.4176 73.834 -1370.3
## - SP 1 0.6422 74.058 -1368.4
## - phi.N 1 1.8523 75.268 -1357.9
## - density 1 2.4045 75.821 -1353.2
## - gamma 1 2.4894 75.906 -1352.4
## - Facies 7 7.6853 81.101 -1321.6
## - phi.core 1 22.0320 95.448 -1204.2
##
## Step: AIC=-1372.25
## log10_k.core ~ depth + caliper + gamma + phi.N + R.deep + R.med +
## SP + density + phi.core + Facies
##
## Df Sum of Sq RSS AIC
## - R.deep 1 0.2255 73.841 -1372.3
## <none> 73.615 -1372.2
## - depth 1 0.3393 73.955 -1371.3
## - caliper 1 0.3933 74.009 -1370.8
## - R.med 1 0.3975 74.013 -1370.8
## - SP 1 0.6017 74.217 -1369.0
## - phi.N 1 1.7291 75.345 -1359.2
## - gamma 1 2.4012 76.017 -1353.5
## - density 1 2.8902 76.506 -1349.3
## - Facies 7 7.8784 81.494 -1320.5
## - phi.core 1 21.8428 95.458 -1206.1
##
## Step: AIC=-1372.27
## log10_k.core ~ depth + caliper + gamma + phi.N + R.med + SP +
## density + phi.core + Facies
##
## Df Sum of Sq RSS AIC
## <none> 73.841 -1372.3
## - depth 1 0.2495 74.090 -1372.1
## - R.med 1 0.3317 74.173 -1371.4
## - caliper 1 0.3938 74.235 -1370.8
## - SP 1 0.5061 74.347 -1369.8
## - phi.N 1 1.8276 75.668 -1358.5
## - gamma 1 2.3037 76.145 -1354.4
## - density 1 2.7608 76.602 -1350.5
## - Facies 7 7.8064 81.647 -1321.2
## - phi.core 1 22.5119 96.353 -1202.1
summary(model8)
##
## Call:
## lm(formula = log10_k.core ~ depth + caliper + gamma + phi.N +
## R.med + SP + density + phi.core + Facies, data = training)
##
## Residuals:
## Min 1Q Median 3Q Max
## -2.58781 -0.11469 0.02415 0.14940 0.76102
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -1.3964357 4.5448109 -0.307 0.75875
## depth 0.0006470 0.0004431 1.460 0.14472
## caliper -0.5245579 0.2859513 -1.834 0.06706 .
## gamma -0.0081856 0.0018449 -4.437 1.08e-05 ***
## phi.N -1.7527796 0.4435291 -3.952 8.63e-05 ***
## R.med 0.0014815 0.0008800 1.684 0.09276 .
## SP -0.0019674 0.0009460 -2.080 0.03796 *
## density 1.6459766 0.3388783 4.857 1.50e-06 ***
## phi.core 0.0938835 0.0067689 13.870 < 2e-16 ***
## FaciesF10 0.1159162 0.1078556 1.075 0.28290
## FaciesF2 0.0399244 0.1645495 0.243 0.80837
## FaciesF3 -0.0604366 0.1008642 -0.599 0.54926
## FaciesF5 0.1520285 0.1014985 1.498 0.13467
## FaciesF7 0.3339848 0.1581542 2.112 0.03510 *
## FaciesF8 -0.0613564 0.1067983 -0.575 0.56583
## FaciesF9 -0.3605925 0.1205182 -2.992 0.00288 **
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.3421 on 631 degrees of freedom
## Multiple R-squared: 0.6633, Adjusted R-squared: 0.6553
## F-statistic: 82.88 on 15 and 631 DF, p-value: < 2.2e-16
r2_8 <- summary(model8)$r.squared
adj_r2_8 <- summary(model8)$adj.r.squared
cat("Scenario 8 - R2:", r2_8, "Adjusted R2:", adj_r2_8, "\n")
## Scenario 8 - R2: 0.6633322 Adjusted R2: 0.6553291
log_k.pred8 <- predict(model8, newdata = testing)
k.pred8 <- 10^log_k.pred8
plot(k.pred8, testing$k.core)
rmse_8 <- RMSE(k.pred8, testing$k.core)
rmse_8
## [1] 1632.529