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 mm y MM.
    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

    II xix_i fif_i FiF_i hih_i HiH_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

    II xix_i fif_i fixif_i\cdot x_i fixi2f_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 2727

    Media: xˉ=fixiN=\bar{x}=\dfrac{\sum f_{i}\cdot x_{i}}{N}=15170.088=172.386\dfrac{15170.0}{88}=172.386

  3. Medidas de dispersión pedidas

    σ2=fixi2Nxˉ2=\sigma^{2}=\dfrac{\sum f_{i}\cdot x_{i}^{2}}{N}-\bar{x}^{2}=2621008.088172.3862=67.249\dfrac{2621008.0}{88}-{172.386}^2=67.249

    σ=67.249=8.201\Rightarrow\sigma=\sqrt{67.249}=8.201

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

  4. image