library(readxl)
library(readr)
library(dplyr)
## Warning: package 'dplyr' was built under R version 4.4.2
## 
## Adjuntando el paquete: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
data <- read_excel

Cargar el paquete necesario

if (!require("readxl")) install.packages("readxl")
library(readxl)

TEMA GENERAL DE ESTUDIO: Tipo de combustible y su influencia en emisiones contaminantes

Introducción La contaminación generada por el sector de la generación eléctrica estacionaria (fuentes fijas), es uno de los grandes problemas que enfrenta el medioambiente, esto se debe a que la mayoría de las fuentes fijas utilizan combustibles fósiles como fuente de energía de generación eléctrica a bajo costo, sin embargo esto conlleva a altas emisiones contaminantes que son reguladas con normas en muchos países y plantea la necesidad de implementar mejores tecnología de combustión, calidad de combustible e implementación de dispositivos de reducción de emisiones cuyo rol juegan un papel importante para disminuir la contaminación ambiental. Un aumento en la calidad del combustible es directamente proporcional al costo y las industrias buscan generar un punto de equilibrio entre los gastos operativos y cumplimiento de normas ambientales locales. Con base a lo expuesto, es pertinente realizar una evaluación del impacto de las emisiones de gases de escape que producen las fuentes fijas con diferentes tipos de combustible y así mismo se determinó el tipo de correlación que existe.

2 Problema Se requiere determinar si existe alguna correlación en los diferentes tipos de combustibles utilizados en una planta de generación térmica sobre las emisiones contaminantes Material Particulado (MP), óxidos de nitrógeno (Nox) y dióxido de azufre (SO2) para determinar cúal tipo de mezcla de combustible contamina menos.

2.1 Descripción de datos La presente investigación aplicada a la industria, sigue el diseño de un proyecto cuantitativo y correlacional ya que se pretende analizar el comportamiento de emisiones contaminantes utilizando las diferentes mezclas volumétricas de combustible HFO y bajo estricto procedimiento de la resolución 909 del 2008. Siendo las mezclas volumétricas una variable categórica de entrada y las emisiones contaminantes variables numéricas de resultados (PM, NOx, SO2), los valores categóricos se convierten en variables ordinales de menor a mayor proporción volumétrica de mezclas, así, las cifras pueden ser tabuladas, graficadas y analizadas mediante métodos probabilísticos y matemáticas.

#Leer el archivo Excel

file_path <- "C:/Users/c8004126/Downloads/EMISIONES.xlsx" # Cambia la ruta si es necesario
data <- read_excel(file_path, sheet = "EMISIONES", col_names = FALSE)  # Lee sin nombres automáticos
## New names:
## • `` -> `...1`
## • `` -> `...2`
## • `` -> `...3`
## • `` -> `...4`
## • `` -> `...5`
## • `` -> `...6`

#Revisar los datos y asignar nombres manualmente

colnames(data) <- c("Machine", "Date", "Fuel_Type", "MP", "SO2", "NOx", "Others")  # Ajusta según las columnas reales
data <- data[-1, ]  # Eliminar filas de encabezado duplicadas si existen
print("Vista previa de los datos:")
## [1] "Vista previa de los datos:"

3 METODOLOGIA.

Enfoque de la investigación: Con el objetivo de determinar si existe algún cambio en las emisiones contaminantes por cada tipos de mezcla volumétrica de combustible, el enfonque es netamente cuantitativo y las variables de causa (mezcla volumétrica de HFO) y efecto (emisiones MP, SO2, Nox) son numéricas. pasos a seguir en la metodología:

-Limpieza de datos. -Población a analizar. -Tipos de Variables y Estimación de parámetros (N/A). -Análisis descriptivo. -Pruebas de normalidad (Shapiro y Kolomgorov) y Planteamiento de hipótesis nula-alternativa. -Correlación de Spearman.

3.1 Limpieza de datos: los valores presentados en la variable causa (Mezcla volumétrica de combustible HFO) es de tipo categórica en la base de datos, por lo que se debe convertir en datos ordinales, es decir, donde una mezcla volumétrica de combustible HFO 100/0 (100% HFO4 / 0% HFO2) tiene un valor ordinal 1 y la mezcla 56/44 tiene un valor ordinal 7. En otras palabras, la calidad de las características del combustible va aumentando de 1 al 7.

print("Estructura de datos después de la limpieza:")
## [1] "Estructura de datos después de la limpieza:"
str(data)
## tibble [71 × 6] (S3: tbl_df/tbl/data.frame)
##  $ Machine  : chr [1:71] "MG5TMM1" "MG1TMM1" "MG1TMM1" "MG1TMM1" ...
##  $ Date     : chr [1:71] "2017-05" "2018-05" "2018-05" "2019-11" ...
##  $ Fuel_Type: chr [1:71] "5" "6" "3" "6" ...
##  $ MP       : chr [1:71] "46.3" "44.6" "205.4" "35.58" ...
##  $ SO2      : chr [1:71] "343.1" "194.2" "388.4" "290.12" ...
##  $ NOx      : chr [1:71] "81.400000000000006" "74" "61.3" "102.89" ...

