Microsegment.ru
  • Главная страница
  • О проекте
  • Портфолио
  • Блог
Анализ

ABC-анализ

ABC-анализ
Анализ

Часто при анализе данных возникает потребность в выделении наиболее важных элементов из большого объёма данных. В этом может помочь ABC анализ. Основная идея этого вида анализа заключается в разделении данных на категории по величине содержащихся в них значений. Наибольшие значения относятся к категории A. Наименьшие значения относятся к категории C. Промежуточные значения к категории B.

Решение для ABC-анализа

Шаг 1

Сначала нужно определить долю каждого значения в сумме всех значений. Для этого нужно найти сумму всех значений и разделить на нее каждое значение.

Пример в Excel:

ABCDE
1Переменная Значение
2Всего
3A111
4B222
5C333
6D444
7E555
8F666
9G777

Решение в Excel

//Ячейка B2
=СУММ(B:B)

//Ячейки C3... C9
=B3/B$2

Результат:

ABCDE
1Переменная ЗначениеДоля
2Всего3081
3A1110,0357
4B2220,0714
5C3330,1071
6D4440,1429
7E5550,1786
8F6660,2143
9G7770,25

Решение в PostgreSQL

SELECT *,
       CAST(value AS FLOAT) / SUM(value) OVER () AS fraction
FROM abc;

Результат:

variable valuefraction
0A1110.0357
1B2220.0714
2C3330.1071
3D4440.1429
4E5550.1786
5F6660.2143
6G7770.25

Шаг 2

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

Решение в Excel

//D3... D9
=C3+D2

Результат:

ABCDE
1Переменная ЗначениеДоляНараст.
итогом
2Всего308 ▼
3G7770,250,25
4F6660,21430,4643
5E5550,17860,6429
6D4440,14290,7858
7C3330,10710,8929
8B2220,07140,9643
9A1110,03571

Решение в PostgreSQL

WITH abc_step_1 AS (SELECT *,
                           CAST(value AS FLOAT) / SUM(value) OVER () AS fraction
                    FROM abc)

SELECT *,
       COALESCE(SUM(fraction) OVER (ORDER BY fraction
                ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW),
                0) AS cumulative
FROM abc_step_1
ORDER BY value DESC;

Результат:

variable valuefractioncumulative
0G7770.250.25
1F6660.21430.4643
2E5550.17860.6429
3D4440.14290.7858
4C3330.10710.8929
5B2220.07140.9643
6A1110.03571

Шаг 3

На следующем шаге нужно присвоить каждому значению категорию. К категории A следует отнести значения с долей с нарастающим итогом до 0,5 или 50%. К категории B отнести значения с долей нарастающим итогом до 0,75 или 75%. Оставшиеся значения следует отнести к категории C.

Решение в Excel

//E3... E9
=ЕСЛИ(D3<0,5;"A";ЕСЛИ(D3<0,75;"B";"C"))

Результат:

ABCDE
1Переменная ЗначениеДоляНараст.
итогом
ABC
2Всего308 ▼
3G7770,250,25A
4F6660,21430,4643A
5E5550,17860,6429B
6D4440,14290,7858C
7C3330,10710,8929C
8B2220,07140,9643C
9A1110,03571C

Пример ABC-анализа в файле Excel.

Решение в PostgreSQL

WITH abc_step_1 AS (SELECT *,
                           CAST(value AS FLOAT) / SUM(value) OVER () AS fraction
                    FROM abc),

abc_step_2 AS (SELECT *,
                      COALESCE(SUM(fraction) OVER (ORDER BY fraction
                               ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW),
                               0) AS cumulative
               FROM abc_step_1
               ORDER BY value DESC)

SELECT *,
       CASE
           WHEN cumulative < .5 THEN 'A'
           WHEN cumulative < .75 THEN 'B'
           ELSE 'C'
       END AS abc
FROM abc_step_2;

Результат:

variable valuefractioncumulativeabc
0G7770.250.25A
1F6660.21430.4643A
2E5550.17860.6429B
3D4440.14290.7858C
4C3330.10710.8929C
5B2220.07140.9643C
6A1110.03571C

abc анализ практика

Следующая статья ABCD-анализ

Рубрики

Метки

abc abcd excel Python sql VBA xyz Комбинаторика Математика Теория вероятностей анализ виртуальный помощник данные знания информационная система информация корпоративная информационная система маркетинг мудрость о проекте оптимизация практика программное обеспечение пэст ролевая модель теория юмор языки программирования

Политика конфиденциальности

Продолжая использовать данный сайт вы подтверждаете свое согласие с условиями его политики конфиденциальности. Подробнее…




Администрация и владельцы данного информационного ресурса не несут ответственности за возможные последствия, связанные с использованием информации, размещенной на нем.


Все права защищены. При копировании материалов сайта обязательно указывать ссылку на © Microsegment.ru (2020-2025)