Mengetahui faktor-faktor yang memengaruhi keuntungan menjadi hal penting dalam pengelolaan bisnis. Dengan menganalisis data penjualan, perusahaan bisa mengevaluasi strategi yang digunakan dan mengambil keputusan berdasarkan bukti nyata. Regresi linear berganda digunakan dalam analisis ini untuk melihat hubungan antara anggaran penjualan, total pengeluaran, dan keuntungan.
Analisis ini bertujuan untuk mengukur pengaruh anggaran penjualan (Budget Sales) dan biaya produksi (Total Expenses) terhadap keuntungan penjualan (Profit) pada dataset Coffee Chain Datasets menggunakan regresi linear berganda. Selain membangun model regresi dan uji hipotesis, analisis ini juga memvalidasi model melalui uji asumsi klasik untuk memastikan hasil yang valid dan tidak bias.
Selain membangun model regresi dan melakukan uji hipotesis, analisis ini juga dilengkapi dengan uji asumsi klasik yang meliputi normalitas, multikolinearitas, autokorelasi, dan homoskedastisitas. Langkah ini penting untuk memastikan bahwa model yang dihasilkan tidak hanya signifikan secara statistik, tetapi juga valid dan tidak mengandung bias estimasi.
Dengan pendekatan ini, hasil analisis diharapkan dapat memberikan landasan yang kuat dalam mengevaluasi efisiensi pengeluaran dan strategi penjualan perusahaan, serta menjadi dasar pengambilan keputusan yang lebih akurat dan berbasis data.
Dataset Coffee Chain Datasets berisi informasi penjualan, anggaran penjualan, Total Expenses, dan keuntungan. Variabel yang digunakan adalah:
# Memuat paket yang diperlukan
library(readxl)
library(dplyr)
library(ggplot2)
library(lmtest)
library(car)
library(nortest)
library(corrplot)
library(gridExtra)
library(knitr)# Mengimport data dari file excel
coffee_data <- readxl::read_excel("C:\\SEMESTER 4\\SIM\\CM 1 SIM DATA NEWYORK.xlsx")
# Memilih variabel yang digunakan
data <- coffee_data %>%
select(Profit, `Budget Sales`, `Total Expenses`)## Profit Budget Sales Total Expenses
## Min. :-420.0 Min. : 50.0 Min. : 26.00
## 1st Qu.: 9.0 1st Qu.:147.5 1st Qu.: 40.00
## Median : 133.5 Median :270.0 Median : 91.00
## Mean : 104.7 Mean :331.1 Mean : 91.86
## 3rd Qu.: 248.0 3rd Qu.:522.5 3rd Qu.:138.50
## Max. : 646.0 Max. :860.0 Max. :189.00
Ringkasan statistik menunjukkan distribusi data untuk Profit, Budget Sales, dan Total Expenses, termasuk nilai minimum, maksimum, rata-rata, dan median.
Regresi linear berganda dimodelkan sebagai:
\[ Profit = \beta_0 + \beta_1 \cdot \text{Budget Sales} + \beta_2 \cdot Total Expenses + \epsilon \]
Di mana:
\(\beta_0\): Intersep.
\(\beta_1\): Koefisien untuk Budget Sales.
\(\beta_2\): Koefisien untuk Total Expenses.
\(\epsilon\): Galat acak.
Hasil:
# Maka model perlu diubah → pakai bobot
weights <- 1 / (data$`Total Expenses`^2)
# Membuat model regresi
model <- lm((Profit) ~ (`Budget Sales`) + (`Total Expenses`), data = data)
# Ringkasan model
summary(model)##
## Call:
## lm(formula = (Profit) ~ (`Budget Sales`) + (`Total Expenses`),
## data = data)
##
## Residuals:
## Min 1Q Median 3Q Max
## -244.488 -41.245 3.824 44.923 227.001
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -81.40336 12.48725 -6.519 6.28e-10 ***
## `Budget Sales` 1.03949 0.02561 40.587 < 2e-16 ***
## `Total Expenses` -1.72168 0.11620 -14.816 < 2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 72.97 on 189 degrees of freedom
## Multiple R-squared: 0.8973, Adjusted R-squared: 0.8962
## F-statistic: 825.6 on 2 and 189 DF, p-value: < 2.2e-16
Berdasarkan hasil estimasi model regresi linear berganda yang diperoleh, diperoleh model:
\[ Profit = -81.40336 + 1.03949 \times Budget Sales -1.72168 \times Total Expenses \]
dengan:
Intercept (\(\beta_0 = -81.40336\)): menunjukkan bahwa jika \(\text{Budget Sales}\) dan \(\text{Total Expenses}\) bernilai nol, maka keuntungan (\(\text{Profit}\)) diprediksi sebesar $-81.40336. Secara praktis, nilai ini kurang bermakna karena nilai 0 jarang terjadi untuk kedua variabel tersebut.
Koefisien Budget Sales (\(\beta_1 = 1.03949\)): menunjukkan bahwa setiap peningkatan anggaran penjualan sebesar $1 akan meningkatkan keuntungan sebesar $1.03949, dengan asumsi \(\text{Total Expenses}\) tetap.
Koefisien Total Expenses (\(\beta_2 = -1.72168\)): menunjukkan bahwa setiap peningkatan biaya pokok penjualan sebesar $1 akan menurunkan keuntungan sebesar $1.72168, dengan asumsi \(\text{Budget Sales}\) tetap.
Tujuan: Menguji apakah Budget Sales dan Total Expenses secara bersama-sama berpengaruh signifikan terhadap Profit.
i. Hipotesis: \[ H_0: \beta_1 = \beta_2 = 0 \quad (\text{Kedua variabel independen secara simultan tidak berpengaruh signifikan terhadap Profit}) \] \[ H_1: \beta_i \neq 0 \quad (\text{Minimal terdapat satu variabel independen berpengaruh signifikan terhadap Profit}) \]
ii. Taraf signifikansi: \(\alpha = 5\%\)
iii. Daerah kritis: \(H_0\) ditolak apabila nilai p-value < \(\alpha = 0,05\)
iv. Statistik Uji:
Hasil:
## Analysis of Variance Table
##
## Response: (Profit)
## Df Sum Sq Mean Sq F value Pr(>F)
## `Budget Sales` 1 7623231 7623231 1431.75 < 2.2e-16 ***
## `Total Expenses` 1 1168862 1168862 219.53 < 2.2e-16 ***
## Residuals 189 1006317 5324
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Call:
## lm(formula = (Profit) ~ (`Budget Sales`) + (`Total Expenses`),
## data = data)
##
## Residuals:
## Min 1Q Median 3Q Max
## -244.488 -41.245 3.824 44.923 227.001
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -81.40336 12.48725 -6.519 6.28e-10 ***
## `Budget Sales` 1.03949 0.02561 40.587 < 2e-16 ***
## `Total Expenses` -1.72168 0.11620 -14.816 < 2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 72.97 on 189 degrees of freedom
## Multiple R-squared: 0.8973, Adjusted R-squared: 0.8962
## F-statistic: 825.6 on 2 and 189 DF, p-value: < 2.2e-16
Karena p-value untuk uji F adalah \(2.2e^{-16}\) < 0,05, maka tolak \(H_0\), artinya terdapat pengaruh yang signifikan secara simultan dari Budget Sales dan Total Expenses terhadap Profit.
Tujuan: Menguji apakah masing-masing variabel (Budget Sales dan Total Expenses) berpengaruh signifikan terhadap Profit.
i. Hipotesis (untuk setiap \(\beta_i\)):
\(\beta_1\) : Budget Sales \[ H_0: \beta_1 = 0 \quad (\text{Budget Sales tidak berpengaruh signifikan terhadap Profit}) \] \[ H_1: \beta_1 \neq 0 \quad (\text{Budget Sales berpengaruh signifikan terhadap Profit}) \]
\(\beta_2\): Total Expenses \[ H_0: \beta_2 = 0 \quad (\text{Total Expenses tidak berpengaruh signifikan terhadap Profit}) \] \[ H_1: \beta_2 \neq 0 \quad (\text{Total Expenses berpengaruh signifikan terhadap Profit}) \]
ii. Taraf signifikansi: \(\alpha = 5\%\)
iii. Daerah kritis: \(H_0\) ditolak apabila nilai p-value < \(\alpha = 0,05\)
iv. Statistik Uji:
Hasil:
##
## Call:
## lm(formula = (Profit) ~ (`Budget Sales`) + (`Total Expenses`),
## data = data)
##
## Residuals:
## Min 1Q Median 3Q Max
## -244.488 -41.245 3.824 44.923 227.001
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -81.40336 12.48725 -6.519 6.28e-10 ***
## `Budget Sales` 1.03949 0.02561 40.587 < 2e-16 ***
## `Total Expenses` -1.72168 0.11620 -14.816 < 2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 72.97 on 189 degrees of freedom
## Multiple R-squared: 0.8973, Adjusted R-squared: 0.8962
## F-statistic: 825.6 on 2 and 189 DF, p-value: < 2.2e-16
Karena p-value untuk variabel Budget Sales adalah \(2.2e^{-16}\) < \(\alpha = 0,05\), dan Total Expenses adalah \(2.2e^{-16}\) < \(\alpha = 0,05\), maka tolak \(H_0\), artinya Budget Sales dan Total Expenses keduanya berpengaruh signifikan secara parsial terhadap Profit.
Untuk memastikan model regresi valid, kita menguji lima asumsi klasik berikut dengan plot, uji statistik, dan interpretasi apakah asumsi terpenuhi serta implikasinya.
Tujuan: Memastikan hubungan antara variabel independen (Budget Sales, Total Expenses) dan dependen (Profit) bersifat linier.
Metode: Ramsey reset Test dan Residual vs Fitted Plot .
i. Hipotesis: \[ H_0: \beta_1 = \beta_2 = 0 \quad (\text{ Budget Sales dan Total Expenses tidak ada pengaruh signifikan terhadap Profit}) \] \[ H_1: \beta_i \neq 0 \quad (\text{ Sedikitnya satu ada pengaruh signifikan terhadap Profit}) \]
ii. Taraf signifikansi: \(\alpha = 5\%\)
iii. Daerah kritis: \(H_0\) ditolak apabila nilai p-value < \(\alpha = 0,05\)
iv. Statistik Uji:
Hasil:
# Uji Asumsi Linearitas menggunakan Ramsey RESET
ramsey_test <- resettest(model, power = 2)
ramsey_test##
## RESET test
##
## data: model
## RESET = 16.691, df1 = 1, df2 = 188, p-value = 6.507e-05
Plot:
# Residual vs Fitted Plot
ggplot(data = data.frame(fitted = fitted(model), residuals = residuals(model)),
aes(x = fitted, y = residuals)) +
geom_point(color = "#4a3728", alpha = 0.6) +
geom_hline(yintercept = 0, linetype = "dashed", color = "#4a3728") +
theme_minimal() +
labs(title = "Residual vs Fitted Plot untuk Uji Linearitas",
x = "Nilai Fitted", y = "Residual") +
theme(plot.title = element_text(hjust = 0.5, face = "bold", color = "#4a3728"))Berdasarkan plot di atas dan hasil Ramsey test, sebaran residual tampak cukup acak di sekitar garis nol, sehingga asumsi linearitas cenderung terpenuhi dan nilai p-value = \(6.507e^{-05}\) < \(\alpha = 0,05\), maka \(H_0\) gagal ditolak sehingga Sedikitnya satu ada pengaruh signifikan terhadap Profit. Model regresi linear berganda memenuhi asumsi linearitas.
Tujuan: Memastikan residual model berdistribusi normal.
Metode: Uji Shapiro-Wilk, Histogram Residual, dan Q-Q Plot.
i. Hipotesis: \[ H_0: (\text{Residu berdistribusi normal}) \] \[ H_1: (\text{Residu tidak berdistribusi normal}) \]
ii. Taraf signifikansi: \(\alpha = 5\%\)
iii. Daerah kritis: \(H_0\) ditolak apabila nilai p-value < \(\alpha = 0,05\)
iv. Statistik Uji:
Hasil:
##
## Shapiro-Wilk normality test
##
## data: residuals(model)
## W = 0.98938, p-value = 0.1649
# Plot
ggplot(data = data.frame(residuals = residuals(model)), aes(x = residuals)) +
geom_histogram(aes(y = ..density..), bins = 30, fill = "#4a3728", alpha = 0.7) +
stat_function(fun = dnorm, args = list(mean = mean(residuals(model)),
sd = sd(residuals(model))),
color = "red", size = 1) +
theme_minimal() +
labs(title = "Histogram Residual untuk Uji Normalitas",
x = "Residual", y = "Densitas") +
theme(plot.title = element_text(hjust = 0.5, face = "bold", color = "#4a3728"))par(mfrow = c(1, 1))
# Grafik QQ Plot untuk normalitas residual
qqnorm(resid(model), col = "#4a3728")
qqline(resid(model), col = "red")v. Interpretasi:
Berdasarkan hasil uji normalitas residual, diperoleh
nilai statistik Shapiro-Wilk dengan p-value = 0.1649 > \(\alpha = 0,05\), maka dapat disimpulkan bahwa residual berdistribusi normal secara statistik.
Histogram residual menunjukkan pola yang menyerupai kurva normal (bell-shaped).
Q-Q plot memperlihatkan bahwa sebagian besar titik residual berada dekat dengan garis diagonal, hanya mengalami sedikit penyimpangan di bagian ekor.
Oleh karena itu, baik secara statistik maupun visual, dapat disimpulkan bahwa asumsi normalitas pada model regresi telah terpenuhi.
Tujuan: Memastikan varians residual konstan untuk semua nilai variabel independen (tidak ada heteroskedastisitas).
Metode: Uji Breusch-Pagan dan Scale-Location Plot.
i. Hipotesis: \[ H_0: (\text{Terdapat homoskedastisitas residu}) \] \[ H_1: (\text{Tidak terdapat homoskedastisitas residu}) \]
ii. Taraf signifikansi: \(\alpha = 5\%\)
iii. Daerah kritis: \(H_0\) ditolak apabila nilai p-value < \(\alpha = 0,05\)
iv. Statistik Uji:
Hasil:
# memakai bobot
weights <- 1 / (data$`Total Expenses`^2)
# Model baru: WLS
model_wls <- lm(Profit ~ `Budget Sales` + `Total Expenses`, data = data, weights = weights)
# Uji Breusch-Pagan
bptest(model_wls)##
## studentized Breusch-Pagan test
##
## data: model_wls
## BP = 0.0049654, df = 2, p-value = 0.9975
Hasil grafik Residual vs Fitted dan Scale-Location Plot menunjukkan pola yang tidak acak, serta p-value uji Breusch-Pagan sebesar 0.9975 > 0.05. Hal ini menandakan bahwa asumsi homoskedastisitas terpenuhi, sehingga tidak terdapat heteroskedastisitas dalam model regresi.
Tujuan: Memastikan tidak ada korelasi kuat antar variabel independen (Budget Sales dan Total Expenses).
Metode: Variance Inflation Factor (VIF) dan plot VIF
i. Hipotesis: \[ H_0: (\text{Tidak terjadi multikolinearitas}) \] \[ H_1: (\text{Terjadi multikolinearitas}) \]
ii. Taraf signifikansi: \(\alpha = 5\%\)
iii. Daerah kritis: \(H_0\) ditolak apabila nilai VIF > 10
iv. Statistik Uji:
Hasil:
## `Budget Sales` `Total Expenses`
## 1.11289 1.11289
# Membuat plot VIF
vif_values <- vif(model)
plot(vif_values, type = "bar", main = "VIF Plot", col = "#4a3728", border = "#332211")Nilai VIF untuk kedua variabel sebesar 1.11289 < 10, yang jauh di bawah batas 10, menunjukkan bahwa tidak terdapat multikolinearitas dalam model regresi.
Tujuan: Memastikan residual tidak berkorelasi secara serial.
Metode: Uji Durbin-Watson dan Plot ACF (Autocorrelation Function).
i. Hipotesis: \[ H_0: (\text{Tidak ada autokorelasi antar residu}) \] \[ H_1: (\text{Terjadi autokorelasi antar residu}) \]
ii. Taraf signifikansi: \(\alpha = 5\%\)
iii. Daerah kritis: \(H_0\) ditolak apabila nilai p-value < \(\alpha = 0,05\)
iv. Statistik Uji:
Hasil:
model_ols <- lm(Profit ~ `Budget Sales` + `Total Expenses`, data = data)
# Uji Durbin-Watson
dwtest(model_ols)##
## Durbin-Watson test
##
## data: model_ols
## DW = 2.314, p-value = 0.9855
## alternative hypothesis: true autocorrelation is greater than 0
# Plot ACF residual
acf(residuals(model), main = "Plot ACF Residual untuk Uji Non-Autokorelasi",
col = "#4a3728", lwd = 2)Nilai Durbin-Watson sebesar 2.314 dengan p-value = 0.9855 menunjukkan bahwa tidak terdapat autokorelasi dalam model, dan plot ACF residual memperkuat hal ini karena sebagian besar batang berada dalam batas kepercayaan.
Hasil:
# Verify column names exist in data
if (!all(c("Profit", "Budget Sales", "Total Expenses") %in% colnames(data))) {
stop("Error: One or more required columns (Profit, Budget Sales, Total Expenses) not found in data")
}
# Scatter plot untuk Budget Sales vs Profit
p1 <- ggplot(data, aes(x = `Budget Sales`, y = Profit)) +
geom_point(color = "#4a3728", alpha = 0.6) +
geom_smooth(method = "lm", color = "#332211", se = FALSE) +
theme_minimal() +
labs(title = "Hubungan Budget Sales dan Keuntungan",
x = "Budget Sales ($)", y = "Keuntungan ($)") +
theme(plot.title = element_text(hjust = 0.5, face = "bold", color = "#4a3728"))
# Scatter plot untuk Total Expenses vs Profit
p2 <- ggplot(data, aes(x = `Total Expenses`, y = Profit)) +
geom_point(color = "#4a3728", alpha = 0.6) +
geom_smooth(method = "lm", color = "#332211", se = FALSE) +
theme_minimal() +
labs(title = "Hubungan Total Expenses dan Keuntungan",
x = "Total Expenses ($)", y = "Keuntungan ($)") +
theme(plot.title = element_text(hjust = 0.5, face = "bold", color = "#4a3728"))
# Menampilkan kedua plot
library(gridExtra)
grid.arrange(p1, p2, ncol = 2)Interpretasi:
Plot menunjukkan bahwa Budget Sales memiliki hubungan positif yang kuat dengan Profit, terlihat dari pola linear yang jelas dan kemiringan garis regresi ke atas. Sebaliknya, Total Expenses menunjukkan hubungan negatif yang sangat lemah dengan Profit, ditandai oleh sebaran data yang menyebar dan garis regresi hampir datar. Ini mengindikasikan bahwa Budget Sales adalah prediktor yang lebih kuat terhadap Profit dibandingkan Total Expenses.
| Uji.Asumsi | Keterangan |
|---|---|
| Linearitas | Terpenuhi |
| Normalitas Residu | Terpenuhi |
| Homoskedastisitas | Terpenuhi |
| Non Multikolinearitas | Terpenuhi |
| Non Autokorelasi | Terpenuhi |
Berdasarkan analisis regresi linear berganda:
1. Model regresi linear berganda dengan variabel prediktor Budget Sales dan Total Expenses menunjukkan hasil yang signifikan secara simultan maupun parsial, dengan nilai Adjusted R-squared sebesar 0.8962, yang berarti sekitar 89,62% variasi Profit dapat dijelaskan oleh kedua variabel tersebut.
2. Koefisien regresi menunjukkan bahwa:
Setiap kenaikan Budget Sales sebesar $1 akan meningkatkan Profit sebesar $1.03949.
Setiap kenaikan Total Expenses sebesar $1 akan menurunkan Profit sebesar $1.72168.
3. Hasil uji asumsi klasik menunjukkan: - Uji asumsi Linearitas, Normalitas Residu, Homoskedastisitas, non-multikolinearitas, dan non-autokorelasi terpenuhi.
4. Visualisasi scatter plot menunjukkan bahwa Budget Sales memiliki hubungan yang jauh lebih kuat terhadap Profit dibandingkan Total Expenses.
5. Berdasarkan uji asumsi klasik, semua uji asumsi yakni uji asumsi linearitas, uji normalitas residu, uji homoskedastisitas, uji non multikolinearitas, dan uji non autokorelasi terpenuhi sehingga model regresi ini layak untuk digunakan.