EST_1415_Practica5

988 days ago by sevillad1415

Práctica 5 de Estadística

 

Límite de entrega de esta práctica: ver tarea en Moodle o calendario de la asignatura. Hasta una semana de retraso: vale hasta el 50%. Más de una semana de retraso: no cuenta para la nota.

Instrucciones:

  1. Haz una copia de la hoja pública y renómbrala: si tu correo es usuario@alumnos.unex.es añade al final del título _usuario, por ejemplo EST_1415_Practica2_sevillad.
    • Para cambiar el nombre pulsa en el título de la hoja (arriba del todo, entre el logo de Sage y el menú "File...")
  2. Comparte la hoja de trabajo con el usuario sevillad1415 mediante el botón Share de arriba a la derecha.
  3. Trabaja la práctica: los ejercicios marcados "opcional" son solo para subir nota.
  4. Cuando hayas terminado, haz una copia en un único fichero PDF y ponlo en el campus virtual. Esa será la versión que se evaluará. La hoja no se considera entregada si no se ha compartido (punto 2).
    • Para generar el PDF lo más sencillo es usar el botón Print de arriba e imprimir la nueva página a fichero.
    • Una alternativa es hacer capturas de pantalla (JPG, PNG...) de la hoja a imprimir, y convertirlas a PDF uniendo después los distintos ficheros generados.
  5. Ve al campus virtual, al registro de horas no presenciales, y pon allí las dedicadas a esta práctica (recuerda descontar las presenciales de laboratorio), indicando en "observaciones" la actividad.

 

 

Veamos las funciones de Sage necesarias para calcular lo visto en clase. Ya sabemos integrar y derivar, a continuación resolvamos ecuaciones. Con find_root calculamos numéricamente una raíz de una función en un intervalo dado.

find_root(x^3-2,1,2) 
       
1.2599210498948537
1.2599210498948537

Para calcular cuantiles necesitarás resolver ecuaciones donde la incógnita está dentro de la integral. Para ello define primero la variable con var, si no no podrás usarla.

integrate(x^2,x,c1,c2) 
       
