Heterogeneity Index: It is a tool used to measure the performance variability between wells in the same field. This indicator helps in analyzing production data and identifying wells that need improvement or maintenance, which enhances production efficiency and reduces costs.

##Load Dataset

dataset=read.csv("C:/Users/hp ZBook/OneDrive/Desktop/karpur.csv")
head(dataset)
##    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

Load a CSV file named “karpur.csv” into a dataset and displays the first few rows.

##Sort Dataset

dataset=dataset[order(dataset$k.core,decreasing = TRUE),]
k=dataset$k.core

Sorts the dataset by the column k.core in descending order and stores the sorted k.core values in k.

##Create Sample Index

sample=c(1:length(k))

Generates a sequence of integers from 1 to the length of k.

##Calculate Percentage

k_percent=(sample*100)/length(k)

Calculates the percentage of samples relative to the total number of samples.

##Plot Data

xlab="Portion of Total Samples Having Larger or Equal k "
ylab="permeability(md)"
plot(k_percent,k,log = 'y',xlab = xlab,ylab = ylab,pch=10,cex=0.5,col='#001c49')

Creates a scatter plot of k_percent vs. k, with a logarithmic scale on the y-axis.

##Linear Model

log_k=log(k)
model=lm(log_k~k_percent)
plot(k_percent,log_k,xlab = xlab,ylab = ylab,pch=10,cex=0.5,col='#001c49')
abline(model,col='green',lwd=2)

Fits a linear model to the log of k against k_percent and plots it, adding the regression line.

##Model Summary

summary(model)
## 
## Call:
## lm(formula = log_k ~ k_percent)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -5.8697 -0.2047  0.1235  0.3150  0.4280 
## 
## Coefficients:
##               Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  9.2584172  0.0377994  244.94   <2e-16 ***
## k_percent   -0.0425617  0.0006541  -65.07   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.5404 on 817 degrees of freedom
## Multiple R-squared:  0.8382, Adjusted R-squared:  0.838 
## F-statistic:  4234 on 1 and 817 DF,  p-value: < 2.2e-16

Displays a summary of the linear model, including coefficients and statistics.

##Prediction

new_data=data.frame(k_percent=c(50,84.1))
predicted_values=predict(model,new_data)
heterogeneity_index=(predicted_values[1]-predicted_values[2])/predicted_values[1]
heterogeneity_index
##         1 
## 0.2035464