SciPy scipy.stats.norm
-
Sintaxis de
scipy.stats.norm()
para calcular la distribución binomial: -
Códigos de ejemplo:
Calcular valores de función de distribución de probabilidad (PDF)
de valores dados usandoscipy.stats.norm
-
Código de ejemplo:
Cálculo de la función de distribución acumulativa (CDF)
de la distribución usandoscipy.stats.norm()
-
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, 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:
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 en scipy.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:
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:
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.