Traceback (click to the left of this block for traceback)
...
NameError: name 'c1' is not defined
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "_sage_input_2.py", line 10, in <module>
    exec compile(u'open("___code___.py","w").write("# -*- coding: utf-8 -*-\\n" + _support_.preparse_worksheet_cell(base64.b64decode("aW50ZWdyYXRlKHheMix4LGMxLGMyKQ=="),globals())+"\\n"); execfile(os.path.abspath("___code___.py"))
  File "", line 1, in <module>
    
  File "/tmp/tmpPXWHun/___code___.py", line 3, in <module>
    exec compile(u'integrate(x**_sage_const_2 ,x,c1,c2)
  File "", line 1, in <module>
    
NameError: name 'c1' is not defined
var("c3,c4") integrate(x^2,x,c3,c4) 
       
-1/3*c3^3 + 1/3*c4^3
-1/3*c3^3 + 1/3*c4^3

Ejercicio 1. Consideremos la variable aleatoria $X$ cuya función de densidad $f(x)$ es igual a $\frac{3(x-1)^2+2}{15}$ en el intervalo $[0,3]$ y cero fuera de este.

  • Comprueba que el área total bajo la gráfica de $f(x)$ es igual a 1.
  • Calcula la media y la desviación típica de $X$.
  • Calcula P($X>2$).
  • Calcula el intervalo de confianza de $X$ al 90%. Calcula otro intervalo al 90%.
 
       

A continuación veamos cómo calcular con variables aleatorias continuas. Los comandos pertenecen al paquete R de estadística, por lo que pondremos r. delante.

Para una distribución uniforme $U(a,b)$ usamos comandos que terminan con "unif".

  • r.punif: valores de la función de distribución.
  • r.qunif: cuantiles.
  • r.runif: lista de valores aleatorios (útil para simulaciones).

En todos los casos sale [n] delante. Esto es el formato de respuesta de R, y normalmente podremos ignorarlo. De todas maneras obtener un número en formato Sage es sencillo, basta con aplicar el método .n() al número o a cada número de la lista resultante.

Estudia los siguientes ejemplos con detalle, hasta que entiendas los resultados. La distribución es $U(10,20)$.

r.punif(18,10,20) 
       
[1] 0.8
[1] 0.8
r.qunif(0.25,10,20) 
       
[1] 12.5
[1] 12.5
experimento = r.runif(3,10,20) experimento; [x.n() for x in experimento] 
       
[1] 17.06067 11.40406 19.38797
[17.0606742613018, 11.4040611800738, 19.3879727600142]
[1] 17.06067 11.40406 19.38797
[17.0606742613018, 11.4040611800738, 19.3879727600142]

Para el resto de distribuciones el esquema es el mismo: tres funciones de R con nombres similares que calculan probabilidades a la izquierda, cuantiles y muestras. A continuación calculamos P$(X<1)$ para $X\sim Exp(2)$.

r.pexp(1,2) 
       
[1] 0.8646647
[1] 0.8646647

Y simulemos 1000 valores de la misma distribución para comprobar que su media es 1/2.

r.rexp(1000,2).mean() 
       
[1] 0.5030557
[1] 0.5030557

Ejercicio 2. En clase hemos hablado de una impresora que recibe una media de 10 trabajos por hora y tarda 4 minutos en imprimir cada uno.

  • ¿Cuál es la probabilidad de que un trabajo tenga que ir a la cola de impresión?
  • ¿Cuántos trabajos deberían llegar por hora en media para que la probabilidad de que un trabajo vaya a la cola fuera solo del 5%?
  • La impresora entra en modo de ahorro de energía cuando está 15 minutos sin actividad. ¿Cuál es la probabilidad de que ocurra entre la llegada de dos trabajos?
  • Supongamos que se cambia la impresora y ahora solo se tardan 2 minutos en imprimir cada trabajo. ¿Cuál es la probabilidad de que un trabajo vaya a la cola?
 
       

Para la distribución normal tenemos una vez más tres comandos de R con el sufijo "norm". El código siguiente crea un recuadro interactivo que te ayudará a familiarizarte con $N(0,1)$.

%auto @interact def _( a = slider(-4,4,0.25,default=0,label='a') ): myplot = plot(RealDistribution('gaussian', 1), xmin=-4, xmax=a, aspect_ratio=5,thickness=0, figsize=6, fill='axis') myplot += plot(RealDistribution('gaussian', 1), xmin=-4, xmax=4) myplot += text('$a$', (a,-0.1), fontsize=20) myplot += text('$Area=\mathrm{pnorm}(%f)$' % a, (2,0.4), fontsize=20, horizontal_alignment='left') myplot += text('$=%f$' % r.pnorm(a)._sage_(), (2.9,0.25), fontsize=20, horizontal_alignment='left') myplot.show() 
       

Click to the left again to hide and once more to show the dynamic interactive window

Se pueden añadir como argumentos opcionales la media y la desviación típica (ojo, no la varianza). El siguiente ejemplo comprueba que el intervalo de confianza del 95% de $N(100,25)$ es el que hemos aprendido a calcular en clase.

r.pnorm(110,100,5) - r.pnorm(90,100,5) 
       
[1] 0.9544997
[1] 0.9544997

Ejercicio 3. Una empresa vende paquetes de 1 Kg de azúcar. Dado que el paquete dice "1 Kg" en la etiqueta, un paquete que tenga menos de 1 Kg de azúcar no es aceptable para el cliente (si hay más de 1 Kg no se quejará, obviamente). Sabemos que el proceso de empaquetado produce paquetes cuyos pesos (en gramos) siguen una distribución $N(1007, 16)$.

  • ¿Qué porcentaje de paquetes no son aceptables?
  • Queremos que un 99% de paquetes cumplan lo anunciado, aumentando para ello la media. ¿Cuál debería ser esa nueva media?
  • Si podemos mejorar la precisión del proceso (reducir la desviación típica) sin cambiar la media, ¿qué valor elegiríamos para tener al menos un 99% de paquetes que cumplen lo anunciado?
 
       

Ejercicio 4 (opcional). Hemos comentado en clase que la distribución $U(0,1)$ es la base de la generación de muestras de otras distribuciones. Hagamos un ejemplo. Queremos generar 1000 valores de la distribución del ejercicio 1. El resultado matemático dice lo siguiente: si $X\sim U(0,1)$ y $F$ es la función de distribución de una variable $Y$, entonces $Y\sim F^{-1}(X)$.

Sigue estos pasos:

  • Calcula la función de distribución del ejercicio 1. Llámala F.
  • Calcula una muestra de 1000 valores de $U(0,1)$.
  • Aplica la función $F^{-1}$ a esos valores. La manera más sencilla es plantear una ecuación que se resuelve para cada valor.
  • Compara la gráfica de la función de densidad con el histograma de la muestra.