En esta práctica vamos a trabajar con el programa Maxima para calcular probabilidades
con la distribución binomial y la distribución normal.

# 1ª sesión:

En esta primera sesión vamos a trabajar con la distribución binomial.

Lo primero que tenemos que hacer es cargar el paquete "distrib" para poder trabajar
estos contenidos en Maxima. Para ello escribimos en la consola:
load("distrib")$
utilizamos el simbolo del dolar para que no nos salga en la página de trabajo todo lo
que contiene el paquete.

load("distrib")$

Recordamos que la binomial viene dada por un número de elementos "n" y la probabilidad de
que ocurra algo "p". En el paquete distrib vamos a trabajar usando los siguientes comandos:
"pdf_binomial(x,n,p)" para calcular con la función de densidad, es decir, probabilidades del
tipo P(X=x)
"cdf_binomial(x,n,p)" para calcular con la función de distribución, es decir, probabilidades
acumuladas que por lo tanto son del tipo  P(X ≤ x).
"mean_binomial(n,p)" para calcular la media de la distribución.
"var_binomial(n,p)" para calcular la varianza de la distribución.
"std_binomial(n,p)" para calcular la desviación típica de la distribución.

Veamos con un ejemplo como trabajamos.

Calculamos el apartado a) con los comandos anteriores:

mean_binomial(8,0.6);
var_binomial(8,0.6);
std_binomial(8,0.6);

Comprobamos que estos resultados son ciertos, recordamos que media = n*p, varianza=n*p*(1-p)
y que la desviación típica es la raiz cuadrada de la varianza.

n:8;
p:0.6;

[n*p,n*p*(1-p),sqrt(n*p*(1-p))];

Como podemos ver los resultados son los mismos.

Vamos a calcular el apartado b) y lo vamos a hacer de dos formas distintas, una usando la
función de distribución y otra usando la función de densidad.

Si usamos la función de distribución vamos a obtener directamente el resultado,como queremos
P(X<6) y es discreta ponemos solo hasta 5. 

cdf_binomial(5,8,0.6);

Comprobemos el resultado usando la función de densidad, es decir sumando P(X=0)+P(X=1)+
P(X=2)+P(X=3)+P(X=4)+P(X=5). Veamoslo:

pdf_binomial(0,8,0.6)+pdf_binomial(1,8,0.6)+pdf_binomial(2,8,0.6)+pdf_binomial(3,8,0.6)+pdf_binomial(4,8,0.6)+pdf_binomial(5,8,0.6);

Como podemos ver, obtenemos el mismo resultado.

Para calcular el apartado c) vamos a hacerlo también de las dos formas, con la función de densidad,
es decir, sumando P(X=5)+P(X=6)+P(X=7)+P(X=8), y con la función de distribución, que como solo me 
da menores tendremos que hacer lo contrario, es decir, 1 - P(X<5).

pdf_binomial(5,8,0.6)+pdf_binomial(6,8,0.6)+pdf_binomial(7,8,0.6)+pdf_binomial(8,8,0.6);
1-cdf_binomial(4,8,0.6);

Para el apartado d) vamos a utilizar directamente la función de densidad:

pdf_binomial(3,8,0.6)+pdf_binomial(4,8,0.6);

Vamos ahora a practicar con un problema:

Leyendo el problema observamos que estamos ante una binomial B(10, 0.6). En el apartado a)
nos piden P(X ≥ 8), en el b) P(X < 5) y en el c) la media y la desviación típica. Vamos 
a calcularlos:

pdf_binomial(8,10,0.6)+pdf_binomial(9,10,0.6)+pdf_binomial(10,10,0.6);

cdf_binomial(4,10,0.6);

mean_binomial(10,0.6);
std_binomial(10,0.6);

Y ahora intentar resolver el siguiente vosotros solos:

cdf_binomial(3,8,0.3);

1-(pdf_binomial(0,8,0.3)+pdf_binomial(1,8,0.3)+pdf_binomial(2,8,0.3));

# 2ª sesión:

En esta nueva sesión vamos a trabajar con la distribución normal. Para ello vamos a utilizar
los siguientes comandos: recordamos que una normal viene dada por una media "m" y una 
desviación típica "s".
"pdf_normal(x,m,s)" para calcular con la función de densidad de la normal.
"cdf_normal(x,m,s)" para calcular con la función de distribución de la normal.
"quantile_normal(q,m,s)" para calcular el q-cuantil de una distribución normal.

