Инструменты

Дисперсия: путь к пониманию разброса данных

Дисперсия: What it is?

В мире статистики, понимание разброса данных является неотъемлемой частью анализа. Как исследователи и аналитики, мы всегда стремимся получить полное представление о том, насколько значения в наборе данных распределены и как варьируются относительно центральной точки. Однако, просто знание среднего значения не дает нам полной картины. Мы также нуждаемся в инструменте, который поможет нам измерить степень этого разброса и позволит сравнить различные наборы данных между собой. И здесь на сцену выходит понятие дисперсии.

Дисперсия (лат. dispersio, «рассеяние») – это числовая мера, которая позволяет нам оценить степень разброса значений в наборе данных относительно их среднего значения. Она показывает, насколько далеко каждое значение отклоняется от среднего и как эти отклонения распределены.

Дисперсия является важным инструментом в статистике и имеет широкий спектр применений. Она помогает нам проводить сравнения, делать выводы о поведении данных, выявлять выбросы и аномалии. Более того, дисперсия является основой для других статистических показателей, таких как стандартное отклонение и коэффициент вариации.

В данной статье мы глубже погрузимся в понятие дисперсии и рассмотрим его в контексте реальных примеров и задач. Мы также предоставим вам математические примеры и примеры кода на языке Python, которые помогут вам вычислить дисперсию для своих собственных данных и использовать ее в анализе и исследовании.

Дух дисперсии заключается в ее способности раскрывать скрытые закономерности и тенденции в данных. Путем анализа дисперсии можно выявить, какие значения имеют большой разброс и какие сконцентрированы близко к среднему. Это позволяет нам распознавать аномалии, выбросы и необычные паттерны в данных, которые могут оказать значительное влияние на результаты анализа.

Также важно понимать, что значение дисперсии всегда следует рассматривать в контексте конкретных данных и цели анализа. В некоторых случаях большой разброс может быть не желательным, указывая на нестабильность или неопределенность данных. В других случаях большая дисперсия может указывать на значимые различия и вариативность, которые требуют дополнительного изучения.

Прежде чем мы погрузимся в примеры и код на Python, давайте рассмотрим математическую формулу для вычисления дисперсии.$$\sigma^2 ={{\sum (\mu – x_i)^2\over n}}$$ В этой формуле: $$\begin{align*}\sigma^2 & \text{ – обозначает дисперсию.} \\  x_i & \text{ – значение } i\text{-го наблюдения из набора данных.} \\  \mu & \text{ – среднее значение набора данных.} \\ n & \text{ – общее количество наблюдений в наборе данных.}  \end{align*} $$Формула показывает, что дисперсия вычисляется путем нахождения разности между каждым наблюдением и средним значением, возведения в квадрат, усреднения по всем наблюдениям и деления на n.

Дисперсия обычно обозначается как σ² (с квадратом), поскольку числитель в формуле состоит из квадратов разностей. Обозначение σ выбрано ввиду его ассоциации со звуком “с”, который является первой буквой слова “стандартный”. Стандартное отклонение, которое представляет собой квадратный корень из дисперсии, обычно обозначается как σ.

Возведение в квадрат вместо взятия модуля предпочтительно по двум причинам. Во-первых, возведение в квадрат является алгебраической операцией, в то время как модуль является функцией с особыми определениями. Во-вторых, возведение в квадрат открывает дополнительные возможности при анализе дисперсии двух переменных одновременно. 

Вместо того, чтобы возводить в квадрат разницы между значениями и средним для одной переменной, можно перемножить такие разницы для двух переменных и получить ковариацию, которая характеризует линейную зависимость между ними.$$\text{cov}(X, Y) = \frac{\sum_{i=1}^{n} (X_i – \bar{X})(Y_i – \bar{Y})}{n}$$Если мы нормализуем выражение для ковариации, то есть избавимся от конкретных единиц измерения, мы можем получить коэффициент корреляции Пирсона. Для этого вместо деления на n мы делим на корень из произведения квадратов разностей для переменных X и Y. Коэффициент корреляции Пирсона позволяет оценить степень линейной связи между двумя переменными, независимо от их единиц измерения. Но это тема уже для отдельной статьи.

Есть ещё одна формула для дисперсии:$$s^2 ={{\sum (\mu – x_i)^2\over n-1}}$$В чём же между ними разница? 

Давайте разберемся в разнице на примере с ценами на кофе. Предположим, вы исследуете цены на все доступные виды кофе в определенном кафе в течение года. Если у вас есть датасет, содержащий цены на каждую чашку кофе, то этот набор данных является генеральной совокупностью или совокупностью. И здесь мы можем вычислить дисперсию генеральной совокупности с использованием уже известной нам формулы.
$$\sigma^2 ={{\sum (\mu – x_i)^2\over n}}$$Однако, иногда получение данных о ценах на каждую чашку кофе за каждый день в году может быть трудоемким или дорогостоящим процессом. В таких случаях можно взять случайную выборку из этих данных, например, цены на кофе в определенные дни месяца. Этот набор данных, состоящий из выбранных наблюдений, называется выборкой. Для оценки дисперсии нашей генеральной совокупности (всех цен на кофе) по выборке, мы можем использовать почти такую же формулу, с единственным отличием в знаменателе:
$$s^2 ={{\sum (\mu – x_i)^2\over n-1}}$$Таким образом, выборка помогает оценить характеристики генеральной совокупности, когда доступ к полной совокупности данных затруднен или нецелесообразен.

