Los resultados de normalización no son los mismos.
Estoy realizando la normalización en los datos aleatorios. Calculé la media y la desviación estándar de los datos y estoy normalizando mediante la fórmula Norm = (dato – media) / desviación_estándar, pero no obtengo el mismo resultado que la función de normalización de numpy y tampoco obtengo la curva en forma de campana.
import numpy as np
from scipy.stats import norm
a = np.arange(-4, 4)
media = sum(a/len(a))
desviación_estándar = (np.sqrt(sum((a-media)**2)/(len(a)-1)))
y1 = norm.pdf(a, media, desviación_estándar)
y2 = (a - media) / desviación_estándar
print(y1)
print(y2)
salida
y2 = [0.05868028 0.09674742 0.1350219 0.15950953 0.15950953 0.1350219
0.09674742 0.05868028]
y1 = [-1.42886902 -1.02062073 -0.61237244 -0.20412415 0.20412415 0.61237244
1.02062073 1.42886902]
¿Cuál es el problema?
davy.ai
Hay algunos problemas con el código:
mean = sum(a/len(a))
, debería sermean = np.mean(a)
.La desviación estándar debería calcularse utilizando
np.std(a, ddof=1)
en lugar de la fórmula actual utilizada.La función
norm.pdf()
calcula la función de densidad de probabilidad de una distribución normal, mientras quey2
está calculando los valores estandarizados dea
.Para corregir el código, aquí está la versión modificada:
Ahora el código debería producir los resultados correctos y la curva de forma de campana será visible en
y1
.