No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Varianza y desviación estándar muestral

8/22
Recursos

Aportes 36

Preguntas 2

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Me llamaba la atención que no me coincidía el valor de la varianza con el de la profesora. Ya encontré el error: Las edades que pone en el cálculo del ejemplo en el minuto 2:34 no son los mismos que al inicio del ejemplo.

Qué tal, agrego mi código con los siguientes cálculos:

  • cálculo de la media respecto a una muestra simple
  • cálculo de la varianza de un mestreo sistemático
  • cálculo de la desviación estándar de un muestreo simple fraccionado

Para hacer cálculos estadísticos sin una muestra, sólo hay que cambiar la variable muestra
a false (creo)

Mi tarea:

Aporte:

population = pd.Series([7, 10, 12, 13, 16, 9, 8, 12, 8, 6, 16, 23, 11, 17, 20, 21, 25, 30, 31, 33, 37, 39, 27, 36, 40, 43, 41, 45])

def promedio_population(population):
    sum_population = 0
    for i in population:
        sum_population += i
    resultado_promedio = sum_population/len(population)
    return resultado_promedio

def varianza_muestral_population(population, promedio):
    promedio = promedio
    suma = 0
    for i in population:
        a = (i - promedio)**2
        suma += a
    resultado_varianza_muestral = suma/len(population)
    return resultado_varianza_muestral

def desviacion_estandar_muestral(varianza):
    resultado_desviacion_muestral = pow(varianza,0.5)
    return resultado_desviacion_muestral
    
promedio = promedio_population(population) 
varianza_muestral = varianza_muestral_population(population, promedio)
desviacion_muestral = desviacion_estandar_muestral(varianza_muestral)

print(f'''--------Resultados poblacion global--------
La media es: {promedio:.2f}
La varianza muestral es: {varianza_muestral:.2f}
La desviacion estandar es: {desviacion_muestral:.2f}
''')


muestra_20 = population.sample(frac=0.2)

promedio = promedio_population(muestra_20) 
varianza_muestral = varianza_muestral_population(muestra_20, promedio)
desviacion_muestral = desviacion_estandar_muestral(varianza_muestral)

print(f'''--------Resultados muestra 20% --------
La media es: {promedio:.2f}
La varianza muestral es: {varianza_muestral:.2f}
La desviacion estandar es: {desviacion_muestral:.2f}
''')

![](

Hola

Hay un pequeño error en los slides. Dado que estamos calculando la varianza muestral para la formula debemos usar el valor de la media muestral. Por tal razón, si la muestra es: [28, 24, 28, 24, 28, 24]. Entonces el valor de la media seria de 26. Y el valor de la varianza seria: 4.8

porque la diferencia entre la muestra y la poblacion es un -1 en el denominador
solucion ejercicio A) sin usar ninguna libreria ```python datos = [7, 10, 12, 13, 16, 9, 8, 12, 8, 6,16, 23, 11, 17, 20, 21, 25, 30, 31, 33, 37, 39, 27, 36, 40, 43, 41, 45] media = sum(datos) / len(datos) varianza = sum([(i - media)**2 for i in datos]) / len(datos) desviacio_estandar = varianza**(1/2) print(desviacio_estandar) ```
A) Varianza y desviación estándar de la población: ```python import numpy as np import pandas as pd import random poblacion = [7, 10, 12, 13, 16, 9, 8, 12, 8, 6, 16, 23, 11, 17, 20, 21, 25, 30, 31, 33, 37, 39, 27, 36, 40, 43, 41, 45] varianza = np.var(poblacion) print('la varianza es ', varianza) desviacion_estandar = np.std(poblacion) print('la desviación estándar es ', desviacion_estandar) ```B) Obtención de una muestra: ```python import random tamano_muestra = int(0.2 * len(poblacion)) muestra_aleatoria = random.sample(poblacion, tamano_muestra) print("Muestra aleatoria del 20% de la población:") print(muestra_aleatoria) ```C) Varianza y desviación estándar muestral, con ayuda del código de otro estudiante: ```python media_muestral = np.mean(muestra_aleatoria) media_muestral desviacion_estandar_muestral = np.sqrt(sum([(i-media_muestral)**2 for i in muestra_aleatoria])/(len(muestra_aleatoria) - 1)) print('la desviación estándar muestral es ', desviacion_estandar_muestral) varianza_muestral = desviacion_estandar_muestral ** 2 print('la varianza muestral es ', varianza_muestral) ```
A) Calcula la varianza y desviación estándar de la siguiente población de datos: 7, 10, 12, 13, 16, 9, 8, 12, 8, 6, 16, 23, 11, 17, 20, 21, 25, 30, 31 33, 37, 39, 27, 36, 40, 43, 41, 45 ```python import numpy as np import pandas as pd import random poblacion = [7, 10, 12, 13, 16, 9, 8, 12, 8, 6, 16, 23, 11, 17, 20, 21, 25, 30, 31, 33, 37, 39, 27, 36, 40, 43, 41, 45] # A) CÁLCULO DE LA VARIANZA Y DESVIACIÓN ESTÁNDAR varianza = np.var(poblacion) print('la varianza es ', varianza) desviacion_estandar = np.std(poblacion) print('la desviación estándar es ', desviacion_estandar) ```B) B) Toma una muestra de los datos y calcula la varianza y desviación estándar muestral de la misma población de datos:Obtención de una muestra aleatoria de 20%```js import random tamano_muestra = int(0.2 * len(poblacion)) muestra_aleatoria = random.sample(poblacion, tamano_muestra) print("Muestra aleatoria del 20% de la población:") print(muestra_aleatoria) ```Cálculo de la varianza y la desviación estándar muestral```python ```
A) A) Calcula la varianza y desviación estándar de la siguiente población: 7, 10, 12, 13, 16, 9, 8, 12, 8, 6, 16, 23, 11, 17, 20, 21, 25, 30, 31 33, 37, 39, 27, 36, 40, 43, 41, 45 ```python import numpy as np import pandas as pd import random poblacion = [7, 10, 12, 13, 16, 9, 8, 12, 8, 6, 16, 23, 11, 17, 20, 21, 25, 30, 31, 33, 37, 39, 27, 36, 40, 43, 41, 45] # A) CÁLCULO DE LA VARIANZA Y DESVIACIÓN ESTÁNDAR varianza = np.var(poblacion) print('la varianza es ', varianza) desviacion_estandar = np.std(poblacion) print('la desviación estándar es ', desviacion_estandar) ```import numpy as npimport pandas as pdimport random poblacion = \[7, 10, 12, 13, 16, 9, 8, 12, 8, 6, 16, 23, 11, 17, 20, 21, 25, 30, 31, 33, 37, 39, 27, 36, 40, 43, 41, 45] \# A) CÁLCULO DE LA VARIANZA Y DESVIACIÓN ESTÁNDAR varianza = np.var(poblacion)print('la varianza es ', varianza) desviacion\_estandar = np.std(poblacion)print('la desviación estándar es  ', desviacion\_estandar)

