This analysis evaluates permeability heterogeneity and flow
distribution using a dataset. It sorts permeability values, calculates a
heterogeneity index through linear regression.
Load the Dataset
dataset<-read.csv(file.choose(),header = TRUE)
head(dataset)
Sort the Dataset
dataset=dataset[order(dataset$k.core,decreasing = TRUE),]
k=dataset$k.core
Create a Sample Sequence
sample=c(1:length(k))
Calculate Percentage of Samples
k_percent=(sample*100)/length(k)
Plot Permeability against Percentage
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")

Linear Regression Mode
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)

Summary of the Model
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
LS0tDQp0aXRsZTogIkR5a3N0cmEtUGFyc29ucyBIZXRlcm9nZW5laXR5IEluZGV4Ig0KYXV0aG9yOiAiTW9oYW1tZWQgS2hhbGFmIEhhbWVlZC9CYXNyYSBVbml2ZXJzaXR5IEZvciBPaWwgQW5kIEdhcy80dGggc3RhZ2UiDQpkYXRlOiAiMjAyNC0xMC0yMSINCm91dHB1dDogaHRtbF9ub3RlYm9vaw0KLS0tDQoNClRoaXMgYW5hbHlzaXMgZXZhbHVhdGVzIHBlcm1lYWJpbGl0eSBoZXRlcm9nZW5laXR5IGFuZCBmbG93IGRpc3RyaWJ1dGlvbiB1c2luZyBhIGRhdGFzZXQuIEl0IHNvcnRzIHBlcm1lYWJpbGl0eSB2YWx1ZXMsIGNhbGN1bGF0ZXMgYSBoZXRlcm9nZW5laXR5IGluZGV4IHRocm91Z2ggbGluZWFyIHJlZ3Jlc3Npb24uDQoNCiMgTG9hZCB0aGUgRGF0YXNldA0KDQpgYGB7cn0NCmRhdGFzZXQ8LXJlYWQuY3N2KGZpbGUuY2hvb3NlKCksaGVhZGVyID0gVFJVRSkNCmhlYWQoZGF0YXNldCkNCmBgYA0KIyBTb3J0IHRoZSBEYXRhc2V0DQpgYGB7cn0NCmRhdGFzZXQ9ZGF0YXNldFtvcmRlcihkYXRhc2V0JGsuY29yZSxkZWNyZWFzaW5nID0gVFJVRSksXQ0Kaz1kYXRhc2V0JGsuY29yZQ0KYGBgDQojIENyZWF0ZSBhIFNhbXBsZSBTZXF1ZW5jZQ0KYGBge3J9DQpzYW1wbGU9YygxOmxlbmd0aChrKSkNCmBgYA0KIyBDYWxjdWxhdGUgUGVyY2VudGFnZSBvZiBTYW1wbGVzDQpgYGB7cn0NCmtfcGVyY2VudD0oc2FtcGxlKjEwMCkvbGVuZ3RoKGspDQpgYGANCiMgUGxvdCBQZXJtZWFiaWxpdHkgYWdhaW5zdCBQZXJjZW50YWdlDQpgYGB7cn0NCg0KeGxhYj0icG9ydGlvbiBvZiB0b3RhbCBzYW1wbGVzIGhhdmluZyBsYXJnZXIgb3IgZXF1YWwgayINCnlsYWI9InBlcm1lYWJpbGl0eShtZCkiDQpwbG90KGtfcGVyY2VudCxrLGxvZyA9ICd5Jyx4bGFiID0geGxhYix5bGFiID0geWxhYixwY2g9MTAsY2V4PTAuNSxjb2w9IiMwMDFDNDkiKQ0KYGBgDQojIExpbmVhciBSZWdyZXNzaW9uIE1vZGUNCmBgYHtyfQ0KbG9nX2s9bG9nKGspDQptb2RlbD1sbShsb2dfa35rX3BlcmNlbnQpDQpwbG90KGtfcGVyY2VudCxsb2dfayx4bGFiID0geGxhYix5bGFiID0geWxhYixwY2g9MTAsY2V4PTAuNSxjb2w9IiMwMDFjNDkiKQ0KYWJsaW5lKG1vZGVsLGNvbD0nZ3JlZW4nLGx3ZD0yKQ0KYGBgDQojIFN1bW1hcnkgb2YgdGhlIE1vZGVsDQpgYGB7cn0NCnN1bW1hcnkobW9kZWwpDQpgYGANCg==