AJO_1415_Practica2

955 days ago by sevillad1415

Práctica 2 de Ajuste de Observaciones

 

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.

 

 

Con Sage podemos calcular los indicadores estadísticos más habituales, pues ya existen funciones que lo hacen. Vamos a ver algo más útil: cómo manipular listas de datos. Una lista no es más que un conjunto ordenado de datos (números o no), separados por comas y rodeados por corchetes.

lista = [2,3,4,5,6] lista 
       
[2, 3, 4, 5, 6]
[2, 3, 4, 5, 6]

La función "len" nos devuelve la longitud de una lista.

l = len(lista) l 
       
5
5

Podemos usar "len" para extraer el último elemento de una lista (como hemos empezado a contar por cero, hay que restar uno a la longitud). Otra manera que acepta Sage es usar el índice "-1" (significa algo así como "el primero contando al revés").

En la siguiente celda mostraremos el último elemento de la lista anterior de dos maneras. Como ves, para mostrar dos resultados en una celda se ponen en la última línea separados por ";".

lista[l-1]; lista[-1] 
       
6
6
6
6

La función "sum" nos devuelve la suma de los elementos de una lista. Las funciones "max" y "min" muestran lo que dicen sus nombres.

sum(lista) 
       
20
20
max(lista) 
       
6
6
min(lista) 
       
2
2

Ejercicio 1. Calcula la media de los datos 4,6,7,8,9,10,12,14.

 
       

Sage también nos permite, de manera muy sencilla, aplicar una función a todos los elementos de una lista. La sintaxis es

[f(n) for n in L]

donde L es el nombre de la lista que nos interesa y f es la función a aplicar a cada elemento. A continuación un ejemplo donde calculamos los cuadrados de unos números.

datos = [3, 6, 7, 4, 5, 4] cuadrados = [n^2 for n in datos] cuadrados 
       
[9, 36, 49, 16, 25, 16]
[9, 36, 49, 16, 25, 16]

Ejercicio 2. Calcula la varianza, usando la definición y lo visto más arriba, de las siguientes alturas.

158, 173, 182.5, 161, 161, 173, 160, 185, 170, 176, 168, 180, 170, 170, 190, 180, 169, 162, 171, 177, 187, 182, 176, 175, 171, 150, 164, 174, 180, 188, 165, 192, 181, 155, 180, 180, 172, 175, 167

 
       

Podemos extraer un elemento de una lista indicando su posición entre corchetes. Importante: en Sage se empieza a contar desde cero, es decir, el primer elemento de una lista tiene índice cero, el segundo tiene índice uno, etc.

lista = [2,3,4,5,6] lista[0]; lista[1] 
       
2
3
2
3

Para ordenar un conjunto de datos usamos su propiedad "sort" (las propiedades de un objeto de Sage se usan con un punto después de su nombre). Ojo, al aplicar "sort" perdemos el orden original. Esto puede afectar a cálculos posteriores...

Asegúrate de entender bien el ejemplo siguiente.

datos = [13, 8, 17, 12, 16, 20, 7, 19, 17, 14] datos; datos[0] 
       
[13, 8, 17, 12, 16, 20, 7, 19, 17, 14]
13
[13, 8, 17, 12, 16, 20, 7, 19, 17, 14]
13
datos.sort() datos; datos[0] 
       
[7, 8, 12, 13, 14, 16, 17, 17, 19, 20]
7
[7, 8, 12, 13, 14, 16, 17, 17, 19, 20]
7

Ejercicio 3. Calcula los tres cuartiles de los datos siguientes.

datos = [73, 72, 22, 63, 46, 31, 66, 20, 39, 35, 82, 68, 88, 79, 46, 59, 50, 70, 68, 51, 49, 49, 24, 72, 48, 46, 86, 56, 56, 41, 71, 61, 41, 32, 59, 79, 60, 35, 50, 77, 70, 31, 56, 86, 89, 78, 71, 68, 75, 42, 53, 51, 69, 84, 81, 27, 64, 57, 64, 46, 58, 21, 51, 28, 76, 88, 62, 34, 42, 47, 36, 83, 72, 55, 37, 78, 85, 35, 89, 43, 38, 40, 59, 36, 60, 72, 73, 51, 60, 67, 36, 71, 63, 38, 47, 32, 55, 33, 85, 76, 25, 48, 69, 37, 72, 34, 88, 71, 45, 47, 49, 68, 54, 63, 80, 68, 57, 82, 75, 56, 61, 61, 88, 25, 20, 41, 86, 45, 65, 70, 68, 44, 44, 27, 55, 51, 22, 58, 20, 22, 59, 70, 73, 85, 87, 26, 65, 71, 35, 27, 33, 70, 67, 25] datos 
       
