Nama: Geis Nurani Khafiyys NIM: M0725079 Kelas: E (Statistika 2025)
getwd()
## [1] "/Users/moer"
data_coffee_chain <- readxl::read_excel("/Users/moer/1. Tugas SIM 2025B - Coffee Chain Datasets.xlsx")
data_coffee_chain
## # A tibble: 4,248 × 20
## `Area Code` Date Market `Market Size` Product `Product Line`
## <dbl> <dttm> <chr> <chr> <chr> <chr>
## 1 719 2012-01-01 00:00:00 Central Major Market Amaretto Beans
## 2 970 2012-01-01 00:00:00 Central Major Market Colombi… Beans
## 3 970 2012-01-01 00:00:00 Central Major Market Decaf I… Beans
## 4 303 2012-01-01 00:00:00 Central Major Market Green T… Leaves
## 5 303 2012-01-01 00:00:00 Central Major Market Caffe M… Beans
## 6 720 2012-01-01 00:00:00 Central Major Market Decaf E… Beans
## 7 970 2012-01-01 00:00:00 Central Major Market Chamomi… Leaves
## 8 719 2012-01-01 00:00:00 Central Major Market Lemon Leaves
## 9 970 2012-01-01 00:00:00 Central Major Market Mint Leaves
## 10 719 2012-01-01 00:00:00 Central Major Market Darjeel… Leaves
## # ℹ 4,238 more rows
## # ℹ 14 more variables: `Product Type` <chr>, State <chr>, Type <chr>,
## # `Budget COGS` <dbl>, `Budget Margin` <dbl>, `Budget Profit` <dbl>,
## # `Budget Sales` <dbl>, COGS <dbl>, Inventory <dbl>, Margin <dbl>,
## # Marketing <dbl>, Profit <dbl>, Sales <dbl>, `Total Expenses` <dbl>
head(data_coffee_chain)
## # A tibble: 6 × 20
## `Area Code` Date Market `Market Size` Product `Product Line`
## <dbl> <dttm> <chr> <chr> <chr> <chr>
## 1 719 2012-01-01 00:00:00 Central Major Market Amaretto Beans
## 2 970 2012-01-01 00:00:00 Central Major Market Colombian Beans
## 3 970 2012-01-01 00:00:00 Central Major Market Decaf Ir… Beans
## 4 303 2012-01-01 00:00:00 Central Major Market Green Tea Leaves
## 5 303 2012-01-01 00:00:00 Central Major Market Caffe Mo… Beans
## 6 720 2012-01-01 00:00:00 Central Major Market Decaf Es… Beans
## # ℹ 14 more variables: `Product Type` <chr>, State <chr>, Type <chr>,
## # `Budget COGS` <dbl>, `Budget Margin` <dbl>, `Budget Profit` <dbl>,
## # `Budget Sales` <dbl>, COGS <dbl>, Inventory <dbl>, Margin <dbl>,
## # Marketing <dbl>, Profit <dbl>, Sales <dbl>, `Total Expenses` <dbl>
tail(data_coffee_chain)
## # A tibble: 6 × 20
## `Area Code` Date Market `Market Size` Product `Product Line`
## <dbl> <dttm> <chr> <chr> <chr> <chr>
## 1 425 2013-12-01 00:00:00 West Small Market Lemon Leaves
## 2 206 2013-12-01 00:00:00 West Small Market Caffe Lat… Beans
## 3 509 2013-12-01 00:00:00 West Small Market Caffe Moc… Beans
## 4 360 2013-12-01 00:00:00 West Small Market Decaf Esp… Beans
## 5 360 2013-12-01 00:00:00 West Small Market Colombian Beans
## 6 206 2013-12-01 00:00:00 West Small Market Decaf Iri… Beans
## # ℹ 14 more variables: `Product Type` <chr>, State <chr>, Type <chr>,
## # `Budget COGS` <dbl>, `Budget Margin` <dbl>, `Budget Profit` <dbl>,
## # `Budget Sales` <dbl>, COGS <dbl>, Inventory <dbl>, Margin <dbl>,
## # Marketing <dbl>, Profit <dbl>, Sales <dbl>, `Total Expenses` <dbl>
str(data_coffee_chain)
## 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_coffee_chain)
## [1] 4248 20
names(data_coffee_chain)
## [1] "Area Code" "Date" "Market" "Market Size"
## [5] "Product" "Product Line" "Product Type" "State"
## [9] "Type" "Budget COGS" "Budget Margin" "Budget Profit"
## [13] "Budget Sales" "COGS" "Inventory" "Margin"
## [17] "Marketing" "Profit" "Sales" "Total Expenses"
summary(data_coffee_chain)
## 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
.
library(dplyr)
##
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
df_avg_profit <- data_coffee_chain %>%
group_by(`Product Type`) %>%
summarise(Average_Profit = mean(Profit, na.rm = TRUE))
library(ggplot2)
ggplot(df_avg_profit, aes(x = reorder(`Product Type`, -Average_Profit), y = Average_Profit, fill = Average_Profit)) +
geom_bar(stat = "identity", show.legend = FALSE, color = "black") +
geom_text(aes(label = round(Average_Profit, 2)), vjust = -0.5, size = 4) +
labs(title = "Rata-Rata Keuntungan (Profit) Berdasarkan Tipe Produk",
x = "Tipe Produk",
y = "Rata-Rata Profit") +
scale_fill_gradient(low = "lightblue", high = "navy") +
theme_minimal()
Interpretasi: Berdasarkan grafik tersebut, terlihat bahwa kategori Coffee merupakan kontributor keuntungan tertinggi dengan rata-rata profit mencapai 70.72, jauh mengungguli tipe produk lainnya seperti Herbal Tea (59.9), Espresso (58.35), dan Tea (55.19). Visualisasi yang diurutkan secara menurun serta penggunaan gradasi warna biru tua (navy) memberikan penegasan bahwa Coffee adalah produk “bintang” yang paling efisien dalam menghasilkan margin bagi bisnis. Sebaliknya, kategori Tea memiliki rata-rata profit terendah di angka 55.19, sehingga perusahaan disarankan untuk memprioritaskan alokasi sumber daya dan strategi pemasaran pada produk berbasis Coffee guna memaksimalkan profitabilitas keseluruhan secara lebih efektif.
library(tidyr)
df_wilayah <- data_coffee_chain %>%
group_by(State) %>%
summarise(
Actual = sum(Profit, na.rm = TRUE),
Budget = sum(`Budget Profit`, na.rm = TRUE)
) %>%
pivot_longer(
cols = c(Actual, Budget),
names_to = "Kategori",
values_to = "Total"
)
ggplot(df_wilayah, aes(x = State, y = Total, fill = Kategori)) +
geom_bar(stat = "identity", width = 0.7, position = position_dodge(width = 0.85), color = "black") +
labs(title = "Perbandingan Target vs Kinerja Aktual Berdasarkan Wilayah",
subtitle = "Berdasarkan Total Profit",
x = "Negara Bagian (State)",
y = "Total Keuntungan",
fill = "Keterangan") +
scale_fill_manual(values = c("Actual" = "lightblue", "Budget" = "navy"), labels = c("Actual" = "Kinerja Aktual", "Budget" = "Target")) +
theme_minimal() + theme(axis.text.x = element_text(angle = 90, vjust = 0.5, hjust = 1))
Interpretasi: Visualisasi ini membandingkan capaian keuntungan riil terhadap target di berbagai negara bagian, di mana California, Illinois, dan New York muncul sebagai wilayah dengan performa tertinggi karena berhasil melampaui target profit yang ditetapkan. Sebaliknya, wilayah seperti Missouri dan New Mexico menunjukkan kinerja yang kurang optimal karena hasil aktualnya berada di bawah target, sementara sebagian besar wilayah lain seperti Texas dan Oregon menunjukkan kinerja yang sangat stabil dan presisi dengan target. Secara keseluruhan, grafik ini mengindikasikan bahwa meskipun sebagian besar wilayah berhasil mencapai atau mendekati target, strategi pertumbuhan profitabilitas dapat difokuskan pada replikasi keberhasilan di California ke wilayah-wilayah yang saat ini masih mengalami defisit pencapaian target.
ggplot(data_coffee_chain, aes(x = Sales, y = Profit)) +
geom_point(color = "lightblue", alpha = 0.6) +
theme_minimal() +
labs(
title = "Hubungan Sales dan Profit",
x = "Penjualan (Sales)",
y = "Keuntungan (Profit)") +
theme_minimal()
Interpretasi: Scatter plot ini menunjukkan adanya korelasi positif yang sangat kuat dan linier antara Penjualan (Sales) dan Keuntungan (Profit), di mana peningkatan volume penjualan secara konsisten diikuti oleh kenaikan profit. Pola data yang cenderung membentuk garis lurus menanjak mengonfirmasi hasil analisis regresi sebelumnya bahwa Sales adalah penggerak utama keuntungan bisnis Anda. Meskipun terdapat beberapa titik pencilan (outliers) di bagian bawah yang menunjukkan kerugian meskipun ada penjualan, mayoritas data berkumpul pada jalur positif, menandakan bahwa model bisnis operasional saat ini sudah sangat efisien dalam mengubah setiap nilai penjualan menjadi margin keuntungan.
Analisis Regresi Linear Berganda
model_complex <- lm(Profit ~ Marketing + Sales , data = data_coffee_chain)
summary(model_complex)
##
## Call:
## lm(formula = Profit ~ Marketing + Sales, data = data_coffee_chain)
##
## Residuals:
## Min 1Q Median 3Q Max
## -334.62 -13.59 -0.19 15.64 276.60
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -25.172413 0.931639 -27.02 <2e-16 ***
## Marketing -2.592300 0.029526 -87.80 <2e-16 ***
## Sales 0.865916 0.005279 164.02 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 36.59 on 4245 degrees of freedom
## Multiple R-squared: 0.8706, Adjusted R-squared: 0.8706
## F-statistic: 1.428e+04 on 2 and 4245 DF, p-value: < 2.2e-16
H0 : β1 = β2 = 0 (Secara bersama-sama, Marketing dan sales tidak memiliki pengaruh terhadap Profit) H1 : minimal salah satu β ≠ 0 (Secara bersama-sama, Marketing dan Sales memiliki pengaruh terhadap Profit)
Variabel Marketing H0 : β1 = 0 (Marketing tidak berpengaruh terhadap Profit) H1 : β1 ≠ 0 (Marketing berpengaruh terhadap Profit)
Variabel Sales H0 : β2 = 0 (Sales tidak berpengaruh terhadap Profit) H1 : β2 ≠ 0 (Sales berpengaruh terhadap Profit)
Berdasarkan hasil analisis regresi linear berganda, diperoleh persamaan:
Profit = -25.172413 - 2.592300(Marketing) + 0.865916(Sales)
Artinya:
Setiap ada kenaikan 1 unit biaya Marketing, maka Profit diprediksi akan TURUN sebesar 2.59 unit (dengan asumsi variabel Sales tetap)
Setiap ada kenaikan 1 unit Sales, maka Profit diprediksi akan NAIK sebesar 0.87 unit (dengan asumsi biaya Marketing tetap)
Hasil: Nilai p-value untuk variabel Sales dan Marketing ditemukan kurang dari 0.05. Kesimpulan: Hal ini menunjukkan bahwa kedua variabel tersebut memiliki pengaruh yang signifikan secara statistik terhadap Profit. Artinya, perubahan yang terjadi pada angka Penjualan dan biaya Pemasaran benar-benar berdampak nyata pada keuntungan perusahaan, bukan karena faktor kebetulan.
Hasil: Nilai R-squared sebesar 0.8706. Kesimpulan: Angka ini menunjukkan bahwa 87.06% variasi (naik-turunnya) nilai Profit dapat dijelaskan secara akurat oleh variabel Sales dan Marketing dalam model ini.
shapiro.test(residuals(model_complex))
##
## Shapiro-Wilk normality test
##
## data: residuals(model_complex)
## W = 0.82338, p-value < 2.2e-16
Hasil uji Shapiro-Wilk menunjukkan nilai p-value sebesar < 2.2e-16, yang berarti residual tidak berdistribusi normal. Namun, mengingat model memiliki nilai R-squared yang tinggi (87.06%) dan jumlah observasi yang besar, model tetap dianggap representatif untuk menjelaskan hubungan antar variabel.
Berdasarkan hasil analisis, model regresi ini memiliki tingkat akurasi yang sangat tinggi dengan nilai R-squared sebesar 0.8706, yang berarti 87,06% variasi profit dipengaruhi secara nyata oleh variabel Penjualan dan Marketing.
Secara parsial, kedua variabel tersebut memiliki p-value < 0.05, sehingga terbukti berpengaruh signifikan terhadap keuntungan perusahaan. Namun, terdapat temuan menarik pada arah pengaruhnya: variabel Penjualan berkontribusi positif (0.87), sedangkan biaya Marketing justru memberikan dampak negatif (-2.59), yang mengindikasikan bahwa setiap kenaikan anggaran pemasaran saat ini justru menurunkan profit karena biayanya lebih besar daripada margin yang dihasilkan.
Meskipun model ini sangat kuat dalam menjelaskan data, hasil uji Shapiro-Wilk menunjukkan bahwa residual model tidak berdistribusi normal (p-value < 0.05). Hal ini kemungkinan besar dipengaruhi oleh ukuran sampel yang besar atau adanya beberapa data pencilan (outlier) dalam transaksi. Walaupun asumsi normalitas tidak terpenuhi secara sempurna, model tetap dianggap valid dan dapat diandalkan untuk pengambilan keputusan strategis mengingat nilai R-squared yang tinggi dan signifikansi variabel yang sangat kuat.
Kesimpulannya, perusahaan disarankan untuk memaksimalkan volume penjualan dan segera mengevaluasi efisiensi biaya pemasaran guna memperbaiki performa keuntungan.