4

Calcular: Varianza y Desviación Estándar de cualquier lista de datos

Breve repaso:

  • Varianza = Es una medida de dispersión definida como la esperanza del cuadrado de la desviación de dicha variable respecto a la media, o dicho de otra forma, es la media de los residuos al cuadrado.

Esta formula se explica mejor siguiendo estos pasos:
a) Calcular la suma de los datos.
b) Calcular la media.
c) Restar la media a cada dato.
d) Elevar al cuadrado cada resultado.
e) Sumar todos los resultados y sacar la media de esa sumatoria.

  • Desviación Estándar = Es la raíz cuadrada de la varianza de la variable.

Esta formula se explica mejor siguiendo estos pasos:
a) Calcular la suma de los datos.
b) Calcular la media.
c) Restar la media a cada dato.
d) Elevar al cuadrado cada resultado.
e) Sumar todos los resultados y sacar la media de esta sumatoria.
f) Raíz cuadrada del resultado.

Código en Python

# ************************* Varianza y Desviación Estándar *************************

# -*- coding: utf-8 -*-

from math import pow, sqrt

listaDatos = list()
restar = list()
elevar = list()

defimprimir(texto, valor):
    print('\n{} {}'.format(texto, valor))

# ************************* Paso 1 y Paso 5*************************
defsumatoria(datos):
        sumatoria = float(sum(datos))
        return sumatoria
# ************************* Paso 2*************************
defmedia(datos):
    n = len(datos)
    mediana = sumatoria(datos) / n
    return round(mediana,2)
# ************************* Paso 3*************************
defrestar_media_datos(datos):

    mediana = media(datos)
    imprimir ('Media: ', mediana)

    for i in datos:
        op = i - mediana
        restar.append(op)

# ************************* Paso 4*************************
defelevar_cuadrado(datos):

    for i in datos:
        op = pow (i, 2)
        elevar.append(op)

# ************************* Paso 6*************************

defraiz_datos():
    desviacion = sqrt(media(elevar))
    return round(desviacion,2)

# ************************* Inicio *************************
defmain():

    repetir = int(raw_input('Cuantos valores quieres ingresar? : '))

    for i in range(repetir):
            number = int(raw_input('Escribe el dato: '))
            listaDatos.append(number) # agregar el valor a la lista de datos

    suma = sumatoria(listaDatos)
    imprimir ('Sumatoria: ', suma)

    restar_media_datos(listaDatos)

    elevar_cuadrado(restar)

    mediana = media(elevar)
    imprimir ('Varianza: ', mediana)

    desviacion = raiz_datos()
    imprimir ('Desviación Estándar: ', desviacion)
    print ('\n')

if __name__ == '__main__': #Incio
    main()

Explicación del código

Función para facilitar al imprimir un texto con su resultado

defimprimir(texto, valor):
    print('\n{} {}'.format(texto, valor))

Esta función tiene como propósito imprimir en la consola, solo mandando el texto deseado y un valor especifico. Es utilizada varias veces a lo largo del código.

Paso 1 y Paso 5

defsumatoria(datos):
        sumatoria = float(sum(datos))
        return sumatoria

Como su nombre los dice, el propósito de esta función es el de calcular la suma de los datos.

float = Se almacena como un número de 4 bytes de punto flotante (punto decimal) y precisión sencilla.

sum = Nos regresa la suma de todos los indices de un arreglo o lista.

Paso 2

defmedia(datos):
    n = len(datos)
    mediana = sumatoria(datos) / n
    return round(mediana,2)

El objetivo es sacar la media de una lista de datos.

len = Nos devuelve la longitud de un arreglo

round = Nos da lo posibilidad de redondear los decimales, permitiendo darnos el control de cuantos queremos usar.

Paso 3

defrestar_media_datos(datos):

    mediana = media(datos)
    imprimir ('Media: ', mediana)

    foriin datos:
        op = i - mediana
        restar.append(op)

c) Restar la media a cada dato. Este es el objetivo a resolver de esta función.

append = Agregar un nuevo elemento a un arreglo.

Ciclo for = Recorrera la lista de datos en cada uno de sus elementos.

Paso 4

defelevar_cuadrado(datos):

    foriin datos:
        op = pow (i, 2)
        elevar.append(op)

Calcular el cuadrado de cada resultado de los elementos del paso anterior.

pow = Devuelve un valor de x a la potencia de y.

Paso 6

defraiz_datos():
    desviacion = sqrt(media(elevar))
    return round(desviacion,2)

Paso extra que nos da como resultado la Desviación Estándar

sqrt = Retorna la raiz cuadrada de un numero

Main

defmain():

    repetir = int(raw_input('Cuantos valores quieres ingresar? : '))

    for i in range(repetir):
            number = int(raw_input('Escribe el dato: '))
            listaDatos.append(number) # agregar el valor a la lista de datos

    suma = sumatoria(listaDatos)
    imprimir ('Sumatoria: ', suma)

    restar_media_datos(listaDatos)

    elevar_cuadrado(restar)

    mediana = media(elevar)
    imprimir ('Varianza: ', mediana)

    desviacion = raiz_datos()
    imprimir ('Desviación Estándar: ', desviacion)
    print ('\n')

Aqui es donde se inicia la ejecución del programa.

La primera parte pide al usuario cuantos datos ingresara, el ciclo se repetirá ese numero de veces y en cada iteración, pedirá un dato, que lo agregara a la lista para comenzar todos los procesos y devolver la Varianza y la Desviación Estándar.

Cualquier duda o error, hágamelo saber 😃

Escribe tu comentario
+ 2
1
72Puntos

I have this informational post and i would like to set clock share this for all windows 10 desktop users.