Import data :

at the first we import csv file

`karpur.(2)` <- read.csv("C:/Users/gaming/OneDrive/Desktop/Dena Qais/karpur (2).csv") 

head(`karpur.(2)`)                                                  
##    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 phi.core.frac
## 1       -0.033   2.205  33.9000 2442.590     F1      0.339000
## 2       -0.067   2.040  33.4131 3006.989     F1      0.334131
## 3       -0.064   1.888  33.1000 3370.000     F1      0.331000
## 4       -0.053   1.794  34.9000 2270.000     F1      0.349000
## 5       -0.054   1.758  35.0644 2530.758     F1      0.350644
## 6       -0.058   1.759  35.3152 2928.314     F1      0.353152
View(`karpur.(2)`)                                                  
plot(`karpur.(2)`$phi.N,`karpur.(2)`$phi.core.frac)                  

Creat Simple Linear Regression Model between core porosity and log porosity :

porosity_model<- lm(phi.core.frac~phi.N+Facies-1,data=`karpur.(2)`)  
summary(porosity_model)    
## 
## Call:
## lm(formula = phi.core.frac ~ phi.N + Facies - 1, data = `karpur.(2)`)
## 
## 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

Prediction :

corrected_poro.<-predict(porosity_model,)
permeabilty_model<-lm(`karpur.(2)`$k.core~corrected_poro.+Facies-1,data=`karpur.(2)`)
summary(permeabilty_model)
## 
## Call:
## lm(formula = `karpur.(2)`$k.core ~ corrected_poro. + Facies - 
##     1, data = `karpur.(2)`)
## 
## 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_poro.  -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
corrected_perm.<-predict(permeabilty_model,`karpur.(2)`)

Add plots :

par(mfrow=(c(1,5)))
plot(`karpur.(2)`$phi.core.frac,`karpur.(2)`$depth,ylim =rev(c(5667,6083)), xlim=c(0.1570,0.3630) 
     ,type="l", lwd=2, xlab='core porosity' ,ylab='depth m')
plot(corrected_poro.,`karpur.(2)`$depth,ylim =rev(c(5667,6083)), xlim=c(0.1570,0.3630) 
     ,type="l", lwd=2, xlab='corrected core porosity' ,ylab='depth m')
plot(`karpur.(2)`$k.core,`karpur.(2)`$depth,ylim =rev(c(5667,6083)), xlim=c(0.42,15600.00) 
     ,type="l", lwd=2, xlab='core permeability' ,ylab='depth m')
plot(corrected_perm.,`karpur.(2)`$depth,ylim =rev(c(5667,6083)), xlim=c(0.42,15600.00) 
     ,type="l", lwd=2, xlab='corrected core permeability' ,ylab='depth m')
boxplot(depth~Facies,data=`karpur.(2)`,ylim =rev(c(5667,6083)))