Penjualan (sales) merupakan indikator kinerja utama dalam industri ritel, termasuk dalam sektor penjualan kopi dan produk turunannya. Banyak faktor yang dapat memengaruhi tingkat penjualan suatu perusahaan, di antaranya adalah Cost of Goods Sold (COGS) dan aktivitas pemasaran (marketing). COGS mencerminkan biaya langsung yang dikeluarkan untuk menghasilkan produk yang dijual, sedangkan pengeluaran pemasaran mencerminkan investasi perusahaan dalam mempromosikan produk dan menarik pelanggan. Dalam konteks ini, pemahaman terhadap hubungan antara COGS, marketing, dan sales menjadi penting untuk pengambilan keputusan strategis.
Secara teoritis, COGS dan marketing memiliki hubungan yang signifikan terhadap sales. COGS yang terlalu tinggi dapat menurunkan margin keuntungan dan menyebabkan harga jual yang kurang kompetitif, sehingga berpotensi menurunkan penjualan. Sebaliknya, pengeluaran marketing yang efektif dapat meningkatkan visibilitas produk, memperluas jangkauan pasar, dan pada akhirnya meningkatkan penjualan.
Namun, dalam analisis data riil, sering kali terdapat pencilan (outlier) atau data yang tidak memenuhi asumsi klasik regresi linier, seperti normalitas residual. Oleh karena itu, pendekatan regresi robust menjadi alternatif yang lebih andal. Salah satu metode regresi robust yang populer adalah Estimasi-M, yang memberikan bobot berbeda pada observasi berdasarkan kontribusinya terhadap residual, sehingga mengurangi pengaruh pencilan.
Penelitian ini akan memfokuskan analisis pada data penjualan di negara bagian Massachusetts, dengan tujuan untuk mengkaji pengaruh COGS dan marketing terhadap sales menggunakan pendekatan regresi robust Estimasi-M. Diharapkan hasil analisis ini dapat memberikan wawasan yang lebih akurat dan stabil untuk pengambilan keputusan bisnis di wilayah tersebut.
Pengertian:
Analisis regresi linier berganda adalah suatu teknik statistik yang digunakan untuk memodelkan hubungan antara satu variabel dependen (respon) dengan dua atau lebih variabel independen (prediktor). Metode ini berguna untuk melihat seberapa besar pengaruh masing-masing variabel independen terhadap variabel dependen, baik secara parsial maupun simultan.
Tujuan:
Persamaan Umum Regresi Linier Berganda:
\[ Y = \beta_0 + \beta_1 X_1 + \beta_2 X_2 + \cdots + \beta_k X_k + \varepsilon \]
Keterangan:
Pengertian:
Estimasi M (M-estimator) adalah metode dalam regresi robust yang digunakan untuk mengatasi pengaruh pencilan (outlier) dan pelanggaran asumsi klasik, seperti non-normalitas residual atau heteroskedastisitas. Estimasi M menggeneralisasi metode kuadrat terkecil, dengan meminimalkan fungsi kerugian lain yang kurang sensitif terhadap outlier.
Tujuan utama:
Memberikan estimasi parameter yang lebih stabil dan
robust, terutama ketika data mengandung nilai ekstrem yang
dapat mempengaruhi hasil estimasi.
Persamaan Umum Estimasi M:
\[ \sum_{i=1}^{n} \rho \left( \frac{y_i - \mathbf{x}_i^\top \beta}{\hat{\sigma}} \right) \rightarrow \min \]
Keterangan:
Iterasi Estimasi M:
Uji F digunakan untuk mengetahui apakah semua variabel independen secara simultan memengaruhi variabel dependen.
1. Hipotesis
2. Taraf Signifikansi: \((\alpha)\)
3. Daerah Kritis: Tolak \((H_0)\) jika \((p\text{-value} < \alpha)\)
4. Statistik Uji: Uji F dihitung melalui fungsi
summary(lm(...)) dari model regresi.
5. Kesimpulan
Digunakan untuk mengetahui apakah masing-masing variabel independen berpengaruh secara parsial terhadap variabel dependen.
1. Hipotesis (untuk setiap koefisien \((\beta_i)\))
2. Taraf Signifikansi: \((\alpha)\)
3. Daerah Kritis: Tolak \(( H_0 )\) jika \(( p\text{-value} < \alpha )\)
4. Statistik Uji: Dihitung melalui fungsi
summary(lm(...)) pada bagian koefisien model regresi.
5. Kesimpulan
Untuk memastikan bahwa residual dari model regresi berdistribusi normal.
1. Hipotesis
2. Taraf Signifikansi: \((\alpha)\)
3. Daerah Kritis: Tolak \(( H_0 )\) jika \(( p\text{-value} < \alpha )\)
4. Statistik Uji: Uji dilakukan menggunakan fungsi
shapiro.test() untuk menguji normalitas residual atau
masing-masing variabel.
5. Kesimpulan
Untuk mendeteksi apakah terdapat hubungan linear yang tinggi antar variabel independen.
1. Hipotesis
2. Taraf Signifikansi: Tidak digunakan, penilaian berdasarkan nilai VIF.
3. Daerah Kritis: Jika nilai \(VIF > 10\), maka terjadi multikolinearitas antar variabel independen.
4. Statistik Uji: Digunakan fungsi
vif() dari paket car untuk menghitung nilai
VIF:
\[ \text{VIF}_i = \frac{1}{1 - R_i^2} \]
5. Kesimpulan
Untuk mengetahui apakah residual saling berkorelasi satu sama lain, terutama dalam data runtut waktu.
1. Hipotesis
2. Taraf Signifikansi: \((\alpha)\)
3. Daerah Kritis: Tolak \(( H_0 )\) jika \(( p\text{-value} < \alpha )\)
4. Statistik Uji: Menggunakan fungsi
dwtest() dari paket lmtest.
5. Kesimpulan
Untuk memeriksa apakah varians residual bersifat konstan (homoskedastik) atau tidak (heteroskedastik).
1. Hipotesis
2. Taraf Signifikansi: \((\alpha)\)
3. Daerah Kritis: Tolak \(( H_0 )\) jika \(( p\text{-value} < \alpha )\)
4. Statistik Uji: Menggunakan fungsi
bptest() dari paket lmtest.
5. Kesimpulan
Import library() yang diperlukan
# Import library yang diperlukan
library(readxl) # untuk membaca file Excel
library(dplyr) # untuk manipulasi data
library(lmtest) # untuk uji diagnostik regresi
library(car) # untuk VIF
library(DT) # untuk menampilkan tabel interaktif (data table)
library(knitr) # untuk menyusun dokumen R Markdown dan menampilkan hasil seperti tabel
Import dataset yang digunakan
# Import dataset
data <- read_excel("D:/SIM/CM/3. CM1 - Coffee Chain Datasets/3. CM1 - Coffee Chain Datasets.xlsx")
dataset1 <- datatable(data,
options = list(
scrollX = TRUE,
pageLength = 5,
lengthMenu = c(5, 5, 5, 5)
))
dataset1
Memilih data untuk state Massachusetts dan variabel yang dibutuhkan yaitu Sales, COGS, dan Marketing
ma_data <- data %>%
filter(State == "Massachusetts") %>%
select(Sales, COGS, Marketing)
dataset2 <- datatable(ma_data,
options = list(
scrollX = TRUE,
pageLength = 5,
lengthMenu = c(5, 5, 5, 5)
))
dataset2
Statistik Deskriptif
# Menampilkan ringkasan data
summary(ma_data)
## Sales COGS Marketing
## Min. : 41.0 Min. : 16.00 Min. : 4.00
## 1st Qu.: 80.0 1st Qu.: 32.00 1st Qu.: 8.00
## Median :117.0 Median : 52.00 Median :20.00
## Mean :208.1 Mean : 62.96 Mean :23.81
## 3rd Qu.:325.0 3rd Qu.: 67.25 3rd Qu.:41.00
## Max. :665.0 Max. :181.00 Max. :57.00
Membuat model dengan:
model <- lm(Sales ~ COGS + Marketing, data = ma_data)
summary(model)
##
## Call:
## lm(formula = Sales ~ COGS + Marketing, data = ma_data)
##
## Residuals:
## Min 1Q Median 3Q Max
## -89.63 -84.29 -72.80 -23.62 471.28
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 98.6572 24.3389 4.053 8.31e-05 ***
## COGS 2.4032 0.4035 5.955 1.97e-08 ***
## Marketing -1.7588 1.1578 -1.519 0.131
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 157.2 on 141 degrees of freedom
## Multiple R-squared: 0.2599, Adjusted R-squared: 0.2494
## F-statistic: 24.76 on 2 and 141 DF, p-value: 6.088e-10
Berdasarkan hasil analisis regresi diatas didapatkan persamaan sebagai berikut: \[ Y = 98.6572 + 2.4032X_1 -1.7588X_2 \] Interpretasi:
Intercept (98.6572) menunjukkan nilai Sales \((Y)\) saat COGS \((X_1)=0\) dan Marketing \((X_2)=0\). Artinya, jika kedua variabel independen tidak berpengaruh atau bernilai nol, maka nilai prediksi Sales \((Y)\) adalah 98.6572.
Koefisien \((X_1)\) (2.4032) menunjukkan setiap kenaikan 1 satuan pada COGS \((X_1)\) akan meningkatkan nilai Sales \((Y)\) sebesar 2.4032, dengan asumsi Marketing \((X_2)\) tetap konstan. Ini menunjukkan hubungan positif antara COGS \((X_1)\) dan Sales \((Y)\).
Koefisien \((X_2)\) (-1.7588) menunjukkan setiap kenaikan 1 satuan pada Marketing \((X_2)\) akan menurunkan nilai Sales \((Y)\) sebesar 1.7588, dengan asumsi COGS \((X_1)\) tetap konstan. Ini menunjukkan hubungan negatif antara Marketing \((X_2)\) dan Sales \((Y)\).
Adjusted \(( R^2 )\) sebesar 0.2494 menunjukkan bahwa model hanya mampu menjelaskan 24.94% variasi pada variabel dependen Sales \((Y)\), sementara sisanya sebesar 75.06% dipengaruhi oleh faktor lain di luar model.
# Uji F
summary(model)
##
## Call:
## lm(formula = Sales ~ COGS + Marketing, data = ma_data)
##
## Residuals:
## Min 1Q Median 3Q Max
## -89.63 -84.29 -72.80 -23.62 471.28
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 98.6572 24.3389 4.053 8.31e-05 ***
## COGS 2.4032 0.4035 5.955 1.97e-08 ***
## Marketing -1.7588 1.1578 -1.519 0.131
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 157.2 on 141 degrees of freedom
## Multiple R-squared: 0.2599, Adjusted R-squared: 0.2494
## F-statistic: 24.76 on 2 and 141 DF, p-value: 6.088e-10
Berdasarkan output didapatkan nilai \(p-value=6.088 \times 10^{-10} < \alpha=0.05\) maka \(H_0\) ditolak yang artinya bahwa minimal terdapat satu variabel yang berpengaruh signifikan terhadap Sales.
# Uji t
summary(model)
##
## Call:
## lm(formula = Sales ~ COGS + Marketing, data = ma_data)
##
## Residuals:
## Min 1Q Median 3Q Max
## -89.63 -84.29 -72.80 -23.62 471.28
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 98.6572 24.3389 4.053 8.31e-05 ***
## COGS 2.4032 0.4035 5.955 1.97e-08 ***
## Marketing -1.7588 1.1578 -1.519 0.131
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 157.2 on 141 degrees of freedom
## Multiple R-squared: 0.2599, Adjusted R-squared: 0.2494
## F-statistic: 24.76 on 2 and 141 DF, p-value: 6.088e-10
Berdasarkan output:
| Variabel | Keterangan |
|---|---|
| COGS | Berpengaruh signifikan |
| Marketing | Tidak berpengaruh signifikan |
# Normalitas residual
shapiro.test(residuals(model)) # Uji Shapiro-Wilk
##
## Shapiro-Wilk normality test
##
## data: residuals(model)
## W = 0.59124, p-value < 2.2e-16
# Grafik QQ Plot untuk normalitas residual
qqnorm(resid(model))
qqline(resid(model))
Melalui plot normal Q-Q terlihat bahwa persebaran titik-titik tidak mengikuti garis diagonal, serta berdasarkan output didapatkan nilai \(p-value=2.2 \times 10^{-16} < \alpha=0.05\) maka \(H_0\) ditolak yang artinya bahwa residu tidak berdistribusi normal.
# Multikolinearitas
vif(model) # Variance Inflation Factor
## COGS Marketing
## 1.976275 1.976275
Berdasarkan output didapatkan nilai \(VIF<10\) maka \(H_0\) ditolak yang artinya bahwa tidak terdapat multikolinearitas antar variabel independen.
# Autokorelasi
dwtest(model) # Durbin-Watson test
##
## Durbin-Watson test
##
## data: model
## DW = 2.3436, p-value = 0.981
## alternative hypothesis: true autocorrelation is greater than 0
Berdasarkan output didapatkan nilai \(p-value=0.981 > \alpha=0.05\) maka \(H_0\) tidak ditolak yang artinya bahwa tidak terdapat autokorelasi residual.
# Heteroskedastisitas
bptest(model) # Breusch-Pagan test
##
## studentized Breusch-Pagan test
##
## data: model
## BP = 4.1464, df = 2, p-value = 0.1258
Berdasarkan output didapatkan nilai \(p-value=0.1258 > \alpha=0.05\) maka \(H_0\) tidak ditolak yang artinya bahwa tidak terdapat heteroskedastisitas (varian residual konstan).
| Uji.Asumsi.Klasik | Keterangan |
|---|---|
| Normalitas Residual | Tidak Terpenuhi |
| Multikolinearitas | Terpenuhi |
| Autokorelasi | Terpenuhi |
| Heteroskedastisitas | Terpenuhi |
Karena model tidak memenuhi salah satu asumsi klasik yaitu Normalitas Residual maka kita bisa menggunakan Estimasi-M untuk membuat model regresinya.
#ESTIMASI M
n <- nrow(ma_data)
p <- ncol(ma_data)
modelM <- lm(Sales ~ COGS + Marketing, data = ma_data)
Beta <- matrix(nrow=n,ncol=p)
Beta[1,] <- modelM$coefficients
j <- 1
tol <- c(1,rep=p)
while (any(abs(tol)>0.001)){
res <- modelM$residuals
Yhat <- modelM$fitted.values
sigma.hat <- 1.483*median(abs(res))
for (i in 1:n){
if (res[i]>(1.5*sigma.hat)){res[i]=1.5*sigma.hat}
else if (res[i]<(-1.5*sigma.hat)){res[i]=-1.5*sigma.hat}
else res[i]=res[i]
}
ma_data[,1] <- Yhat + res
modelM <- lm(Sales ~ COGS + Marketing, data = ma_data)
Beta[j+1,] <- modelM$coefficients
tol <- Beta[j+1,]-Beta[j,]
j <- j+1
}
Koef <- Beta[j,]
summary(modelM)
##
## Call:
## lm(formula = Sales ~ COGS + Marketing, data = ma_data)
##
## Residuals:
## Min 1Q Median 3Q Max
## -18.550 -8.338 -3.217 8.479 18.551
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 20.37765 1.72762 11.795 <2e-16 ***
## COGS 1.94865 0.02864 68.029 <2e-16 ***
## Marketing 0.01499 0.08218 0.182 0.856
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 11.16 on 141 degrees of freedom
## Multiple R-squared: 0.9849, Adjusted R-squared: 0.9847
## F-statistic: 4590 on 2 and 141 DF, p-value: < 2.2e-16
Berdasarkan hasil analisis Estimasi-M diatas didapatkan persamaan sebagai berikut: \[ Y = 20.37765 + 1.94865 X_1 + 0.01499 X_2 \] Interpretasi:
Intercept (20.37765) menunjukkan nilai Sales \((Y)\) saat COGS \((X_1)=0\) dan Marketing \((X_2)=0\). Artinya, jika kedua variabel independen tidak berpengaruh atau bernilai nol, maka nilai prediksi Sales \((Y)\) adalah 20.37765.
Koefisien \((X_1)\) (1.94865) menunjukkan setiap kenaikan 1 satuan pada COGS \((X_1)\) akan meningkatkan nilai Sales \((Y)\) sebesar 1.94865, dengan asumsi Marketing \((X_2)\) tetap konstan. Ini menunjukkan hubungan positif antara COGS \((X_1)\) dan Sales \((Y)\).
Koefisien \((X_2)\) (0.01499) menunjukkan setiap kenaikan 1 satuan pada Marketing \((X_2)\) akan meningkatkan nilai Sales \((Y)\) sebesar 0.01499, dengan asumsi COGS \((X_1)\) tetap konstan. Ini menunjukkan hubungan positif antara Marketing \((X_2)\) dan Sales \((Y)\).
Adjusted \(( R^2 )\) sebesar 0.9847 menunjukkan bahwa model hanya mampu menjelaskan 98.47% variasi pada variabel dependen Sales \((Y)\), sementara sisanya sebesar 1.53% dipengaruhi oleh faktor lain di luar model.
Berdasarkan analisis yang sudah dilakukan dapat disimpulkan bahwa:
Variabel COGS \((X_1)\) berpengaruh secara signifikan terhadap Sales \((Y)\), sedangkan Marketing \((X_2)\) tidak berpengaruh secara signifikan terhadap Sales \((Y)\).
Lalu dari estimasi-M didapatkan persamaan regresi: \[Y = 20.37765 + 1.94865 X_1 + 0.01499 X_2\]