Librerias

install.packages("bestNormalize")
## Installing package into '/cloud/lib/x86_64-pc-linux-gnu-library/4.4'
## (as 'lib' is unspecified)
library(bestNormalize)
## Registered S3 method overwritten by 'generics':
##   method                 from   
##   as.character.dev_topic butcher
install.packages("scales")
## Installing package into '/cloud/lib/x86_64-pc-linux-gnu-library/4.4'
## (as 'lib' is unspecified)
library(scales)

Cargar datos

setwd("/cloud/project")
compCristina<-read.csv("O_NIVEL_Composito_Cristina.txt",header=T, sep = "",dec=".")
compJane<-read.csv("O_NIVEL_Composito_Jane.txt",header=T, sep= "",dec=".")
compX<-read.csv("O_NIVEL_Composito_X.txt",header=T, sep= "",dec=".")

Extraer las variables de interes

OroCristina<- compCristina$Au.ppm.
OroCristina<- na.omit(OroCristina)

OroJane<- compJane$Au.ppm.
OroJane<- na.omit(OroJane)

OroX<- compX$Au.ppm.
OroX<- na.omit(OroX)

Normalización para Veta Cristina

resultadoCristina<- bestNormalize(OroCristina)
resultadoCristina$chosen_transform
## Standardized Yeo-Johnson Transformation with 145 nonmissing obs.:
##  Estimated statistics:
##  - lambda = -0.7456351 
##  - mean (before standardization) = 0.6678406 
##  - sd (before standardization) = 0.2655736
OroCristinaNormal<- predict(resultadoCristina)
OroCristinaNormal<- rescale(OroCristinaNormal)

histCristNor <-hist(OroCristinaNormal, 
                    breaks = 30, 
                    prob = TRUE, 
                    col = "lightblue", 
                    main = "Histograma normalizado de leyes de Oro en la veta Cristina",
                    xlab = "Au normalizado")

lines(density(OroCristinaNormal), col = "blue", lwd = 2)
mediaCristNormal <- mean(OroCristinaNormal)
sdCristNormal <- sd(OroCristinaNormal)
curve(dnorm(x, mean = mediaCristNormal, sd = sdCristNormal), 
      add = TRUE, 
      col = "red", 
      lwd = 2,
      lty = 2)

# Prueba de normalidad
shapiro.test(OroCristinaNormal)
## 
##  Shapiro-Wilk normality test
## 
## data:  OroCristinaNormal
## W = 0.98209, p-value = 0.05522
# Construir el data frame con todas las variables
df_salida <- data.frame(
  Id = compCristina$Id,
  Este = compCristina$Este,
  Norte = compCristina$Norte,
  Elevacion = compCristina$Elevacion,
  Au_ppm = compCristina$Au.ppm.,
  Au_normalizado = OroCristinaNormal
)

write.table(
  df_salida,
  file = "O_NIVEL_Cristina_Normalizado.csv",
  row.names = FALSE,
  col.names = TRUE,
  quote = FALSE,
  sep = "," 
)

Normalización para Veta Jane

resultadoJane<- bestNormalize(OroJane)
resultadoJane$chosen_transform
## orderNorm Transformation with 510 nonmissing obs and ties
##  - 332 unique values 
##  - Original quantiles:
##      0%     25%     50%     75%    100% 
##   0.340   3.240   6.580  11.355 337.200
OroJaneNormal<- predict(resultadoJane)
OroJaneNormal<- rescale(OroJaneNormal)

histJaneNor <-hist(OroJaneNormal, 
                    breaks = 30, 
                    prob = TRUE, 
                    col = "lightblue", 
                    main = "Histograma normalizado de leyes de Oro en la veta Jane",
                    xlab = "Au normalizado")

lines(density(OroJaneNormal), col = "blue", lwd = 2)
mediaJaneNormal <- mean(OroJaneNormal)
sdJaneNormal <- sd(OroJaneNormal)
curve(dnorm(x, mean = mediaJaneNormal, sd = sdJaneNormal), 
      add = TRUE, 
      col = "red", 
      lwd = 2,
      lty = 2)

# Prueba de normalidad
shapiro.test(OroJaneNormal)
## 
##  Shapiro-Wilk normality test
## 
## data:  OroJaneNormal
## W = 0.99956, p-value = 1
# Construir el data frame con todas las variables
df_salida <- data.frame(
  Id = compJane$Id,
  Este = compJane$Este,
  Norte = compJane$Norte,
  Elevacion = compJane$Elevacion,
  Au_ppm = compJane$Au.ppm.,
  Au_normalizado = OroJaneNormal
)

write.table(
  df_salida,
  file = "O_NIVEL_Jane_Normalizado.csv",
  row.names = FALSE,
  col.names = TRUE,
  quote = FALSE,
  sep = "," 
)

Normalización para Veta X

resultadoX <- bestNormalize(OroX, k = 8)
resultadoX$chosen_transform
## Standardized Box Cox Transformation with 24 nonmissing obs.:
##  Estimated statistics:
##  - lambda = 1.053829 
##  - mean (before standardization) = 1.25626 
##  - sd (before standardization) = 0.7491935
OroXNormal<- predict(resultadoX)
OroXNormal<- rescale(OroXNormal)

histXNor <-hist(OroXNormal, 
                   breaks = 8, 
                   prob = TRUE, 
                   col = "lightblue", 
                   main = "Histograma normalizado de leyes de Oro en la veta X",
                   xlab = "Au normalizado")

lines(density(OroXNormal), col = "blue", lwd = 2)
mediaXNormal <- mean(OroXNormal)
sdXNormal <- sd(OroXNormal)
curve(dnorm(x, mean = mediaXNormal, sd = sdXNormal), 
      add = TRUE, 
      col = "red", 
      lwd = 2,
      lty = 2)

# Prueba de normalidad
shapiro.test(OroXNormal)
## 
##  Shapiro-Wilk normality test
## 
## data:  OroXNormal
## W = 0.92754, p-value = 0.08588
# Construir el data frame con todas las variables
df_salida <- data.frame(
  Id = compX$Id,
  Este = compX$Este,
  Norte = compX$Norte,
  Elevacion = compX$Elevacion,
  Au_ppm = compX$Au.ppm.,
  Au_normalizado = OroXNormal
)

write.table(
  df_salida,
  file = "O_NIVEL_X_Normalizado.csv",
  row.names = FALSE,
  col.names = TRUE,
  quote = FALSE,
  sep = "," 
)