library(tidyverse)
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr 1.2.0 ✔ readr 2.2.0
## ✔ forcats 1.0.1 ✔ stringr 1.6.0
## ✔ ggplot2 4.0.2 ✔ tibble 3.3.1
## ✔ lubridate 1.9.5 ✔ tidyr 1.3.2
## ✔ purrr 1.2.1
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag() masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
library(corrplot)
## corrplot 0.95 loaded
library(car)
## Warning: package 'car' was built under R version 4.5.3
## Loading required package: carData
## Warning: package 'carData' was built under R version 4.5.3
##
## Attaching package: 'car'
##
## The following object is masked from 'package:dplyr':
##
## recode
##
## The following object is masked from 'package:purrr':
##
## some
library(ggplot2)
library(FSA)
## Warning: package 'FSA' was built under R version 4.5.3
## Registered S3 methods overwritten by 'FSA':
## method from
## confint.boot car
## hist.boot car
## ## FSA v0.10.1. See citation('FSA') if used in publication.
## ## Run fishR() for related website and fishR('IFAR') for related book.
##
## Attaching package: 'FSA'
##
## The following object is masked from 'package:car':
##
## bootCase
library(DescTools)
## Warning: package 'DescTools' was built under R version 4.5.3
##
## Attaching package: 'DescTools'
##
## The following object is masked from 'package:car':
##
## Recode
library(readxl)
data <- read_xlsx("D:/SIM/Coffee Chain Datasets.xlsx")
str(data)
## tibble [4,248 × 20] (S3: tbl_df/tbl/data.frame)
## $ Area Code : num [1:4248] 719 970 970 303 303 720 970 719 970 719 ...
## $ Date : POSIXct[1:4248], format: "2012-01-01" "2012-01-01" ...
## $ Market : chr [1:4248] "Central" "Central" "Central" "Central" ...
## $ Market Size : chr [1:4248] "Major Market" "Major Market" "Major Market" "Major Market" ...
## $ Product : chr [1:4248] "Amaretto" "Colombian" "Decaf Irish Cream" "Green Tea" ...
## $ Product Line : chr [1:4248] "Beans" "Beans" "Beans" "Leaves" ...
## $ Product Type : chr [1:4248] "Coffee" "Coffee" "Coffee" "Tea" ...
## $ State : chr [1:4248] "Colorado" "Colorado" "Colorado" "Colorado" ...
## $ Type : chr [1:4248] "Regular" "Regular" "Decaf" "Regular" ...
## $ Budget COGS : num [1:4248] 90 80 100 30 60 80 140 50 50 40 ...
## $ Budget Margin : num [1:4248] 130 110 140 50 90 130 160 80 70 70 ...
## $ Budget Profit : num [1:4248] 100 80 110 30 70 80 110 20 40 20 ...
## $ Budget Sales : num [1:4248] 220 190 240 80 150 210 300 130 120 110 ...
## $ COGS : num [1:4248] 89 83 95 44 54 72 170 63 60 58 ...
## $ Inventory : num [1:4248] 777 623 821 623 456 ...
## $ Margin : num [1:4248] 130 107 139 56 80 108 171 87 80 72 ...
## $ Marketing : num [1:4248] 24 27 26 14 15 23 47 57 19 22 ...
## $ Profit : num [1:4248] 94 68 101 30 54 53 99 0 33 17 ...
## $ Sales : num [1:4248] 219 190 234 100 134 180 341 150 140 130 ...
## $ Total Expenses: num [1:4248] 36 39 38 26 26 55 72 87 47 55 ...
dim(data)
## [1] 4248 20
sapply(data, class)
## $`Area Code`
## [1] "numeric"
##
## $Date
## [1] "POSIXct" "POSIXt"
##
## $Market
## [1] "character"
##
## $`Market Size`
## [1] "character"
##
## $Product
## [1] "character"
##
## $`Product Line`
## [1] "character"
##
## $`Product Type`
## [1] "character"
##
## $State
## [1] "character"
##
## $Type
## [1] "character"
##
## $`Budget COGS`
## [1] "numeric"
##
## $`Budget Margin`
## [1] "numeric"
##
## $`Budget Profit`
## [1] "numeric"
##
## $`Budget Sales`
## [1] "numeric"
##
## $COGS
## [1] "numeric"
##
## $Inventory
## [1] "numeric"
##
## $Margin
## [1] "numeric"
##
## $Marketing
## [1] "numeric"
##
## $Profit
## [1] "numeric"
##
## $Sales
## [1] "numeric"
##
## $`Total Expenses`
## [1] "numeric"
sapply(data, function(x) length(unique(x)))
## Area Code Date Market Market Size Product
## 156 24 4 2 13
## Product Line Product Type State Type Budget COGS
## 2 4 20 2 41
## Budget Margin Budget Profit Budget Sales COGS Inventory
## 76 76 89 173 610
## Margin Marketing Profit Sales Total Expenses
## 290 102 466 432 156
colSums(is.na(data))
## Area Code Date Market Market Size Product
## 0 0 0 0 0
## Product Line Product Type State Type Budget COGS
## 0 0 0 0 0
## Budget Margin Budget Profit Budget Sales COGS Inventory
## 0 0 0 0 0
## Margin Marketing Profit Sales Total Expenses
## 0 0 0 0 0
sum(duplicated(data))
## [1] 0
summary(data)
## Area Code Date Market
## Min. :203.0 Min. :2012-01-01 00:00:00 Length:4248
## 1st Qu.:417.0 1st Qu.:2012-06-23 12:00:00 Class :character
## Median :573.0 Median :2012-12-16 12:00:00 Mode :character
## Mean :582.3 Mean :2012-12-15 22:00:00
## 3rd Qu.:772.0 3rd Qu.:2013-06-08 12:00:00
## Max. :985.0 Max. :2013-12-01 00:00:00
## Market Size Product Product Line Product Type
## Length:4248 Length:4248 Length:4248 Length:4248
## Class :character Class :character Class :character Class :character
## Mode :character Mode :character Mode :character Mode :character
##
##
##
## State Type Budget COGS Budget Margin
## Length:4248 Length:4248 Min. : 0.00 Min. :-210.0
## Class :character Class :character 1st Qu.: 30.00 1st Qu.: 50.0
## Mode :character Mode :character Median : 50.00 Median : 70.0
## Mean : 74.83 Mean : 100.8
## 3rd Qu.: 90.00 3rd Qu.: 130.0
## Max. :450.00 Max. : 690.0
## Budget Profit Budget Sales COGS Inventory
## Min. :-320.00 Min. : 0.0 Min. : 0.00 Min. :-3534.0
## 1st Qu.: 20.00 1st Qu.: 80.0 1st Qu.: 43.00 1st Qu.: 432.0
## Median : 40.00 Median : 130.0 Median : 60.00 Median : 619.0
## Mean : 60.91 Mean : 175.6 Mean : 84.43 Mean : 749.4
## 3rd Qu.: 80.00 3rd Qu.: 210.0 3rd Qu.:100.00 3rd Qu.: 910.5
## Max. : 560.00 Max. :1140.0 Max. :364.00 Max. : 8252.0
## Margin Marketing Profit Sales
## Min. :-302.00 Min. : 0.00 Min. :-638.0 Min. : 17
## 1st Qu.: 52.75 1st Qu.: 13.00 1st Qu.: 17.0 1st Qu.:100
## Median : 76.00 Median : 22.00 Median : 40.0 Median :138
## Mean : 104.29 Mean : 31.19 Mean : 61.1 Mean :193
## 3rd Qu.: 132.00 3rd Qu.: 39.00 3rd Qu.: 92.0 3rd Qu.:230
## Max. : 613.00 Max. :156.00 Max. : 778.0 Max. :912
## Total Expenses
## Min. : 10.00
## 1st Qu.: 33.00
## Median : 46.00
## Mean : 54.06
## 3rd Qu.: 65.00
## Max. :190.00
Dengan rumus rata-rata sebagai berikut : \[ \bar{x} = \frac{1}{n} \sum_{i=1}^{n} x_i \]
data_numeric <- data[sapply(data, is.numeric)]
colMeans(data_numeric, na.rm = TRUE)
## Area Code Budget COGS Budget Margin Budget Profit Budget Sales
## 582.27801 74.83051 100.81921 60.91337 175.64972
## COGS Inventory Margin Marketing Profit
## 84.43315 749.38136 104.29331 31.18503 61.09769
## Sales Total Expenses
## 192.98752 54.06356
Dengan rumus variasi sebagai berikut : \[ s^2 = \frac{1}{n-1} \sum_{i=1}^{n} (x_i - \bar{x})^2 \]
apply(data_numeric, 2, var, na.rm = TRUE)
## Area Code Budget COGS Budget Margin Budget Profit Budget Sales
## 48903.0367 4387.4919 8575.2647 6327.5856 22168.6854
## COGS Inventory Margin Marketing Profit
## 4522.5314 436963.1670 8900.5115 730.2568 10344.6283
## Sales Total Expenses
## 22841.2221 1046.6906
Dengan rumus standar deviasi sebagai berikut : \[ s = \sqrt{\frac{1}{n-1} \sum_{i=1}^{n} (x_i - \bar{x})^2} \]
apply(data_numeric, 2, sd, na.rm = TRUE)
## Area Code Budget COGS Budget Margin Budget Profit Budget Sales
## 221.14031 66.23815 92.60273 79.54612 148.89152
## COGS Inventory Margin Marketing Profit
## 67.24977 661.03190 94.34252 27.02326 101.70855
## Sales Total Expenses
## 151.13313 32.35260
data %>%
mutate(Date = as.Date(Date)) %>%
mutate(Month = floor_date(Date, "month")) %>%
group_by(Month) %>%
summarise(Total_Profit = sum(Profit, na.rm = TRUE)) %>%
ggplot(aes(x = Month, y = Total_Profit)) +
geom_line(color = "#734", linewidth = 1.2) +
labs(title = "Tren Profit Bulanan",
x = "Bulan",
y = "Total Profit (USD)") +
theme_minimal()
Berdasarkan grafik tren profit bulanan tersebut, dapat disimpulkan bahwa secara keseluruhan profit bulanan menunjukkan tren meningkat positif, terutama setelah awal tahun 2013. Meskipun terdapat fluktuasi pada beberapa bulan, perusahaan mampu mempertahankan profit pada level yang lebih tinggi dibandingkan tahun sebelumnya. Hal ini menunjukkan bahwa kinerja bisnis coffee chain mengalami perbaikan yang signifikan dari waktu ke waktu, sehingga analisis penting untuk dilakukan dalam evaluasi kinerja bisnis.
Ingin dibandingkan apakah terdapat perbedaan profit antar market? Jika iya, pasangan market mana yang terdapat perbedaan secara signifikan.
Sebelum menguji lebih lanjut, dilakukan uji normalitas terlebih dahulu menggunakan uji Shapiro-Wilk.
\[ W = \frac{\left( \sum_{i=1}^{n} a_i x_{(i)} \right)^2}{\sum_{i=1}^{n} (x_i - \bar{x})^2} \]
H0 : Data berdistribusi normal H1 : Data tidak berdistribusi normal Dengan menggunakan taraf signifikansi atau \[alpha = 0.05\] Kriteria keputusan : H0 ditolak jika p-value < 0.05.
Normalitas secara keseluruhan
shapiro.test(
data$Profit
)
##
## Shapiro-Wilk normality test
##
## data: data$Profit
## W = 0.79969, p-value < 2.2e-16
Normalitas per kelompok market
by(
data$Profit,
data$Market,
shapiro.test
)
## data$Market: Central
##
## Shapiro-Wilk normality test
##
## data: dd[x, ]
## W = 0.87449, p-value < 2.2e-16
##
## ------------------------------------------------------------
## data$Market: East
##
## Shapiro-Wilk normality test
##
## data: dd[x, ]
## W = 0.7932, p-value < 2.2e-16
##
## ------------------------------------------------------------
## data$Market: South
##
## Shapiro-Wilk normality test
##
## data: dd[x, ]
## W = 0.85775, p-value < 2.2e-16
##
## ------------------------------------------------------------
## data$Market: West
##
## Shapiro-Wilk normality test
##
## data: dd[x, ]
## W = 0.80573, p-value < 2.2e-16
Hasil kedua uji Shapiro-Wilk menunjukkan p-value < 0,05 sehingga H₀ ditolak, yang berarti data tidak berdistribusi normal.
Karena asumsi data tidak berdistribusi normal, maka uji dapat dilanjutkan dengan menggunakan uji Kruskal-Wallis.
\[ H = \frac{12}{N(N+1)} \sum_{i=1}^{k} \frac{R_i^2}{n_i} - 3(N+1) \]
H0 : Tidak terdapat perbedaan rata-rata profit antar market H1 : Terdapat minimal satu perbedaan profit antar market Dengan menggunakan taraf signifikansi atau \[alpha = 0.05\] Kriteria keputusan : H0 ditolak jika p-value < 0.05.
kruskal.test(
Profit ~ Market,
data = data
)
##
## Kruskal-Wallis rank sum test
##
## data: Profit by Market
## Kruskal-Wallis chi-squared = 26.504, df = 3, p-value = 7.48e-06
Hasil uji Kruskal-Wallis menunjukkan p-value < 0,05 sehingga H₀ ditolak, yang berarti terdapat perbedaan profit antar market.
Karena terdapat perbedaan profit antar market, selanjutnya ingin diketahui pasangan kelompok mana yang berbeda signifikan. Uji yang digunakan yaitu Uji Dunn Test.
\[ Z = \frac{\bar{R}_i - \bar{R}_j} {\sqrt{ \frac{N(N+1)}{12} \left( \frac{1}{n_i} + \frac{1}{n_j} \right) }} \]
H0 : Tidak terdapat perbedaan median profit antar dua kelompok yang dibandingkan H1 : Terdapat perbedaan median profit antar dua kelompok yang dibandingkan. Dengan menggunakan taraf signifikansi atau \[alpha = 0.05\] Kriteria keputusan : H0 ditolak jika P.adj < 0.05.
dunnTest(
Profit ~ Market,
data = data,
method = "bonferroni"
)
## Warning: Market was coerced to a factor.
## Kruskal-Wallis rank sum test
##
## data: x and g
## Kruskal-Wallis chi-squared = 26.504, df = 3, p-value = 0
##
##
## Dunn's Pairwise Comparison of x by g
## (Bonferroni)
## Col Mean-│
## Row Mean │ Central East South
## ─────────┼─────────────────────────────────
## East │ 2.597291
## │ 0.0564
## │
## South │ 5.039142 2.459558
## │ 0.0000* 0.0835
## │
## West │ 2.886597 -0.022390 -2.682245
## │ 0.0234* 1.0000 0.0439*
##
## α = 0.05
## Reject Ho if p ≤ α, where p = Pr(|Z| ≥ |z|)
## Dunn (1964) Kruskal-Wallis multiple comparison
##
## p-values adjusted with the Bonferroni method.
## Comparison Z P.unadj P.adj
## 1 Central - East 2.59729187 9.396205e-03 5.637723e-02
## 2 Central - South 5.03914244 4.676224e-07 2.805734e-06
## 3 East - South 2.45955873 1.391079e-02 8.346476e-02
## 4 Central - West 2.88659786 3.894316e-03 2.336590e-02
## 5 East - West -0.02239007 9.821368e-01 1.000000e+00
## 6 South - West -2.68224516 7.312985e-03 4.387791e-02
Uji lanjut Dunn Test menunjukkan bahwa perbedaan median profit yang signifikan terjadi antara market East-West dan market South-West
Ingin dibandingkan apakah terdapat perbedaan budget dan realisasi pada variabel profit, sales, margin, dan COGS?
Sebelum menguji lebih lanjut, dilakukan uji normalitas terlebih dahulu menggunakan uji Shapiro-Wilk.
\[ W = \frac{\left( \sum_{i=1}^{n} a_i x_{(i)} \right)^2}{\sum_{i=1}^{n} (x_i - \bar{x})^2} \]
H0 : Selisih data berdistribusi normal H1 : Selisih data tidak berdistribusi normal Dengan menggunakan taraf signifikansi atau \[alpha = 0.05\] Kriteria keputusan : H0 ditolak jika p-value < 0.05.
Normalitas selisih profit
selisih_profit <-
data$"Profit" -
data$"Budget Profit"
shapiro.test(selisih_profit)
##
## Shapiro-Wilk normality test
##
## data: selisih_profit
## W = 0.7795, p-value < 2.2e-16
Hasil uji Shapiro-Wilk menunjukkan p-value < 0,05 sehingga H₀ ditolak, yang berarti selisih data profit tidak berdistribusi normal.
Normalitas selisih sales
selisih_sales <-
data$"Sales" -
data$"Budget Sales"
shapiro.test(selisih_sales)
##
## Shapiro-Wilk normality test
##
## data: selisih_sales
## W = 0.85945, p-value < 2.2e-16
Hasil uji Shapiro-Wilk menunjukkan p-value < 0,05 sehingga H₀ ditolak, yang berarti selisih data sales tidak berdistribusi normal.
Normalitas selisih margin
selisih_margin <-
data$"Margin" -
data$"Budget Margin"
shapiro.test(selisih_margin)
##
## Shapiro-Wilk normality test
##
## data: selisih_margin
## W = 0.84021, p-value < 2.2e-16
Hasil uji Shapiro-Wilk menunjukkan p-value < 0,05 sehingga H₀ ditolak, yang berarti selisih data margin tidak berdistribusi normal.
Normalitas selisih COGS
selisih_cogs <-
data$"COGS" -
data$"Budget COGS"
shapiro.test(selisih_cogs)
##
## Shapiro-Wilk normality test
##
## data: selisih_cogs
## W = 0.85357, p-value < 2.2e-16
Hasil uji Shapiro-Wilk menunjukkan p-value < 0,05 sehingga H₀ ditolak, yang berarti selisih data COGS tidak berdistribusi normal.
Karena asumsi selisih keempat variabel tidak berdistribusi normal, maka uji dapat dilanjutkan dengan menggunakan uji Wilcoxon Signed Rank Test.
\[ W = \sum R_i \] H0 : Tidak terdapat perbedaan antara budget dan realisasi H1 : Terdapat perbedaan antara budget dan realisasi Dengan menggunakan taraf signifikansi atau \[alpha = 0.05\] Kriteria keputusan : H0 ditolak jika p-value < 0.05.
Budget vs realisasi profit
wilcox.test(
data$"Profit",
data
$"Budget Profit",
paired = TRUE
)
##
## Wilcoxon signed rank test with continuity correction
##
## data: data$Profit and data$"Budget Profit"
## V = 3739475, p-value = 2.192e-14
## alternative hypothesis: true location shift is not equal to 0
Hasil uji Wilcoxon Signed Rank menunjukkan p-value < 0,05 sehingga H₀ ditolak, yang berarti terdapat perbedaan antara budget dan realisasi profit
Budget vs realisasi sales
wilcox.test(
data$"Sales",
data
$"Budget Sales",
paired = TRUE
)
##
## Wilcoxon signed rank test with continuity correction
##
## data: data$Sales and data$"Budget Sales"
## V = 6894767, p-value < 2.2e-16
## alternative hypothesis: true location shift is not equal to 0
Hasil uji Wilcoxon Signed Rank menunjukkan p-value < 0,05 sehingga H₀ ditolak, yang berarti terdapat perbedaan antara budget dan realisasi sales.
Budget vs realisasi margin
wilcox.test(
data$"Margin",
data
$"Budget Margin",
paired = TRUE
)
##
## Wilcoxon signed rank test with continuity correction
##
## data: data$Margin and data$"Budget Margin"
## V = 5491743, p-value < 2.2e-16
## alternative hypothesis: true location shift is not equal to 0
Hasil uji Wilcoxon Signed Rank menunjukkan p-value < 0,05 sehingga H₀ ditolak, yang berarti terdapat perbedaan antara budget dan realisasi margin.
Budget vs realisasi COGS
wilcox.test(
data$"COGS",
data
$"Budget COGS",
paired = TRUE
)
##
## Wilcoxon signed rank test with continuity correction
##
## data: data$COGS and data$"Budget COGS"
## V = 6918364, p-value < 2.2e-16
## alternative hypothesis: true location shift is not equal to 0
Hasil uji Wilcoxon Signed Rank menunjukkan p-value < 0,05 sehingga H₀ ditolak, yang berarti terdapat perbedaan antara budget dan realisasi COGS.
Berdasarkan keempat uji diatas, didapatkan hasil bahwa terdapat perbedaan antara budget dan realisasi dari keempat variabel yaitu profit, sales, margin, dan COGS. Selanjutnya akan ditinjau apakah perbedaan tersebut termasuk ke dalam top perform atau under perform. Jika selisih budget vs realisasi > 0, maka diklasifikasikan ke dalam top perform, begitupun sebaliknya.
Klasifikasi top perfom & under perform
data <- data %>%
mutate(
Profit_Status =
ifelse(
selisih_profit > 0,
"Top Perform",
"Under Perform"
),
Sales_Status =
ifelse(
selisih_sales > 0,
"Top Perform",
"Under Perform"
),
Margin_Status =
ifelse(
selisih_margin > 0,
"Top Perform",
"Under Perform"
),
COGS_Status =
ifelse(
selisih_cogs > 0,
"Top Perform",
"Under Perform"
)
)
Jumlah kategori top perform & under perform
cat("STATUS PROFIT :")
## STATUS PROFIT :
table(data$Profit_Status)
##
## Top Perform Under Perform
## 1655 2593
cat("STATUS SALES :")
## STATUS SALES :
table(data$Sales_Status)
##
## Top Perform Under Perform
## 3165 1083
cat("STATUS MARGIN :")
## STATUS MARGIN :
table(data$Margin_Status)
##
## Top Perform Under Perform
## 2646 1602
cat("STATUS COGS :")
## STATUS COGS :
table(data$COGS_Status)
##
## Top Perform Under Perform
## 3224 1024
Berdasarkan hasil diatas disimpulkan bahwa secara keseluruhan, perusahaan menunjukkan performa yang baik pada aspek Sales, Margin, dan COGS, namun masih perlu perhatian pada aspek Profit, karena mayoritas data masih berada pada kategori Under Perform. Kondisi ini mengindikasikan bahwa meskipun penjualan tinggi dan margin cukup baik, masih terdapat faktor lain yang memengaruhi rendahnya pencapaian profit, seperti beban operasional atau biaya tambahan lainnya.
Ingin dibandingkan apakah terdapat hubungan antara variabel market dengan variabel product_type? Jika iya, seberapa kuat hubungan keduanya?
Untuk menguji independensi, uji akan dilakukan dengan uji Pearson Chi-Square karena data berupa kategorik. \[ \chi^2 = \sum_{i=1}^{r} \sum_{j=1}^{c} \frac{(O_{ij} - E_{ij})^2}{E_{ij}} \]
H0 : Tidak terdapat hubungan antara Market dan Product Type (independen) H1 : Terdapat hubungan antara Market dan Product Type (dependen) Dengan menggunakan taraf signifikansi atau \[alpha = 0.05\] Kriteria keputusan : H0 ditolak jika p-value < 0.05.
Tabel kontingensi variabel market dan product_type
table_market_product <- table(
data$Market,
data$`Product Type`
)
table_market_product
##
## Coffee Espresso Herbal Tea Tea
## Central 384 288 336 336
## East 168 240 216 264
## South 192 288 192 0
## West 312 360 312 360
Uji Pearson Chi-Square
chisq.test(
table_market_product
)
##
## Pearson's Chi-squared test
##
## data: table_market_product
## X-squared = 291.66, df = 9, p-value < 2.2e-16
Hasil uji Pearson Chi-Squared menunjukkan p-value < 0,05 sehingga H₀ ditolak, yang berarti terdapat hubungan antara Market dan Product Type atau kedua variabel dependen.
Karena terdapat hubungan antara Market dan Product Type, selanjutnya ingin diketahui seberapa kuat hubungan keduanya. Uji yang digunakan yaitu Uji Cramer. \[ V = \sqrt{ \frac{\chi^2}{n(k - 1)} } \]
CramerV(
table_market_product
)
## [1] 0.1512806
Berdasarkan hasil nilai Cramer’s V tersebut menunjukkan bahwa hubungan antara Market dan Product Type termasuk ke dalam hubungan kekuatan sedang.
Berikut adalah visualisasi dari Market dengan Product Type.
ggplot(
data,
aes(
x = Market,
fill = `Product Type`
)
) +
geom_bar(
position = "fill"
) +
ggtitle(
"Proporsi Product Type pada Setiap Market"
) +
ylab("Proporsi") +
xlab("Market")
Ingin dibandingkan apakah terdapat hubungan antara variabel profit dengan variabel total expenses? Jika iya, seberapa kuat hubungan keduanya?
Sebelum menguji lebih lanjut, dilakukan uji normalitas terlebih dahulu menggunakan uji Shapiro-Wilk.
\[ W = \frac{\left( \sum_{i=1}^{n} a_i x_{(i)} \right)^2}{\sum_{i=1}^{n} (x_i - \bar{x})^2} \]
H0 : Data berdistribusi normal H1 : Data tidak berdistribusi normal Dengan menggunakan taraf signifikansi atau \[alpha = 0.05\] Kriteria keputusan : H0 ditolak jika p-value < 0.05.
Normalitas untuk profit
shapiro.test(
data$Profit
)
##
## Shapiro-Wilk normality test
##
## data: data$Profit
## W = 0.79969, p-value < 2.2e-16
Normalitas untuk total expenses
shapiro.test(
data$`Total Expenses`
)
##
## Shapiro-Wilk normality test
##
## data: data$`Total Expenses`
## W = 0.88605, p-value < 2.2e-16
Hasil kedua uji Shapiro-Wilk menunjukkan p-value < 0,05 sehingga H₀ ditolak, yang berarti data tidak berdistribusi normal.
Karena asumsi data tidak berdistribusi normal, maka dapat dilanjutkan dengan menggunakan Uji Spearman Correlation. \[ r_s = 1 - \frac{6 \sum d_i^2}{n(n^2 - 1)} \] H0 : Tidak terdapat hubungan antara Total Expenses dan Profit H1 : Terdapat hubungan antara Total Expenses dan Profit Dengan menggunakan taraf signifikansi atau \[alpha = 0.05\] Kriteria keputusan : H0 ditolak jika p-value < 0.05.
cor.test(
data$`Total Expenses`,
data$Profit,
method = "spearman"
)
## Warning in cor.test.default(data$`Total Expenses`, data$Profit, method =
## "spearman"): Cannot compute exact p-value with ties
##
## Spearman's rank correlation rho
##
## data: data$`Total Expenses` and data$Profit
## S = 1.0678e+10, p-value < 2.2e-16
## alternative hypothesis: true rho is not equal to 0
## sample estimates:
## rho
## 0.1641984
Hasil menunjukkan p-value < 0,05 sehingga H₀ ditolak, yang berarti terdapat hubungan antara Profit dan Total Expenses atau kedua variabel dependen. Diperoleh nilai rho sebesar 0,1642 yang menunjukkan hubungan tersebut bersifat positif namun lemah, yang menunjukkan bahwa peningkatan total expenses cenderung diikuti oleh peningkatan profit, meskipun pengaruhnya tidak terlalu kuat.
Berikut adalah visualisasi dari Total Expenses dengan Profit
ggplot(
data,
aes(
x = `Total Expenses`,
y = Profit
)
) +
geom_point() +
geom_smooth(
method = "lm",
se = FALSE
) +
ggtitle(
"Trend Hubungan Total Expenses dan Profit"
) +
xlab("Total Expenses") +
ylab("Profit")
## `geom_smooth()` using formula = 'y ~ x'
Secara keseluruhan, perusahaan menunjukkan performa yang cukup baik pada aspek penjualan, margin, dan biaya operasional, namun masih menghadapi tantangan dalam pencapaian profit sesuai target. Perbedaan performa antar market, hubungan antara market dan product type, serta pengaruh faktor operasional terhadap profit menjadi temuan penting yang dapat digunakan sebagai dasar dalam pengambilan keputusan strategis perusahaan. Oleh karena itu, perusahaan perlu melakukan evaluasi yang lebih mendalam terhadap strategi profitabilitas, efisiensi operasional, dan penyesuaian distribusi produk agar kinerja bisnis dapat semakin optimal di masa mendatang.