Este ejercicio si que estuvo interesante. La verdad hay muchos modos de resolverlo. En mi caso decidi optar por un metodo corto usando el numpy por cierto.
![](
![](

![](https://static.platzi.com/media/user_upload/Varianza%20y%20desviacion%20standar-79030770-f6f7-48a2-93d8-73a7ce980fd8.jpg)

Un Pequeño aporte: la desviación estándar se utiliza comúnmente en análisis estadísticos y en la presentación de resultados debido a su facilidad de interpretación, ya que se expresa en las mismas unidades de la variable, por ejemplo si estamos hablando de edad, se puede expresar igualmente en años de edad; mientras que la varianza puede ser más común en análisis más técnicos o cuando es necesaria para cálculos específicos como la matriz de varianzas covarianzas para regresión lineal simple por MCO.

![](https://static.platzi.com/media/user_upload/code_1-7cb2365c-904a-4e0c-89f2-d89af73b1562.jpg) ![](https://static.platzi.com/media/user_upload/code_2-25837aa5-5922-485d-be45-2210b973fc33.jpg)
![](https://static.platzi.com/media/user_upload/code1-646e840c-4f45-4485-add5-77f4861a02ff.jpg) \---- ```js La media poblacional es de: 22.714285714285715 La varianza de la población es de: 155.06122448979593 La desviación estandar de la poblaión es de: 12.452358189909088 ```--------------<>------------------- ![](https://static.platzi.com/media/user_upload/code2-0fb27294-283f-48f3-ba90-5656c5b0152a.jpg) ```js La media muestra es de: 45.42857142857143 La varianza de la muestra es de: 545.795918367347 La desviación estandar de la muestra es de: 23.362275539153863 ```*----*

Mi Tarea usando IA

\[les quiero compartir un dato interesante y creo que nunca se menciona. Cuando se hace un analisis estadistico siempre se escucha sobre la varianza y la desviación estandar ¿pero realmente entendemos que es? bueno pues estás son medidas de dispersión que nos indican la variabilidad que tienen los datos con respecto a su promedio. Una varianza alta indica que los datos son muy variables ¿y la desviación estandar que significa? significa lo mismo pero aterrizado al contexto del fenomeno que se esté analizando. Por ejemplo si tenemos un conjunto de edades y la varianza nos da 100 por medio de su desviación estandar (raiz cuadrada de la varianza) podemos concluir que en promedio las edades se alejan aproximadanemte 10 años de la media
def var(datos, p_m='p'):
    xm = datos.sum() / len(datos)
    sumatoria = 0
    for xi in datos:
        sumatoria += (xi - xm)**2
    if p_m == 'p':
        return  sumatoria / len(datos)
    else:
        return sumatoria / (len(datos) - 1)
def std(var):
    return var** 0.5

**Media **es el promedio de todas las observaciones
**Moda **es el dato más frecuente
Mediana es el dato que está al centro de los datos
Media muestral (X), media aritmética de una muestra de la población.

Varianza y desviación estándar nos ayuda a calcular que tan dispersa están los datos

Reto 1:
Creamos un array en NumPy

poblacion = np.array([7, 10, 12, 13, 16, 9, 8, 12, 8, 6, 16, 23, 11, 17, 20, 21, 25, 30, 31, 33, 37, 39, 27, 36, 40, 43, 41, 45])
poblacion

Hallamos la varianza

np.var(poblacion)

Luego su desviación estándar

poblacion.std()

Reto 2

Creamos una serie de Pandas

poblacion_2 = pd.Series([7, 10, 12, 13, 16, 9, 8, 12, 8, 6, 16, 23, 11, 17, 20, 21, 25, 30, 31, 33, 37, 39, 27, 36, 40, 43, 41, 45])

Tomamos una muestra

muestra_poblacion_2 = poblacion_2.sample(n=10)
muestra_poblacion_2

Hallamos la varianza de la muestra:

np.var(muestra_poblacion_2)

Y  luego su desviación estándar:

np.std(muestra_poblacion_2)

Lo hice con NumPy y la verdad es que una delicia hacer todo de esa manera y en una sola línea de código:

import pandas as pd
import numpy as np

#Lista del ejercicio 1
population = np.array([7, 10, 12, 13, 16, 9, 8, 12, 8, 6, 16, 23, 11, 17, 20, 21, 25, 30, 31, 33, 37, 39, 27, 36, 40, 43, 41, 45])
population

#promedio con NumPy
mean = population.mean()
print(mean)

22.714285714285715

#varianza con NumPy
varianza = population.var()
print(varianza)

155.06122448979593

#desviación estándar con NumPy
desviación = population.std()
print(desviación)

12.452358189909088

#Lista del ejercicio 2
pop = pd.Series([7, 10, 12, 13, 16, 9, 8, 12, 8, 6, 16, 23, 11, 17, 20, 21, 25, 30, 31, 33, 37, 39, 27, 36, 40, 43, 41, 45])
sam_dos = pop.sample(frac=0.2)
#promedio con NumPy
media = sam_dos.mean()
print(media)

20.5

#varianza con NumPy
var_sam = sam_dos.var()
print(var_sam)

164.3

#desviación estándar con NumPy
des_sam = sam_dos.std()
print(des_sam)

12.817956155331473

  • Para calcular la varianza y desviación estándar de una población de datos, se utilizan las siguientes fórmulas:

Varianza (σ²):

σ² = (x1 - x̄)² + (x2 - x̄)² + (x3 - x̄)² + ... + (xn - x̄)² / n

Desviación estándar (σ):
σ = √σ²

  • donde x1, x2, x3, …, xn son los valores de los datos de la población, x̄ es la media de la población, y n es el tamaño de la población.

  • Para calcular la varianza y desviación estándar de la población de datos: 7, 10, 12, 13, 16, 9, 8, 12, 8, 6, 16, 23, 11, 17, 20, 21, 25, 30, 31, 33, 37, 39, 27, 36, 40, 43, 41, 45:

alcular la media de la población:

x̄ = (7 + 10 + 12 + 13 + 16 + 9 + 8 + 12 + 8 + 6 + 16 + 23 + 11 + 17 + 20 + 21 + 25 + 30 + 31 + 33 + 37 + 39 + 27 + 36 + 40 + 43 + 41 + 45) / 36 = 21.58

Calcular la varianza:

σ² = (7 - 21.58)² + (10 - 21.58)² + (12 - 21.58)² + … + (45 - 21.58)² / 36

Hola! Comparto mi solución al reto:

Ejercicio A

poblacion = [7, 10, 12, 13, 16, 9, 8, 12, 8, 6,
             16, 23, 11, 17, 20, 21, 25, 30, 31,
             33, 37, 39, 27, 36, 40, 43, 41, 45]
def media_poblacional(poblacion):
  media = sum(poblacion) / len(poblacion)
  return media

def varianza_poblacional(poblacion):
  media = sum(poblacion) / len(poblacion)
  var = sum([pow(i - media,2) for i in poblacion]) / len(poblacion)
  return var

def desviacion_poblacional(poblacion):
  media = sum(poblacion) / len(poblacion)
  sd = pow(sum([pow(i - media,2) for i in poblacion]) / len(poblacion), 1/2)
  return sd
print('La media de la población es: ', round(media_poblacional(poblacion),2))
print('La varianza de la población es: ', round(varianza_poblacional(poblacion),2))
print('La desviación estandar de la población es: ', round(desviacion_poblacional(poblacion),2))

Ejercicio B

from random import sample
muestra = sample(poblacion, 16)
muestra
def media_muestral(muestra):
  media = sum(muestra) / len(muestra)
  return media

def varianza_muestral(muestra):
  media = sum(muestra) / len(muestra)
  var = sum([pow(i - media,2) for i in muestra]) / (len(muestra) - 1)
  return var

def desviacion_muestral(muestra):
  media = sum(muestra) / len(muestra)
  sd = pow(sum([pow(i - media,2) for i in muestra]) / (len(muestra) - 1), 1/2)
  return sd
print('La media de la muestra es: ', round(media_muestral(muestra),2))
print('La varianza de la muestra es: ', round(varianza_muestral(muestra),2))
print('La desviación estandar de la muestra es: ', round(desviacion_muestral(muestra),2))

Varianza y desviación estándar muestral

  • Indica que tan dispersos están los datos respecto a la media.
  • La desviación estándar es la raíz cuadrada de la varianza.
  • Ejemplo: edades de la población de una ciudad.
import numpy as np

a = np.array([7, 10, 12, 13, 16, 9, 8, 12, 8, 6,16, 23, 11, 17, 20, 21, 25, 30, 31,33, 37, 39, 27, 36, 40, 43, 41, 45])

print(a.var(ddof=0), a.std(ddof=0))
print(a.var(ddof=1), a.std(ddof=1))

var_p: 155.0612244897959 | std_p: 12.452358189909088
var_s: 160.8042328042328 | std_s: 12.680860885769263

Reto cumplido!

Solución al reto:

import numpy as np        #importamos la libreria
import pandas as pd
poblacion=np.array([7, 10, 12, 13, 16, 9, 8, 12, 8, 6,      #creamos el arreglo con los datos indicados
  16, 23, 11, 17, 20, 21, 25, 30, 31,
  33, 37, 39, 27, 36, 40, 43, 41, 45])
print(poblacion)

poblacion1 = pd.Series(poblacion)
print(poblacion1)
[ 7 10 12 13 16  9  8 12  8  6 16 23 11 17 20 21 25 30 31 33 37 39 27 36
 40 43 41 45]
0      7
1     10
2     12
3     13
4     16
5      9
6      8
7     12
8      8
9      6
10    16
11    23
12    11
13    17
14    20
15    21
16    25
17    30
18    31
19    33
20    37
21    39
22    27
23    36
24    40
25    43
26    41
27    45
dtype: int64
varianza = poblacion.var()        #hallamos la varianza
desviacion = poblacion.std()      #hallamos la desvicón estandar
print(f"""
'La varianza de la poblaciión es ':           {varianza:.3f}
'La desviación estandar de la población es ': {desviacion:.3f}
""")
'La varianza de la poblaciión es ':           155.061
'La desviación estandar de la población es ': 12.452

Hacemos el reto con la Muestra
muestra = poblacion1.sample(frac=0.4)
muestra
0      7
2     12
19    33
21    39
26    41
16    25
12    11
9      6
23    36
25    43
8      8
dtype: int64
varianza_muestra = muestra.var()
desviacion_muestra = muestra.std()

print(f"""
'La varianza de la muestra es ':           {varianza_muestra:.3f}
'La desviación estandar de la muestra es ': {desviacion_muestra:.3f}
""")
'La varianza de la muestra es ':           108.473
'La desviación estandar de la muestra es ': 10.415

108.47272727272727
10.415024112921067
muestra.describe()
count    11.000000
mean     26.545455
std      10.415024
min      11.000000
25%      20.000000
50%      27.000000
75%      32.000000
max      43.000000
dtype: float64

Mi aporte usando una Serie de Pandas:

import pandas as pd
import numpy as np

# importing the data 
data = [7,10,12,13,16,9,8,12,8,6,16,23,11,17,20,21,25,30,31,33,37,39,27,36,40,43,41,45]
poblation = pd.Series(data)

# Solving A)
poblation_variance = poblation.var(ddof=0)
poblation_standard_deviation = poblation.std(ddof=0)
print(f'Poblation Variance = {poblation_variance} \nPoblation Standar Deviation = {poblation_standard_deviation}')
Poblation Variance = 155.06122448979593 
Poblation Standar Deviation = 12.452358189909088
# Extrac a sample of 10 elements
sample_10 = poblation.sample(10, random_state=5) #random state es para obtener la misma muestra que la que yo obtuve

# Solving b)
sample_variance = sample_10.var()
sample_std = sample_10.std()
print(f'Sample Variance = {sample_variance} \nSample Standar Deviation = {sample_std}')
Sample Variance = 146.9 
Sample Standar Deviation = 12.120231020900551