R を使用して、パレート分析とも呼ばれる ABC 分析を実行しようとしています。ABC 分析は、資材管理でよく使用される分類手法を定義するために使用されるビジネス用語です。
各クラスに固定のしきい値はありません。目的と基準に基づいて、異なる比率を適用できます。ABC 分析は、通常、「A」項目が全体の値の大部分を占めますが、項目数の割合が小さいという点で、パレートの原理に似ています。
R を使用して、パレート分析とも呼ばれる ABC 分析を実行しようとしています。ABC 分析は、資材管理でよく使用される分類手法を定義するために使用されるビジネス用語です。
各クラスに固定のしきい値はありません。目的と基準に基づいて、異なる比率を適用できます。ABC 分析は、通常、「A」項目が全体の値の大部分を占めますが、項目数の割合が小さいという点で、パレートの原理に似ています。
abc
真面目な話、このパッケージは、一般的な供給管理手法の偶然の命名だと思います。パッケージは既知の変数のabc
モデルを作成しますが、OP は単一の既知の変数 (収益) に基づいて分類変数を作成したいと考えています。パッケージでは、レコードは変数の値abc
に基づいて分類されます。問題の abc 手法に従って、レコードはaggregateの値に基づいて分類されます。たとえば、部品番号 4132457 はすべて「A」に分類されます。
これは平凡な計算です。スプレッドシートよりも R の方が優れているわけではありません。R の実装を主張する場合は、次のようなものをお勧めします。
library(plyr)
z <- data.frame(Part.Number =c(rep(letters[15:1], seq_along(letters[15:1]))),
Price = c(rep(1:15, seq_along(15:1))),
Qty.Sold = sample(1:120))
z[90:120, ]$Qty.Sold <- z[90:120, ]$Qty.Sold * 10 # creates fake data
z.summary <- ddply(z, .(Part.Number), summarise,
Revenue = sum(Price * Qty.Sold)) # summarise fake data
z.summary <- within(z.summary, {
Percent.Revenue <- cumsum(rev(sort(Revenue)))/sum(Revenue)
ABC <- ifelse(Percent.Revenue > 0.91, "C",
ifelse(Percent.Revenue < 0.81, "A", "B"))
})
z.summary
# Part.Number Revenue Percent.Revenue ABC
# 1 a 140850 0.4461246 A
# 2 b 113960 0.8070784 A
# 3 c 21788 0.8760892 B
# 4 d 8220 0.9021250 B
# 5 e 7238 0.9250504 C
# 6 f 6390 0.9452900 C
qcc パッケージ ( http://cran.r-project.org/web/packages/qcc/qcc.pdf ) には関数 pareto.chart があり、表とチャート出力の形式で ABC 分析を簡単に実行する手段を提供します。