Problema de estadística de una variable continua con LyX y python

En esta ocasión se trata de realizar un ejercicio tipo del título del artículo. Para ello se usa numpy para hacer los cálculos y se crean con funciones de python, que contienen código LaTeX, las tablas de frecuencias. Para realizar los gráficos se ha usado matplotlib (gráfico de barras y de sectores).

En el fichero LyX solo se tiene que cambiar:

  1. La línea:

    #valor de redondeo
    r=3
    
    #número de datos con los que trabajar
    #si se definen los valores como en la 3ª opción se sobreescribe este valor
    n_datos=88
    
  2. Se puede optar por realizar el ejercicio con tres opciones:

    1. A partir del número de datos anterior obtenemos una array de numpy aleatorio entre los valores máximo y mínimo, tenemos que dar esos valores en el programa, se trata de \(m\) y \(M\).
    2. Podemos optar por que el array aleatorio sea “normal” (aunque de enteros), en ese caso tenemos que optar por la media y desviación típica de las que partimos.
    3. Se puede optar por definir los datos de forma manual, en ese caso se tienen que poner/modificar en los que hay de ejemplo.

El código usado para esto es:

#poner 1, 2 o 3 para optar por una de las opciones anteriores
opcion=2

if opcion==1:
    m=160
    M=186 #no entra
    # se crea el array de datos aleatorios de números enteros
    datos=np.random.randint(m,M,n_datos)
elif opcion==2:
    mu=170
    sigma=8
    fdatos=np.random.normal(mu, sigma, size=n_datos)
    #paso los datos obtenidos a enteros
    datos=fdatos.astype(int)
else:
    datos=np.array([184, 160, 165, 173, 182, 172, 172, 170, 177, 166, 163, 163, 176, 172, 173, 179, 164, 168, 169, 160, 171, 177])
    n_datos=len(datos)

Para obtener el número de intervalos, se usa la Regla de Sturges, aunque luego puede que se cambie un poco dependiendo del último valor de los datos y del extremo superior del último intervalo.

#número de intervalos, se usa la Regla de Sturges
# Si la parte entera de k es un número impar, redondeamos a la baja
k = 1 + log(n_datos,2)
if int(k) % 2 == 0:
    ni = ceil(k)
else:
    ni = int(k)

Si se opta por la opción 2, se puede obtener un ejercicio del tipo:

Se ha analizado la estatura (en cm) del alumnado de 1º bachillerato de este centro y se obtienen los siguientes valores

165, 162, 157, 166, 175, 165, 180, 164, 173, 164, 183, 179, 158, 154, 167, 171, 175, 159, 178, 160, 171, 164, 168, 165, 165, 176, 165, 164, 174, 170, 182, 164, 169, 160, 193, 165, 167, 176, 166, 164, 174, 170, 177, 184, 167, 175, 179, 167, 188, 171, 166, 174, 161, 175, 162, 190, 176, 181, 176, 166, 179, 162, 173, 168, 172, 175, 187, 152, 171, 165, 171, 184, 172, 171, 176, 177, 182, 168, 172, 166, 186, 166, 185, 180, 180, 184, 179, 170.

  1. Completa la tabla de frecuencias tomando los siguientes intervalos \(\left[\right.\)152, 158\(\left. \right[\) \(\left[\right.\)158, 164\(\left. \right[\) \(\left[\right.\)164, 170\(\left. \right[\) \(\left[\right.\)170, 176\(\left. \right[\) \(\left[\right.\)176, 182\(\left. \right[\) \(\left[\right.\)182, 188\(\left. \right[\) \(\left[\right.\)188, 194\(\left. \right[\)
  2. Calcula las medidas de centralización: intervalo modal y media.
  3. Calcula las medidas de dispersión: desviación típica y coeficiente de variación.
  4. Representa la distribución utilizando un histograma de frecuencias.

que daría de resultado:

  1. Tabla de frecuencias

    \(I\) \(x_i\) \(f_i\) \(F_i\) \(h_i\) \(H_i\) \(\%\quad\)
    \(\left[\right.\)152,158\(\left. \right[\) 155.00 3 3 0.03 0.03 3.41
    \(\left[\right.\)158,164\(\left. \right[\) 161.00 8 11 0.09 0.12 9.09
    \(\left[\right.\)164,170\(\left. \right[\) 167.00 27 38 0.31 0.43 30.68
    \(\left[\right.\)170,176\(\left. \right[\) 173.00 22 60 0.25 0.68 25.00
    \(\left[\right.\)176,182\(\left. \right[\) 179.00 16 76 0.18 0.86 18.18
    \(\left[\right.\)182,188\(\left. \right[\) 185.00 9 85 0.10 0.97 10.23
    \(\left[\right.\)188,194\(\left. \right[\) 191.00 3 88 0.03 1.00 3.41
      \(\sum\) 88        
  2. Medidas de centralización pedidas

    \(I\) \(x_i\) \(f_i\) \(f_i\cdot x_i\) \(f_i \cdot x_i^2\)
    \(\left[\right.\)152,158\(\left. \right[\) 155.00 3 465.00 72075.00
    \(\left[\right.\)158,164\(\left. \right[\) 161.00 8 1288.00 207368.00
    \(\left[\right.\)164,170\(\left. \right[\) 167.00 27 4509.00 753003.00
    \(\left[\right.\)170,176\(\left. \right[\) 173.00 22 3806.00 658438.00
    \(\left[\right.\)176,182\(\left. \right[\) 179.00 16 2864.00 512656.00
    \(\left[\right.\)182,188\(\left. \right[\) 185.00 9 1665.00 308025.00
    \(\left[\right.\)188,194\(\left. \right[\) 191.00 3 573.00 109443.00
      \(\sum\) 88 15170.00 2621008.00

    Intervalo/os modal/es: \(\left[\right.\)164, 170\(\left. \right[\) se corresponde/en con el/los intervalo/s de frecuencia \(27\)

    Media: \(\bar{x}=\dfrac{\sum f_{i}\cdot x_{i}}{N}=\)\(\dfrac{15170.0}{88}=172.386\)

  3. Medidas de dispersión pedidas

    \(\sigma^{2}=\dfrac{\sum f_{i}\cdot x_{i}^{2}}{N}-\bar{x}^{2}=\)\(\dfrac{2621008.0}{88}-{172.386}^2=67.249\)

    \(\Rightarrow\sigma=\sqrt{67.249}=8.201\)

    \(cv(X)=\dfrac{\sigma}{\bar{x}}=\dfrac{8.201}{172.386}=0.048\)

  4. image