Asignar nombres manualmente (ajustar según el archivo real)

colnames(data) <- c("Machine", "Date", "Fuel_Type", "MP", "SO2", "NOx")
data <- data[-1, ]  # Eliminar fila de encabezados adicionales si existen
print(data$Fuel_Type)
##  [1] "6" "3" "6" "2" "2" "4" "6" "6" "3" "2" "2" "4" "4" "6" "6" "6" "2" "2" "6"
## [20] "4" "2" "4" "6" "6" "4" "4" "6" "3" "6" "3" "4" "2" "6" "6" "4" "2" "6" "6"
## [39] "2" "2" "4" "6" "6" "4" "2" "6" "6" "4" "2" "4" "4" "4" "4" "7" "3" "7" "7"
## [58] "3" "7" "3" "4" "7" "3" "4" "7" "4" "6" "3" "7" "3"

Convertir las columnas numéricas

data <- data %>%
  mutate(
    MP = as.numeric(MP),
    SO2 = as.numeric(SO2),
    NOx = as.numeric(NOx)
  )

3.2 Población. La población de estudio son 10 equipos de generación térmica utilizando 7 tipos de mezclas en los 6 años (2018-2024) productivos para un total de 72 registros de emisiones contaminantes.

3.3 Tipos de variables y Estimación de parámetros (N/A). En la investigación la variable causante (Mezcla volumétrica de combustible HFO) es discreta, mientras la variable efecto (Emisiones contaminantes MP, NOx, SO2) es continua.

Para la investigación se determina que no se requiere una selección muestral ya que la población de estudio es finita y de tamaña menor a 100 registros por cada resultado de emisión contaminante, es decir, no se va hacer alguna estimación sobre el parámetro poblacional.

4 ANALISIS DESCRIPTIVO. Validación de normalidad para emisiones MP por método visual Q-Q Plot El gráfico de cuantiles Q-Q Plot permite describir gráficamente la distribución de los cuantiles a lo largo del conjunto de datos ayudando a analizar la forma de distribución y disperción de los valores.

4.1 Analisis Descriptivo de cuantiles para MP

print("Validación de normalidad para MP:")
## [1] "Validación de normalidad para MP:"
qqnorm(data$MP, main = "Q-Q Plot para MP")
qqline(data$MP, col = "red")

Según el gráfico Q-Q Plot la distribución de los datos de emisiones contaminantes MP no sigue una distribución noramlizada

5 PRUEBA DE NORMALIDAD. El tamaño de la población total de analisis de emisiones contaminantes es 72, sin embargo está data está relacionada a 8 tipos de mezclas de combustible. Ningún tipo de mezcla de combustible tiene más de 30 datos de emisiones y por esta razón es conveninete utilizar la prueba de normalidad de shapiro-wik, sin embargo se comprobará con los 3 métodos en este caso.

5.1 Prueba de hipótesis para método Shapiro-Wilk y Kolmogorov.

Ho= La distribución de datos de emisiones MP es normal si p>0.05.

H1= La distribución de emision MP no es normal si p<0.05.

Validación de normalidad para emisiones MP por método shapiro

shapiro_MP <- shapiro.test(data$MP)
print(shapiro_MP)
## 
##  Shapiro-Wilk normality test
## 
## data:  data$MP
## W = 0.73095, p-value = 5.165e-10

P=5.165e-10 por lo tanto rechazamos la hipótesis nula (distribución normal) para emisiones MP.

Test de Kolmogorov

ks.test(data$MP, "pnorm", mean = mean(data$MP), sd = sd(data$MP))
## 
##  Exact one-sample Kolmogorov-Smirnov test
## 
## data:  data$MP
## D = 0.22349, p-value = 0.001492
## alternative hypothesis: two-sided

P=0.001492 por lo tanto rechazamos la hipótesis nula (distribución normal) para emisiones MP

EMISIONES SO2 4.1 Analisis Descriptivo de cuantiles para SO2

print("Validación de normalidad para SO2:")
## [1] "Validación de normalidad para SO2:"
qqnorm(data$SO2, main = "Q-Q Plot para SO2")
qqline(data$SO2, col = "blue")

Según el gráfico Q-Q Plot la distribución de los datos de emisiones contaminantes SO2 no sigue una distribución noramlizada

5.1 Prueba de hipótesis para método Shapiro-Wilk y Kolmogorov

