Prepared by: Ghozian Islam Karami
This R markdown is just an example how we can utilize R for statistics analysis by using porosity and permeability data. We will Install the library, and load to the R environment. We will also load the porosity-permeability data from my github page : R for Geosciences
#install the library requirement
if (!require("pacman")) install.packages("pacman")
Loading required package: pacman
pacman::p_load(tidyverse, pastecs, ggpubr)
#load the dataset
df <- read.csv("https://raw.githubusercontent.com/ghoziankarami/Rforgeosciences/main/Porosity-Permeability.csv")
Exploratory Data Analysis (EDA)
#to define the first rows of the data
head(df)
NA
Univariate Data Statistics
#How to generate descriptive statistics
summary(df)
Depth..m. Porosity Permeability
Min. :1500 Min. : 2.840 Min. : 30.0
1st Qu.:1640 1st Qu.: 6.420 1st Qu.:150.0
Median :1780 Median : 7.890 Median :205.0
Mean :1772 Mean : 8.135 Mean :222.5
3rd Qu.:1910 3rd Qu.: 9.890 3rd Qu.:310.0
Max. :2040 Max. :12.550 Max. :430.0
# Compute descriptive statistics
library(tidyverse)
library(pastecs)
df %>% stat.desc() %>% round(2)
#Define the variable
Porosity <- df$Porosity
Permeability <- df$Permeability
#How to generate a histogram
hist(Porosity, main="Porosity Histogram")

hist(Permeability, main="Permeability Histogram")

#How to generate a boxplot
boxplot(Porosity, main="Porosity Boxplot")

boxplot(Permeability, main="Permeability Boxplot")
#How to combining plots
par(mfrow=c(2,2))

hist(Porosity, main="Porosity Histogram")
hist(Permeability, main="Permeability Histogram")
boxplot(Porosity, main="Porosity Boxplot")
boxplot(Permeability, main="Permeability Boxplot")

#To generate cdf
a<- ggecdf(df, x = "Permeability")
b<- ggecdf(df, x = "Porosity")
library(patchwork)
a + b + plot_annotation(title = "Cumulative Distribution Function") #side by side

Bivariate Data Statistics
#Scatter Plot
plot(Permeability ~ Porosity, dat = df)
regression <- lm(Permeability ~ Porosity, data=df)
abline(regression)

#compute the summary of the regression line
summary(regression)
Call:
lm(formula = Permeability ~ Porosity, data = df)
Residuals:
Min 1Q Median 3Q Max
-94.93 -46.88 -12.99 36.70 155.77
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -29.008 34.175 -0.849 0.4
Porosity 30.918 4.043 7.646 8.62e-10 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 64.89 on 47 degrees of freedom
Multiple R-squared: 0.5544, Adjusted R-squared: 0.5449
F-statistic: 58.47 on 1 and 47 DF, p-value: 8.624e-10
#Plot the regression
plot(regression)




#Using GGplot
regplot <- ggplot(df, aes(y=Permeability, x=Porosity)) + geom_point() + geom_smooth(method = "lm") + stat_regline_equation() + theme_bw() + labs(title="Simple regrssion of Permeability and Porosity")
regplot
`geom_smooth()` using formula 'y ~ x'

