Intro. :
Scale Correction may be a fundamental step when managing with Store
Recreation, the information we get from center tests is in few inches
and in Store Recreation we bargain with frameworks that have least
dimensions(10 X 10 X 10 meters).
- Well information collected shows changing scales; for occasion, center
information is spoken to on a scale of (mm/cm), whereas log information
may have a bigger scale (cm/m). Both scales are littler than the
specified store scale (networks) utilized in reenactment. In this
manner, it is basic to accommodate the center scale with the log scale
some time recently adjusting them with the store scale.
This record covers as it were the primary portion of this
prepare.
First Let’s Load the data:
data = read.csv("karpur.csv")
head(data)
Before we correct the data we will checking
out-liers:
Using plot-box, let’s first see if our interesting data contains any
out-liers:
par(mfrow = c(1,3))
boxplot(data$k.core, xlab = "K.core", col = "green", cex = 2)
boxplot(data$phi.core, xlab = "Phi.core", col = "yellow", cex = 2)
boxplot(data$phi.N, xlab = "Phi.N", col = "red", cex = 2)

Ok, We show Core-Permeability and Log-Porosity both have glaring
out-liers (Out-liers showed by circles)
In order We employ the following to eliminate the out-liers from the
data:
* Q = quarter.
* IQR = interquartile range.
Q1 = quantile(data$k.core, probs = c(0.25, 0.75), na.rm = FALSE)
Q2 = quantile(data$phi.N, probs = c(0.25, 0.75), na.rm = FALSE)
IQR1 = IQR(data$k.core)
IQR2 = IQR(data$phi.N)
Low.1 = Q1[1] - 1.5 * IQR1
Upp.1 = Q1[2] + 1.5 * IQR1
Low.2 = Q2[1] - 1.5 * IQR2
Upp.2 = Q2[2] + 1.5 * IQR2
Sub.1 = subset(data, data$k.core > Low.1 & data$k.core < Upp.1)
New.data = subset(Sub.1, data$phi.N > Low.2 & data$phi.N < Upp.2)
SO, We calculated first the (Q1) & (Q3) by using
quantile()
function, And the (IQR) by IQR()
function. Using the eq. (Q1 - 1.5*IQR) to find Lower limit for
out-liers.
After that, Let’s check it again:
par(mfrow = c(1,3))
boxplot(New.data$k.core, xlab = "k.core", col = 'green', cex = 2)
boxplot(New.data$phi.core, xlab = "Phi.core", col = 'yellow', cex= 2)
boxplot(New.data$phi.N, xlab = "Phi.N", col = 'red', cex = 2)

There are fewer outl-iers than previously, we will retain the
remainder to ensure that our model is not affected in any way.
The other step is checking Normal distribution
* We need to define some required data:
K.core = New.data$k.core
Phi.N = New.data$phi.N
Phi.core = (New.data$phi.core) / 100
Let’s check that k.core is normal or not:
hist(K.core, breaks = 10)

OK, take log()
hist(log(K.core),breaks = 10)

That’s Good, The data is now ready.
we will correlation between data by:
1. Porosity log data is used to rectify porosity core
data.
2. Find the relationship between Phi.core and
Phi.N using the linear regression model
lm()
.
3. And we will plot best straight line between pro. from log and pro.
from core.
summary(mod1)
Call:
lm(formula = Phi.core ~ Phi.N)
Residuals:
Min 1Q Median 3Q Max
-0.103280 -0.040444 0.009061 0.039229 0.093787
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 0.27170 0.01029 26.406 <2e-16 ***
Phi.N -0.04495 0.04096 -1.097 0.273
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 0.04538 on 642 degrees of freedom
(47 observations deleted due to missingness)
Multiple R-squared: 0.001872, Adjusted R-squared: 0.0003175
F-statistic: 1.204 on 1 and 642 DF, p-value: 0.2729
plot(Phi.N, Phi.core, col = "#001F3F", pch = 16, cex = 1)
abline(mod1, col = 'red', lwd = '3')

