При работе с анализом и визуализацией данных решающее значение имеет определение оптимального количества интервалов для гистограммы или других типов операций объединения. Количество интервалов напрямую влияет на интерпретацию данных и может существенно повлиять на выводы, полученные на их основе. В этой статье мы рассмотрим различные методы поиска оптимального количества интервалов и предоставим примеры кода, иллюстрирующие каждый подход.
-
Правило Скотта.
Правило Скотта — это широко используемый метод оценки оптимального количества ячеек. Он основан на предположении, что данные подчиняются нормальному распределению. Формула правила Скотта:bin_width = 3,5 стандартное_отклонение(n (-1/3))
где n — количество точек данных.
Пример кода:
import numpy as np def scotts_rule(data): n = len(data) std_dev = np.std(data) bin_width = 3.5 * std_dev * (n (-1/3)) num_bins = int((max(data) - min(data)) / bin_width) return num_bins data = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] num_bins = scotts_rule(data) print("Number of bins using Scott's Rule:", num_bins) -
Правило Фридмана-Диакониса.
Правило Фридмана-Диакониса — еще один популярный метод оценки оптимального количества интервалов. Он учитывает изменчивость данных, учитывая межквартильный размах (IQR). Формула:bin_width = 2 IQR(n (-1/3))
Пример кода:
import numpy as np from scipy.stats import iqr def freedman_diaconis_rule(data): n = len(data) iqr_val = iqr(data) bin_width = 2 * iqr_val * (n (-1/3)) num_bins = int((max(data) - min(data)) / bin_width) return num_bins data = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] num_bins = freedman_diaconis_rule(data) print("Number of bins using Freedman-Diaconis Rule:", num_bins) -
Правило Райса.
Правило Райса – это простой метод оценки оптимального количества интервалов на основе размера данных n. Формула:num_bins = 2 * (n (1/3))
Пример кода:
def rice_rule(data): n = len(data) num_bins = int(2 * (n (1/3))) return num_bins data = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] num_bins = rice_rule(data) print("Number of bins using Rice's Rule:", num_bins) -
Правило квадратного корня.
Правило квадратного корня — это упрощенный подход к оценке оптимального количества интервалов на основе квадратного корня из размера данных n. Формула:num_bins = int(np.sqrt(n))
Пример кода:
def square_root_rule(data): n = len(data) num_bins = int(np.sqrt(n)) return num_bins data = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] num_bins = square_root_rule(data) print("Number of bins using Square Root Rule:", num_bins)
Определение оптимального количества интервалов важно для эффективного анализа и визуализации данных. В этой статье мы исследовали четыре часто используемых метода для оценки оптимального количества интервалов: правило Скотта, правило Фридмана-Диакониса, правило Райса и правило квадратного корня. В зависимости от распределения и характеристик данных одно правило может работать лучше, чем другие. Экспериментирование и знание предметной области имеют решающее значение для выбора наиболее подходящего метода анализа.