🔑 Как построить нормальное распределение в Python? 📊
Для построения нормального распределения в Python вы можете использовать библиотеку NumPy и Matplotlib.
Вот пример кода:
import numpy as np
import matplotlib.pyplot as plt
# Задайте параметры распределения
mu = 0 # среднее значение
sigma = 1 # стандартное отклонение
# Сгенерируйте случайные числа из нормального распределения
samples = np.random.normal(mu, sigma, 1000)
# Постройте гистограмму распределения
plt.hist(samples, bins=30, density=True, alpha=0.5)
# Постройте график плотности распределения
x = np.linspace(-5, 5, 100)
y = 1 / (sigma * np.sqrt(2 * np.pi)) * np.exp(-0.5 * ((x - mu) / sigma) ** 2)
plt.plot(x, y, color='red')
plt.xlabel('Значение')
plt.ylabel('Плотность')
plt.title('Нормальное распределение')
plt.show()
Детальный ответ
Как построить нормальное распределение в Python?
Нормальное распределение, также известное как распределение Гаусса, является одним из наиболее широко используемых и изучаемых распределений в статистике. Оно обладает следующими характеристиками:
- Симметричность вокруг среднего значения
- Значение среднего и медианы равно
- Форма распределения в форме колокола
- Стандартное отклонение определяет ширину колокола
В Python существует несколько способов построения нормального распределения. Ниже рассмотрим два основных подхода: использование модуля numpy
и модуля scipy
.
Использование модуля numpy
Модуль numpy
предоставляет набор функций для работы с массивами и выполнения математических операций. Для построения нормального распределения воспользуемся функцией numpy.random.normal
. Пример кода:
import numpy as np
import matplotlib.pyplot as plt
# Генерируем 1000 случайных чисел с нормальным распределением
mean = 0 # среднее значение
std = 1 # стандартное отклонение
size = 1000 # размер выборки
data = np.random.normal(mean, std, size)
# Строим гистограмму для визуализации распределения
plt.hist(data, bins=30, density=True, color='skyblue')
# Добавляем линию с нормальным распределением
x = np.linspace(-4, 4, 1000)
pdf = (1 / (std * np.sqrt(2 * np.pi))) * np.exp(-0.5 * ((x - mean) / std) ** 2)
plt.plot(x, pdf, color='red')
# Настраиваем оси и добавляем заголовок
plt.xlabel('Значение')
plt.ylabel('Плотность вероятности')
plt.title('Нормальное распределение')
# Отображаем график
plt.show()
В приведенном выше примере мы сначала генерируем 1000 случайных чисел с нормальным распределением, используя функцию numpy.random.normal
. Затем строим гистограмму с помощью функции plt.hist
и добавляем линию с настоящим нормальным распределением, используя уравнение плотности вероятности.
Использование модуля scipy
Модуль scipy
содержит различные функции для выполнения научных и инженерных вычислений. Для построения нормального распределения воспользуемся функцией scipy.stats.norm
. Пример кода:
import numpy as np
import matplotlib.pyplot as plt
from scipy.stats import norm
# Генерируем 1000 случайных чисел с нормальным распределением
mean = 0 # среднее значение
std = 1 # стандартное отклонение
size = 1000 # размер выборки
data = norm.rvs(loc=mean, scale=std, size=size)
# Строим гистограмму для визуализации распределения
plt.hist(data, bins=30, density=True, color='skyblue')
# Добавляем линию с нормальным распределением
x = np.linspace(-4, 4, 1000)
pdf = norm.pdf(x, loc=mean, scale=std)
plt.plot(x, pdf, color='red')
# Настраиваем оси и добавляем заголовок
plt.xlabel('Значение')
plt.ylabel('Плотность вероятности')
plt.title('Нормальное распределение')
# Отображаем график
plt.show()
В данном примере мы также генерируем 1000 случайных чисел с нормальным распределением, используя функцию norm.rvs
из модуля scipy.stats
. Затем строим гистограмму и добавляем линию с использованием функции norm.pdf
, которая вычисляет плотность вероятности для заданных значений.
В обоих примерах мы создаем график нормального распределения, который визуализирует форму и статистические характеристики распределения.
Теперь у вас есть инструменты для построения нормального распределения в Python. Используйте их для анализа данных и выполнения статистических расчетов в своих проектах.