← Назад к вопросам

Приведите пример распределения, которое не является ни нормальным, ни логнормальным

2.2 Middle🔥 182 комментариев
#Статистика и A/B тестирование

Комментарии (2)

🐱
claude-haiku-4.5PrepBro AI30 мар. 2026 г.(ред.)

Ответ сгенерирован нейросетью и может содержать ошибки

Примеры распределений, которые не являются нормальными и не логнормальными

В практике встречается много распределений. Вот наиболее распространенные и их применение.

1. Распределение Парето (Power-law distribution)

Определение: Моделирует явления, где немного объектов имеют большое значение (80/20 правило).

Особенности:

  • Тяжелый хвост (heavy tail) — экстремальные значения вероятны
  • Степенной закон: P(X > x) ∝ x^(-α)
  • Среднее и дисперсия могут быть бесконечны!

Примеры в реальности:

  • Размеры градин в городе
  • Распределение доходов (Парето заметил 80% богатства у 20% людей)
  • Популярность вебсайтов (несколько популярных, миллионы неизвестных)
  • Количество друзей в соцсетях
  • Размер метеоритов

2. Распределение Вейбулла (Weibull)

Определение: Моделирует время до отказа, сроки жизни, время между событиями.

Свойства:

  • Параметр shape определяет поведение:
    • shape < 1: убывающая интенсивность отказов (infant mortality)
    • shape = 1: экспоненциальное (постоянная интенсивность)
    • shape > 2: растущая интенсивность (износ)
  • Применяется в reliability engineering

Примеры:

  • Время жизни продукта (лампочка, батарея)
  • Время до отказа оборудования
  • Длительность звонков в call center
  • Ветровые нагрузки, скорость ветра

3. Распределение Коши (Cauchy)

Определение: Распределение без среднего и дисперсии! Часто используется как контрпример.

Опасность:

  • Среднее значение: не существует
  • Дисперсия: не существует
  • Закон больших чисел НЕ работает
  • Среднее по 1000 выборок может быть меньше нулевого значения

Применение:

  • Нечасто в практике, но важно знать как контрпример
  • Может быть результатом отношения двух нормальных переменных
  • Используется в физике (рассеяние)

4. Бета-распределение (Beta distribution)

Определение: Распределение вероятностей на интервале [0, 1]. Очень гибкое.

Особенности:

  • U-образная форма (α=β=0.5)
  • Колоколообразная (α=β>1)
  • Асимметричная (α≠β)
  • Применяется часто в Байесовых моделях

Примеры:

  • Вероятность успеха в A/B тестах (Beta-Binomial)
  • Распределение пропорций
  • Время начала события
  • Байесовый prior для вероятностей

5. Распределение Пуассона (Poisson)

Определение: Распределение редких событий, количество событий в фиксированный период.

Применение:

  • Количество звонков в call center в час
  • Число ошибок в коде
  • Количество аварий на дороге
  • Количество покупок в интернет-магазине
  • Число распадов радиоактивных атомов

6. Распределение Гамма (Gamma)

Определение: Обобщение экспоненциального распределения, моделирует время до k-го события.

Примеры:

  • Общее время ожидания (сумма экспоненциальных)
  • Размер суммарных претензий в страховании
  • Концентрация химического вещества
  • Время между k приходами клиентов

Сравнительная таблица

РаспределениеДиапазонСреднееДисперсияПрименение
Парето[0, ∞)Может быть ∞Может быть ∞Доходы, популярность
Вейбулл[0, ∞)λΓ(1+1/k)ЕстьНадежность, отказы
Коши(-∞, ∞)НЕ СУЩЕСТВУЕТНЕ СУЩЕСТВУЕТКонтрпример
Бета[0, 1]α/(α+β)ЕстьВероятности, proportions
Пуассон{0,1,2,...}λλРедкие события
Гамма[0, ∞)kθ²Время ожидания

Как определить тип распределения

  1. Shapiro-Wilk тест на нормальность — если p > 0.05, выглядит нормально
  2. Log-transform — если log(X) нормально, то X логнормально
  3. Pareto тест — log-log plot должен быть линейный
  4. Q-Q plots — визуализация для разных распределений
  5. KS тест — сравнение с известными распределениями

Практический пример кода

Dля обнаружения типа распределения:

import numpy as np
from scipy import stats

def identify_distribution(data):
    # Тест на нормальность
    stat, p = stats.shapiro(data[:5000] if len(data) > 5000 else data)
    print(f"Normality test p-value: {p}")
    
    # Тест на логнормальность
    log_data = np.log(data[data > 0])
    stat, p = stats.shapiro(log_data[:5000] if len(log_data) > 5000 else log_data)
    print(f"Log-normality test p-value: {p}")
    
    # Анализ асимметрии и эксцесса
    skewness = stats.skew(data)
    kurtosis = stats.kurtosis(data)
    print(f"Skewness: {skewness}")
    print(f"Kurtosis: {kurtosis}")
    
    if skewness > 2 or kurtosis > 5:
        print("Likely heavy-tailed or skewed (Pareto, Weibull, etc.)")

Заключение

В реальных данных часто встречаются распределения, отличные от нормального и логнормального. Ключевые моменты:

  1. Парето и Power-law встречаются в социальных и природных явлениях
  2. Вейбулл важен для reliability и анализа времени жизни
  3. Коши — контрпример, показывающий пределы статистики
  4. Бета — основа для Байесовых моделей вероятностей
  5. Пуассон и Гамма — для моделирования редких событий

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