El análisis de probabilidades y tablas de contingencia permite estudiar la relación entre variables categóricas. En este trabajo se analiza la relación entre el estado de un sistema y la ocurrencia de averías, utilizando información del conjunto de datos acero.csv.
¿Existe dependencia estadística entre el estado del sistema y la ocurrencia de averías?
H₀: El estado del sistema y la ocurrencia de averías son independientes.
H₁: El estado del sistema y la ocurrencia de averías presentan dependencia estadística.
library(knitr)
# Si acero.csv existe, se carga automáticamente.
# Si no existe, se utiliza la tabla de datos trabajada.
if (file.exists("acero.csv")) {
acero <- read.csv("acero.csv",
stringsAsFactors = FALSE,
check.names = FALSE)
} else {
acero <- data.frame(
sistema = c(
rep("OFF", 43),
rep("OFF", 16),
rep("ON", 46),
rep("ON", 12)
),
averias = c(
rep("No", 43),
rep("Si", 16),
rep("No", 46),
rep("Si", 12)
)
)
}
cat("Número de observaciones:", nrow(acero), "\n")
## Número de observaciones: 117
cat("Número de variables:", ncol(acero), "\n")
## Número de variables: 2
Las variables seleccionadas son:
tabla <- table(acero$sistema, acero$averias)
kable(
tabla,
caption = "Tabla 1. Contingencia entre el estado del sistema y la ocurrencia de averías"
)
| No | Si | |
|---|---|---|
| OFF | 43 | 16 |
| ON | 46 | 12 |
totales_sistema <- margin.table(tabla, 1)
totales_averias <- margin.table(tabla, 2)
tabla_sistema <- data.frame(
Sistema = names(totales_sistema),
Total = as.numeric(totales_sistema)
)
tabla_averias <- data.frame(
Averias = names(totales_averias),
Total = as.numeric(totales_averias)
)
kable(
tabla_sistema,
caption = "Tabla 2. Total de observaciones según el estado del sistema"
)
| Sistema | Total |
|---|---|
| OFF | 59 |
| ON | 58 |
kable(
tabla_averias,
caption = "Tabla 3. Total de observaciones según la ocurrencia de averías"
)
| Averias | Total |
|---|---|
| No | 89 |
| Si | 28 |
tabla_totales <- addmargins(tabla)
kable(
tabla_totales,
caption = "Tabla 4. Tabla de contingencia con totales marginales"
)
| No | Si | Sum | |
|---|---|---|---|
| OFF | 43 | 16 | 59 |
| ON | 46 | 12 | 58 |
| Sum | 89 | 28 | 117 |
La probabilidad condicional se calcula mediante:
\[ P(A|B)=\frac{P(A\cap B)}{P(B)} \]
Esta expresión permite determinar la probabilidad de que ocurra un evento cuando se conoce que otro evento ya ocurrió.
El cálculo manual es:
\[ P(\text{Avería Sí}|\text{Sistema ON}) = \frac{12}{58} \]
\[ P(\text{Avería Sí}|\text{Sistema ON}) = 0.2069 \]
Por lo tanto:
\[ P(\text{Avería Sí}|\text{Sistema ON})=20.69\% \]
El cálculo manual es:
\[ P(\text{Avería Sí}|\text{Sistema OFF}) = \frac{16}{59} \]
\[ P(\text{Avería Sí}|\text{Sistema OFF}) = 0.2712 \]
Por lo tanto:
\[ P(\text{Avería Sí}|\text{Sistema OFF})=27.12\% \]
prob_condicional <- prop.table(tabla, margin = 1)
kable(
prob_condicional,
digits = 4,
caption = "Tabla 5. Probabilidades condicionales de avería según el estado del sistema"
)
| No | Si | |
|---|---|---|
| OFF | 0.7288 | 0.2712 |
| ON | 0.7931 | 0.2069 |
p_averia_on <- tabla["ON", "Si"] / sum(tabla["ON", ])
resultado_on <- data.frame(
Sistema = "ON",
Averia = "Si",
Casos = as.numeric(tabla["ON", "Si"]),
Total_sistema = as.numeric(sum(tabla["ON", ])),
Probabilidad = p_averia_on,
Porcentaje = p_averia_on * 100
)
kable(
resultado_on,
digits = 4,
caption = "Tabla 6. Cálculo de P(Avería Sí | Sistema ON)"
)
| Sistema | Averia | Casos | Total_sistema | Probabilidad | Porcentaje |
|---|---|---|---|---|---|
| ON | Si | 12 | 58 | 0.2069 | 20.6897 |
p_averia_off <- tabla["OFF", "Si"] / sum(tabla["OFF", ])
resultado_off <- data.frame(
Sistema = "OFF",
Averia = "Si",
Casos = as.numeric(tabla["OFF", "Si"]),
Total_sistema = as.numeric(sum(tabla["OFF", ])),
Probabilidad = p_averia_off,
Porcentaje = p_averia_off * 100
)
kable(
resultado_off,
digits = 4,
caption = "Tabla 7. Cálculo de P(Avería Sí | Sistema OFF)"
)
| Sistema | Averia | Casos | Total_sistema | Probabilidad | Porcentaje |
|---|---|---|---|---|---|
| OFF | Si | 16 | 59 | 0.2712 | 27.1186 |
prob_conjuntas <- prop.table(tabla)
kable(
prob_conjuntas,
digits = 4,
caption = "Tabla 8. Probabilidades conjuntas entre el sistema y las averías"
)
| No | Si | |
|---|---|---|
| OFF | 0.3675 | 0.1368 |
| ON | 0.3932 | 0.1026 |
p_on_averia <- tabla["ON", "Si"] / sum(tabla)
resultado_conjunto <- data.frame(
Sistema = "ON",
Averia = "Si",
Casos = as.numeric(tabla["ON", "Si"]),
Total_observaciones = as.numeric(sum(tabla)),
Probabilidad = p_on_averia,
Porcentaje = p_on_averia * 100
)
kable(
resultado_conjunto,
digits = 4,
caption = "Tabla 9. Cálculo de P(Sistema ON y Avería Sí)"
)
| Sistema | Averia | Casos | Total_observaciones | Probabilidad | Porcentaje |
|---|---|---|---|---|---|
| ON | Si | 12 | 117 | 0.1026 | 10.2564 |
prueba_chi <- chisq.test(tabla)
resultado_chi <- data.frame(
Prueba = "Chi-cuadrado con corrección de Yates",
Chi_cuadrado = as.numeric(prueba_chi$statistic),
Grados_libertad = as.numeric(prueba_chi$parameter),
Valor_p = as.numeric(prueba_chi$p.value)
)
kable(
resultado_chi,
digits = 4,
caption = "Tabla 10. Resultado de la prueba de chi-cuadrado"
)
| Prueba | Chi_cuadrado | Grados_libertad | Valor_p |
|---|---|---|---|
| Chi-cuadrado con corrección de Yates | 0.3579 | 1 | 0.5497 |
prueba_chi_sin_yates <- chisq.test(
tabla,
correct = FALSE
)
resultado_chi_sin <- data.frame(
Prueba = "Chi-cuadrado sin corrección de Yates",
Chi_cuadrado = as.numeric(prueba_chi_sin_yates$statistic),
Grados_libertad = as.numeric(prueba_chi_sin_yates$parameter),
Valor_p = as.numeric(prueba_chi_sin_yates$p.value)
)
kable(
resultado_chi_sin,
digits = 4,
caption = "Tabla 11. Resultado de chi-cuadrado sin corrección de Yates"
)
| Prueba | Chi_cuadrado | Grados_libertad | Valor_p |
|---|---|---|---|
| Chi-cuadrado sin corrección de Yates | 0.6641 | 1 | 0.4151 |
comparacion <- data.frame(
Estado_sistema = c("ON", "OFF"),
Casos_con_averia = c(
as.numeric(tabla["ON", "Si"]),
as.numeric(tabla["OFF", "Si"])
),
Total = c(
as.numeric(sum(tabla["ON", ])),
as.numeric(sum(tabla["OFF", ]))
),
Probabilidad_averia = c(
p_averia_on,
p_averia_off
),
Porcentaje_averia = c(
p_averia_on * 100,
p_averia_off * 100
)
)
kable(
comparacion,
digits = 4,
caption = "Tabla 12. Comparación de la ocurrencia de averías según el estado del sistema"
)
| Estado_sistema | Casos_con_averia | Total | Probabilidad_averia | Porcentaje_averia |
|---|---|---|---|---|
| ON | 12 | 58 | 0.2069 | 20.6897 |
| OFF | 16 | 59 | 0.2712 | 27.1186 |
Se establece un nivel de significancia de:
\[ \alpha = 0.05 \]
alpha <- 0.05
decision <- ifelse(
prueba_chi$p.value < alpha,
"Se rechaza H0",
"No se rechaza H0"
)
interpretacion <- data.frame(
Nivel_significancia = alpha,
Valor_p = as.numeric(prueba_chi$p.value),
Decision = decision
)
kable(
interpretacion,
digits = 4,
caption = "Tabla 13. Interpretación de la prueba de independencia"
)
| Nivel_significancia | Valor_p | Decision |
|---|---|---|
| 0.05 | 0.5497 | No se rechaza H0 |
El valor p obtenido mediante la prueba de chi-cuadrado con corrección de Yates es aproximadamente 0.5497.
Como el valor p es mayor que el nivel de significancia de 0.05, no se rechaza la hipótesis nula.
Por lo tanto, con los datos analizados no existe evidencia estadística suficiente para afirmar que exista dependencia entre el estado del sistema y la ocurrencia de averías.
El análisis de variables categóricas puede ser utilizado en Ingeniería Agrícola para estudiar registros relacionados con el funcionamiento de equipos, sistemas de operación y ocurrencia de fallas.
En este caso, la comparación de las probabilidades de avería según el estado del sistema permite describir el comportamiento observado en los registros analizados. Sin embargo, para tomar decisiones técnicas sobre mantenimiento o funcionamiento de equipos también pueden considerarse otras variables del proceso.
La tabla de contingencia permitió organizar las 117 observaciones de acuerdo con el estado del sistema y la ocurrencia de averías.
La probabilidad de presentar una avería cuando el sistema estaba en estado ON fue de 20.69 %, mientras que cuando estaba en estado OFF fue de 27.12 %.
La prueba de chi-cuadrado obtuvo un valor p superior a 0.05. Por lo tanto, no se encontró evidencia estadística suficiente para afirmar una dependencia entre el estado del sistema y la ocurrencia de averías.
Se utilizó ChatGPT como herramienta de apoyo para organizar el análisis, estructurar el código en R y revisar la presentación de las tablas.
“Realiza un análisis de probabilidad condicional y tablas de contingencia utilizando el conjunto de datos acero.csv. Emplea table(), margin.table(), prop.table(), addmargins() y chisq.test(), y presenta los resultados mediante tablas.”
Los cálculos obtenidos mediante R fueron revisados y comparados con los cálculos manuales de probabilidad condicional.
Illowsky, B., & Dean, S. (2023). Introductory statistics 2e. OpenStax.
OpenStax. (2022). Introducción a la estadística. OpenStax.
National Institute of Standards and Technology. (2012). Engineering statistics handbook: Product and process comparisons. U.S. Department of Commerce