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 ms sql Python sql tessa VBA xyz Комбинаторика Математика Теория вероятностей анализ виртуальный помощник данные знания информационная система информация искусственный интеллект компетенции корпоративная информационная система маркетинг мудрость о проекте оптимизация ошибка практика программное обеспечение пэст ролевая модель теория тесса юмор языки программирования

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

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




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


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