Industri coffee chain tumbuh semakin kompetitif, seiring dengan meningkatnya kesadaran konsumen akan kualitas dan keberagaman kopi. Pertumbuhan ini didorong oleh tren konsumsi kopi yang semakin tinggi, di mana konsumen tidak hanya mencari minuman berkualitas, tetapi juga pengalaman unik saat menikmati kopi.
Dalam lingkungan bisnis yang padat, memahami pasar dan produk secara tersegmentasi menjadi kunci untuk memenangkan persaingan. strategi pemasaran dan penjualan yang efektif menjadi kunci untuk meningkatkan profitabilitas dan mempertahankan pangsa pasar di tengah persaingan yang semakin sengit. Jadi, tujuan dari artikel ini adalah ingin mengetahui pengaruh hubungan Profit terhadap Sales, Marketing, dan Cost of Goods Sold.
Data yang digunakan adalah data Coffee Chain Datasets
Data <- read_excel("Coffee Chain Datasets.xlsx")
Dataset <- datatable(
Data,
caption = "Datasets Coffee Chain",
options = list(
scrollX = TRUE,
pageLength = 10,
lengthMenu = c(5, 10, 15, 20)
)
)
Dataset
Statistika Deskriptif menampilkan nilai minimum (Min), Kuartil atas (\(Q_1\)), Median (\(Q_2\)), Kuratil bawah (\(Q_3\)), rata-rata (Mean), dan nilai maksimum (Max) pada setiap variabel yang digunakan. Terdapat 1 variabel dependen dan 3 variabel independen yang digunakan dalam analisis ini, antara lain:
Analyze <- Data[, c("Profit", "Sales", "COGS", "Marketing")]
summary(Analyze)
## Profit Sales COGS Marketing
## Min. :-638.0 Min. : 17 Min. : 0.00 Min. : 0.00
## 1st Qu.: 17.0 1st Qu.:100 1st Qu.: 43.00 1st Qu.: 13.00
## Median : 40.0 Median :138 Median : 60.00 Median : 22.00
## Mean : 61.1 Mean :193 Mean : 84.43 Mean : 31.19
## 3rd Qu.: 92.0 3rd Qu.:230 3rd Qu.:100.00 3rd Qu.: 39.00
## Max. : 778.0 Max. :912 Max. :364.00 Max. :156.00
Berdasarkan hasil statistika deskriptif diatas, dapat diketahui bahwa :
Uji asumsi klasik adalah serangkaian pengujian yang dilakukan dalam analisis regresi untuk memastikan bahwa model regresi memenuhi asumsi-asumsi dasar yang diperlukan agar estimasi parameter regresi menjadi tidak bias, efisien, dan konsisten.
Berikut adalah model dari regesi linear berganda sebagai penunjang dalam uji asumsi:
model <- lm(Profit ~ Sales + COGS + Marketing, data = Data)
summary(model)
##
## Call:
## lm(formula = Profit ~ Sales + COGS + Marketing, data = Data)
##
## Residuals:
## Min 1Q Median 3Q Max
## -123.137 -11.828 -0.518 9.241 101.270
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -22.801081 0.521941 -43.69 <2e-16 ***
## Sales 1.193813 0.004503 265.12 <2e-16 ***
## COGS -1.195341 0.012388 -96.49 <2e-16 ***
## Marketing -1.461141 0.020260 -72.12 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 20.48 on 4244 degrees of freedom
## Multiple R-squared: 0.9595, Adjusted R-squared: 0.9595
## F-statistic: 3.351e+04 on 3 and 4244 DF, p-value: < 2.2e-16
Hipotesis
\(H_0\) : Data berdistribusi normal
\(H_1\) : Data tidak berdistribusi
normal
Taraf Signifikansi
\(\alpha = 5\% \ (0.05)\)
Daerah Kritis
Tolak \(H_0\) jika:
\(P\text{-Value} < \alpha\) atau \(P\text{-Value} < 0.05\)
Statistik Uji
ks.test(model$residuals, "pnorm")
##
## Asymptotic one-sample Kolmogorov-Smirnov test
##
## data: model$residuals
## D = 0.43986, p-value < 2.2e-16
## alternative hypothesis: two-sided
bptest(model)
##
## studentized Breusch-Pagan test
##
## data: model
## BP = 947.05, df = 3, p-value < 2.2e-16
Hipotesis
\(H_0\) : Tidak ada autokorelasi antarresidu
\(H_1\) : Terdapat autokorelasi
antarresidu
Taraf Signifikansi
\(\alpha = 5\% \ (0.05)\)
Daerah Kritis
Tolak \(H_0\) jika:
\(P\text{-Value} < \alpha\) atau \(P\text{-Value} < 0.05\)
Statistik Uji
dwtest(model)
##
## Durbin-Watson test
##
## data: model
## DW = 1.7035, p-value < 2.2e-16
## alternative hypothesis: true autocorrelation is greater than 0
Hipotesis
\(H_0\) : Tidak terjadi multikolinearitas
\(H_1\) : Terjadi
multikolinearitas
Taraf Signifikansi
\(\alpha = 5\% \ (0.05)\)
Daerah Kritis
Tolak \(H_0\) jika: nilai VIF > 10
Statistik Uji
vif(model)
## Sales COGS Marketing
## 4.691130 7.029865 3.036006
Estimasi M (M-Estimation) merupakan metode regresi robust yang dikembangkan untuk mengatasi kelemahan regresi kuadrat terkecil biasa (Ordinary Least Squares). Estimasi-M bertujuan untuk mendapatkan model regresi yang tidak terpengaruh oleh outlier atau data yang tidak sesuai dengan asumsi model regresi klasik.
Berdasarkan hasil uji asumsi klasik didapatkan bahwa residual tidak normal, terdapat heteroskedastisitas, dan terdapat autokorelasi. alam konteks analisis hubungan Profit dengan COGS, Sales, dan Marketing, terdapat :
Oleh karena itu, estimasi M dipilih karena mampu memberikan hasil yang stabil untuk menangani masalah-masalah tersebut.
Estimasi M yang akan digunakan menggunakan pendekatan Huber Weighting untuk meminimalkan pengaruh outlier. Dengan menggunakan fungsi pembobotan Huber, metode ini memberikan bobot yang lebih kecil pada residual yang besar, sehingga outlier tidak secara signifikan mempengaruhi hasil estimasi parameter.
Pemberian Nilai Awal
Hitung residual awal
dari model OLS: \[r_i = y_i -
X_i\beta_{OLS}\]
Pembobotan Huber
Berikan bobot untuk tiap
observasi: \[
w_i =
\begin{cases}
1 & \text{untuk } |r_i| \leq k \\
k/|r_i| & \text{untuk } |r_i| > k
\end{cases}
\] dengan default \(k =
1.345\)
Iterasi Reweighted Least Squares
Update koefisien hingga konvergen: \[\beta_{new} = (X^TWX)^{-1}X^TWy \] dimana
\(W\) adalah matriks diagonal berisi
\(w_i\)
Berikut adalah perhitungan model dengan Estimasi M dengan pendekatan Huber Weighting :
#Membuat model robust regression dengan Huber weighting
model_M <- rlm(Profit ~ Sales + COGS + Marketing, data = Data,
psi = psi.huber, #Fungsi Huber untuk downweighting outlier
k = 1.5, #Tuning parameter
maxit = 15) #Maksimum iterasi
#Ringkasan model
summary(model_M)
##
## Call: rlm(formula = Profit ~ Sales + COGS + Marketing, data = Data,
## psi = psi.huber, k = 1.5, maxit = 15)
## Residuals:
## Min 1Q Median 3Q Max
## -135.7878 -11.4206 -0.1177 9.8282 119.2965
##
## Coefficients:
## Value Std. Error t value
## (Intercept) -22.7783 0.4110 -55.4165
## Sales 1.2231 0.0035 344.9148
## COGS -1.2670 0.0098 -129.8762
## Marketing -1.4659 0.0160 -91.8784
##
## Residual standard error: 16.06 on 4244 degrees of freedom
#Ekstrak koefisien final
final.coef_M <- coef(model_M)
names(final.coef_M) <- names(coef(model_M))
print(final.coef_M)
## (Intercept) Sales COGS Marketing
## -22.778329 1.223116 -1.267036 -1.465899
cat("\nKonvergensi tercapai?", ifelse(model_M$converged, "YA", "TIDAK"), "\n")
##
## Konvergensi tercapai? YA
Berdasarkan hasil regresi robust, berikut beberapa interpretasi yang diperoleh dan dapat diterapkan untuk strategi bisnis:
profit_per_produk <- Data %>%
group_by(Product) %>%
summarise(RataProfit = mean(Profit))
#Plot
plot_bar <- ggplot(profit_per_produk, aes(x = reorder(Product, -RataProfit), y = RataProfit)) +
geom_col(fill = "#355E3B") +
labs(title = "Produk dengan Rata-rata Profit Tertinggi", x = "Produk", y = "Rata-rata Profit") +
theme_minimal() +
theme(
plot.title = element_text(hjust = 0.5, face = "bold"),
axis.text.x = element_text(angle = 45, hjust = 1),
axis.title.x = element_text(face = "bold"),
axis.title.y = element_text(face = "bold"),
plot.margin = margin(t = 10, r = 8, b = 10, l = 8),
legend.title = element_blank(),
)
#Plot interaktif
fig <- ggplotly(plot_bar) %>% config(displayModeBar = FALSE)
fig
Interpretasi :
Regular Espresso
menempati posisi tertinggi sebagai produk dengan rata-rata profit
tertinggi. Sebaliknya, Green Tea adalah produk dengan dengan
rata-rata profit terendah. Dari data ini, dapat disimpulkan bahwa
minuman berbasis kopi seperti espresso memiliki margin
keuntungan yang lebih tinggi dibandingkan dengan minuman lainnya.
# Agregasi bulanan
monthly_data <- Data %>%
mutate(Month = floor_date(Date, "month")) %>%
group_by(Month) %>%
summarise(Sales = sum(Sales, na.rm = TRUE),
COGS = sum(COGS, na.rm = TRUE),
Marketing = sum(Marketing, na.rm = TRUE),
Profit = sum(Profit, na.rm = TRUE))
# Buat plot ggplot
p <- ggplot(monthly_data, aes(x = Month)) +
geom_line(aes(y = Sales, color = "Sales"), size = 1.2) +
geom_line(aes(y = COGS, color = "COGS"), size = 1.2) +
geom_line(aes(y = Marketing, color = "Marketing"), size = 1.2) +
geom_line(aes(y = Profit, color = "Profit"), size = 1.2) +
labs(title = "Tren Bulanan: Sales, COGS, Marketing, dan Profit",
x = "Bulan", y = "Jumlah (Rp)", color = "Kategori", xanchor = 'center', font = list(size = 16), x = 0.5) +
scale_color_manual(values = c("Sales" = "#C1A76D",
"COGS" = "#B1C29E",
"Marketing" = "#659287",
"Profit" = "#355E3B")) +
theme_minimal() +
theme(
plot.title = element_text(hjust = 0.5, face = "bold"),
axis.title.x = element_text(face = "bold"),
axis.title.y = element_text(face = "bold"),
plot.margin = margin(t = 10, r = 8, b = 10, l = 8),
legend.title = element_blank()
)
fig <- ggplotly(p) %>% config(displayModeBar = FALSE)
fig
Interpretasi :
Berdasarkan data yang tersedia,
tren bulanan Sales, COGS, Marketing, dan Profit diamati dalam periode
setengah tahunan dari Januari 2012 hingga Januari 2014. Tren ini bisa
menunjukkan bahwa meskipun penjualan meningkat, biaya produksi juga
cukup konstan sehingga profit tetap bertumbuh meski tidak terlalu
signifikan. Pengeluaran pemasaran yang tetap rendah bisa berarti
strategi marketing yang efisien atau kurangnya investasi pada
pemasaran.
monthly_long <- melt(monthly_data, id.vars = "Month")
pm <- ggplot(monthly_long, aes(x = Month, y = value, fill = variable)) +
geom_bar(stat = "identity", position = "dodge") +
labs(title = "Perbandingan Bulanan Sales, COGS, dan Marketing",
x = "Bulan", y = "Jumlah (Rp)", fill = "Kategori", xanchor = 'center', x = 0.5) +
scale_fill_manual(values = c("Sales" = "#C1A76D",
"COGS" = "#B1C29E",
"Marketing" = "#659287",
"Profit" = "#355E3B")) +
theme_minimal() +
theme(
plot.title = element_text(hjust = 0.5, face = "bold"),
axis.title.x = element_text(face = "bold"),
axis.title.y = element_text(face = "bold"),
plot.margin = margin(t = 10, r = 8, b = 10, l = 8),
legend.title = element_blank()
)
fig <- ggplotly(pm) %>% config(displayModeBar = FALSE)
fig
Interpretasi :
Berdasarkan grafik tersebut,
secara umum, perbandingan ini menunjukkan bahwa Sales merupakan komponen
dengan nilai tertinggi, diikuti oleh COGS, dan kemudian Marketing. Dapat
diambil kesimpulan bahwa perusahaan mengalami pertumbuhan penjualan yang
positif, tetapi mungkin perlu mempertimbangkan strategi pemasaran atau
pengurangan biaya produksi untuk meningkatkan margin keuntungan.
monthly_stacked <- melt(monthly_data, id.vars = "Month", measure.vars = c("COGS", "Marketing", "Profit"))
join <- ggplot(monthly_stacked, aes(x = Month, y = value, fill = variable)) +
geom_bar(stat = "identity") +
labs(title = "Kontribusi Biaya dan Profit terhadap Total",
x = "Bulan", y = "Jumlah (Rp)", fill = "Komponen") +
scale_fill_manual(values = c("Sales" = "#C1A76D",
"COGS" = "#B1C29E",
"Marketing" = "#659287",
"Profit" = "#355E3B")) +
theme_minimal() +
theme(
plot.title = element_text(hjust = 0.5, face = "bold"),
axis.title.x = element_text(face = "bold"),
axis.title.y = element_text(face = "bold"),
plot.margin = margin(t = 10, r = 8, b = 10, l = 8),
legend.title = element_blank()
)
fig <- ggplotly(join) %>% config(displayModeBar = FALSE)
fig
Interpretasi :
Berdasarkan data yang
ditampilkan, grafik ini menggambarkan kontribusi biaya (COGS dan
Marketing) serta Profit terhadap total nilai keuangan perusahaan dalam
periode setengah tahunan dari Januari 2012 hingga Januari 2014. dapat
ditarik kesimpulan bahwa terdapat ruang untuk meningkatkan efisiensi
biaya atau strategi pemasaran guna meningkatkan margin keuntungan.
Dengan memahami pola ini, perusahaan dapat mengevaluasi kembali
pengelolaan biaya dan strategi bisnis untuk memaksimalkan keuntungan di
masa depan.
market <- ggplot(monthly_data, aes(x = Marketing, y = Profit)) +
geom_point(color = "#C1A76D", size = 3) +
geom_smooth(method = "lm", se = FALSE, color = "#355E3B") +
labs(
title = "Hubungan antara Marketing dan Profit",
x = "Marketing (Rp)", y = "Profit (Rp)"
) +
theme_minimal() +
theme(
plot.title = element_text(hjust = 0.5, face = "bold"),
axis.title.x = element_text(face = "bold"),
axis.title.y = element_text(face = "bold"),
plot.margin = margin(t = 10, r = 8, b = 10, l = 8),
legend.title = element_blank()
)
fig <- ggplotly(market) %>% config(displayModeBar = FALSE)
fig
Interpretasi :
Berdasarkan grafik yang diatas,
Marketing tetap pada angka yang relatif kecil dan stabil, yang bisa
berarti strategi pemasaran yang terkendali atau investasi yang minimal
di sektor ini. Profit (Keuntungan) mengalami pertumbuhan, tetapi masih
dalam porsi yang lebih kecil dibandingkan total biaya, mengindikasikan
bahwa ada ruang untuk meningkatkan efisiensi dalam pengelolaan biaya
produksi atau memperkuat strategi pemasaran guna meningkatkan margin
keuntungan.
Berdasarkan hasil analisis diatas, kesimpulan dari pengaruh profit terhadap sales, marketing, dan COGS adalah sebagai berikut.
Secara umum, profit sangat dipengaruhi oleh rasio antara Sales dan COGS, serta besarnya anggaran Marketing pada periode tertentu.
Berikut beberapa rekomendasi yang dapat dipertimbangkan untuk meningkatkan Profit:
Rdocumentation.org. (2022). Rlm Function - RDocumentation. Diakses dari https://www.rdocumentation.org/packages/MASS/versions/7.3-58.1/topics/rlm
Cahyaningtyas, R, D. “RPubs - R Markdown Themes Guide: Unleash Your Creativity with Captivating Document Styles.” Rpubs.com, 28 May 2023, diakses dari https://rpubs.com/ranydc/rmarkdown_themes