SciPy scipy.stats.norm

  1. Sintaxis de scipy.stats.norm() para calcular la distribución binomial:
  2. Códigos de ejemplo: Calcular valores de función de distribución de probabilidad (PDF) de valores dados usando scipy.stats.norm
  3. Código de ejemplo: Cálculo de la función de distribución acumulativa (CDF) de la distribución usando scipy.stats.norm()
  4. Códigos de ejemplo: Cálculo de variables aleatorias (rvs) de distribución usando scipy.stats.norm()

El objeto Python Scipy scipy.stats.norm se utiliza para analizar la distribución normal y calcular sus diferentes valores de función de distribución utilizando los diferentes métodos disponibles.

Sintaxis de scipy.stats.norm() para calcular la distribución binomial:

En función de los diferentes métodos utilizados, a continuación se muestran algunos parámetros óptimos comunes:

scipy.stats.norm.method(x,
          `norm.loc,
          scale,
          size,
          moments)

Métodos disponibles en el objeto scipy.stats.norm()

norm.pdf() Devuelve una matriz de n dimensiones. Es la función de densidad de probabilidad calculada en x.
norm.cdf() Devuelve la probabilidad acumulada para cada valor de x.
norm.rvs() Devuelve variables aleatorias.
norm.stats() Devuelve la media, la varianza, la desviación estándar o la curtosis según la definición de mvsk.
norm.logpdf() Devuelve logaritmo de la función de distribución de probabilidad.
norm.median() Devuelve la mediana de la distribución normal.

Parámetros

x tipo matriz. Es el conjunto de valores que representan la muestra de tamaño uniforme.
loc Parámetro de ubicación. loc representa el valor medio. Su valor por defecto es 0.
scale Parámetro de escala. scale representa la desviación estándar. Su valor por defecto es 1.
moments Se utiliza para calcular estadísticas, es decir, media, varianza, desviación estándar y curtosis. Su valor predeterminado es mv.

Regreso

Devuelve valores según los métodos utilizados.

Códigos de ejemplo: Calcular valores de función de distribución de probabilidad (PDF) de valores dados usando scipy.stats.norm

Podemos usar el método scipy.stats.norm.pdf() para generar el valor de la función de distribución de probabilidad (PDF) de las observaciones dadas.

import numpy as np
import matplotlib.pyplot as plt
import scipy
from scipy import stats

x = np.linspace(-3,3,100)
pdf_result = stats.norm.pdf(x,loc=0,scale=1)

plt.plot(x,pdf_result)
plt.xlabel('x-data')
plt.ylabel('pdf_value')
plt.title("PDF of a Normal Distribution with mean=0 and sigma=1")
plt.show()

Producción:

PDF de una Distribución Normal con media=0 y sigma=1

Supongamos que x representa los valores de observación cuya PDF se va a determinar. Ahora calculamos la Función de Distribución de Probabilidad (PDF) de cada valor en la x, y trazamos la función de distribución usando Matplotlib.

Para calcular el valor de la función de densidad de probabilidad, debemos conocer la media y la desviación estándar de la distribución normal subyacente. Los valores de media y desviación estándar se pasan como parámetros loc y scale en el método pdf, respectivamente.

En el ejemplo anterior, calculamos los valores de pdf suponiendo que la distribución subyacente tiene un valor medio de 0 y un valor de desviación estándar de 1. Las observaciones cercanas a la media tienen una mayor probabilidad. Por otro lado, los valores que se alejan de la media tienen menos probabilidad, como se ve en la gráfica anterior.

Códigos de ejemplo: Establecer valores de desviación estándar y media enscipy.stats.norm`

import numpy as np
import matplotlib.pyplot as plt
import scipy
from scipy import stats

x = np.linspace(-10,10,100)
pdf_result = stats.norm.pdf(x,loc=3,scale=2)

plt.plot(x,pdf_result)
plt.xlabel('x-data')
plt.ylabel('pdf_value')
plt.title("PDF of a Normal Distribution with mean=3 and sigma=2")
plt.show()

Producción:

PDF de una Distribución Normal con media=3 y sigma=2

Es el gráfico PDF de una distribución normal con valor medio 3 y valor sigma 2. Por tanto, las observaciones cercanas a 3 tienen mayor probabilidad, mientras que las alejadas de 3 tienen menor probabilidad.

Código de ejemplo: Cálculo de la función de distribución acumulativa (CDF) de la distribución usando scipy.stats.norm()

import numpy as np
import matplotlib.pyplot as plt
import scipy
from scipy import stats

x = np.linspace(-3,3,100)
cdf_values = stats.norm.cdf(x,loc=0,scale=1)

plt.plot(x,cdf_values)
plt.xlabel('x-data')
plt.ylabel('pdf_value')
plt.title("CDF of a Normal Distribution with mean=0 and sigma=1")
plt.show()

Producción:

CDF de una Distribución Normal con media=3 y sigma=2

Es la integral de pdf. Podemos ver que el CDF de la distribución dada está aumentando. CDF nos muestra que cualquier valor tomado de la población tendrá un valor de probabilidad menor o igual a algún valor.

Código de ejemplo: Calcular el valor de la función de distribución acumulativa (CDF) en un punto usando scipy.stats.norm()

import numpy as np
import matplotlib.pyplot as plt
import scipy
from scipy import stats

x = 2
cdf_value = stats.norm.cdf(x,loc=0,scale=1)
print("CDF Value of x=2 in normal distribution with mean 0 and standard deviation 1 is :"+str(cdf_value))

Producción:

CDF Value of x=2 in normal distribution with mean 0 and standard deviation 1 is :0.9772498680518208.

Implica la probabilidad de ocurrencia de un valor menor o igual a 2 mientras que el muestreo de una distribución normal con media=0 y desviación estándar 1 es:0.977.

Códigos de ejemplo: Cálculo de variables aleatorias (rvs) de distribución usando scipy.stats.norm()

import numpy as np
import matplotlib.pyplot as plt
import scipy
from scipy.stats import norm

rvs_values = stats.norm.rvs(loc = 5, scale = 10, size = (5,2))
print("The random generated value are\n",rvs_values)

Producción:

The random generated value are
 [[ -8.38511257  16.81403567]
 [ 15.78217954  -8.92401338]
 [ 14.55202276  -0.6388562 ]
 [  2.19024898   3.75648045]
 [-10.95451165  -3.98232268]]

Aquí, los valores rvs son los variables generados aleatoriamente muestreados de la distribución normal con media 5 y desviación estándar 10. El tamaño especifica el tamaño de la matriz de salida.

Artículo relacionado - normal distribution in python