Расчет дисперсии

Теперь, когда у нас есть общее представление о дисперсии, рассмотрим пример интернет-магазина Candy Shop, чтобы увидеть, как она работает на практике. 

Так для проведения расчетов дисперсии генеральной совокупности интернет-магазина нам понадобится информация о ценах на шоколадные изделия и количестве проданных единиц за определенный период времени.

Предположим, у нас есть следующие данные о ценах на шоколадные изделия и количестве продаж:

Цена (в рублях)Количество проданных единиц
10010
15015
20020
25025
30030

Для расчета дисперсии генеральной совокупности, мы должны выполнить следующие шаги:

Шаг 1: Найдите среднее значение (среднюю цену): Среднее значение (X̄) можно найти, подсчитав сумму всех цен и поделив ее на общее количество значений:

$$\bar{X} ={ {(100 + 150 + 200 + 250 + 300)} \over 5} = 200$$

Шаг 2: Найдите разницу между каждым значением и средним значением: Разницу между каждым значением и средним значением можно найти вычитанием среднего значения из каждого значения:

Цена (в рублях)Разница (X – X̄)
100-100
150-50
2000
25050
300100

Шаг 3: Возведите каждую разницу в квадрат: Возведение каждой разницы в квадрат позволяет учесть как положительные, так и отрицательные различия, а также усиливает отклонение от среднего значения:

Цена (в рублях)Разница (X – X̄)Разница в квадрате ((X – X̄)²)
100-10010000
150-502500
20000
250502500
30010010000

Шаг 4: Найдите сумму квадратов разницы: Сложите все значения в столбце “Разница в квадрате ((X – X̄)²)” для получения суммы квадратов разницы:

$$Сумма \ квадратов \ разницы = 10000 + 2500 + 0 + 2500 + 10000 = 25000$$

Шаг 5: Разделите сумму квадратов разницы на общее количество значений: Деление суммы квадратов разницы на общее количество значений дает нам дисперсию генеральной совокупности:

$$Дисперсия = {25000 \over 5} = 5000$$

Таким образом, дисперсия генеральной совокупности интернет-магазина Candy Shop равна 5000 (в квадратных рублях).

Дисперсия для выборки рассчитываться будет аналогичным образом, кроме 5-го шага:

$$Дисперсия = {25000 \over (5-1)} =6250$$

Таким образом, дисперсия выборки интернет-магазина шоколада равна 6250 (в квадратных рублях).

Python3

Python
data = [100, 150, 200, 250, 300]  # данные о ценах
n = len(data)  # количество значений

mean = sum(data) / n  # среднее значение
variance = sum((x - mean) ** 2 for x in data) / n  # дисперсия

print("Дисперсия генеральной совокупности:", variance)
Python
sample = [100, 150, 200, 250, 300]  # данные о ценах
n = len(sample)  # количество значений

mean = sum(sample) / n  # среднее значение
variance = sum((x - mean) ** 2 for x in sample) / (n - 1)  # дисперсия выборки

print("Дисперсия выборки:", variance)

Библиотека Numpy

Python
import numpy as np

data = [100, 150, 200, 250, 300]
variance = np.var(data, ddof=0)

print("Дисперсия выборки (Numpy):", variance)
РЕЗУЛЬТАТ
Дисперсия выборки (Numpy): 5000.0

Библиотека Pandas

Python
import pandas as pd

# Пример выборки
data = pd.Series([100, 150, 200, 250, 300])

# Расчет дисперсии выборки
variance = data.var(ddof=1)

print("Дисперсия выборки (Pandas):", variance)
РЕЗУЛЬТАТ
Дисперсия выборки (Pandas): 6250.0

Обратите внимание, что во всех примерах параметр ddof установлен на значение 1, что означает использование коррекции Бесселя для расчета выборочной дисперсии. Если вы работаете с генеральной совокупностью и хотите рассчитать ее дисперсию, вы можете использовать ddof=0 или опустить этот параметр (значение по умолчанию равно 0).

Библиотека Statistics

Python
import statistics

# Пример выборки
data = [100, 150, 200, 250, 300]

# Расчет дисперсии выборки
variance = statistics.variance(data)

print("Дисперсия выборки (statistics):", variance)
РЕЗУЛЬТАТ
Дисперсия выборки (statistics): 6250.0

Заключение

Дисперсия – это ключевой индикатор вариабельности данных и их разброса. Она позволяет нам оценивать, насколько данные различаются от среднего значения и выявлять скрытые закономерности. Правильное понимание и интерпретация дисперсии позволяет делать информированные выводы и принимать обоснованные решения на основе анализа статистических данных. Будучи важной составляющей статистической аналитики, дисперсия помогает нам раскрыть тайны, которые скрыты в данных, и увидеть гораздо больше, чем просто цифры и значения.

Пред.
Подготовка к собеседованию по Python: ответы на основные вопросы

Подготовка к собеседованию по Python: ответы на основные вопросы

Содержание Show Ключевые характеристики PythonPython интерпретируемый или

След.
RFM-Анализ в действии: как повысить лояльность и увеличить выручку

RFM-Анализ в действии: как повысить лояльность и увеличить выручку

Содержание Show Введение в RFM-анализЗачем нужен RFM-анализ?

Вам также может понравиться