Описательная статистика и распределения
Среднее, медиана, дисперсия, std, асимметрия, эксцесс, нормальное, биномиальное и распределение Пуассона.
«Описательная статистика и распределения» — бесплатный урок Learn AI with Python на CoddyKit. Это урок 1 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Learn AI with Python, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Learn AI with Python содержит 4 уроков всего.
Обобщение данных
Описательная статистика сводит набор данных к нескольким числам, описывающим его центр, разброс и форму. Это первое, что следует вычислить для любого нового набора данных.
import numpy as np
data = np.array([4, 8, 6, 5, 3, 7, 9, 6])Mean и median
mean — это среднее арифметическое, а median — центральное значение. median устойчива к выбросам, поэтому большой разрыв между ними указывает на асимметрию.
print(np.mean(data)) # 6.0
print(np.median(data)) # 6.0Дисперсия и стандартное отклонение
Дисперсия — это среднее значение квадрата отклонения от mean; стандартное отклонение — её квадратный корень, выраженный в тех же единицах, что и данные.
print(np.var(data)) # population variance
print(np.std(data)) # standard deviationSAMPLE и генеральная совокупность (ddof)
NumPy по умолчанию делит на N (генеральная совокупность). Для оценки SAMPLE делите на N-1 с помощью ddof=1, что устраняет смещение.
print(np.std(data, ddof=0)) # population
print(np.std(data, ddof=1)) # sample (unbiased)Процентили и IQR
Процентили разделяют отсортированные данные. 25-й и 75-й процентили (квартили) ограничивают центральные 50 процентов данных; их разность — это IQR.
q1 = np.percentile(data, 25)
q3 = np.percentile(data, 75)
print(q1, q3, q3 - q1) # IQRАсимметрия
Асимметрия измеряет несимметричность распределения. При положительной асимметрии правый хвост длинный (например, у данных о доходах), а при отрицательной — левый. scipy.stats.skew вычисляет этот показатель.
from scipy import stats
print(stats.skew(data)) # near 0 -> symmetricЭксцесс
Эксцесс измеряет тяжесть хвостов. Высокий эксцесс означает наличие большего числа экстремальных выбросов по сравнению с нормальной кривой. scipy сообщает избыточный эксцесс (для нормального распределения = 0).
print(stats.kurtosis(data)) # 0 means normal-like tailsНормальное распределение
Колоколообразное нормальное распределение определяется mean и стандартным отклонением. Около 68 процентов значений находятся в пределах одного std, а 95 процентов — в пределах двух.
sample = stats.norm.rvs(loc=0, scale=1, size=1000, random_state=0)
print(np.mean(sample), np.std(sample)) # near 0 and 1Биномиальное распределение
Биномиальное распределение подсчитывает успехи в n независимых испытаниях с ответом «да» или «нет», где вероятность успеха равна p, например количество выпадений орла при подбрасывании монеты.
print(stats.binom.pmf(k=3, n=10, p=0.5)) # P(exactly 3 heads in 10)Распределение Пуассона
Распределение Пуассона моделирует количество редких событий в заданном интервале при средней интенсивности lambda, например число прибытий в минуту.
print(stats.poisson.pmf(k=2, mu=3)) # P(2 events when avg is 3)Гистограммы
histogram разбивает значения на интервалы, чтобы показать форму распределения. np.histogram возвращает количества и границы интервалов, а matplotlib отображает их.
counts, edges = np.histogram(sample, bins=10)
print(counts)
# import matplotlib.pyplot as plt; plt.hist(sample, bins=30)Быстрая проверка
Проверьте свои знания описательной статистики.
Итоги
Инструменты описательной статистики:
- Центр:
np.mean,np.median - Разброс:
np.var,np.std(для выборок используйтеddof=1), IQR через процентили - Форма:
scipy.stats.skew,scipy.stats.kurtosis - Распределения: нормальное, биномиальное и распределение Пуассона в
scipy.stats - Гистограммы для визуализации формы
Часто задаваемые вопросы
Урок «Описательная статистика и распределения» бесплатный?
Да — полный текст урока «Описательная статистика и распределения» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Learn AI with Python, подпишись на CoddyKit PRO. Курс Learn AI with Python содержит 4 уроков всего.
Чему я научусь в уроке «Описательная статистика и распределения»?
Среднее, медиана, дисперсия, std, асимметрия, эксцесс, нормальное, биномиальное и распределение Пуассона. Ты практикуешь Learn AI with Python с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать Learn AI with Python?
Предыдущий опыт не требуется. Learn AI with Python на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 1 из 4.
Сколько времени занимает урок «Описательная статистика и распределения»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке Learn AI with Python?
Да. Каждый урок Learn AI with Python включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Описательная статистика и распределения
- Вероятность и теорема Байеса
- Проверка гипотез
- Корреляция и ковариация