From 2c1674eb87a450bcb2b3a0dddb80cb812218b2bf Mon Sep 17 00:00:00 2001 From: Jotis86 Date: Sat, 30 Nov 2024 11:26:00 +0100 Subject: [PATCH] Lab Solved --- lab-intro-probability.ipynb | 213 +++++++++++++++++++++++++++++++----- 1 file changed, 187 insertions(+), 26 deletions(-) diff --git a/lab-intro-probability.ipynb b/lab-intro-probability.ipynb index 5893fc1..e8e6a0a 100644 --- a/lab-intro-probability.ipynb +++ b/lab-intro-probability.ipynb @@ -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}\")" ] }, { @@ -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}\")" ] }, { @@ -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}\")" ] }, { @@ -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}\")" ] }, { @@ -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", @@ -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", @@ -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}\")" ] }, { @@ -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" }, @@ -243,7 +404,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.10.9" + "version": "3.11.7" } }, "nbformat": 4,