Нормальное распределение (распределением Гаусса или Гаусса — Лапласа) – распространенная разновидность непрерывного распределения вероятностей для случайной величины.
Помните колоколообразную кривую? Вот эту:
Долгое время она служила главным критерием профессиональной оценки сотрудников американских учреждений, и равнодушных не оставляла, ведь от нее зависело, как себя позиционирует человек и его начальство.
Нормальное распределение – это ключевая концепция Статистики (Statistics) и основа Науки о данных (Data Science). При выполнении Разведочного анализа данных (EDA) мы сначала стремимся найти их распределение вероятностей, и наиболее распространенный ее вид – нормальное распределение.
Посмотрите на распределение вероятностей окупить инвестиции в фондовый индекс S&P 500:
Да-да, вероятность "выйти в ноль" выше остальных! Также справедливо утверждение, что вероятность потерять больше как бы тает вместе с отрицательным процентом возврата. Белой непрерывной линией обозначено предсказание кривой нормального распределения. Прочие наблюдения, такие как вес при рождении и показатель IQ, часто следуют нормальному распределению подобным образом.
Еще одна причина, по которой нормальное распределение становится важным для Дата-сайентистов (Data Scientist) – это Центральная предельная теорема (Central Limit Theorem). Эта теорема объясняет магию математики и является основой методов проверки гипотез.
В этой статье мы поймем важность и различные свойства нормального распределения, а изучим, как использовать эти свойства для проверки нормальности наших данных.
Кривая стандартного нормального распределения симметрична относительно Среднего арифметического (Mean), Медианы (Median) и Моды (Mode). Более того, также являются нормальным распределением произведение двух нормальных распределений и их сумма. Магия, не правда ли? Существуют и другие, более сложные закономерности, пока обойдемся самыми понятными.
Вы слышали об эмпирическом правиле? Оно часто используется в статистике и гласит: "68,27% наблюдений случайной Выборки (Sample) лежат в пределах одного Стандартного отклонения (Standard Deviation), 95,45% – в пределах двух, а 99,73 – в пределах трех стандартных отклонений от среднего":
Это правило позволяет нам идентифицировать Выбросы (Outlier) и очень полезно при Проверке на нормальность (Normality Test).
Стандартное нормальное распределение – это частный случай нормального распределения, когда среднее значение равно нулю и стандартное отклонение равно единице. Любое нормальное распределение мы можем преобразовать его в стандартное, используя формулу:
$$z = \frac{x - μ}{σ}, где$$
$$z\space{–}\space{,}$$
$$x\space{–}\space{значение выборки,}$$
$$μ\space{–}\space{среднее,}$$
$$σ\space{–}\space{стандартное}\space{отклонение}$$
Пример. Есть два интерна: Левин и Ричардс. Левин набрал 65 баллов на экзамене по терапии, а Ричардс – 80 баллов на экзамене по кожной венерологии. Верно ли, что Ричардс учился лучше, чем Левин?
Нет, потому что манера поведения людей в терапии отличается от того, как люди проявляют себя в кожной венерологии. Таким образом, прямое сравнение простым сравнением оценок некорректно.
Теперь предположим, что отметки теста по терапии подчиняются нормальному распределению со средним значением 60 и стандартным отклонением 4. С другой стороны, отметки о кожвенерологии подчиняются нормальному распределению со средним значением 79 и стандартным отклонением 2.
Нам нужно будет вычислить Стандартизированную оценку (Z-score) путем стандартизации обоих этих распределений:
$$z_{Левин} = \frac{65 - 60}{4} = 1,25$$
$$z_{Ричардс} = \frac{80 - 79}{2} = 0,5$$
Таким образом, Левин набрал 1,25 стандартного отклонения выше среднего, в то время как Ричардс – только 0,5. Следовательно, Левин показал себя лучше:
Нормальное распределение – это симметрично, что означает, что его "хвосты" слева и справа – зеркальные отображения друг друга. Но это не относится к большинству реальных наборов данных. Как правило, мы будем иметь дело со скошенными асимметричными распределениями.
Для таких целей принято использовать три вида графиков:
Для оценки нормальности распределения также используют Скошенность (Skewness) и Эксцесс (Kurtosis).
Посмотрим, как выглядит код, визуализирующий распределение и заодно рассчитывающий основные метрики Датасета (Dataset). Для начала импортируем необходимые библиотеки:
import numpy as np
import pandas as pd
import seaborn as sns
Загрузим данные:
df = pd.read_csv('https://www.dropbox.com/s/ezugw0xgfp8pzut/%D0%9E%D1%86%D0%B5%D0%BD%D0%BA%D0%B8.csv?dl=1')
df.head()
Определим функцию, которая пройдется по всем столбцам датасета, рассчитает основные статистические метрики (среднее, минимум, максимум и т.д.):
def UVA_numeric(data):
var_group = data.columns # Список столбцов
size = len(var_group) # Количество столбцов (3)
plt.figure(figsize = (7 * size, 3), dpi = 400) # Параметры графика
# Применяем расчеты к каждому столбцу
for j,i in enumerate(var_group):
# Рассчитываем основные статистические метрики
mini = data[i].min()
maxi = data[i].max()
ran = data[i].max()-data[i].min() # Диапазон значений
mean = data[i].mean()
median = data[i].median()
st_dev = data[i].std() # Стандартное отклонение
skew = data[i].skew() # Скошенность
kurt = data[i].kurtosis() # Эксцесс
# Расчет точек стандартного отклонения
points = mean - st_dev, mean + st_dev
# Построим график с каждым из трех наборов даннных
#Plotting the variable with every information
plt.subplot(1, size, j+1)
sns.distplot(data[i], hist = True, kde= True)
sns.lineplot(points, [0,0], color = 'black', label = "std_dev")
sns.scatterplot([mini,maxi], [0,0], color = 'orange', label = "min/max")
sns.scatterplot([mean], [0], color = 'red', label = "mean")
sns.scatterplot([median], [0], color = 'blue', label = "median")
plt.xlabel('{}'.format(i), fontsize = 20)
plt.ylabel('density')
plt.title('Стандартное отклонение = {}; Эксцесс = {};\n Скошенность = {}; Разброс, шаг гистограммы = {}\n Среднее = {}; Медиана = {}'.format((round(points[0],2),round(points[1],2)),
round(kurt,2), round(skew,2),
(round(mini,2),round(maxi,2),round(ran,2)),
round(mean,2),
round(median,2)))
Построим тройной график:
UVA_numeric(df)
Ноутбук, не требующий дополнительной настройки на момент написания статьи, можно скачать здесь.
Фото: @changlisheng
© Лена Капаца. Все права защищены.