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("karpur.csv")
head(dataset)

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 
LS0tDQp0aXRsZTogIlIgTm90ZWJvb2siDQphdXRob3I6ICJNdXF0YWRpciBBYmJhcyBBYmQgQWwtSW1hbSINCmRhdGU6ICIyMi8xMC8yMDI0Ig0Kb3V0cHV0OiBodG1sX25vdGVib29rDQotLS0NCg0KSGV0ZXJvZ2VuZWl0eSBJbmRleDogSXQgaXMgYSB0b29sIHVzZWQgdG8gbWVhc3VyZSB0aGUgcGVyZm9ybWFuY2UgdmFyaWFiaWxpdHkgYmV0d2VlbiB3ZWxscyBpbiB0aGUgc2FtZSBmaWVsZC4gVGhpcyBpbmRpY2F0b3IgaGVscHMgaW4gYW5hbHl6aW5nIHByb2R1Y3Rpb24gZGF0YSBhbmQgaWRlbnRpZnlpbmcgd2VsbHMgdGhhdCBuZWVkIGltcHJvdmVtZW50IG9yIG1haW50ZW5hbmNlLCB3aGljaCBlbmhhbmNlcyBwcm9kdWN0aW9uIGVmZmljaWVuY3kgYW5kIHJlZHVjZXMgY29zdHMuDQoNCiMjTG9hZCBEYXRhc2V0DQoNCmBgYHtyfQ0KZGF0YXNldD1yZWFkLmNzdigia2FycHVyLmNzdiIpDQpoZWFkKGRhdGFzZXQpDQpgYGANCg0KTG9hZCBhIENTViBmaWxlIG5hbWVkICJrYXJwdXIuY3N2IiBpbnRvIGEgZGF0YXNldCBhbmQgZGlzcGxheXMgdGhlIGZpcnN0IGZldyByb3dzLg0KDQojI1NvcnQgRGF0YXNldA0KDQpgYGB7cn0NCmRhdGFzZXQ9ZGF0YXNldFtvcmRlcihkYXRhc2V0JGsuY29yZSxkZWNyZWFzaW5nID0gVFJVRSksXQ0Kaz1kYXRhc2V0JGsuY29yZQ0KYGBgDQoNClNvcnRzIHRoZSBkYXRhc2V0IGJ5IHRoZSBjb2x1bW4gYGsuY29yZWAgaW4gZGVzY2VuZGluZyBvcmRlciBhbmQgc3RvcmVzIHRoZSBzb3J0ZWQgYGsuY29yZWAgdmFsdWVzIGluIGBrYC4NCg0KIyNDcmVhdGUgU2FtcGxlIEluZGV4DQoNCmBgYHtyfQ0Kc2FtcGxlPWMoMTpsZW5ndGgoaykpDQpgYGANCg0KR2VuZXJhdGVzIGEgc2VxdWVuY2Ugb2YgaW50ZWdlcnMgZnJvbSAxIHRvIHRoZSBsZW5ndGggb2YgYGtgLg0KDQojI0NhbGN1bGF0ZSBQZXJjZW50YWdlDQoNCmBgYHtyfQ0Ka19wZXJjZW50PShzYW1wbGUqMTAwKS9sZW5ndGgoaykNCmBgYA0KDQpDYWxjdWxhdGVzIHRoZSBwZXJjZW50YWdlIG9mIHNhbXBsZXMgcmVsYXRpdmUgdG8gdGhlIHRvdGFsIG51bWJlciBvZiBzYW1wbGVzLg0KDQojI1Bsb3QgRGF0YQ0KDQpgYGB7cn0NCnhsYWI9IlBvcnRpb24gb2YgVG90YWwgU2FtcGxlcyBIYXZpbmcgTGFyZ2VyIG9yIEVxdWFsIGsgIg0KeWxhYj0icGVybWVhYmlsaXR5KG1kKSINCnBsb3Qoa19wZXJjZW50LGssbG9nID0gJ3knLHhsYWIgPSB4bGFiLHlsYWIgPSB5bGFiLHBjaD0xMCxjZXg9MC41LGNvbD0nIzAwMWM0OScpDQpgYGANCg0KQ3JlYXRlcyBhIHNjYXR0ZXIgcGxvdCBvZiBga19wZXJjZW50YCB2cy4gYGtgLCB3aXRoIGEgbG9nYXJpdGhtaWMgc2NhbGUgb24gdGhlIHktYXhpcy4NCg0KIyNMaW5lYXIgTW9kZWwNCg0KYGBge3J9DQpsb2dfaz1sb2coaykNCm1vZGVsPWxtKGxvZ19rfmtfcGVyY2VudCkNCnBsb3Qoa19wZXJjZW50LGxvZ19rLHhsYWIgPSB4bGFiLHlsYWIgPSB5bGFiLHBjaD0xMCxjZXg9MC41LGNvbD0nIzAwMWM0OScpDQphYmxpbmUobW9kZWwsY29sPSdncmVlbicsbHdkPTIpDQpgYGANCg0KRml0cyBhIGxpbmVhciBtb2RlbCB0byB0aGUgbG9nIG9mIGBrYCBhZ2FpbnN0IGBrX3BlcmNlbnRgIGFuZCBwbG90cyBpdCwgYWRkaW5nIHRoZSByZWdyZXNzaW9uIGxpbmUuDQoNCiMjTW9kZWwgU3VtbWFyeQ0KDQpgYGB7cn0NCnN1bW1hcnkobW9kZWwpDQpgYGANCg0KRGlzcGxheXMgYSBzdW1tYXJ5IG9mIHRoZSBsaW5lYXIgbW9kZWwsIGluY2x1ZGluZyBjb2VmZmljaWVudHMgYW5kIHN0YXRpc3RpY3MuDQoNCiMjUHJlZGljdGlvbg0KDQpgYGB7cn0NCm5ld19kYXRhPWRhdGEuZnJhbWUoa19wZXJjZW50PWMoNTAsODQuMSkpDQpwcmVkaWN0ZWRfdmFsdWVzPXByZWRpY3QobW9kZWwsbmV3X2RhdGEpDQpoZXRlcm9nZW5laXR5X2luZGV4PShwcmVkaWN0ZWRfdmFsdWVzWzFdLXByZWRpY3RlZF92YWx1ZXNbMl0pL3ByZWRpY3RlZF92YWx1ZXNbMV0NCmhldGVyb2dlbmVpdHlfaW5kZXgNCmBgYA0K