En esta actividad se analiza una base de datos relacionada con un proceso de producción de acero. El objetivo es estudiar la relación entre dos variables categóricas de interés para ingeniería: la línea de producción y la temperatura registrada.
Para realizar el análisis se utilizan tablas de contingencia, probabilidades condicionales y la prueba de independencia Chi-cuadrado. Además, se realiza previamente un cálculo manual de una probabilidad condicional para verificar posteriormente el resultado mediante R.
La base de datos contiene información correspondiente a 117 observaciones del proceso de producción de acero.
Para este análisis se seleccionan las siguientes variables categóricas:
linea: identifica la línea de producción, con
categorías A, B y C.temperatura: clasifica la temperatura como Alta, Baja o
Media.Estas variables son de interés porque permiten analizar si la distribución de las temperaturas cambia dependiendo de la línea de producción.
Primero se carga la base de datos en R.
library(knitr)
acero <- read.csv(
"acero.csv",
stringsAsFactors = FALSE,
check.names = FALSE
)
Se revisan las primeras observaciones y la estructura de la base de datos.
head(acero)
## consumo pr.tbc pr.cc pr.ca pr.galv1 pr.galv2 pr.pint linea hora temperatura
## 1 135,31 6840 830 0 579 1401 0 A 1º Alta
## 2 84,08 443 903 58 611 1636 717 A 2º Alta
## 3 131,62 7270 572 36 982 1963 243 A 3º Baja
## 4 90,46 5031 694 122 896 1568 0 A 4º Baja
## 5 120,04 9365 1054 157 403 1480 0 A 5º Baja
## 6 153,68 9281 1003 172 605 1525 473 A 6º Baja
## averias naverias sistema ProdTotal NOx CO COV SO2 CO2 N2O
## 1 Si 1 OFF 11266 0,49 3,545 0,545 0,038 101,5 6,35
## 2 No 0 OFF 7251 0,0725 2,895 0,425 0,047 63,565 2,23
## 3 No 0 OFF 11066 1,49 5,0075 0,69 0,062 98,8175 5,99
## 4 No 0 ON 8311 1,715 2,16 0,36 0,066 70,1825 3,66
## 5 No 0 OFF 12459 0,465 4,845 0,6625 0,086 88,53 6,06
## 6 Si 1 OFF 13059 2,4175 3,6725 0,575 0,056 116,5375 6,15
str(acero)
## 'data.frame': 117 obs. of 20 variables:
## $ consumo : chr "135,31" "84,08" "131,62" "90,46" ...
## $ 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 : chr "0,49" "0,0725" "1,49" "1,715" ...
## $ CO : chr "3,545" "2,895" "5,0075" "2,16" ...
## $ COV : chr "0,545" "0,425" "0,69" "0,36" ...
## $ SO2 : chr "0,038" "0,047" "0,062" "0,066" ...
## $ CO2 : chr "101,5" "63,565" "98,8175" "70,1825" ...
## $ N2O : chr "6,35" "2,23" "5,99" "3,66" ...
También se verifica el número de observaciones.
nrow(acero)
## [1] 117
La base contiene 117 observaciones.
Para el análisis se utilizan las variables linea y
temperatura.
table(acero$linea)
##
## A B C
## 39 39 39
table(acero$temperatura)
##
## Alta Baja Media
## 46 38 33
Se construye una tabla de contingencia para observar conjuntamente las frecuencias de las líneas de producción y las categorías de temperatura.
tabla <- table(acero$linea, acero$temperatura)
tabla
##
## Alta Baja Media
## A 24 15 0
## B 13 13 13
## C 9 10 20
La tabla obtenida es:
| Alta | Baja | Media | |
|---|---|---|---|
| A | 24 | 15 | 0 |
| B | 13 | 13 | 13 |
| C | 9 | 10 | 20 |
La tabla muestra las frecuencias observadas para cada combinación entre línea de producción y temperatura.
Los totales marginales permiten conocer los totales por fila y por columna.
margin.table(tabla, 1)
##
## A B C
## 39 39 39
margin.table(tabla, 2)
##
## Alta Baja Media
## 46 38 33
Se utiliza addmargins() para incorporar los totales de
filas y columnas.
addmargins(tabla)
##
## Alta Baja Media Sum
## A 24 15 0 39
## B 13 13 13 39
## C 9 10 20 39
## Sum 46 38 33 117
La tabla completa presenta los siguientes resultados:
| Línea | Alta | Baja | Media | Total |
|---|---|---|---|---|
| A | 24 | 15 | 0 | 39 |
| B | 13 | 13 | 13 | 39 |
| C | 9 | 10 | 20 | 39 |
| Total | 46 | 38 | 33 | 117 |
Se selecciona como probabilidad de interés:
\[ P(\text{Temperatura Alta} \mid \text{Línea A}) \]
La fórmula de probabilidad condicional es:
\[ P(A|B)=\frac{P(A\cap B)}{P(B)} \]
En este caso:
Por lo tanto:
\[ P(\text{Alta}|\text{Línea A})=\frac{24}{39} \]
Calculando:
\[ P(\text{Alta}|\text{Línea A})=0.6154 \]
En porcentaje:
\[ 0.6154\times100=61.54\% \]
Por tanto:
\[ \boxed{P(\text{Alta}|\text{Línea A})=61.54\%} \]
Esto significa que, dentro de las observaciones correspondientes a la Línea A, el 61.54 % presenta una temperatura Alta.
A continuación se incluye la fotografía del cálculo manual solicitado en la actividad.
Ahora se reproduce mediante R el cálculo realizado manualmente.
prob_alta_linea_A <- tabla["A", "Alta"] / sum(tabla["A", ])
prob_alta_linea_A
## [1] 0.6153846
El resultado obtenido mediante R es:
prob_alta_linea_A * 100
## [1] 61.53846
La probabilidad de obtener una temperatura Alta dado que la observación pertenece a la Línea A es aproximadamente 61.54 %.
prop.table()También se pueden calcular las probabilidades condicionales
utilizando prop.table().
Para obtener las proporciones dentro de cada línea se utiliza:
prop.table(tabla, margin = 1)
##
## Alta Baja Media
## A 0.6153846 0.3846154 0.0000000
## B 0.3333333 0.3333333 0.3333333
## C 0.2307692 0.2564103 0.5128205
El resultado permite observar la distribución porcentual de las temperaturas dentro de cada línea.
Para la Línea A se obtiene:
prop.table(tabla, margin = 1)["A", ]
## Alta Baja Media
## 0.6153846 0.3846154 0.0000000
La distribución de la Línea A es aproximadamente:
El cálculo manual fue:
\[ \frac{24}{39}=0.6154 \]
El cálculo realizado en R también produce:
\[ 0.6154 \]
Porcentaje:
\[ 61.54\% \]
Por lo tanto, el cálculo manual coincide con el resultado obtenido mediante R.
También se pueden calcular las probabilidades conjuntas de las combinaciones de línea y temperatura.
prop.table(tabla)
##
## Alta Baja Media
## A 0.20512821 0.12820513 0.00000000
## B 0.11111111 0.11111111 0.11111111
## C 0.07692308 0.08547009 0.17094017
Por ejemplo, la probabilidad conjunta de pertenecer a la Línea A y presentar una temperatura Alta es:
tabla["A", "Alta"] / sum(tabla)
## [1] 0.2051282
Por tanto:
\[ P(\text{Línea A} \cap \text{Temperatura Alta}) = \frac{24}{117} = 0.2051 \]
Es decir, aproximadamente el 20.51 % del total de observaciones corresponde simultáneamente a la Línea A y a una temperatura Alta.
Para comparar las líneas de producción se calculan las proporciones por fila.
prop.table(tabla, margin = 1)
##
## Alta Baja Media
## A 0.6153846 0.3846154 0.0000000
## B 0.3333333 0.3333333 0.3333333
## C 0.2307692 0.2564103 0.5128205
Los resultados son aproximadamente:
| Línea | Alta | Baja | Media |
|---|---|---|---|
| A | 61.54 % | 38.46 % | 0.00 % |
| B | 33.33 % | 33.33 % | 33.33 % |
| C | 23.08 % | 25.64 % | 51.28 % |
Estos resultados muestran diferencias en la distribución de las temperaturas entre las tres líneas.
Para determinar si existe evidencia estadística de asociación entre la línea de producción y la temperatura se realiza una prueba Chi-cuadrado de independencia.
Las hipótesis son:
Hipótesis nula \(H_0\):
La línea de producción y la temperatura son independientes.
Hipótesis alternativa \(H_1\):
La línea de producción y la temperatura no son independientes.
Se realiza la prueba mediante chisq.test().
prueba_chi <- chisq.test(tabla, correct = FALSE)
prueba_chi
##
## Pearson's Chi-squared test
##
## data: tabla
## X-squared = 27.597, df = 4, p-value = 1.505e-05
El resultado obtenido es aproximadamente:
El valor p es menor que 0.05.
Por lo tanto, se rechaza la hipótesis nula de independencia.
Esto proporciona evidencia estadística de una asociación entre la línea de producción y la temperatura en las observaciones analizadas.
La prueba Chi-cuadrado también permite obtener las frecuencias esperadas bajo el supuesto de independencia.
prueba_chi$expected
##
## Alta Baja Media
## A 15.33333 12.66667 11
## B 15.33333 12.66667 11
## C 15.33333 12.66667 11
Estas frecuencias representan los valores que se esperarían si la línea de producción y la temperatura fueran independientes.
Considerando un nivel de significancia de:
\[ \alpha=0.05 \]
y dado que:
\[ p<0.05 \]
se rechaza \(H_0\).
Por lo tanto, existe evidencia estadística de que la distribución de la temperatura está asociada con la línea de producción en esta base de datos.
Los resultados muestran diferencias entre las líneas de producción.
En la Línea A, la temperatura Alta representa aproximadamente el 61.54 % de las observaciones.
En la Línea B, las tres categorías de temperatura presentan la misma frecuencia relativa, con aproximadamente 33.33 % cada una.
En la Línea C, la temperatura Media presenta la mayor proporción, con aproximadamente 51.28 %.
Estas diferencias en las distribuciones son consistentes con el resultado de la prueba Chi-cuadrado, que indica evidencia de asociación entre las variables.
Desde una perspectiva de ingeniería, conocer la relación entre la línea de producción y la temperatura puede ser útil para identificar diferencias en las condiciones de operación.
La Línea A presenta una mayor proporción de registros con temperatura Alta, mientras que la Línea C presenta una mayor proporción de registros con temperatura Media.
Estos resultados pueden servir como punto de partida para revisar las condiciones de operación de cada línea, especialmente los factores del proceso que podrían estar relacionados con las diferencias observadas en temperatura.
La prueba estadística no demuestra por sí sola una relación causal. Para establecer las causas de las diferencias sería necesario analizar otras variables del proceso y contar con información adicional sobre las condiciones de operación.
A partir del análisis realizado se obtienen las siguientes conclusiones:
La tabla de contingencia permitió identificar la distribución conjunta entre la línea de producción y la temperatura.
La probabilidad condicional calculada manualmente fue:
\[ P(\text{Temperatura Alta}|\text{Línea A})=61.54\% \]
El resultado obtenido manualmente coincide con el resultado calculado mediante R.
La distribución de las temperaturas presenta diferencias entre las líneas A, B y C.
La prueba Chi-cuadrado produjo un valor p aproximadamente igual a 0.000015, menor que 0.05.
Con un nivel de significancia del 5 %, se rechaza la hipótesis de independencia entre línea y temperatura.
Desde el punto de vista de ingeniería, los resultados indican que las condiciones de temperatura no presentan la misma distribución en las diferentes líneas de producción, por lo que puede ser útil revisar las condiciones de operación asociadas a cada línea.
Para el desarrollo de esta actividad se utilizó inteligencia artificial como herramienta de apoyo.
La IA fue utilizada para:
table(),
margin.table(), prop.table(),
addmargins() y chisq.test().Los resultados numéricos fueron comprobados mediante la ejecución del código en R y mediante el cálculo manual de la probabilidad condicional seleccionada.
La inteligencia artificial se utilizó como herramienta de apoyo y no como sustituto de la interpretación y verificación de los resultados.