[73, 72, 22, 63, 46, 31, 66, 20, 39, 35, 82, 68, 88, 79, 46, 59, 50, 70,
68, 51, 49, 49, 24, 72, 48, 46, 86, 56, 56, 41, 71, 61, 41, 32, 59, 79,
60, 35, 50, 77, 70, 31, 56, 86, 89, 78, 71, 68, 75, 42, 53, 51, 69, 84,
81, 27, 64, 57, 64, 46, 58, 21, 51, 28, 76, 88, 62, 34, 42, 47, 36, 83,
72, 55, 37, 78, 85, 35, 89, 43, 38, 40, 59, 36, 60, 72, 73, 51, 60, 67,
36, 71, 63, 38, 47, 32, 55, 33, 85, 76, 25, 48, 69, 37, 72, 34, 88, 71,
45, 47, 49, 68, 54, 63, 80, 68, 57, 82, 75, 56, 61, 61, 88, 25, 20, 41,
86, 45, 65, 70, 68, 44, 44, 27, 55, 51, 22, 58, 20, 22, 59, 70, 73, 85,
87, 26, 65, 71, 35, 27, 33, 70, 67, 25]
[73, 72, 22, 63, 46, 31, 66, 20, 39, 35, 82, 68, 88, 79, 46, 59, 50, 70, 68, 51, 49, 49, 24, 72, 48, 46, 86, 56, 56, 41, 71, 61, 41, 32, 59, 79, 60, 35, 50, 77, 70, 31, 56, 86, 89, 78, 71, 68, 75, 42, 53, 51, 69, 84, 81, 27, 64, 57, 64, 46, 58, 21, 51, 28, 76, 88, 62, 34, 42, 47, 36, 83, 72, 55, 37, 78, 85, 35, 89, 43, 38, 40, 59, 36, 60, 72, 73, 51, 60, 67, 36, 71, 63, 38, 47, 32, 55, 33, 85, 76, 25, 48, 69, 37, 72, 34, 88, 71, 45, 47, 49, 68, 54, 63, 80, 68, 57, 82, 75, 56, 61, 61, 88, 25, 20, 41, 86, 45, 65, 70, 68, 44, 44, 27, 55, 51, 22, 58, 20, 22, 59, 70, 73, 85, 87, 26, 65, 71, 35, 27, 33, 70, 67, 25]
 
       

Ejercicio 4. Escribe conjuntos de cuatro datos con las siguientes propiedades:

  1. Su media es 5 y su mediana es 6.
  2. Su media es 7 y uno de los cuatro datos está por debajo de ella.
  3. Su media y su mediana coinciden, y la distancia entre el mayor y el menor de los datos es 5.
  4. Dos de los datos son 4 y 7, y su mediana es 2.
 
       

Como dijimos al principio, Sage tiene funciones que calculan los indicadores estadísticos más conocidos.

l = [5, 3, 6, 7, 4, 5, 4, 5] l 
       
[5, 3, 6, 7, 4, 5, 4, 5]
[5, 3, 6, 7, 4, 5, 4, 5]
mean(l); median(l); mode(l); variance(l); std(l) 
       
39/8
5
[5]
87/56
1/2*sqrt(87/14)
39/8
5
[5]
87/56
1/2*sqrt(87/14)
r.summary(l,digits=10) 
       
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
  3.000   4.000   5.000   4.875   5.250   7.000 
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
  3.000   4.000   5.000   4.875   5.250   7.000 

Ejercicio 5. Copia aquí los datos del ejercicio 3 y aplícales la función "r.summary" de arriba. Compara los resultados con los que obtuviste antes. Si hay diferencias, intenta pensar por qué ocurren.

 
       

Recordemos cómo integrar con Sage. A continuación mostramos cómo se calculan primitivas (integrales indefinidas) e integrales definidas. Ambas usan la misma función.

f(x) = x^4-x^3 f 
       
x |--> x^4 - x^3
x |--> x^4 - x^3
g(x) = integrate(f,x) g; g(3)-g(1) 
       
x |--> 1/5*x^5 - 1/4*x^4
142/5
x |--> 1/5*x^5 - 1/4*x^4
142/5
integrate(f,x,1,3) 
       
142/5
142/5

Podemos calcular integrales con límites infinitos. Fíjate en este ejemplo cómo se escribe una función exponencial y cómo se escribe infinito.

f = exp(-x) plot(f,0,10).show(figsize=4) integrate(exp(-x),x,0,oo) 
       

1

1

Si necesitas hacer integrales con límites indeterminados $a,b,...$ tienes que decirle a Sage antes de usarlos que esas letras son variables, si no habrá un error.

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

Finalmente, puede que te sea útil el poder decir a Sage que una cierta indeterminada es positiva.

var('z') solve(z^2==1,z) 
       
[z == -1, z == 1]
[z == -1, z == 1]
assume(z>0) solve(z^2==1,z) 
       
[z == 1]
[z == 1]

Ejercicio 6. 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 los tres cuartiles de $X$.
  • Calcula el intervalo de confianza de $X$ al 90%. Calcula otro intervalo al 90%.