Step(1):Loading the data then view it
data<-read.csv("C:/Users/hp ZBook/OneDrive/Desktop/karpur.csv", header = TRUE)
head(data)
## depth caliper ind.deep ind.med gamma phi.N R.deep R.med SP
## 1 5667.0 8.685 618.005 569.781 98.823 0.410 1.618 1.755 -56.587
## 2 5667.5 8.686 497.547 419.494 90.640 0.307 2.010 2.384 -61.916
## 3 5668.0 8.686 384.935 300.155 78.087 0.203 2.598 3.332 -55.861
## 4 5668.5 8.686 278.324 205.224 66.232 0.119 3.593 4.873 -41.860
## 5 5669.0 8.686 183.743 131.155 59.807 0.069 5.442 7.625 -34.934
## 6 5669.5 8.686 109.512 75.633 57.109 0.048 9.131 13.222 -39.769
## density.corr density phi.core k.core Facies
## 1 -0.033 2.205 0.339000 2442.590 F1
## 2 -0.067 2.040 0.334131 3006.989 F1
## 3 -0.064 1.888 0.331000 3370.000 F1
## 4 -0.053 1.794 0.349000 2270.000 F1
## 5 -0.054 1.758 0.350644 2530.758 F1
## 6 -0.058 1.759 0.353152 2928.314 F1
Step(2):Build a linear model to correct the core porosity data with log porosity data
porosity_model <- lm(phi.core ~ phi.N + Facies-1,data = data)
summary(porosity_model)
##
## Call:
## lm(formula = phi.core ~ phi.N + Facies - 1, data = data)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.103530 -0.011573 -0.000206 0.010463 0.102852
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## phi.N 0.013364 0.018060 0.74 0.46
## FaciesF1 0.314805 0.002777 113.37 <2e-16 ***
## FaciesF10 0.207680 0.005072 40.95 <2e-16 ***
## FaciesF2 0.175233 0.009390 18.66 <2e-16 ***
## FaciesF3 0.231939 0.004955 46.81 <2e-16 ***
## FaciesF5 0.272953 0.003914 69.74 <2e-16 ***
## FaciesF7 0.225164 0.008730 25.79 <2e-16 ***
## FaciesF8 0.305884 0.005019 60.94 <2e-16 ***
## FaciesF9 0.264448 0.004825 54.81 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.02326 on 810 degrees of freedom
## Multiple R-squared: 0.9928, Adjusted R-squared: 0.9928
## F-statistic: 1.246e+04 on 9 and 810 DF, p-value: < 2.2e-16
Step(3):Predict the porosity using the model
Corrected_Porosity <- predict(porosity_model,data = data)
head(cbind(Corrected_Porosity,Log_porosity=data$phi.N))
## Corrected_Porosity Log_porosity
## 1 0.3202847 0.410
## 2 0.3189082 0.307
## 3 0.3175183 0.203
## 4 0.3163957 0.119
## 5 0.3157275 0.069
## 6 0.3154468 0.048
Step(4):Build a linear model to correct the core permeability data with corrected porosity data
permeability_model <- lm(k.core ~ Corrected_Porosity + Facies-1, data = data)
summary(permeability_model)
##
## Call:
## lm(formula = k.core ~ Corrected_Porosity + Facies - 1, data = data)
##
## Residuals:
## Min 1Q Median 3Q Max
## -5613.4 -596.9 -130.3 475.0 10449.1
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## Corrected_Porosity -412352 89814 -4.591 5.11e-06 ***
## FaciesF1 132659 28386 4.673 3.47e-06 ***
## FaciesF10 87869 18969 4.632 4.21e-06 ***
## FaciesF2 73980 16049 4.610 4.69e-06 ***
## FaciesF3 97910 21087 4.643 4.00e-06 ***
## FaciesF5 118916 24729 4.809 1.81e-06 ***
## FaciesF7 95868 20496 4.677 3.40e-06 ***
## FaciesF8 130990 27786 4.714 2.86e-06 ***
## FaciesF9 111324 24050 4.629 4.28e-06 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 1546 on 810 degrees of freedom
## Multiple R-squared: 0.7652, Adjusted R-squared: 0.7626
## F-statistic: 293.2 on 9 and 810 DF, p-value: < 2.2e-16
Step(5):Predict permeability using the model
Corrected_Permeability <- predict(permeability_model, data = data)
head(cbind(Corrected_Permeability,Core_permeability=data$k.core))
## Corrected_Permeability Core_permeability
## 1 589.2371 2442.590
## 2 1156.8516 3006.989
## 3 1729.9769 3370.000
## 4 2192.8857 2270.000
## 5 2468.4267 2530.758
## 6 2584.1540 2928.314