Vamos a trabajar con un primer ejemplo en el que solamente calcularemos probabilidades.

Utilizamos directamente la función "cdf_normal". Tenemos que tener en cuenta que 
si nos piden una probabilidad P(X>x) tenemos que calcularla de la siguiente
manera, 1 - cdf_normal(x,m,s).

cdf_normal(12.36,12,2);

Como no nos ha salido el valor numérico conmutamos la salida picando en el menu, numérico,
conmutar salida numérica.

if numer#false then numer:false else numer:true;

cdf_normal(12.36,12,2);

Seguimos con el resto.

cdf_normal(17.01,12,2);
1-cdf_normal(9.84,12,2);
1-cdf_normal(7.89,12,2);

Ahora vamos a hacer un ejemplo para calcular intervalos:

Lo calculamos como cdf_normal(b,m,s)-cdf_normal(a,m,s), siendo P(a<X<b).

cdf_normal(120,90,12)-cdf_normal(106,90,12);
cdf_normal(112.6,90,12)-cdf_normal(84,90,12);
cdf_normal(87,90,12)-cdf_normal(69,90,12);

Veamos ahora como lo llevamos a un problema:

Al leer el enunciado vemos que trabajamos con una normal N(35,10) y que en el 
apardado a) nos piden P(X>40), ojo¡¡ aquí nos piden una probabilidad mayor,
y en el apartado b) P(23<X<47). Lo calculamos:

1-cdf_normal(40,35,10);

cdf_normal(47,35,10)-cdf_normal(23,35,10);

Ahora intentarlo vosotros:

1-cdf_normal(21,15,4);
cdf_normal(7,15,4);
1-cdf_normal(17,15,4);
cdf_normal(19,15,4)-cdf_normal(11,15,4);

# 3ª sesión:

En esta sesión vamos a trabajar con la opción "quantile_normal(q,m,s)" y también
aproximaremos la binomial a la normal.

Vamos a trabajar directamente con un ejemplo:

En el apartado a) solo nos piden una probabilidad, la calculamos. P(X>8). Tenemos que
tener cuidado ya que el dato que nos dan en el problema es la varianza y nosotros 
necesitamos la desviación típica, que recordamos que es la raiz cuadrada de la varianza.

1-cdf_normal(8,7,2);

En el apartado b) ya no nos piden la probabilidad, ya nos la dan al decirnos que solamente
superen la prueba el 33% de los estudiantes, es decir, P(X>k)=0.33.
Como me dan el dato de > lo primero que vamos a hacer es lo contrario, trabajamos con <, 
por lo tanto, P(X<k)=0.67. Veamos que dato de la normal N(0,1), nos da esa probabilidad.

k:quantile_normal(0.67,0,1);

Ese dato que hemos obtenido esta tipificado, por lo que ahora tenemos que deshacerlo. Si 
tipificamos restando la media y dividiendo por la desviación típica y ahora queremos 
calcular el valor x, tenemos que multiplicar k por la desviación típica y sumarle la media.

k*2+7;

Por lo tanto, la calificación mínima que tienen que sacar los estudiantes para aprobar es 
de un 7.88.

Veamos ahora que lo podemos hacer también directamente poniendo los datos en el comando.

quantile_normal(0.67,7,2);

Ahora intentarlo vosotros:

En el apartado a) y b) nos piden  probabilidades, P(X<28) y P(25<X<35), respectivamente.

cdf_normal(28,30,5);
cdf_normal(35,30,5)-cdf_normal(25,30,5);

En el apartado c) nos piden P(X<x)=0.8

k:quantile_normal(0.8,30,5);

Ahora vamos a aproximar una binomial a una normal. Recordamos que la aproximación es 
mejor cuando n>10 y se cumple que n*p>5.
Lo primero que tenemos que hacer es calcular la media y la desviación típica de la binomial
y a partir de ahí podemos trabajar con la normal. Veamos un ejemplo:

En este caso tenemos B(1000,0.1), calculamos la media y la desviación típica.

m:mean_binomial(1000,0.1);
s:std_binomial(1000,0.1);