LS0tDQp0aXRsZTogIlN0YXRpc3RpY3MgZm9yIEdlb3NjaWVuY2VzIg0Kb3V0cHV0Og0KICBodG1sX25vdGVib29rOiBkZWZhdWx0DQogIGh0bWxfZG9jdW1lbnQ6DQogICAgZGZfcHJpbnQ6IHBhZ2VkDQogIHBkZl9kb2N1bWVudDogZGVmYXVsdA0KLS0tDQoNCmBgYHtyIHNldHVwLCBpbmNsdWRlPUZBTFNFfQ0Ka25pdHI6Om9wdHNfY2h1bmskc2V0KA0KCWZpZy5oZWlnaHQgPSA4LA0KCWZpZy5wYXRoID0gIkZpZ3MvU3RhdEZpZ3MtIiwNCglmaWcud2lkdGggPSAxMCwNCgltZXNzYWdlID0gRkFMU0UsDQoJd2FybmluZyA9IEZBTFNFDQopDQpgYGANCg0KDQojIyMgUHJlcGFyZWQgYnk6IEdob3ppYW4gSXNsYW0gS2FyYW1pDQoNClRoaXMgUiBtYXJrZG93biBpcyBqdXN0IGFuIGV4YW1wbGUgaG93IHdlIGNhbiB1dGlsaXplIFIgZm9yIHN0YXRpc3RpY3MgYW5hbHlzaXMgYnkgdXNpbmcgcG9yb3NpdHkgYW5kIHBlcm1lYWJpbGl0eSBkYXRhLg0KV2Ugd2lsbCBJbnN0YWxsIHRoZSBsaWJyYXJ5LCBhbmQgbG9hZCB0byB0aGUgUiBlbnZpcm9ubWVudC4gV2Ugd2lsbCBhbHNvIGxvYWQgdGhlIHBvcm9zaXR5LXBlcm1lYWJpbGl0eSBkYXRhIGZyb20gbXkgZ2l0aHViIHBhZ2UgOiBbUiBmb3IgR2Vvc2NpZW5jZXNdKGh0dHBzOi8vZ2l0aHViLmNvbS9naG96aWFua2FyYW1pL1Jmb3JnZW9zY2llbmNlcykNCg0KYGBge3J9DQojaW5zdGFsbCB0aGUgbGlicmFyeSByZXF1aXJlbWVudA0KaWYgKCFyZXF1aXJlKCJwYWNtYW4iKSkgaW5zdGFsbC5wYWNrYWdlcygicGFjbWFuIikNCnBhY21hbjo6cF9sb2FkKHRpZHl2ZXJzZSwgcGFzdGVjcywgZ2dwdWJyKQ0KDQojbG9hZCB0aGUgZGF0YXNldA0KZGYgPC0gcmVhZC5jc3YoImh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9naG96aWFua2FyYW1pL1Jmb3JnZW9zY2llbmNlcy9tYWluL1Bvcm9zaXR5LVBlcm1lYWJpbGl0eS5jc3YiKQ0KYGBgDQoNCg0KIyMgRXhwbG9yYXRvcnkgRGF0YSBBbmFseXNpcyAoRURBKQ0KDQpgYGB7cn0NCiN0byBkZWZpbmUgdGhlIGZpcnN0IHJvd3Mgb2YgdGhlIGRhdGENCmhlYWQoZGYpDQoNCmBgYA0KDQoNCg0KIyMgVW5pdmFyaWF0ZSBEYXRhIFN0YXRpc3RpY3MNCg0KYGBge3J9DQojSG93IHRvIGdlbmVyYXRlIGRlc2NyaXB0aXZlIHN0YXRpc3RpY3MNCnN1bW1hcnkoZGYpDQoNCiMgQ29tcHV0ZSBkZXNjcmlwdGl2ZSBzdGF0aXN0aWNzDQpsaWJyYXJ5KHRpZHl2ZXJzZSkNCmxpYnJhcnkocGFzdGVjcykNCmRmICU+JSBzdGF0LmRlc2MoKSAlPiUgcm91bmQoMikNCmBgYA0KDQoNCg0KYGBge3J9DQojRGVmaW5lIHRoZSB2YXJpYWJsZQ0KUG9yb3NpdHkgPC0gZGYkUG9yb3NpdHkNClBlcm1lYWJpbGl0eSA8LSBkZiRQZXJtZWFiaWxpdHkNCg0KI0hvdyB0byBnZW5lcmF0ZSBhIGhpc3RvZ3JhbQ0KaGlzdChQb3Jvc2l0eSwgbWFpbj0iUG9yb3NpdHkgSGlzdG9ncmFtIikNCmhpc3QoUGVybWVhYmlsaXR5LCBtYWluPSJQZXJtZWFiaWxpdHkgSGlzdG9ncmFtIikNCg0KI0hvdyB0byBnZW5lcmF0ZSBhIGJveHBsb3QNCmJveHBsb3QoUG9yb3NpdHksIG1haW49IlBvcm9zaXR5IEJveHBsb3QiKQ0KYm94cGxvdChQZXJtZWFiaWxpdHksIG1haW49IlBlcm1lYWJpbGl0eSBCb3hwbG90IikNCg0KI0hvdyB0byBjb21iaW5pbmcgcGxvdHMNCnBhcihtZnJvdz1jKDIsMikpDQpoaXN0KFBvcm9zaXR5LCBtYWluPSJQb3Jvc2l0eSBIaXN0b2dyYW0iKQ0KaGlzdChQZXJtZWFiaWxpdHksIG1haW49IlBlcm1lYWJpbGl0eSBIaXN0b2dyYW0iKQ0KYm94cGxvdChQb3Jvc2l0eSwgbWFpbj0iUG9yb3NpdHkgQm94cGxvdCIpDQpib3hwbG90KFBlcm1lYWJpbGl0eSwgbWFpbj0iUGVybWVhYmlsaXR5IEJveHBsb3QiKQ0KDQpgYGANCg0KDQpgYGB7cn0NCiNUbyBnZW5lcmF0ZSBjZGYNCg0KYTwtIGdnZWNkZihkZiwgeCA9ICJQZXJtZWFiaWxpdHkiKQ0KYjwtIGdnZWNkZihkZiwgeCA9ICJQb3Jvc2l0eSIpDQpsaWJyYXJ5KHBhdGNod29yaykNCmEgKyBiICsgcGxvdF9hbm5vdGF0aW9uKHRpdGxlID0gIkN1bXVsYXRpdmUgRGlzdHJpYnV0aW9uIEZ1bmN0aW9uIikgI3NpZGUgYnkgc2lkZQ0KDQpgYGANCg0KIyMgQml2YXJpYXRlIERhdGEgU3RhdGlzdGljcw0KDQpgYGB7cn0NCg0KI1NjYXR0ZXIgUGxvdA0KcGxvdChQZXJtZWFiaWxpdHkgfiBQb3Jvc2l0eSwgZGF0ID0gZGYpDQpyZWdyZXNzaW9uIDwtIGxtKFBlcm1lYWJpbGl0eSB+IFBvcm9zaXR5LCBkYXRhPWRmKQ0KYWJsaW5lKHJlZ3Jlc3Npb24pDQoNCmBgYA0KDQoNCg0KYGBge3J9DQojY29tcHV0ZSB0aGUgc3VtbWFyeSBvZiB0aGUgcmVncmVzc2lvbiBsaW5lDQpzdW1tYXJ5KHJlZ3Jlc3Npb24pDQoNCmBgYA0KDQoNCmBgYHtyfQ0KI1Bsb3QgdGhlIHJlZ3Jlc3Npb24NCnBsb3QocmVncmVzc2lvbikNCmBgYA0KDQpgYGB7cn0NCiNVc2luZyBHR3Bsb3QNCg0KcmVncGxvdCA8LSBnZ3Bsb3QoZGYsIGFlcyh5PVBlcm1lYWJpbGl0eSwgeD1Qb3Jvc2l0eSkpICsgZ2VvbV9wb2ludCgpICsgZ2VvbV9zbW9vdGgobWV0aG9kID0gImxtIikgKyBzdGF0X3JlZ2xpbmVfZXF1YXRpb24oKSArIHRoZW1lX2J3KCkgKyBsYWJzKHRpdGxlPSJTaW1wbGUgcmVncnNzaW9uIG9mIFBlcm1lYWJpbGl0eSBhbmQgUG9yb3NpdHkiKQ0KDQpyZWdwbG90DQpgYGANCg0K