# Instalar plotly si no está ya instalado
if (!requireNamespace("ggplot2", quietly = TRUE)) {
install.packages("ggplot2")
}
# Instalar plotly si no está ya instalado
if (!requireNamespace("plotly", quietly = TRUE)) {
install.packages("plotly")
}
# Cargar las librerías necesarias
library(ggplot2)
## Warning: package 'ggplot2' was built under R version 4.3.3
library(plotly)
## Warning: package 'plotly' was built under R version 4.3.3
##
## Attaching package: 'plotly'
## The following object is masked from 'package:ggplot2':
##
## last_plot
## The following object is masked from 'package:stats':
##
## filter
## The following object is masked from 'package:graphics':
##
## layout
# Crear un data frame con los datos proporcionados
datos <- data.frame(
proporcion_defectuosos = c(0.001, 0.005, 0.010, 0.015, 0.020, 0.030, 0.040, 0.050, 0.060, 0.070, 0.080, 0.100, 0.150),
probabilidad_aceptacion = c(0.9982, 0.9634, 0.8787, 0.7227, 0.6619, 0.4592, 0.3022, 0.1915, 0.1179, 0.0709, 0.0417, 0.0137, 0.0006)
)
# Parámetros del plan de muestreo
n <- 60
c <- 1
# Función para calcular la probabilidad de aceptación
calc_pa <- function(p, n) {
p0 <- dbinom(0, size = n, prob = p)
p1 <- dbinom(1, size = n, prob = p)
return(p0 + p1)
}
# Calcular las probabilidades de aceptación utilizando la distribución binomial
datos$pa_calculada <- sapply(datos$proporcion_defectuosos, calc_pa, n = n)
# Mostrar el data frame con los resultados calculados
print(datos)
## proporcion_defectuosos probabilidad_aceptacion pa_calculada
## 1 0.001 0.9982 0.9982969987
## 2 0.005 0.9634 0.9634552163
## 3 0.010 0.8787 0.8787667287
## 4 0.015 0.7227 0.7727676870
## 5 0.020 0.6619 0.6619039297
## 6 0.030 0.4592 0.4592107971
## 7 0.040 0.3022 0.3022331007
## 8 0.050 0.1915 0.1915533747
## 9 0.060 0.1179 0.1179231890
## 10 0.070 0.0709 0.0708943018
## 11 0.080 0.0417 0.0417712856
## 12 0.100 0.0137 0.0137770790
## 13 0.150 0.0006 0.0006747655
# Crear el gráfico con ggplot2
p <- ggplot(datos, aes(x = proporcion_defectuosos, y = pa_calculada)) +
geom_line(color = "blue", size = 1) +
geom_point(color = "red") +
geom_point(aes(y = probabilidad_aceptacion), color = "green", shape = 4) +
labs(title = "Curva de Operación",
x = "Proporción de Defectuosos (p)",
y = "Probabilidad de Aceptación (Pa)") +
theme_minimal() +
geom_text(aes(label=round(pa_calculada, 4)), vjust=-1.5, color="blue", size=3.5) +
geom_text(aes(y = probabilidad_aceptacion, label=round(probabilidad_aceptacion, 4)), vjust=1.5, color="green", size=3.5)
## Warning: Using `size` aesthetic for lines was deprecated in ggplot2 3.4.0.
## ℹ Please use `linewidth` instead.
## This warning is displayed once every 8 hours.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.
# Convertir el gráfico a un gráfico interactivo con plotly
p_interactivo <- ggplotly(p)
# Mostrar el gráfico interactivo
p_interactivo