shapiro_SO2 <- shapiro.test(data$SO2)
print(shapiro_SO2)
## 
##  Shapiro-Wilk normality test
## 
## data:  data$SO2
## W = 0.96043, p-value = 0.02645

P=0.02645 por lo tanto rechazamos la hipótesis nula (distribución normal) para emisiones SO2

Test de Kolmogorov

ks.test(data$SO2, "pnorm", mean = mean(data$SO2), sd = sd(data$SO2))
## 
##  Exact one-sample Kolmogorov-Smirnov test
## 
## data:  data$SO2
## D = 0.075751, p-value = 0.7883
## alternative hypothesis: two-sided

P=0.7883 por lo tanto aceptamos la hipótesis nula (distribución normal) para emisiones SO2. En la prueba de Shapiro y la grafica Q_Q Plot desmuestra que no hay normalidad. Se rechaza prueba de kolmogorov por no tener una muestra representativa de datos por cada tipo de mezcla de combustible.

4.1 Analisis Descriptivo de cuantiles para NOx

print("Validación de normalidad para NOx:")
## [1] "Validación de normalidad para NOx:"
qqnorm(data$NOx, main = "Q-Q Plot para NOx")
qqline(data$NOx, col = "green")

Según el gráfico Q-Q Plot la distribución de los datos de emisiones contaminantes NOx no sigue una distribución noramlizada

5.1 Prueba de hipótesis para método Shapiro-Wilk y Kolmogorov

shapiro_NOx <- shapiro.test(data$NOx)
print(shapiro_NOx)
## 
##  Shapiro-Wilk normality test
## 
## data:  data$NOx
## W = 0.84423, p-value = 4.423e-07

P=4.423e-07 por lo tanto rechazamos la hipótesis nula (no es distribución normal) para emisiones NOx

Test de Kolmogorov

ks.test(data$NOx, "pnorm", mean = mean(data$NOx), sd = sd(data$NOx))
## 
##  Exact one-sample Kolmogorov-Smirnov test
## 
## data:  data$NOx
## D = 0.23689, p-value = 0.0006119
## alternative hypothesis: two-sided

P=0.0006119 por lo tanto rechazamos la hipótesis nula (no es distribución normal) para emisiones NOx

  1. Analisis de Correlación de Spearman.

La prueba de normalidad realizada con Shapiro-Wilk y gráficos Q-Q mostró que los datos no siguen una distribución normal (p<0.05) para todas las emisiones por ende, se utilizó correlación no paramétrica de spearman para plantear la siguiente hipótesis: -Hipotesis nula (Ho): No hay diferencia significativa en las emisiones contaminantes entre diferentes tipos de combustibles (P>0.05). -Hipótesis alternativa (Ha): Hay diferencias significativas en las emisiones contaminantes entre diferentes tipos de combustibles.(P<0.05).

Contexto de la variable categorica: -El aumento de la variable categorica se da de 100/0 (Valor categorico 1) hacia 56/44 (valor categorico 7)

Correlación de spearman: Es la medidad de relación no lineal entre 2 variables continuas. Mide la relación entre las posición relativas de los datos en lugar de los valores de las variables

rho =1-{}} donde D es la diferencia entre los correspondientes estadísticos de orden de x - y. N es el número de parejas de datos. Se tiene que considerar la existencia de datos idénticos a la hora de ordenarlos, aunque si estos son pocos, se puede ignorar tal circunstancia

1 Convertir el tipo de combustible a valores numéricos para análisis de correlación. Convertir Fuel_Type a ordinal (remueve NA antes)

data <- data %>% filter(!is.na(Fuel_Type))  # Filtra registros con Fuel_Type no definidos
data$Fuel_Type_Ordinal <- as.numeric(factor(data$Fuel_Type))  # Convierte a ordinal

Filtrar columnas numéricas para evitar NA

data <- data %>% filter(!is.na(MP), !is.na(SO2), !is.na(NOx), !is.na(Fuel_Type_Ordinal))

Calcular coeficiente de correlaciones entre tipo de combustible y emisiones contaminantes

cor_MP <- cor(data$Fuel_Type_Ordinal, data$MP, method = "spearman", use = "complete.obs")
cor_SO2 <- cor(data$Fuel_Type_Ordinal, data$SO2, method = "spearman", use = "complete.obs")
cor_NOx <- cor(data$Fuel_Type_Ordinal, data$NOx, method = "spearman", use = "complete.obs")

#Imprimir resultados

6.1 Correlación de Tipo de combustible Vs MP

cat("Correlación de Spearman:\n")
## Correlación de Spearman:
cat("Fuel_Type_Ordinal vs MP:", cor_MP, "\n") 
## Fuel_Type_Ordinal vs MP: 0.1880411

-Existe una correlación negativa y debil entre el tipo de combustible y las emisiones de material particulado MP -Un aumento en la mezcla combustible HFO, las emisiones de MP tienden a disminuir levemente

6.1 Correlación de Tipo de combustible Vs SO2

cat("Fuel_Type_Ordinal vs SO2:", cor_SO2, "\n")
## Fuel_Type_Ordinal vs SO2: 0.2131589

-Existe una correlación negativa y debil entre el tipo de combustible y las emisiones de dioxido de azufre SO2 -Un aumento en la mezcla combustible HFO, las emisiones de SO2 tienden a disminuir levemente

6.1 Correlación de Tipo de combustible Vs NOx

cat("Fuel_Type_Ordinal vs NOx:", cor_NOx, "\n")
## Fuel_Type_Ordinal vs NOx: -0.3042064

-Existe una correlación positiva y debil entre el tipo de combustible y las emisiones de oxidos de nitrogeno NOx -Un aumento en la mezcla combustible HFO, las emisiones de SO2 tienden a aumentar levemente

7 Validación de correlaciones con pruebas de hipótesis 7.1 Validación de corelación con pruebas de hipótesis entre tipo de combustible Vs MP

Pval_MP <- cor.test(data$Fuel_Type_Ordinal, data$MP, method = "spearman")
## Warning in cor.test.default(data$Fuel_Type_Ordinal, data$MP, method =
## "spearman"): Cannot compute exact p-value with ties
print(Pval_MP)
## 
##  Spearman's rank correlation rho
## 
## data:  data$Fuel_Type_Ordinal and data$MP
## S = 46408, p-value = 0.119
## alternative hypothesis: true rho is not equal to 0
## sample estimates:
##       rho 
## 0.1880411
if (Pval_MP$p.value < 0.05) {
  cat("Hay una relación significativa entre las emisiones MP y las calidad de combustible")
} else {
  cat("No hay suficiente evidencia para afirmar que hay una relación significativa.")
}
## No hay suficiente evidencia para afirmar que hay una relación significativa.

7.1 Validación de corelación con pruebas de hipótesis entre tipo de combustible Vs SO2

Pval_SO2 <- cor.test(data$Fuel_Type_Ordinal, data$SO2, method = "spearman")
## Warning in cor.test.default(data$Fuel_Type_Ordinal, data$SO2, method =
## "spearman"): Cannot compute exact p-value with ties
print(Pval_SO2)
## 
##  Spearman's rank correlation rho
## 
## data:  data$Fuel_Type_Ordinal and data$SO2
## S = 44972, p-value = 0.07644
## alternative hypothesis: true rho is not equal to 0
## sample estimates:
##       rho 
## 0.2131589
if (Pval_SO2$p.value < 0.05) {
  cat("Hay una relación significativa entre las emisiones SO2 y las calidad de combustible")
} else {
  cat("No hay suficiente evidencia para afirmar que hay una relación significativa.")
}
## No hay suficiente evidencia para afirmar que hay una relación significativa.

7.1 Validación de corelación con pruebas de hipótesis entre tipo de combustible Vs NOx

Pval_NOx <- cor.test(data$Fuel_Type_Ordinal, data$NOx, method = "spearman")
## Warning in cor.test.default(data$Fuel_Type_Ordinal, data$NOx, method =
## "spearman"): Cannot compute exact p-value with ties
print(Pval_NOx)
## 
##  Spearman's rank correlation rho
## 
## data:  data$Fuel_Type_Ordinal and data$NOx
## S = 74542, p-value = 0.01046
## alternative hypothesis: true rho is not equal to 0
## sample estimates:
##        rho 
## -0.3042064
if (Pval_NOx$p.value < 0.05) {
  cat("Hay una relación significativa entre las emisiones NOx y las calidad de combustible")
} else {
  cat("No hay suficiente evidencia para afirmar que hay una relación significativa.")
}
## Hay una relación significativa entre las emisiones NOx y las calidad de combustible

##Conclusiones -Independientemente el tipo de combustible donde el aumento de la variable categorica del combutible se da de 100/0 hacia 56/44 se tiene efecto opuesto y debil en las emisiones de MP y SO2 mientras que tiene un efecto directo y debil en las emisiones de NOx. -Esto sugiere que 2 de las emisiones contaminantes tiene comportamiento diferente a 1 emision contaminante y no existe posibilidad de optimizar las 3 emisiones simultaneamente. -El balance entre tipos de combustible debe ser analizado dependiendo de la prioridad ambiental.

##Recomendaciones -Definir un intervalo de confianza para realizar un muestreo de datos y trabajar la correlación sobre estas muestras. Determinar en lo posible una regresión lineal para identificar el impacto del tipo de combustible sobre las emisiones de NOx, MP, SO2.