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