Por lo tanto, vamos a trabajar con una normal N(100,9.48). Calculamos con la normal:
a) P(X>90)y b) P(X<100)

1-cdf_normal(90,m,s);
cdf_normal(100,m,s);

Veamos el resultado si hubieramos empleado la binomial.

1-cdf_binomial(90,1000,0.1);
cdf_binomial(100,1000,0.1);

Como podemos ver, hay cierta diferencia, pero hay que recordar que la binomial es discreta
y la normal continua por lo que nunca pueden ser iguales. En 2º aplicaremos una corrección
de continuidad que hará que estos resultados se parezcan aún más. Pero piensa, prefieres 
esto o hacer los calculos a mano si no tienes un ordenador delante,...

Ahora os toca intentarlo:

m:mean_binomial(500,0.5);

Como la media es mayor que 5 podemos aproximar a una normal.

s:std_binomial(500,0.5);

cdf_normal(200,m,s)-cdf_normal(100,m,s);
1-cdf_normal(300,m,s);

# 4ª sesión:

En esta cuarta sesión los alumnos tendrán que realizar una tarea con seis ejercicios
y entregarla. 

EJERCICIO 1:

Tenemos una binomial B(7,0.25), en el apartado a) nos piden la media y la varianza,
en el b) P(X=3), y en el c) P(X≤2). Lo resolvemos.

mean_binomial(7,0.25);
var_binomial(7,0.25);

pdf_binomial(3,7,0.25);

cdf_binomial(2,7,0.25);

EJERCICIO 2:

En este caso tenemos una binomial B(10,0.4). En el apartado a) nos piden P(X=3), en
el b)P(X>4) y en el c) P(2<X<5).

pdf_binomial(3,10,0.4);

Como nos piden más de cuatro podemos hacer lo contrario 1 - P(X≤4)

1-cdf_binomial(4,10,0.4);

En el c) hacemos P(X=3)+P(X=4).

pdf_binomial(3,10,0.4)+pdf_binomial(4,10,0.4);

C:

EJERCICIO 3:

m1:mean_binomial(24,0.2);
m2:mean_binomial(12,0.4);

Por lo tanto, si tienen la misma media. Para ver cuál tiene los datos más agrupados
tenemos que calcular el coeficiente de variación que recordamos que se calcula como
el cociente entre la desviación típica y la media.

cv1:std_binomial(24,0.2)/m1;
cv2:std_binomial(12,0.4)/m2;

Como el coeficiente de variación es menor en la distribución Y, esta tiene los datos
más agrupados en torno a la media. Calculamos el apartado c).

pdf_binomial(12,24,0.2);
pdf_binomial(6,12,0.4);

EJERCICIO 4:

En el apartado a) tenemos una binomial B(50,0.7).

mean_binomial(50,0.7);
std_binomial(50,0.7);

En el apartado b) tenemos una binomial B(8,0.7) y nos piden P(X≥5).

1-cdf_binomial(4,8,0.7);

En el apartado c) tenemos una binomial B(80,0.7) y nos piden P(X≥60) por 
lo que vamos a pasarla a normal y lo comprobaremos también con la binomial.

m:mean_binomial(80,0.7);
s:std_binomial(80,0.7);

1-cdf_normal(60,m,s);

Comprobamos con la binomial.

1-cdf_binomial(59,80,0.7);

EJERCICIO 5:

Tenemos una normal N(4.5,0.3) y como queremos quedarnos con el 10% de las más grandes,
nos piden P(X>x)=0.1, o lo que es lo mismo P(X<x)=0.9.

quantile_normal(0.9,4.5,0.3);

Tenemos que quedarnos con las ciruelas a partir de 4.88 cm de diámetro.

EJERCICIO 6:

Trabajamos con una normal N(90,4). En el apartado a) nos piden P(X<86.4), en el b) P(86.4<X<93.6)
y en el apartado c)P(X<x)=0.23.

n:25000;

cdf_normal(86.4,90,4);

%*n;

El número de individuos con un perímetro torácico inferior a 86.4 es de 4602.

n*(cdf_normal(93.6,90,4)-cdf_normal(86.4,90,4));

El número de individuos pedido es de 15797.

quantile_normal(0.23,90,4);

El perímetro torácico solicitado es de 87.04 cm.