Data memiliki peranan penting dalam mendukung pengambilan keputusan yang berbasis pada informasi yang akurat dan terukur. Analisis data menjadi alat penting dalam memahami hubungan antara variabel-variabel yang berperan dalam menentukan kinerja perusahaan. Salah satu pendekatan statistik yang paling banyak digunakan untuk mengidentifikasi hubungan antara beberapa variabel bebas dengan satu variabel terikat adalah regresi linier berganda. Dalam dunia bisnis, khususnya dalam sektor perdagangan dan pemasaran produk konsumen seperti kopi dan teh, keberhasilan keuangan perusahaan sangat ditentukan oleh sejauh mana pengelolaan biaya dan strategi pemasaran dilakukan secara efektif. Salah satu indikator penting dari keberhasilan tersebut adalah Profit (laba). Untuk meningkatkan profitabilitas, perusahaan perlu memahami faktor-faktor apa saja yang memengaruhinya. Dalam hal ini, beberapa variabel penting yang diasumsikan memiliki pengaruh terhadap Profit adalah COGS (Cost of Goods Sold), Marketing, Inventory, dan Margin.
Penelitian ini bertujuan untuk menganalisis pengaruh dari beberapa variabel independen, yaitu Cost of Goods Sold (COGS), Marketing, Inventory, dan Margin terhadap Profit sebagai variabel dependen. Data yang digunakan merupakan data penjualan produk kopi dan teh dari berbagai wilayah di Colorado pada tahun 2012-2013.
Regresi linier berganda adalah suatu metode statistik yang digunakan untuk menganalisis hubungan antara satu variabel dependen dengan dua atau lebih variabel independen. metode ini memungkinkan kita untuk melihat seberapa besar pengaruh masing-masing variabel independen terhadap variabel dependen, baik secara individu (parsial) maupun bersama-sama (simultan). Interpretasi dari koefisien regresi masing-masing variabel menjelaskan perubahan pada variabel dependen apabila terjadi perubahan satu satuan pada variabel independen dengan asumsi variabel lainnya konstan. Model matematis dari regresi linier berganda dapat ditulis sebagai berikut:
\(Y = \beta_0 + \beta_1X_1 + \beta_2X_2 + \dots + \beta_nX_n + \epsilon\)
Di mana:
Tujuan utama dari regresi adalah untuk menjelaskan variasi dalam variabel dependen berdasarkan variasi dalam variabel independen serta untuk melakukan prediksi nilai \(Y\) berdasarkan nilai-nilai \(X\).
Dalam analisis regresi linier, keberhasilan dalam memperoleh model yang valid dan reliabel sangat bergantung pada terpenuhinya sejumlah asumsi mendasar yang dikenal sebagai uji asumsi klasik. Uji asumsi klasik dilakukan sebelum interpretasi lebih lanjut terhadap hasil regresi agar model yang dihasilkan benar-benar dapat menggambarkan hubungan antar variabel secara akurat. Tujuan utama dari pengujian ini adalah untuk memastikan bahwa estimasi parameter yang dihasilkan oleh model regresi bersifat tidak bias (unbiased), efisien, dan konsisten, sehingga keputusan yang diambil berdasarkan model tersebut memiliki landasan statistik yang kuat.
Adapun asumsi klasik yang wajib diuji dalam analisis regresi linier meliputi:
Pemenuhan asumsi-asumsi tersebut akan meningkatkan validitas dan reliabilitas model regresi yang dibangun. Pelanggaran terhadap salah satu atau lebih dari asumsi ini dapat menyebabkan hasil estimasi menjadi tidak valid atau menyesatkan (Gujarati & Porter, 2009; Wooldridge, 2016).
Asumsi normalitas mengacu pada keharusan bahwa residual atau galat (selisih antara nilai aktual dan nilai prediksi) dalam model regresi harus berdistribusi normal. Distribusi normal residual ini menjadi penting terutama ketika akan dilakukan uji hipotesis terhadap parameter model, seperti uji t dan uji F. Penyimpangan dari normalitas dapat menyebabkan hasil uji statistik menjadi tidak akurat.
Untuk mengevaluasi normalitas, dapat digunakan pendekatan grafis seperti:
Jika p-value dari uji Shapiro-Wilk > 0.05, maka residual berdistribusi normal. Jika grafik dan hasil uji statistik menunjukkan bahwa distribusi residual mendekati distribusi normal, maka asumsi ini dianggap terpenuhi (Field, 2018; Hair et al., 2019).
Heteroskedastisitas terjadi ketika varians dari residual tidak konstan di seluruh rentang data, atau dengan kata lain, terdapat ketidaksamaan varian (non-constant variance) dari satu pengamatan ke pengamatan lainnya. Keberadaan heteroskedastisitas dapat menyebabkan estimasi koefisien regresi tetap tidak bias, tetapi tidak efisien (standar error tidak akurat), sehingga uji hipotesis terhadap parameter regresi menjadi tidak valid.
Deteksi heteroskedastisitas dapat dilakukan melalui:
Jika hasil uji Breusch-Pagan menunjukkan p-value > 0.05, maka tidak terdapat masalah heteroskedastisitas. Jika pola residual menunjukkan bentuk tertentu (misalnya membentuk kipas), maka hal tersebut menjadi indikasi adanya heteroskedastisitas (Wooldridge, 2016; Greene, 2018).
Multikolinearitas adalah kondisi di mana terdapat hubungan linear yang tinggi antar variabel independen dalam model regresi. Kondisi ini menyebabkan ketidakstabilan dalam estimasi parameter regresi karena variabel-variabel bebas saling mempengaruhi satu sama lain. Akibatnya, standard error dari koefisien meningkat, dan dapat mengaburkan pengaruh sebenarnya dari masing-masing variabel independen terhadap variabel dependen.
Multikolinearitas dapat dideteksi dengan menggunakan nilai Variance Inflation Factor (VIF) dan Tolerance. Jika nilai VIF > 10 atau nilai Tolerance < 0,10, maka terdapat indikasi kuat adanya multikolinearitas. Model yang baik seharusnya memiliki nilai VIF < 10 dan Tolerance > 0,10 (Hair et al., 2019; Kutner et al., 2005).
Autokorelasi terjadi ketika residual pada satu observasi berkorelasi dengan residual pada observasi lainnya, terutama dalam data runtun waktu (time series). Autokorelasi menyebabkan pelanggaran terhadap asumsi independensi residual, yang dapat menghasilkan estimasi koefisien yang tidak efisien dan mengarah pada kesimpulan yang salah dalam uji statistik.
Deteksi autokorelasi biasanya dilakukan menggunakan uji Durbin-Watson (DW). Nilai DW yang mendekati 2 menunjukkan tidak adanya autokorelasi, sedangkan nilai di bawah 1,5 atau di atas 2,5 menunjukkan adanya autokorelasi positif atau negatif (Gujarati & Porter, 2009; Wooldridge, 2016).
Uji hipotesis dalam konteks regresi linier merupakan proses pengambilan keputusan statistik untuk menilai apakah terdapat hubungan yang signifikan antara variabel independen dan variabel dependen. Melalui uji ini, dapat ditentukan apakah koefisien regresi dari suatu variabel signifikan secara statistik atau tidak. Uji hipotesis terdiri dari dua jenis, yaitu uji simultan (uji F) dan uji parsial (uji t).
Uji F digunakan untuk menguji pengaruh semua variabel independen secara bersama-sama terhadap variabel dependen. Artinya, uji ini menjawab pertanyaan apakah model regresi secara keseluruhan dapat menjelaskan variasi yang signifikan dalam variabel dependen.
Kriteria pengambilan keputusan dalam uji F adalah:
Jika nilai signifikansi (p-value) < 0,05 maka H₀ ditolak dan Hₐ diterima, artinya model memiliki pengaruh yang signifikan secara simultan.
Jika nilai signifikansi ≥ 0,05 maka H₀ diterima, artinya tidak terdapat pengaruh simultan yang signifikan dari variabel bebas terhadap variabel terikat (Field, 2018).
Uji t digunakan untuk menguji pengaruh masing-masing variabel independen secara individual terhadap variabel dependen. Dengan uji ini, dapat diketahui variabel mana yang secara statistik memiliki kontribusi signifikan dalam menjelaskan variabel dependen.
Kriteria pengambilan keputusan dalam uji t adalah:
Jika nilai signifikansi (p-value) < 0,05 maka H₀ ditolak dan Hₐ diterima, menunjukkan bahwa variabel independen berpengaruh secara signifikan terhadap variabel dependen.
Jika nilai signifikansi ≥ 0,05 maka H₀ diterima, menunjukkan bahwa tidak terdapat pengaruh signifikan secara parsial (Hair et al., 2019).
Koefisien determinasi (R²) adalah ukuran statistik yang menunjukkan seberapa besar proporsi variasi dalam variabel dependen yang dapat dijelaskan oleh variabel independen dalam model. Nilai R² berkisar antara 0 hingga 1, di mana nilai yang mendekati 1 mengindikasikan bahwa model memiliki kemampuan yang tinggi dalam menjelaskan variabel dependen.
Sebaliknya, nilai R² yang rendah menunjukkan bahwa variabel independen hanya menjelaskan sebagian kecil variasi dalam variabel dependen, dan kemungkinan terdapat faktor lain yang memengaruhi (Wooldridge, 2016; Field, 2018).
library(tidyverse)
library(car)
library(lmtest)
library(readxl)
library(nortest)
library(ggplot2)
data <- read_excel("simproject.xlsx")
View(data)
# Membuat data frame manual
data <- data.frame(
Area_Code = c(720, 720, 970, 719, 719, 970, 970, 719, 970, 970, 970, 303, 970, 970, 970,
720, 720, 720, 720, 303, 719, 970, 719, 720, 303, 720, 970, 719, 719, 303,
720, 719, 303, 720, 719, 719, 303, 720, 720, 970, 720, 970, 970, 719, 719,
970, 719, 719, 303, 720, 719, 303, 720, 970, 970, 719, 719, 970, 970, 970,
719, 719, 970, 970, 970, 719),
Date = as.Date(c(
"2013-01-01","2013-01-01","2013-01-01","2013-01-01","2013-01-01","2013-02-01","2013-02-01",
"2013-02-01","2013-02-01","2013-02-01","2013-03-01","2013-03-01","2013-03-01","2013-03-01",
"2013-03-01","2013-04-01","2013-04-01","2013-04-01","2013-04-01","2013-04-01","2013-05-01",
"2013-05-01","2013-05-01","2013-05-01","2013-05-01","2013-06-01","2013-06-01","2013-06-01",
"2013-06-01","2013-06-01","2013-07-01","2013-07-01","2013-07-01","2013-07-01","2013-07-01",
"2013-08-01","2013-08-01","2013-08-01","2013-08-01","2013-08-01","2013-09-01","2013-09-01",
"2013-09-01","2013-09-01","2013-09-01","2013-10-01","2013-10-01","2013-10-01","2013-10-01",
"2013-10-01","2013-11-01","2013-11-01","2013-11-01","2013-11-01","2013-11-01","2013-12-01",
"2013-12-01","2013-12-01","2013-12-01","2013-12-01")),
Market = rep("Central", 63),
Market_Size = rep("Major Market", 63),
Product = c("Chamomile","Lemon","Mint","Darjeeling","Earl Grey","Chamomile","Lemon","Mint",
"Darjeeling","Earl Grey","Chamomile","Lemon","Mint","Darjeeling","Earl Grey",
"Chamomile","Lemon","Mint","Darjeeling","Earl Grey","Chamomile","Lemon","Mint",
"Darjeeling","Earl Grey","Chamomile","Lemon","Mint","Darjeeling","Earl Grey",
"Chamomile","Lemon","Mint","Darjeeling","Earl Grey","Chamomile","Lemon","Mint",
"Darjeeling","Earl Grey","Chamomile","Lemon","Mint","Darjeeling","Earl Grey",
"Chamomile","Lemon","Mint","Darjeeling","Earl Grey","Chamomile","Lemon","Mint",
"Darjeeling","Earl Grey","Chamomile","Lemon","Mint","Darjeeling","Earl Grey"),
Product_Line = rep("Leaves", 63),
Product_Type = c(rep("Herbal Tea", 3), rep("Tea", 2), rep("Herbal Tea", 3), rep("Tea", 2),
rep("Herbal Tea", 3), rep("Tea", 2), rep("Herbal Tea", 3), rep("Tea", 2),
rep("Herbal Tea", 3), rep("Tea", 2), rep("Herbal Tea", 3), rep("Tea", 2),
rep("Herbal Tea", 3), rep("Tea", 2), rep("Herbal Tea", 3), rep("Tea", 2),
rep("Herbal Tea", 3), rep("Tea", 2), rep("Herbal Tea", 3), rep("Tea", 2),
rep("Herbal Tea", 3), rep("Tea", 2), rep("Herbal Tea", 3), rep("Tea", 2),
rep("Herbal Tea", 3), rep("Tea", 2)),
State = rep("Colorado", 63),
Type = c(rep("Decaf", 3), rep("Regular", 2), rep("Decaf", 3), rep("Regular", 2),
rep("Decaf", 3), rep("Regular", 2), rep("Decaf", 3), rep("Regular", 2),
rep("Decaf", 3), rep("Regular", 2), rep("Decaf", 3), rep("Regular", 2),
rep("Decaf", 3), rep("Regular", 2), rep("Decaf", 3), rep("Regular", 2),
rep("Decaf", 3), rep("Regular", 2), rep("Decaf", 3), rep("Regular", 2),
rep("Decaf", 3), rep("Regular", 2), rep("Decaf", 3), rep("Regular", 2),
rep("Decaf", 3), rep("Regular", 2)),
COGS = c(170, 63, 60, 58, 64, 170, 54, 60, 59, 62, 162, 52, 57, 58, 62, 162, 52, 55, 54, 63,
149, 53, 52, 53, 56, 149, 44, 50, 51, 53, 145, 39, 47, 51, 50, 145, 37, 46, 49, 41,
155, 52, 53, 45, 51, 161, 51, 52, 54, 54, 181, 52, 59, 55, 57, 153, 47, 54, 46, 53),
Inventory = c(1091, 435, 336, 338, 965, 1073, 427, 329, 331, 958, 1059, 421, 323, 325, 952,
1091, 433, 336, 337, 965, 1156, 458, 361, 361, 992, 1245, 496, 397, 396, 1028,
1304, 517, 420, 419, 1051, 1292, 513, 415, 414, 1046, 1280, 509, 410, 409, 1042,
1267, 503, 405, 404, 1037, 1283, 509, 411, 410, 1042, 1319, 521, 424, 422, 1054),
Margin = c(171, 87, 80, 72, 76, 170, 75, 80, 73, 74, 163, 73, 77, 71, 73, 163, 73, 74, 67, 75,
149, 75, 71, 65, 66, 149, 63, 68, 64, 64, 146, 56, 63, 64, 59, 146, 52, 62, 60, 50,
155, 74, 72, 57, 62, 161, 71, 71, 66, 64, 182, 73, 79, 69, 68, 153, 65, 73, 57, 63),
Marketing = c(47, 57, 19, 22, 19, 47, 49, 19, 22, 19, 45, 47, 18, 22, 19, 45, 47, 18, 20, 19,
41, 48, 17, 20, 17, 41, 40, 16, 19, 16, 40, 36, 15, 19, 15, 40, 33, 15, 18, 12,
43, 47, 17, 17, 15, 45, 46, 17, 20, 16, 50, 47, 19, 20, 17, 42, 42, 17, 17, 16),
Profit = c(154, 0, 51, 26, 56, 147, -4, 49, 27, 50, 140, -6, 46, 24, 47, 140, -6, 43, 19, 50,
115, -4, 36, 17, 37, 115, -10, 33, 15, 37, 112, -14, 29, 17, 32, 113, -14, 28, 12,
22, 129, -3, 40, 10, 37, 137, -7, 39, 19, 40, 159, -6, 47, 22, 43, 129, -9, 43, 9,
39),
Sales = c(382, 168, 157, 145, 157, 362, 137, 149, 141, 145, 346, 133, 143, 137, 144, 346,
133, 137, 129, 147, 295, 127, 122, 117, 121, 295, 106, 117, 114, 116, 288, 94,
109, 114, 108, 288, 88, 107, 108, 90, 330, 134, 133, 109, 120, 343, 130, 131, 128,
126, 387, 133, 147, 132, 133, 326, 119, 135, 110, 124),
Total_Expenses = c(76, 91, 49, 58, 42, 71, 78, 47, 55, 40, 69, 77, 46, 55, 41, 69, 77, 45,
54, 41, 61, 73, 42, 49, 36, 61, 65, 41, 49, 34, 60, 61, 39, 48, 33, 60, 58,
39, 47, 32, 68, 76, 45, 50, 37, 69, 76, 45, 53, 37, 75, 77, 47, 54, 39, 66,
71, 44, 51, 37)
)
model <- lm(Profit ~ COGS + Marketing + Inventory + Margin, data = data)
summary(model)
model1 <- lm(Profit ~ COGS, data = data)
summary(model1)
par(mfrow=c(2,2)); plot(model1)
model2 <- lm(Profit ~ Marketing, data = data)
summary(model2)
par(mfrow=c(2,2)); plot(model2)
model3 <- lm(Profit ~ Inventory, data = data)
summary(model3)
par(mfrow=c(2,2)); plot(model3)
model4 <- lm(Profit ~ Margin, data = data)
summary(model4)
par(mfrow=c(2,2)); plot(model4)
##
## Call:
## lm(formula = Profit ~ COGS + Marketing + Inventory + Margin, data = data)
##
## Residuals:
## Min 1Q Median 3Q Max
## -10.1969 -1.1753 -0.0418 1.6657 10.1317
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -71.79382 4.10374 -17.50 < 2e-16 ***
## COGS -0.99862 0.15653 -6.38 3.90e-08 ***
## Marketing -1.70404 0.05166 -32.99 < 2e-16 ***
## Inventory 0.02548 0.00238 10.70 4.62e-15 ***
## Margin 2.55973 0.17668 14.49 < 2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 3.457 on 55 degrees of freedom
## Multiple R-squared: 0.9953, Adjusted R-squared: 0.9949
## F-statistic: 2883 on 4 and 55 DF, p-value: < 2.2e-16
Persamaan Regresi: Profit = -71.79382 – 0.99862(X1) – 1.70404(X2) + 0.02548(X3) + 2.55973(X4)
Interpretasi Model:
Nilai Adjusted R-squared sebesar 0.9949 menunjukkan bahwa model dapat menjelaskan 99.49% variasi profit yang terjadi. Sisanya sebesar 0.51% dijelaskan oleh variabel lain di luar model.
summary(model)$fstatistic
value numdf dendf 2882.945 4.000 55.000
Interpretasi: Nilai F hitung = 2882.945 dengan p-value < 0.05, maka H0 ditolak. Artinya, terdapat pengaruh yang signifikan secara simultan antara COGS, Marketing, Inventory, dan Margin terhadap Profit.
summary(model)
Lihat nilai p-value dari masing-masing variabel:
Kesimpulan: Semua variabel independen berpengaruh signifikan secara parsial terhadap profit (α = 0.05).
shapiro.test(model$residuals)
ad.test(model$residuals)
qqnorm(model$residuals)
qqline(model$residuals)
qqnorm(resid(model1)); qqline(resid(model1), col = "blue")
hist(resid(model1), col = "lightblue", main = "Histogram Residuals")
Shapiro-Wilk normality test: W = 0.93223, p-value = 0.002472
Anderson-Darling normality test: A = 1.5469, p-value = 0.0004967
Interpretasi: Karena p-value < 0.05, maka H0 ditolak, menunjukkan bahwa residual tidak berdistribusi normal sempurna. Namun, karena jumlah data cukup besar dan model memiliki R² tinggi, pelanggaran ini masih dapat ditoleransi dalam konteks praktis. ## Asumsi Heteroskedastisitas
bptest(model)
Breusch-Pagan test: BP = 23.198, df = 4, p-value = 0.0001156
Interpretasi: p-value < 0.05 → H0 ditolak. Terdapat indikasi heteroskedastisitas dalam model, yang berarti varians residual tidak konstan.
vif(model)
COGS Marketing Inventory Margin
225.803961 2.423738 3.528708 216.398930
Interpretasi: Terdapat multikolinearitas sangat tinggi antara variabel COGS dan Margin (VIF > 10), khususnya karena VIF > 200. Hal ini menunjukkan adanya hubungan linear yang sangat kuat antar variabel independen, yang dapat memengaruhi stabilitas estimasi regresi.
dwtest(model)
Durbin-Watson test: DW = 1.7602, p-value = 0.2041
Interpretasi: p-value > 0.05 → H0 diterima. Tidak terdapat autokorelasi dalam residual.
Berdasarkan hasil analisis regresi linier berganda terhadap data penjualan produk kopi dan teh di Colorado tahun 2013, diperoleh bahwa: