Estudiante: Emanuel Mulett Ortega
Codigo Estudiantil: 1102825591
En esta actividad se utiliza el dataset “acero.csv”, que contiene información relacionada con variables del proceso productivo. A partir de estos datos se realizará el análisis estadístico solicitado en la actividad.
acero <- read.csv("acero.csv", dec = ",")
acero
# Muestra la estructura del dataset
str(acero)
## 'data.frame': 117 obs. of 20 variables:
## $ consumo : num 135.3 84.1 131.6 90.5 120 ...
## $ pr.tbc : int 6840 443 7270 5031 9365 9281 3223 10490 7394 8654 ...
## $ pr.cc : int 830 903 572 694 1054 1003 1118 1077 1204 851 ...
## $ pr.ca : int 0 58 36 122 157 172 0 179 167 0 ...
## $ pr.galv1 : int 579 611 982 896 403 605 643 737 580 828 ...
## $ pr.galv2 : int 1401 1636 1963 1568 1480 1525 1424 1333 934 1326 ...
## $ pr.pint : int 0 717 243 0 0 473 732 93 247 607 ...
## $ linea : chr "A" "A" "A" "A" ...
## $ hora : chr "1º" "2º" "3º" "4º" ...
## $ temperatura: chr "Alta" "Alta" "Baja" "Baja" ...
## $ averias : chr "Si" "No" "No" "No" ...
## $ naverias : int 1 0 0 0 0 1 0 0 0 3 ...
## $ sistema : chr "OFF" "OFF" "OFF" "ON" ...
## $ ProdTotal : int 11266 7251 11066 8311 12459 13059 8555 18253 11697 13194 ...
## $ NOx : num 0.49 0.0725 1.49 1.715 0.465 ...
## $ CO : num 3.54 2.9 5.01 2.16 4.84 ...
## $ COV : num 0.545 0.425 0.69 0.36 0.662 ...
## $ SO2 : num 0.038 0.047 0.062 0.066 0.086 0.056 0.07 0.103 0.058 0.066 ...
## $ CO2 : num 101.5 63.6 98.8 70.2 88.5 ...
## $ N2O : num 6.35 2.23 5.99 3.66 6.06 6.15 7.75 9.09 8.69 5 ...
# Muestra los nombres de las variables del dataset
names(acero)
## [1] "consumo" "pr.tbc" "pr.cc" "pr.ca" "pr.galv1"
## [6] "pr.galv2" "pr.pint" "linea" "hora" "temperatura"
## [11] "averias" "naverias" "sistema" "ProdTotal" "NOx"
## [16] "CO" "COV" "SO2" "CO2" "N2O"
# Muestra un resumen de las variables
summary(acero)
## consumo pr.tbc pr.cc pr.ca
## Min. : 17.50 Min. : 0 Min. : 0.0 Min. : 0.0
## 1st Qu.: 99.09 1st Qu.: 5950 1st Qu.: 0.0 1st Qu.: 0.0
## Median :140.07 Median : 8808 Median : 80.0 Median : 0.0
## Mean :139.46 Mean : 7568 Mean : 295.5 Mean :124.5
## 3rd Qu.:182.48 3rd Qu.: 9734 3rd Qu.: 582.0 3rd Qu.:248.0
## Max. :290.72 Max. :10979 Max. :1204.0 Max. :677.0
## pr.galv1 pr.galv2 pr.pint linea hora
## Min. : 0.0 Min. : 0 Min. : 0.0 Length :117 Length :117
## 1st Qu.: 0.0 1st Qu.: 933 1st Qu.: 0.0 N.unique : 3 N.unique : 8
## Median :432.0 Median :1360 Median : 0.0 N.blank : 0 N.blank : 0
## Mean :402.8 Mean :1160 Mean :188.6 Min.nchar: 1 Min.nchar: 2
## 3rd Qu.:698.0 3rd Qu.:1567 3rd Qu.:394.0 Max.nchar: 1 Max.nchar: 2
## Max. :982.0 Max. :1963 Max. :898.0
## temperatura averias naverias sistema
## Length :117 Length :117 Min. :0.0000 Length :117
## N.unique : 3 N.unique : 2 1st Qu.:0.0000 N.unique : 2
## N.blank : 0 N.blank : 0 Median :0.0000 N.blank : 0
## Min.nchar: 4 Min.nchar: 2 Mean :0.6752 Min.nchar: 2
## Max.nchar: 5 Max.nchar: 2 3rd Qu.:0.0000 Max.nchar: 3
## Max. :4.0000
## ProdTotal NOx CO COV
## Min. : 2187 Min. :0.0125 Min. : 0.250 Min. :0.0250
## 1st Qu.: 9023 1st Qu.:0.7750 1st Qu.: 2.928 1st Qu.:0.4525
## Median :11860 Median :1.1200 Median : 4.107 Median :0.6250
## Mean :11842 Mean :1.1961 Mean : 4.377 Mean :0.6210
## 3rd Qu.:14908 3rd Qu.:1.6550 3rd Qu.: 5.585 3rd Qu.:0.7850
## Max. :23202 Max. :2.7750 Max. :10.170 Max. :1.2550
## SO2 CO2 N2O
## Min. :0.0010 Min. : 14.29 Min. : 0.870
## 1st Qu.:0.0540 1st Qu.: 73.72 1st Qu.: 4.710
## Median :0.0660 Median :105.31 Median : 6.170
## Mean :0.0665 Mean :104.63 Mean : 6.115
## 3rd Qu.:0.0800 3rd Qu.:134.88 3rd Qu.: 7.580
## Max. :0.1270 Max. :218.31 Max. :11.140
# Identifica el tipo de cada variable
sapply(acero,class)
## consumo pr.tbc pr.cc pr.ca pr.galv1 pr.galv2
## "numeric" "integer" "integer" "integer" "integer" "integer"
## pr.pint linea hora temperatura averias naverias
## "integer" "character" "character" "character" "character" "integer"
## sistema ProdTotal NOx CO COV SO2
## "character" "integer" "numeric" "numeric" "numeric" "numeric"
## CO2 N2O
## "numeric" "numeric"
unique(acero$linea)
## [1] "A" "B" "C"
unique(acero$hora)
## [1] "1º" "2º" "3º" "4º" "5º" "6º" "7º" "8º"
unique(acero$temperatura)
## [1] "Alta" "Baja" "Media"
unique(acero$averias)
## [1] "Si" "No"
unique(acero$sistema)
## [1] "OFF" "ON"
Para este análisis se seleccionan las variables sistema
y averias. La variable sistema representa el
estado de funcionamiento del sistema (ON/OFF), mientras que
averias indica si se presentó una avería (Si/No). Esta
relación es de interés en un proceso agroindustrial porque permite
evaluar si la ocurrencia de averías está relacionada con el estado
operativo del sistema y puede aportar información para el mantenimiento
preventivo.
¿Existe una asociación entre el estado del sistema
(sistema) y la ocurrencia de averías
(averias)?
Analizar si existe una asociación entre el estado del sistema y la ocurrencia de averías mediante probabilidades condicionales, una tabla de contingencia y la prueba de Chi-cuadrado de independencia.
H₀: El estado del sistema y la ocurrencia de averías son independientes.
H₁: Existe una asociación entre el estado del sistema y la ocurrencia de averías.
La tabla de contingencia permite observar conjuntamente las
categorías de las variables sistema y averias,
mostrando cuántos registros corresponden a cada combinación.
# Tabla de contingencia entre sistema y averias
tabla_sistema_averias <- table(acero$sistema, acero$averias)
tabla_sistema_averias
##
## No Si
## OFF 43 16
## ON 46 12
# Totales por filas
margin.table(tabla_sistema_averias, 1)
##
## OFF ON
## 59 58
# Totales por columnas
margin.table(tabla_sistema_averias, 2)
##
## No Si
## 89 28
margin.table() nos permite obtener los totales de la
tabla:
margin.table(..., 1) → totales de cada categoría de
sistema.margin.table(..., 2) → totales de cada categoría de
averias.Para verificar el cálculo realizado manualmente, se utiliza prop.table() para obtener las probabilidades de avería según el estado del sistema
# Probabilidades condicionales por filas
prop.table(tabla_sistema_averias, 1)
##
## No Si
## OFF 0.7288136 0.2711864
## ON 0.7931034 0.2068966
A continuación se presenta el cálculo manual de las probabilidades condicionales y de la probabilidad conjunta, utilizando los datos obtenidos de la tabla de contingencia.
Para visualizar la tabla de contingencia junto con los totales de las
filas, las columnas y el total general, se utiliza la función
addmargins().
# Tabla de contingencia con totales
addmargins(tabla_sistema_averias)
##
## No Si Sum
## OFF 43 16 59
## ON 46 12 58
## Sum 89 28 117
## Probabilidades conjuntas
Las probabilidades conjuntas permiten conocer la proporción de registros que pertenecen simultáneamente a cada combinación entre el estado del sistema y la ocurrencia de averías.
# Probabilidades conjuntas
prop.table(tabla_sistema_averias)
##
## No Si
## OFF 0.3675214 0.1367521
## ON 0.3931624 0.1025641
Para evaluar si existe una asociación estadísticamente significativa entre el estado del sistema y la ocurrencia de averías, se aplica la prueba de Chi-cuadrado de independencia.
# Prueba de Chi-cuadrado con corrección de Yates
prueba_chi <- chisq.test(tabla_sistema_averias)
prueba_chi
##
## Pearson's Chi-squared test with Yates' continuity correction
##
## data: tabla_sistema_averias
## X-squared = 0.35785, df = 1, p-value = 0.5497
La función:
chisq.test(tabla_sistema_averias)
Para comparar el resultado anterior, se realiza nuevamente la prueba de Chi-cuadrado sin aplicar la corrección de continuidad de Yates.
# Prueba de Chi-cuadrado sin corrección de Yates
prueba_chi_sin_yates <- chisq.test(
tabla_sistema_averias,
correct = FALSE
)
prueba_chi_sin_yates
##
## Pearson's Chi-squared test
##
## data: tabla_sistema_averias
## X-squared = 0.66405, df = 1, p-value = 0.4151
Así podemos comparar:
| Prueba | Corrección |
|---|---|
Primera chisq.test() |
Con Yates |
Segunda chisq.test(..., correct = FALSE) |
Sin Yates |
En ambas debemos observar principalmente:
Para evaluar la posible asociación entre el estado del sistema y la ocurrencia de averías se realizaron dos pruebas de Chi-cuadrado: una con corrección de Yates y otra sin esta corrección.
En ambos casos se utiliza un nivel de significancia de α = 0,05.
La prueba de Chi-cuadrado con corrección de Yates obtuvo:
Como 0,5497 > 0,05, no se rechaza la hipótesis nula de independencia.
La prueba de Chi-cuadrado sin corrección de Yates obtuvo:
Como 0,4151 > 0,05, tampoco se rechaza la hipótesis nula de independencia.
Por lo tanto, ambas pruebas conducen a la misma conclusión: con los datos analizados no existe evidencia estadística suficiente para afirmar una asociación entre el estado del sistema y la ocurrencia de averías.
# Comparación de las pruebas de Chi-cuadrado
prueba_chi
##
## Pearson's Chi-squared test with Yates' continuity correction
##
## data: tabla_sistema_averias
## X-squared = 0.35785, df = 1, p-value = 0.5497
prueba_chi_sin_yates
##
## Pearson's Chi-squared test
##
## data: tabla_sistema_averias
## X-squared = 0.66405, df = 1, p-value = 0.4151
A partir de las 117 observaciones analizadas, se evaluó la posible relación entre el estado del sistema y la ocurrencia de averías mediante una tabla de contingencia y la prueba de Chi-cuadrado de independencia.
La probabilidad de presentar una avería cuando el sistema se
encuentra en estado ON fue de 20,69 %, mientras que cuando se encuentra
en estado OFF fue de 27,12 %. Aunque se observa una diferencia
descriptiva entre ambas proporciones, la prueba de Chi-cuadrado sin
corrección de Yates obtuvo un p-value de 0,4151, superior
al nivel de significancia de 0,05.
Por lo tanto, con la información disponible no existe evidencia estadística suficiente para afirmar una asociación entre el estado del sistema y la ocurrencia de averías. Desde el punto de vista de la ingeniería agrícola, estos resultados pueden servir como punto de partida para el análisis del mantenimiento del proceso, pero sería conveniente considerar otras variables del proceso productivo que puedan estar relacionadas con la aparición de averías.
Durante la elaboración de esta actividad se utilizó ChatGPT como herramienta de apoyo para comprender el análisis estadístico, organizar el documento en R Markdown, revisar los códigos utilizados en R y aclarar la interpretación de los resultados.
Herramienta utilizada: ChatGPT.
¿Qué se preguntó?
Se solicitó ayuda para organizar el análisis del archivo
acero.csv, identificar las variables y utilizar funciones
de R para construir la tabla de contingencia y calcular las
probabilidades.
Código trabajado:
acero <- read.csv("acero.csv", dec = ",")
str(acero)
names(acero)
summary(acero)
sapply(acero, class)
unique(acero$linea)
unique(acero$hora)
unique(acero$temperatura)
unique(acero$averias)
unique(acero$sistema)
¿Qué proporcionó la IA?
Explicaciones sobre la función de cada comando y orientación para organizar estas operaciones dentro del documento R Markdown.
¿Qué se verificó?
Los códigos fueron ejecutados directamente en R utilizando el archivo
acero.csv para comprobar que los resultados correspondieran
al dataset.
¿Qué se preguntó?
Se solicitó ayuda para construir una tabla de contingencia entre las
variables sistema y averias, obtener los
totales y calcular probabilidades.
Código utilizado:
tabla_sistema_averias <- table(acero$sistema, acero$averias)
margin.table(tabla_sistema_averias, 1)
margin.table(tabla_sistema_averias, 2)
prop.table(tabla_sistema_averias, 1)
addmargins(tabla_sistema_averias)
prop.table(tabla_sistema_averias)
¿Qué proporcionó la IA?
Explicaciones sobre las funciones table(),
margin.table(), prop.table() y
addmargins() y sobre la forma de interpretar las
probabilidades obtenidas.
¿Qué se verificó y corrigió?
Los resultados fueron comprobados directamente en R y posteriormente se revisaron con el cálculo realizado en el cuaderno.
En el cálculo manual corregido se obtuvo:
\[ P(Avería=Sí\mid OFF)=\frac{16}{59}=0,2712=27,12\% \]
También se identificaron en la tabla los valores:
¿Qué se preguntó?
Se solicitó ayuda para comprender y realizar el cálculo de las frecuencias esperadas de la tabla de contingencia.
Fórmula utilizada:
\[ E_{ij}=\frac{Total\ de\ la\ fila\times Total\ de\ la\ columna}{Total\ general} \]
¿Qué proporcionó la IA?
La IA explicó el procedimiento para obtener las frecuencias esperadas a partir de los totales de filas, columnas y del total general.
¿Qué se corrigió?
En una primera representación generada con inteligencia artificial aparecieron valores incorrectos para las frecuencias esperadas. Al revisar el procedimiento y realizar nuevamente los cálculos, se corrigieron los valores.
Los valores corregidos fueron:
Posteriormente se verificaron en R mediante:
chisq.test(tabla_sistema_averias)$expected
R mostró los valores con mayor precisión:
No Si
OFF 44.88034 14.11966
ON 44.11966 13.88034
Esto permitió comprobar que los valores escritos manualmente coincidían con los resultados de R después del redondeo.
¿Qué se preguntó?
Se solicitó ayuda para comprender el cálculo de probabilidades conjuntas a partir de la tabla de contingencia.
¿Qué proporcionó la IA?
Se explicó que una probabilidad conjunta se obtiene dividiendo el número de casos correspondientes a una combinación de categorías entre el total general.
En los cálculos realizados en el cuaderno se verificaron:
\[ P(OFF\ y\ Sí)=\frac{16}{117}=0,1368=13,68\% \]
y
\[ P(ON\ y\ No)=\frac{46}{117}=0,3932=39,32\% \]
Estos valores fueron comprobados utilizando los datos de la tabla de contingencia.
¿Qué se preguntó?
Se solicitó explicación sobre la prueba de Chi-cuadrado de independencia y sobre la diferencia entre realizarla con y sin corrección de Yates.
Código utilizado:
prueba_chi <- chisq.test(tabla_sistema_averias)
prueba_chi
y:
prueba_chi_sin_yates <- chisq.test(
tabla_sistema_averias,
correct = FALSE
)
prueba_chi_sin_yates
¿Qué proporcionó la IA?
Explicaciones sobre el estadístico Chi-cuadrado, los grados de
libertad, el p-value y la corrección de continuidad de
Yates.
¿Qué se verificó?
Los resultados fueron ejecutados directamente en R y comparados con el procedimiento realizado manualmente. La interpretación final se realizó a partir de los resultados obtenidos en R.
La inteligencia artificial fue utilizada como herramienta de apoyo para comprender los procedimientos y organizar el trabajo, pero los resultados finales fueron comprobados mediante cálculos manuales y mediante la ejecución de los comandos correspondientes en R.
La revisión permitió identificar que una herramienta de inteligencia artificial puede generar resultados o representaciones que parecen correctos, pero que pueden contener errores. Por ello, es necesario verificar los cálculos y mantener la supervisión humana durante todo el proceso.