Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Lab Solved #210

Open
wants to merge 1 commit into
base: main
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
213 changes: 187 additions & 26 deletions lab-intro-probability.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -38,11 +38,34 @@
},
{
"cell_type": "code",
"execution_count": null,
"execution_count": 1,
"metadata": {},
"outputs": [],
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"La probabilidad de que haya asientos para todos los pasajeros es: 0.1155\n"
]
}
],
"source": [
"#code here"
"import scipy.stats as stats\n",
"\n",
"# Parámetros de la distribución binomial\n",
"n = 460 # número de pasajeros\n",
"p = 0.03 # probabilidad de que un pasajero no se presente\n",
"\n",
"# Calcular la probabilidad de que menos de 10 pasajeros no se presenten\n",
"prob_less_than_10 = stats.binom.cdf(9, n, p)\n",
"\n",
"# Calcular la probabilidad de que 10 o más pasajeros no se presenten\n",
"prob_10_or_more = 1 - prob_less_than_10\n",
"\n",
"# Calcular la probabilidad de que haya asientos para todos los pasajeros\n",
"prob_seats_for_all = prob_less_than_10\n",
"\n",
"print(f\"La probabilidad de que haya asientos para todos los pasajeros es: {prob_seats_for_all:.4f}\")"
]
},
{
Expand Down Expand Up @@ -72,11 +95,26 @@
},
{
"cell_type": "code",
"execution_count": 5,
"execution_count": 2,
"metadata": {},
"outputs": [],
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"La probabilidad de necesitar al menos 3 intentos es: 0.4900\n"
]
}
],
"source": [
"#code here"
"# Parámetros de la distribución geométrica\n",
"p = 0.3 # probabilidad de éxito en un intento\n",
"k = 3 # número mínimo de intentos\n",
"\n",
"# Calcular la probabilidad de necesitar al menos k intentos\n",
"prob_at_least_k_attempts = (1 - p) ** (k - 1)\n",
"\n",
"print(f\"La probabilidad de necesitar al menos {k} intentos es: {prob_at_least_k_attempts:.4f}\")"
]
},
{
Expand Down Expand Up @@ -107,11 +145,31 @@
},
{
"cell_type": "code",
"execution_count": 6,
"execution_count": 3,
"metadata": {},
"outputs": [],
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"La probabilidad de que el servidor se vea abrumado es: 0.0129\n"
]
}
],
"source": [
"#code here"
"import scipy.stats as stats\n",
"\n",
"# Parámetros de la distribución de Poisson\n",
"lambda_visits = 500 # tasa promedio de visitas por hora\n",
"threshold = 550 # capacidad del servidor\n",
"\n",
"# Calcular la probabilidad acumulada de que el número de visitas sea menor o igual a 550\n",
"prob_less_than_equal_550 = stats.poisson.cdf(threshold, lambda_visits)\n",
"\n",
"# Calcular la probabilidad de que el número de visitas sea mayor que 550\n",
"prob_greater_than_550 = 1 - prob_less_than_equal_550\n",
"\n",
"print(f\"La probabilidad de que el servidor se vea abrumado es: {prob_greater_than_550:.4f}\")"
]
},
{
Expand All @@ -123,11 +181,37 @@
},
{
"cell_type": "code",
"execution_count": 7,
"execution_count": 4,
"metadata": {},
"outputs": [],
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"La probabilidad de que el servidor se vea abrumado al menos una vez durante el día es: 0.2677\n"
]
}
],
"source": [
"#code here"
"import scipy.stats as stats\n",
"\n",
"# Parámetros de la distribución de Poisson\n",
"lambda_visits = 500 # tasa promedio de visitas por hora\n",
"threshold = 550 # capacidad del servidor\n",
"\n",
"# Calcular la probabilidad acumulada de que el número de visitas sea menor o igual a 550\n",
"prob_less_than_equal_550 = stats.poisson.cdf(threshold, lambda_visits)\n",
"\n",
"# Calcular la probabilidad de que el servidor no se vea abrumado en una hora\n",
"prob_not_overwhelmed_one_hour = prob_less_than_equal_550\n",
"\n",
"# Calcular la probabilidad de que el servidor no se vea abrumado en ninguna de las 24 horas\n",
"prob_not_overwhelmed_24_hours = prob_not_overwhelmed_one_hour ** 24\n",
"\n",
"# Calcular la probabilidad de que el servidor se vea abrumado al menos una vez durante el día\n",
"prob_overwhelmed_at_least_once = 1 - prob_not_overwhelmed_24_hours\n",
"\n",
"print(f\"La probabilidad de que el servidor se vea abrumado al menos una vez durante el día es: {prob_overwhelmed_at_least_once:.4f}\")"
]
},
{
Expand Down Expand Up @@ -157,10 +241,29 @@
},
{
"cell_type": "code",
"execution_count": null,
"execution_count": 5,
"metadata": {},
"outputs": [],
"source": []
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"La probabilidad de que el próximo cliente llegue dentro de los próximos 5 minutos es: 0.3935\n"
]
}
],
"source": [
"import scipy.stats as stats\n",
"\n",
"# Parámetros de la distribución exponencial\n",
"lambda_arrival = 1 / 10 # tasa de llegada (clientes por minuto)\n",
"t = 5 # tiempo en minutos\n",
"\n",
"# Calcular la probabilidad de que el próximo cliente llegue dentro de los próximos 5 minutos\n",
"prob_within_5_minutes = stats.expon.cdf(t, scale=1/lambda_arrival)\n",
"\n",
"print(f\"La probabilidad de que el próximo cliente llegue dentro de los próximos 5 minutos es: {prob_within_5_minutes:.4f}\")"
]
},
{
"cell_type": "markdown",
Expand All @@ -173,10 +276,29 @@
},
{
"cell_type": "code",
"execution_count": null,
"execution_count": 6,
"metadata": {},
"outputs": [],
"source": []
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"La probabilidad de que no haya clientes durante los próximos 15 minutos es: 0.7769\n"
]
}
],
"source": [
"import scipy.stats as stats\n",
"\n",
"# Parámetros de la distribución exponencial\n",
"lambda_arrival = 1 / 10 # tasa de llegada (clientes por minuto)\n",
"t = 15 # tiempo en minutos\n",
"\n",
"# Calcular la probabilidad de que no haya clientes durante los próximos 15 minutos\n",
"prob_no_customers_15_minutes = stats.expon.cdf(t, scale=1/lambda_arrival)\n",
"\n",
"print(f\"La probabilidad de que no haya clientes durante los próximos 15 minutos es: {prob_no_customers_15_minutes:.4f}\")"
]
},
{
"cell_type": "markdown",
Expand All @@ -196,11 +318,32 @@
},
{
"cell_type": "code",
"execution_count": null,
"execution_count": 7,
"metadata": {},
"outputs": [],
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"La probabilidad de que el peso de un pájaro esté entre 140 y 160 gramos es: 0.6827\n"
]
}
],
"source": [
"#code here"
"import scipy.stats as stats\n",
"\n",
"# Parámetros de la distribución normal\n",
"mu = 150 # media\n",
"sigma = 10 # desviación estándar\n",
"\n",
"# Calcular los z-scores\n",
"z1 = (140 - mu) / sigma\n",
"z2 = (160 - mu) / sigma\n",
"\n",
"# Calcular la probabilidad acumulada usando la CDF de la distribución normal\n",
"prob_140_to_160 = stats.norm.cdf(z2) - stats.norm.cdf(z1)\n",
"\n",
"print(f\"La probabilidad de que el peso de un pájaro esté entre 140 y 160 gramos es: {prob_140_to_160:.4f}\")"
]
},
{
Expand All @@ -219,17 +362,35 @@
},
{
"cell_type": "code",
"execution_count": null,
"execution_count": 8,
"metadata": {},
"outputs": [],
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"La probabilidad de que el componente falle dentro de las primeras 30 horas es: 0.4512\n"
]
}
],
"source": [
"#code here"
"import scipy.stats as stats\n",
"\n",
"# Parámetros de la distribución exponencial\n",
"mean_lifetime = 50 # vida media en horas\n",
"lambda_failure = 1 / mean_lifetime # tasa de fallos (inversa de la vida media)\n",
"t = 30 # tiempo en horas\n",
"\n",
"# Calcular la probabilidad de que el componente falle dentro de las primeras 30 horas\n",
"prob_failure_within_30_hours = stats.expon.cdf(t, scale=1/lambda_failure)\n",
"\n",
"print(f\"La probabilidad de que el componente falle dentro de las primeras 30 horas es: {prob_failure_within_30_hours:.4f}\")"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"display_name": "base",
"language": "python",
"name": "python3"
},
Expand All @@ -243,7 +404,7 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.10.9"
"version": "3.11.7"
}
},
"nbformat": 4,
Expand Down