1 Introducción

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.

2 Descripción de la base de datos

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.

3 Carga de los datos

Primero se carga la base de datos en R.

library(knitr)

acero <- read.csv(
  "acero.csv",
  stringsAsFactors = FALSE,
  check.names = FALSE
)

4 Verificación de los datos

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.

5 Variables seleccionadas

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

6 Tabla de contingencia

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:

Tabla de contingencia entre línea y temperatura
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.

7 Totales marginales

Los totales marginales permiten conocer los totales por fila y por columna.

7.1 Totales por línea

margin.table(tabla, 1)
## 
##  A  B  C 
## 39 39 39

7.2 Totales por temperatura

margin.table(tabla, 2)
## 
##  Alta  Baja Media 
##    46    38    33

8 Tabla de contingencia con totales

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

9 Cálculo manual de probabilidad condicional

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:

  • Casos pertenecientes a la Línea A y con temperatura Alta = 24.
  • Total de casos pertenecientes a la Línea A = 39.

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.

10 Evidencia del cálculo realizado a mano

A continuación se incluye la fotografía del cálculo manual solicitado en la actividad.

calculos manuales
calculos manuales

11 Cálculo de probabilidad condicional en R

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 %.

12 Comprobación mediante 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:

  • Temperatura Alta: 61.54 %
  • Temperatura Baja: 38.46 %
  • Temperatura Media: 0 %

13 Comparación entre el cálculo manual y R

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.

14 Probabilidades conjuntas

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.

15 Distribución de temperaturas por línea

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.

16 Prueba de independencia Chi-cuadrado

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

17 Resultado de la prueba Chi-cuadrado

El resultado obtenido es aproximadamente:

  • Chi-cuadrado = 27.5968
  • Grados de libertad = 4
  • Valor p ≈ 0.000015

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.

18 Frecuencias esperadas

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.

19 Decisión estadística

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.

20 Interpretación de los resultados

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.

21 Aplicación en ingeniería

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.

22 Conclusiones

A partir del análisis realizado se obtienen las siguientes conclusiones:

  1. La tabla de contingencia permitió identificar la distribución conjunta entre la línea de producción y la temperatura.

  2. La probabilidad condicional calculada manualmente fue:

\[ P(\text{Temperatura Alta}|\text{Línea A})=61.54\% \]

  1. El resultado obtenido manualmente coincide con el resultado calculado mediante R.

  2. La distribución de las temperaturas presenta diferencias entre las líneas A, B y C.

  3. La prueba Chi-cuadrado produjo un valor p aproximadamente igual a 0.000015, menor que 0.05.

  4. Con un nivel de significancia del 5 %, se rechaza la hipótesis de independencia entre línea y temperatura.

  5. 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.

23 Uso de inteligencia artificial

Para el desarrollo de esta actividad se utilizó inteligencia artificial como herramienta de apoyo.

La IA fue utilizada para:

  • Orientar la selección y organización del análisis estadístico.
  • Apoyar la construcción del código en R.
  • Explicar el uso de funciones como table(), margin.table(), prop.table(), addmargins() y chisq.test().
  • Apoyar la interpretación de los resultados obtenidos.

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.

24 Referencias

  • R Core Team. R: A Language and Environment for Statistical Computing.
  • Material de clase proporcionado para la actividad.
  • Base de datos de acero utilizada en la actividad.