Perusahaan yang bergerak di industri rantai kopi menghadapi tantangan dalam mengoptimalkan profitabilitas produknya di tengah persaingan pasar yang semakin ketat. Adanya produk yang beragam, seperti kopi, teh, espresso, dan teh herbal, penting untuk memahami profitabilitas masing-masing kategori produk. Dalam konteks ini, analisis statistik menjadi hal yang esensial untuk mengungkap pola dan perbedaan signifikan dalam profitabilitas antar kategori produk, sekaligus memberikan dasar data untuk pengambilan keputusan strategis.
Dalam case method ini, Peneliti menggunakan pendekatan statistik non-parametrik dipilih karena kemudahannya untuk menganalisis data tanpa memerlukan asumsi distribusi normal atau homogenitas varians, yang sering kali tidak terpenuhi dalam data profitabilitas bisnis akibat adanya variasi pasar dan fluktuasi penjualan. Metode non-parametrik, dengan fleksibilitasnya dalam menangani data heterogen, memungkinkan analisis yang lebih akurat, termasuk untuk mengevaluasi profitabilitas tiap segmen pasar. Analisis ini bertujuan untuk mengidentifikasi perbedaan signifikan dalam profitabilitas antar kategori produk serta memahami kinerja pasar, sehingga perusahaan dapat merumuskan strategi yang lebih terarah untuk meningkatkan keuntungannya di masa depan.
#preview data
kable(head(data_coffee), caption = "head data", align = "c") %>%
kable_styling(bootstrap_options = c("striped", "hover", "condensed"), full_width = FALSE)| Area Code | Date | Market | Market Size | Product | Product Line | Product Type | State | Type | Budget COGS | Budget Margin | Budget Profit | Budget Sales | COGS | Inventory | Margin | Marketing | Profit | Sales | Total Expenses |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 719 | 2012-01-01 | Central | Major Market | Amaretto | Beans | Coffee | Colorado | Regular | 90 | 130 | 100 | 220 | 89 | 777 | 130 | 24 | 94 | 219 | 36 |
| 970 | 2012-01-01 | Central | Major Market | Colombian | Beans | Coffee | Colorado | Regular | 80 | 110 | 80 | 190 | 83 | 623 | 107 | 27 | 68 | 190 | 39 |
| 970 | 2012-01-01 | Central | Major Market | Decaf Irish Cream | Beans | Coffee | Colorado | Decaf | 100 | 140 | 110 | 240 | 95 | 821 | 139 | 26 | 101 | 234 | 38 |
| 303 | 2012-01-01 | Central | Major Market | Green Tea | Leaves | Tea | Colorado | Regular | 30 | 50 | 30 | 80 | 44 | 623 | 56 | 14 | 30 | 100 | 26 |
| 303 | 2012-01-01 | Central | Major Market | Caffe Mocha | Beans | Espresso | Colorado | Regular | 60 | 90 | 70 | 150 | 54 | 456 | 80 | 15 | 54 | 134 | 26 |
| 720 | 2012-01-01 | Central | Major Market | Decaf Espresso | Beans | Espresso | Colorado | Decaf | 80 | 130 | 80 | 210 | 72 | 558 | 108 | 23 | 53 | 180 | 55 |
# Membuat summary tabel
data_coffee %>%
select(where(is.numeric)) %>% # Pilih kolom numerik
pivot_longer(everything(), names_to = "Variabel", values_to = "Nilai") %>%
group_by(Variabel) %>%
summarise(
Min = min(Nilai, na.rm = TRUE),
Q1 = quantile(Nilai, 0.25, na.rm = TRUE),
Median = median(Nilai, na.rm = TRUE),
Mean = mean(Nilai, na.rm = TRUE),
Q3 = quantile(Nilai, 0.75, na.rm = TRUE),
Max = max(Nilai, na.rm = TRUE),
SD = sd(Nilai, na.rm = TRUE),
Missing = sum(is.na(Nilai))
) %>%
kable(
caption = "Tabel Ringkasan Statistik Numerik",
digits = 2,
align = c("l", rep("c", 7)),
format.args = list(big.mark = ",")
) %>%
kable_styling(bootstrap_options = "striped", full_width = FALSE)| Variabel | Min | Q1 | Median | Mean | Q3 | Max | SD | Missing |
|---|---|---|---|---|---|---|---|---|
| Area Code | 203 | 417 | 573 | 582.28 | 772 | 985 | 221.14 | 2 |
| Budget COGS | 0 | 30 | 50 | 74.83 | 90 | 450 | 66.24 | 2 |
| Budget Margin | -210 | 50 | 70 | 100.82 | 130 | 690 | 92.60 | 2 |
| Budget Profit | -320 | 20 | 40 | 60.91 | 80 | 560 | 79.55 | 2 |
| Budget Sales | 0 | 80 | 130 | 175.65 | 210 | 1,140 | 148.89 | 2 |
| COGS | 0 | 43 | 60 | 84.43 | 100 | 364 | 67.23 | 0 |
| Inventory | -3,534 | 432 | 619 | 749.38 | 910 | 8,252 | 660.88 | 0 |
| Margin | -302 | 53 | 76 | 104.29 | 132 | 613 | 94.32 | 0 |
| Marketing | 0 | 13 | 22 | 31.19 | 39 | 156 | 27.02 | 0 |
| Profit | -638 | 17 | 40 | 61.10 | 92 | 778 | 101.68 | 0 |
| Sales | 17 | 100 | 138 | 192.99 | 230 | 912 | 151.10 | 0 |
| Total Expenses | 10 | 33 | 46 | 54.06 | 65 | 190 | 32.35 | 2 |
Tujuan : Mengetahui apakah proporsi produk yang menghasilkan Profit di atas median keseluruhan lebih banyak dari 50% atau tidak
Rumus : \[ \boxed{ \begin{align*} P(X = k) = \binom{n}{k} p^k (1 - p)^{n - k} \end{align*} } \]
Dimana :
Hipotesis :
\[ H_0:\ p \geq 0.5\text{ (proporsi produk yang menghasilkan Profit tidak di atas median keseluruhan lebih banyak dari 50%)} \] \[ H_1:p < 0.5\text{ (proporsi produk yang menghasilkan Profit di atas median keseluruhan lebih banyak dari 50%)} \]
Sintaks :
median_profit <- median(data_coffee$Profit)
data_coffee$above_median <- ifelse(data_coffee$Profit > median_profit, 1, 0)
successes <- sum(data_coffee$above_median) # jumlah success
n <- nrow(data_coffee) # total sampel
binom.test(successes, n, p = 0.5, alternative = "greater")##
## Exact binomial test
##
## data: successes and n
## number of successes = 2122, number of trials = 4250, p-value = 0.5428
## alternative hypothesis: true probability of success is greater than 0.5
## 95 percent confidence interval:
## 0.4865642 1.0000000
## sample estimates:
## probability of success
## 0.4992941
Kesimpulan : karena p-value = 0.5428 > 0.05, maka \(H0\) tidak ditolak yang artinya produk yang menghasilkan Profit di atas median keseluruhan lebih banyak dari 50% dengan kata lain performa profit produk (baik)
Tujuan : membandingkan profitabilitas antar kategori produk Rumus : \[ \boxed{H = \frac{12}{N(N+1)} \sum_{i=1}^k \frac{R_i^2}{n_i} - 3(N+1)} \]
Dimana :
- \(H\): Statistik uji
Kruskal-Wallis.
- \(N\): Total jumlah pengamatan.
- \(k\): Jumlah kelompok.
- \(R_i\): Jumlah peringkat dalam
kelompok ke-\(i\).
- \(n_i\): Jumlah pengamatan dalam
kelompok ke-\(i\).
Hipotesis : \[ \begin{aligned} H_0\!:&\ \mu_1 = \mu_2 = \mu_3 = \mu_4 \quad \text{(Tidak ada perbedaan signifikan profitabilitas antar kategori produk (Coffee, Tea, Espresso, Herbal Tea))} \\ H_1\!:&\ \text{Setidaknya ada satu pasang kategori produk dengan perbedaan signifikan profitabilitas.} \end{aligned} \]
Sintkas :
# Uji Kruskal-Wallis
kruskal_product_type <- kruskal.test(Profit ~ `Product Type`, data = data_coffee)
print(kruskal_product_type)##
## Kruskal-Wallis rank sum test
##
## data: Profit by Product Type
## Kruskal-Wallis chi-squared = 2.4137, df = 3, p-value = 0.4911
Kesimpulan : - karena p-value = 0.4911 > 0.05, maka \(H_0\) tidak ditolak yang artinya Tidak ada perbedaan signifikan antara profitabilitas dengan kategori produk (Coffee, Tea, Espresso, Herbal Tea
Tujuan : Mengetahui apakah terdapat perbedaan profit yang didapatkan antara major dan small market
Rumus \[ \boxed{ \begin{aligned} U_1 &= n_1 n_2 + \frac{n_1(n_1 + 1)}{2} - R_1 \\ U_2 &= n_1 n_2 - U_1 \\ U &= \min(U_1, U_2) \end{aligned} } \]
Hipotesis :
\[ \begin{aligned} H_0\!:&\ \text{ Profit antara major dan small market adalah identik (tidak berbeda)} \\ H_1\!:&\ \text{Distribusi antara major dan small market berbeda} \end{aligned} \]
Sintaks :
#Filter data untuk memastikan hanya Major Market dan Small Market
# Pastikan tidak ada NA di kolom Market dan Profit
data_market_produk <- data_coffee[!is.na(data_coffee$`Market Size`) & !is.na(data_coffee$Profit), ]
major_profit <- data_market_produk$Profit[data_market_produk$`Market Size` == "Major Market"]
small_profit <- data_market_produk$Profit[data_market_produk$`Market Size` == "Small Market"]
max_len <- max(length(major_profit), length(small_profit))
# Pad dengan NA agar bisa jadi kolom sejajar
major_col <- c(major_profit, rep(NA, max_len - length(major_profit)))
small_col <- c(small_profit, rep(NA, max_len - length(small_profit)))
#membuat data frame
profit_markets <- data.frame(
Major_Market = major_col,
Small_Market = small_col
)
View(profit_markets)
#mengecek missing values
colSums(is.na(profit_markets))## Major_Market Small_Market
## 840 0
#mengisi missing values
profit_markets$Major_Market[is.na(profit_markets$Major_Market)] <- median(profit_markets$Major_Market,
na.rm = TRUE)
#uji Mann-Whitney
mann_whitney_test <- wilcox.test(profit_markets$`Major_Market`,
profit_markets$`Small_Market`,
alternative = "two.sided",mu=0,
paired = FALSE, conf.level=0.95)
#hasil
print(mann_whitney_test)##
## Wilcoxon rank sum test with continuity correction
##
## data: profit_markets$Major_Market and profit_markets$Small_Market
## W = 4748327, p-value < 2.2e-16
## alternative hypothesis: true location shift is not equal to 0
Kesimpulan :Karena p-value < 2.2e-16 < 0.05 maka \(H_0\) ditolak, yang artinya Distribusi antara major dan small market berbeda
Tujuan : Mengetahui apakah terdapat hubungan baik linear maupun non-linear) antara profit dengan COGS, Inventory, Marketing, Margin
Rumus : \[
\boxed{
\rho = 1 - \frac{6 \sum d_i^2}{n(n^2 - 1)}}
\]
Dimana \(d_i\) adalah
selisih peringkat
\[ \begin{aligned} H_0\!:&\ \text{Tidak ada korelasi antara biaya produksi (COGS) dan profitabilitas (\( \rho = 0 \))} \\ H_1\!:&\ \text{Terdapat korelasi antara biaya produksi (COGS) dan profitabilitas (\( \rho \neq 0 \))} \end{aligned} \]
Sintaks :
##
## Spearman's rank correlation rho
##
## data: data_coffee$Profit and data_coffee$COGS
## S = 4997606931, p-value < 2.2e-16
## alternative hypothesis: true rho is not equal to 0
## sample estimates:
## rho
## 0.6093871
Kesimpulan : karena p-value < 2.2e-16 < 0.05, maka \(H_0\) ditolak yang artinya Terdapat korelasi antara biaya produksi (COGS) dan profitabilitas
Hipotesis:
\[ \begin{aligned} H_0\!:&\ \text{ Tidak ada korelasi antara Inventory (Jumlah Stock) dan profitabilitas Coffee (\( \rho = 0 \))} \\ H_1\!:&\ \text{Terdapat korelasi antara Inventory(Jumlah Stock)dan profitabilitas Coffee (\( \rho \neq 0 \))} \end{aligned} \]
Sintaks :
##
## Spearman's rank correlation rho
##
## data: data_coffee$Profit and data_coffee$Inventory
## S = 7731663280, p-value < 2.2e-16
## alternative hypothesis: true rho is not equal to 0
## sample estimates:
## rho
## 0.3956933
Kesimpulan : karena p-value < 2.2e-16 < 0.05, maka \(H_0\) ditolak yang artinya Terdapat korelasi antara biaya produksi inventory dan profitabilitas
\[ \begin{aligned} H_0\!:&\ \text{ Tidak ada korelasi antara marketing dan profitabilitas Coffee (\( \rho = 0 \))} \\ H_1\!:&\ \text{Terdapat korelasi antara marketing dan profitabilitas Coffee (\( \rho \neq 0 \))} \end{aligned} \]
Sintaks :
##
## Spearman's rank correlation rho
##
## data: data_coffee$Profit and data_coffee$Marketing
## S = 8238229180, p-value < 2.2e-16
## alternative hypothesis: true rho is not equal to 0
## sample estimates:
## rho
## 0.3561001
Kesimpulan : karena p-value < 2.2e-16 < 0.05, maka \(H_0\) ditolak yang artinya Terdapat korelasi antara biaya produksi dan profitabilitas
\[ \begin{aligned} H_0\!:&\ \text{ Tidak ada korelasi antara Sales dan profitabilitas Coffee (\( \rho = 0 \))} \\ H_1\!:&\ \text{Terdapat korelasi antara Sales dan profitabilitas Coffee (\( \rho \neq 0 \))} \end{aligned} \]
Sintaks :
##
## Spearman's rank correlation rho
##
## data: data_coffee$Profit and data_coffee$Sales
## S = 2911079174, p-value < 2.2e-16
## alternative hypothesis: true rho is not equal to 0
## sample estimates:
## rho
## 0.7724701
Kesimpulan : karena p-value < 2.2e-16 < 0.05, maka \(H_0\) ditolak yang artinya Terdapat korelasi antara Penjualan dan profitabilitas
\[ \begin{aligned} H_0\!:&\ \text{ Tidak ada korelasi antara Total Expenses dan profitabilitas Coffee (\( \rho = 0 \))} \\ H_1\!:&\ \text{Terdapat korelasi antara Total Expenses dan profitabilitas Coffee (\( \rho \neq 0 \))} \end{aligned} \]
Sintaks :
##
## Spearman's rank correlation rho
##
## data: data_coffee$Profit and data_coffee$`Total Expenses`
## S = 1.0678e+10, p-value < 2.2e-16
## alternative hypothesis: true rho is not equal to 0
## sample estimates:
## rho
## 0.1641984
Kesimpulan : karena p-value < 2.2e-16 < 0.05, maka \(H_0\) ditolak yang artinya Terdapat korelasi antara Total Expenses dan profitabilitas
\[ \begin{aligned} H_0\!:&\ \text{ Tidak ada korelasi antara Margin dan profitabilitas Coffee (\( \rho = 0 \))} \\ H_1\!:&\ \text{Terdapat korelasi antara Margin dan profitabilitas Coffee (\( \rho \neq 0 \))} \end{aligned} \]
Sintaks :
##
## Spearman's rank correlation rho
##
## data: data_coffee$Profit and data_coffee$Margin
## S = 2165476651, p-value < 2.2e-16
## alternative hypothesis: true rho is not equal to 0
## sample estimates:
## rho
## 0.8307464
Kesimpulan : karena p-value < 2.2e-16 < 0.05, maka \(H_0\) ditolak yang artinya Terdapat korelasi antara Inventory dan profitabilitas
**Interpretasi :**
###Histogram Profit
Histogram berikut menggambarkan distribusi keseluruhan profitabilitas:
```r
# Total profit per State
profit_by_state <- data_coffee %>%
group_by(State) %>%
summarise(Total_Profit = sum(Profit, na.rm = TRUE)) %>%
arrange(desc(Total_Profit)) %>%
slice(1:5) # Memilih 5 state teratas
# Bar plot dengan gradasi warna dan format teks
ggplot(profit_by_state, aes(x = reorder(State, -Total_Profit),
y = Total_Profit,
fill = Total_Profit)) + # Menambahkan aesthetic fill untuk gradasi
geom_bar(stat = "identity") +
scale_fill_gradient(low = "#B3CDE3", high = "#005B96") + # Gradasi biru
labs(title = "Top 5 State Berdasarkan Total Profit",
x = "State",
y = "Total Profit") +
theme_minimal() +
theme(
plot.title = element_text(size = 14, face = "bold", hjust = 0.5, family = "sans",
margin = margin(b = 20)),
axis.title.x = element_text(size = 12, face = "bold", family = "sans"),
axis.title.y = element_text(size = 12, face = "bold", family = "sans"),
axis.text.x = element_text(size = 10, angle = 45, hjust = 1, face = "bold"),
axis.text.y = element_text(size = 10, face = "bold"),
legend.position = "none" # Menghilangkan legenda warna
)
Interpretasi :Dari Histogram diatas dapat ditarik
kesimpulan bahwa Daerah yang mendapatkan profit tertinggi adalah
california, disusul dengan Illinois, Lowa new York dan Colorado
# Korelasi Spearman antara profit dengan variabel penting lainnya
corr_profit <- data.frame(
Variable = c("Sales", "COGS", "Marketing", "Total_Expenses", "Margin", "Inventory"),
Correlation = c(
cor(data_coffee$Profit, data_coffee$Sales, method = "spearman"),
cor(data_coffee$Profit, data_coffee$COGS, method = "spearman"),
cor(data_coffee$Profit, data_coffee$Marketing, method = "spearman"),
cor(data_coffee$Profit, data_coffee$`Total Expenses`, method = "spearman"),
cor(data_coffee$Profit, data_coffee$Margin, method = "spearman"),
cor(data_coffee$Profit, data_coffee$Inventory, method = "spearman")
)
)
corr_profit <- corr_profit %>% arrange(desc(abs(Correlation)))
kable(corr_profit, caption = "Korelasi Spearman dengan Profit") %>%
kable_styling(bootstrap_options = c("striped", "hover", "condensed"))| Variable | Correlation |
|---|---|
| Margin | 0.8307464 |
| Sales | 0.7724701 |
| COGS | 0.6093871 |
| Inventory | 0.3956933 |
| Marketing | 0.3561001 |
| Total_Expenses | NA |
# Visualisasi korelasi
ggplot(corr_profit, aes(x = reorder(Variable, abs(Correlation)), y = Correlation)) +
geom_bar(data = subset(corr_profit, Correlation > 0), stat = "identity", aes(fill = Correlation)) +
geom_bar(data = subset(corr_profit, Correlation <= 0), stat = "identity", fill = "grey") +
coord_flip() +
labs(title = "Korelasi Spearman dengan Profit", x = "", y = "Koefisien Korelasi") +
theme_minimal() +
scale_fill_gradient(low = "lightblue", high = "darkblue")Interpretasi : Korelasi Spearman menemukan hubungan kuat antara profit dengan Margin, Sales, COGS, Inventory, dan Marketing (positif)
# Scatterplot hubungan antara COGS dan Profit dengan ukuran berdasarkan Marketing
ggplot(data_coffee, aes(x = COGS, y = Profit)) +
geom_point(aes(size = Marketing, color = `Product Type`), alpha = 0.05) +
labs(title = "Hubungan COGS dengan Profit",
x = "COGS", y = "Profit") +
theme_minimal() +
scale_size_continuous(name = "Marketing")Interpretasi :Produk dengan margin dan profit tinggi (misalnya, Coffee dan Espresso pada rentang margin tinggi) mungkin mendapat manfaat dari strategi marketing yang efektif.
Berdasarkan analisis yang dilakukan:
Produk Berkinerja Baik:
Lebih dari setengah produk memiliki keuntungan di atas rata-rata.
Artinya, sebagian besar produk memberikan hasil yang bagus.
Keuntungan Serupa Antar-Jenis Produk:
Keuntungan dari Kopi, Teh, Espresso, dan Herbal Tea tidak jauh
berbeda. Tidak ada satu kategori pun yang jelas lebih unggul
dari lainnya.
Perbedaan Pasar Besar vs. Kecil:
Pembagian keuntungan antara pasar besar (seperti kota utama) dan pasar
kecil (seperti daerah) jauh berbeda. Pasar besar
mungkin mendominasi, atau sebaliknya.
Hubungan Biaya dan Keuntungan:
Semakin tinggi biaya produksi (COGS), persediaan barang, atau biaya
promosi, keuntungan juga cenderung naik. Tapi, ini bukan
berarti biaya tersebut langsung menyebabkan keuntungan
naik—bisa dipengaruhi faktor lain.
Daerah Paling Menguntungkan:
California adalah daerah yang memberikan kontribusi keuntungan
terbesar dibandingkan daerah lainnya.
Hubungan COGS dan profit berdasarkan marketing : marketing yang efektif berkontribusi pada margin dan profit yang lebih tinggi dengan mendukung strategi penetapan harga atau meningkatkan volume penjualan, yang dapat mengimbangi COGS. Produk dengan margin rendah mungkin memerlukan marketing lebih intensif untuk memperbaiki profitabilitas.
Rekomendasi Berdasarkan Kesimpulan:
Fokus pada Produk Berkinerja Tinggi:
Pertahankan produk dengan keuntungan di atas rata-rata dan analisis
faktor keberhasilannya (misalnya: harga, kualitas, atau
promosi).
Optimalkan Semua Kategori Produk:
Meskipun keuntungan antar kategori (Kopi, Teh, Espresso, Herbal Tea)
tidak berbeda signifikan, lakukan diferensiasi strategi.
Eksplorasi Pasar Besar dan Kecil:
Pelajari mengapa distribusi keuntungan antara pasar besar dan kecil
berbeda.
Evaluasi Penggunaan Biaya (COGS, Inventory,
Marketing):
Pantau risiko kelebihan persediaan atau overspending pada
marketing.
Pertahankan Dominasi California:
Tingkatkan loyalitas pelanggan di California melalui program loyalitas
atau penawaran eksklusif.
Pelajari faktor keberhasilan California
Peran Marketing: Untuk memahami hubungan ini secara menyeluruh, data tambahan tentang pengeluaran marketing dan korelasi langsungnya dengan profit serta COGS diperlukan.