Let corrected values of phi.core:
model1_in = data.frame(Phi.N)
Phi.core_corrected = predict(mod1, model_in)
The correction of core permeability by corrected core porosity
Using linear regression model
lm()
to find the relation between
K.core and
Phi.core_corrected
K.core_corrected = lm(log(K.core) ~ Phi.core_corrected)
summary((K.core_corrected))
Call:
lm(formula = log(K.core) ~ Phi.core_corrected)
Residuals:
Min 1Q Median 3Q Max
-7.5710 -0.5593 0.1525 1.0367 2.0153
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -29.244 6.918 -4.227 2.71e-05 ***
Phi.core_corrected 138.565 26.547 5.220 2.42e-07 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 1.322 on 642 degrees of freedom
(47 observations deleted due to missingness)
Multiple R-squared: 0.04071, Adjusted R-squared: 0.03922
F-statistic: 27.25 on 1 and 642 DF, p-value: 2.423e-07
OK, Let plot the relationship between Phi.core_corrected
& log(K.core) and plot best straight line between
them:
plot(Phi.core_corrected, log(K.core), col = '#001F3F', pch = 16, cex = 1)
abline(K.core_corrected, col = "red", lwd = 3)

Let get the corrected value of core permeability based on this
model:
model2_in = data.frame(Phi.core_corrected)
K.core_corrected = predict(K.core_corrected, model2_in)
The result:
The relationship between Permeability and Porosity is not
linear (low R2), making it unreasonable to model using
Simple Linear Regression. Permeability is not solely dependent
on porosity but is influenced by other properties, especially
facies and other logs.
LS0tDQp0aXRsZTogIkguVyAxOlByZWRpY3QgY29yZSBwb3Jvc2l0eSBhbmQgcGVybWVhYmlsaXR5IGNvcnJlY3RlZCB0byBsb2cgc2NhbGUgYnkgc2ltcGxlIGxpbmVhciByZWdyZXNzaW9uIG1vZGVsIg0KYXV0aG9yOiAiQWhtZWQgS2htZWVzIEtoaXNhZiINCmRhdGU6ICJPY3RvYmVyIDE0LCAyMDI0Ig0Kb3V0cHV0OiBodG1sX25vdGVib29rDQotLS0NCg0KIyBJbnRyby4gOg0KDQpTY2FsZSBDb3JyZWN0aW9uIG1heSBiZSBhIGZ1bmRhbWVudGFsIHN0ZXAgd2hlbiBtYW5hZ2luZyB3aXRoIFN0b3JlIFJlY3JlYXRpb24sIHRoZSBpbmZvcm1hdGlvbiB3ZSBnZXQgZnJvbSBjZW50ZXIgdGVzdHMgaXMgaW4gZmV3IGluY2hlcyBhbmQgaW4gU3RvcmUgUmVjcmVhdGlvbiB3ZSBiYXJnYWluIHdpdGggZnJhbWV3b3JrcyB0aGF0IGhhdmUgbGVhc3QgZGltZW5zaW9ucygxMCBYIDEwIFggMTAgbWV0ZXJzKS5cDQotIFdlbGwgaW5mb3JtYXRpb24gY29sbGVjdGVkIHNob3dzIGNoYW5naW5nIHNjYWxlczsgZm9yIG9jY2FzaW9uLCBjZW50ZXIgaW5mb3JtYXRpb24gaXMgc3Bva2VuIHRvIG9uIGEgc2NhbGUgb2YgKG1tL2NtKSwgd2hlcmVhcyBsb2cgaW5mb3JtYXRpb24gbWF5IGhhdmUgYSBiaWdnZXIgc2NhbGUgKGNtL20pLiBCb3RoIHNjYWxlcyBhcmUgbGl0dGxlciB0aGFuIHRoZSBzcGVjaWZpZWQgc3RvcmUgc2NhbGUgKG5ldHdvcmtzKSB1dGlsaXplZCBpbiByZWVuYWN0bWVudC4gSW4gdGhpcyBtYW5uZXIsIGl0IGlzIGJhc2ljIHRvIGFjY29tbW9kYXRlIHRoZSBjZW50ZXIgc2NhbGUgd2l0aCB0aGUgbG9nIHNjYWxlIHNvbWUgdGltZSByZWNlbnRseSBhZGp1c3RpbmcgdGhlbSB3aXRoIHRoZSBzdG9yZSBzY2FsZS4NCg0KVGhpcyByZWNvcmQgY292ZXJzIGFzIGl0IHdlcmUgdGhlIHByaW1hcnkgcG9ydGlvbiBvZiB0aGlzIHByZXBhcmUuDQoNCkZpcnN0IExldCdzICoqTG9hZCB0aGUgZGF0YToqKg0KDQpgYGB7cn0NCmRhdGEgPSByZWFkLmNzdigia2FycHVyLmNzdiIpDQpoZWFkKGRhdGEpDQpgYGANCg0KQmVmb3JlIHdlIGNvcnJlY3QgdGhlIGRhdGEgd2Ugd2lsbCAqKmNoZWNraW5nIG91dC1saWVycyoqOlwNClVzaW5nIHBsb3QtYm94LCBsZXTigJlzIGZpcnN0IHNlZSBpZiBvdXIgaW50ZXJlc3RpbmcgZGF0YSBjb250YWlucyBhbnkgb3V0LWxpZXJzOg0KDQpgYGB7cn0NCnBhcihtZnJvdyA9IGMoMSwzKSkNCmJveHBsb3QoZGF0YSRrLmNvcmUsIHhsYWIgPSAiSy5jb3JlIiwgY29sID0gImdyZWVuIiwgY2V4ID0gMikNCmJveHBsb3QoZGF0YSRwaGkuY29yZSwgeGxhYiA9ICJQaGkuY29yZSIsIGNvbCA9ICJ5ZWxsb3ciLCBjZXggPSAyKQ0KYm94cGxvdChkYXRhJHBoaS5OLCB4bGFiID0gIlBoaS5OIiwgY29sID0gInJlZCIsIGNleCA9IDIpDQpgYGANCg0KT2ssIFdlIHNob3cgQ29yZS1QZXJtZWFiaWxpdHkgYW5kIExvZy1Qb3Jvc2l0eSBib3RoIGhhdmUgZ2xhcmluZyBvdXQtbGllcnMgKCoqT3V0LWxpZXJzIHNob3dlZCBieSBjaXJjbGVzKSoqDQoNCkluIG9yZGVyIFdlIGVtcGxveSB0aGUgZm9sbG93aW5nIHRvIGVsaW1pbmF0ZSB0aGUgb3V0LWxpZXJzIGZyb20gdGhlIGRhdGE6DQoNClwqIFEgPSBxdWFydGVyLlwNClwqIElRUiA9IGludGVycXVhcnRpbGUgcmFuZ2UuDQoNCmBgYHtyfQ0KUTEgPSBxdWFudGlsZShkYXRhJGsuY29yZSwgcHJvYnMgPSBjKDAuMjUsIDAuNzUpLCBuYS5ybSA9IEZBTFNFKQ0KUTIgPSBxdWFudGlsZShkYXRhJHBoaS5OLCBwcm9icyA9IGMoMC4yNSwgMC43NSksIG5hLnJtID0gRkFMU0UpDQpJUVIxID0gSVFSKGRhdGEkay5jb3JlKQ0KSVFSMiA9IElRUihkYXRhJHBoaS5OKQ0KDQpMb3cuMSA9IFExWzFdIC0gMS41ICogSVFSMQ0KVXBwLjEgPSBRMVsyXSArIDEuNSAqIElRUjENCkxvdy4yID0gUTJbMV0gLSAxLjUgKiBJUVIyDQpVcHAuMiA9IFEyWzJdICsgMS41ICogSVFSMg0KDQpTdWIuMSA9IHN1YnNldChkYXRhLCBkYXRhJGsuY29yZSA+IExvdy4xICYgZGF0YSRrLmNvcmUgPCBVcHAuMSkNCk5ldy5kYXRhID0gc3Vic2V0KFN1Yi4xLCBkYXRhJHBoaS5OID4gTG93LjIgJiBkYXRhJHBoaS5OIDwgVXBwLjIpDQpgYGANCg0KU08sIFdlIGNhbGN1bGF0ZWQgZmlyc3QgdGhlIChRMSkgJiAoUTMpIGJ5IHVzaW5nIGBxdWFudGlsZSgpYCBmdW5jdGlvbiwgQW5kIHRoZSAoSVFSKSBieSBgSVFSKClgIGZ1bmN0aW9uLiBVc2luZyB0aGUgZXEuIChRMSAtIDEuNVwqSVFSKSB0byBmaW5kIExvd2VyIGxpbWl0IGZvciBvdXQtbGllcnMuDQoNCkFmdGVyIHRoYXQsICoqTGV0J3MgY2hlY2sgaXQgYWdhaW4qKjoNCg0KYGBge3J9DQpwYXIobWZyb3cgPSBjKDEsMykpDQpib3hwbG90KE5ldy5kYXRhJGsuY29yZSwgeGxhYiA9ICJrLmNvcmUiLCBjb2wgPSAnZ3JlZW4nLCBjZXggPSAyKQ0KYm94cGxvdChOZXcuZGF0YSRwaGkuY29yZSwgeGxhYiA9ICJQaGkuY29yZSIsIGNvbCA9ICd5ZWxsb3cnLCBjZXg9IDIpDQpib3hwbG90KE5ldy5kYXRhJHBoaS5OLCB4bGFiID0gIlBoaS5OIiwgY29sID0gJ3JlZCcsIGNleCA9IDIpDQpgYGANCg0KVGhlcmUgYXJlIGZld2VyIG91dGwtaWVycyB0aGFuIHByZXZpb3VzbHksIHdlIHdpbGwgcmV0YWluIHRoZSByZW1haW5kZXIgdG8gZW5zdXJlIHRoYXQgb3VyIG1vZGVsIGlzIG5vdCBhZmZlY3RlZCBpbiBhbnkgd2F5Lg0KDQpUaGUgb3RoZXIgc3RlcCBpcyAqKmNoZWNraW5nIE5vcm1hbCBkaXN0cmlidXRpb25cDQpcKiBXZSBuZWVkIHRvIGRlZmluZSBzb21lIHJlcXVpcmVkIGRhdGE6KioNCg0KYGBge3J9DQpLLmNvcmUgPSBOZXcuZGF0YSRrLmNvcmUNClBoaS5OID0gTmV3LmRhdGEkcGhpLk4NClBoaS5jb3JlID0gKE5ldy5kYXRhJHBoaS5jb3JlKSAvIDEwMA0KYGBgDQoNCkxldCdzICoqY2hlY2sgdGhhdCBrLmNvcmUqKiBpcyBub3JtYWwgb3Igbm90Og0KDQpgYGB7ciBmaWcuaGVpZ2h0PTV9DQpoaXN0KEsuY29yZSwgYnJlYWtzID0gMTApDQpgYGANCg0KT0ssIHRha2UgYGxvZygpYA0KDQpgYGB7ciBmaWcuaGVpZ2h0PTV9DQpoaXN0KGxvZyhLLmNvcmUpLGJyZWFrcyA9IDEwKQ0KYGBgDQoNClRoYXQncyBHb29kLCBUaGUgZGF0YSBpcyBub3cgKnJlYWR5Ki5cDQp3ZSB3aWxsICoqY29ycmVsYXRpb24gYmV0d2VlbiBkYXRhIGJ5OlwNCioqMS4gUG9yb3NpdHkgbG9nIGRhdGEgaXMgdXNlZCB0byByZWN0aWZ5IHBvcm9zaXR5IGNvcmUgZGF0YS5cDQoyLiBGaW5kIHRoZSByZWxhdGlvbnNoaXAgYmV0d2VlbiAqKipQaGkuY29yZSoqKiBhbmQgKioqUGhpLk4qKiogdXNpbmcgdGhlIGxpbmVhciByZWdyZXNzaW9uIG1vZGVsIGBsbSgpYCAuXA0KMy4gQW5kIHdlIHdpbGwgcGxvdCBiZXN0IHN0cmFpZ2h0IGxpbmUgYmV0d2VlbiBwcm8uIGZyb20gbG9nIGFuZCBwcm8uIGZyb20gY29yZS4NCg0KYGBge3J9DQpwbG90KFBoaS5OLCBQaGkuY29yZSwgY29sID0gIiMwMDFGM0YiLCBwY2ggPSAxNiwgY2V4ID0gMSkNCm1vZDEgPSBsbShQaGkuY29yZSB+IFBoaS5OKQ0Kc3VtbWFyeShtb2QxKQ0KYGBgDQoNCmBgYHtyIGZpZy5oZWlnaHQ9NX0NCnBsb3QoUGhpLk4sIFBoaS5jb3JlLCBjb2wgPSAiIzAwMUYzRiIsIHBjaCA9IDE2LCBjZXggPSAxKQ0KYWJsaW5lKG1vZDEsIGNvbCA9ICdyZWQnLCBsd2QgPSAnMycpDQpgYGANCg0KTGV0IGNvcnJlY3RlZCB2YWx1ZXMgb2YgKioqcGhpLmNvcmUqKio6wqANCg0KYGBge3J9DQptb2RlbDFfaW4gPSBkYXRhLmZyYW1lKFBoaS5OKQ0KUGhpLmNvcmVfY29ycmVjdGVkID0gcHJlZGljdChtb2QxLCBtb2RlbF9pbikNCmBgYA0KDQpUaGUgY29ycmVjdGlvbiBvZiBjb3JlIHBlcm1lYWJpbGl0eSBieSBjb3JyZWN0ZWQgY29yZSBwb3Jvc2l0eVwNClVzaW5nICoqKmxpbmVhciByZWdyZXNzaW9uIG1vZGVsKioqIGBsbSgpYCB0byBmaW5kIHRoZSByZWxhdGlvbiBiZXR3ZWVuICoqKksuY29yZSoqKiBhbmQgKioqUGhpLmNvcmVfY29ycmVjdGVkKioqIMKgDQoNCmBgYHtyfQ0KSy5jb3JlX2NvcnJlY3RlZCA9IGxtKGxvZyhLLmNvcmUpIH4gUGhpLmNvcmVfY29ycmVjdGVkKQ0Kc3VtbWFyeSgoSy5jb3JlX2NvcnJlY3RlZCkpDQpgYGANCg0KT0ssIExldCBwbG90IHRoZSByZWxhdGlvbnNoaXAgYmV0d2VlbiAqKipQaGkuY29yZV9jb3JyZWN0ZWQgJiBsb2coSy5jb3JlKSoqKiBhbmQgcGxvdCBiZXN0IHN0cmFpZ2h0IGxpbmUgYmV0d2VlbiB0aGVtOg0KDQpgYGB7ciBmaWcud2lkdGg9N30NCnBsb3QoUGhpLmNvcmVfY29ycmVjdGVkLCBsb2coSy5jb3JlKSwgY29sID0gJyMwMDFGM0YnLCBwY2ggPSAxNiwgY2V4ID0gMSkNCmFibGluZShLLmNvcmVfY29ycmVjdGVkLCBjb2wgPSAicmVkIiwgbHdkID0gMykNCmBgYA0KDQpMZXQgZ2V0IHRoZSBjb3JyZWN0ZWQgdmFsdWUgb2YgY29yZSBwZXJtZWFiaWxpdHkgYmFzZWQgb24gdGhpcyBtb2RlbDoNCg0KYGBge3J9DQptb2RlbDJfaW4gPSBkYXRhLmZyYW1lKFBoaS5jb3JlX2NvcnJlY3RlZCkNCksuY29yZV9jb3JyZWN0ZWQgPSBwcmVkaWN0KEsuY29yZV9jb3JyZWN0ZWQsIG1vZGVsMl9pbikNCmBgYA0KDQojIyBUaGUgcmVzdWx0Og0KDQpUaGUgcmVsYXRpb25zaGlwIGJldHdlZW4gUGVybWVhYmlsaXR5IGFuZCBQb3Jvc2l0eSBpcyAqKm5vdCBsaW5lYXIgKGxvdyBSMikqKiwgbWFraW5nIGl0IHVucmVhc29uYWJsZSB0byBtb2RlbCB1c2luZyBTKmltcGxlIExpbmVhciBSZWdyZXNzaW9uKi4gUGVybWVhYmlsaXR5IGlzIG5vdCBzb2xlbHkgZGVwZW5kZW50IG9uIHBvcm9zaXR5IGJ1dCBbKmlzIGluZmx1ZW5jZWQgYnkgb3RoZXIgcHJvcGVydGllcywgZXNwZWNpYWxseSBmYWNpZXMgYW5kIG90aGVyIGxvZ3MqXXsudW5kZXJsaW5lfS4NCg==