Analisis Pengaruh Sales, COGS, Total Expenses, Inventory, Market Size, dan Type terhadap Profit pada Perusahaan Ritel: Pendekatan Stepwise Regression

Naufal Arigoh U - M0723063

Pendahuluan

Dalam dunia bisnis yang kompetitif, kemampuan untuk memprediksi profit (keuntungan) secara akurat menjadi hal yang sangat krusial bagi perrusahaan. Profit merupakan indikator utama kesehatan finansial dan kinerja operasional suatu perusahaan. Oleh karena itu, memahami komponen mana yang paling berpengaruh terhadap profit dapat membantu manajemen membuat keputusan yang lebih baik dan strategis.

Dalam operasional sehari-hari, perusahaan memiliki berbagai data internal yang dapat dianalisis, seperti penjualan (Sales), biaya pokok penjualan (COGS), total pengeluaran (Total Expenses), nilai persediaan (Inventory), serta informasi tentang ukuran pasar (Market Size) dan jenis toko (Type). Namun, tidak semua variabel tersebut memberikan kontribusi signifikan terhadap profit. Pemilihan variabel yang tepat sangat penting agar model prediksi yang dibangun menjadi efisien, akurat, dan mudah diinterpretasikan.

Untuk itu, pada penelitian ini digunakan pendekatan Stepwise Regression, yaitu metode pemilihan variabel otomatis yang mempertimbangkan efisiensi model berdasarkan kriteria statistik tertentu, salah satunya adalah Akaike Information Criterion (AIC). Dengan metode ini, hanya variabel-variabel yang benar-benar relevan terhadap profit yang akan dipertahankan dalam model akhir. Melalui analisis ini, diharapkan dapat diperoleh pemahaman yang lebih baik mengenai faktor-faktor utama yang memengaruhi profit, serta menghasilkan model prediksi yang dapat digunakan sebagai dasar pengambilan keputusan bisnis di masa depan.

Library dan Data yang Diperlukan

# Load library yang diperlukan
library(readxl)
library(janitor)
library(car)
library(MASS)
# Import Data
data <- read_excel("D:/SEMESTER 4/SISTEM INFORMASI MANAJEMEN/datacm.xlsx")

Pengolahan Data

Syntax dibawah digunakan untuk menghapus format huruf besar dan spasi dari nama variabel digantikan dengan huruf kecil dan simbol “_“

data <- clean_names(data)
colnames(data)
##  [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"
# Ubah variabel kategorikal menjadi variabel faktor
data$MarketSize <- as.factor(data$market_size)
data$Type <- as.factor(data$type)

Pembangunan Model Awal

# Model awal: semua variabel dimasukkan
full_model <- lm(profit ~ sales + cogs + total_expenses + inventory + market_size + type, data = data)
# Tampilkan hasil model awal
summary(full_model)
## 
## Call:
## lm(formula = profit ~ sales + cogs + total_expenses + inventory + 
##     market_size + type, data = data)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -112.909   -5.421    0.211    5.568  105.143 
## 
## Coefficients:
##                           Estimate Std. Error t value Pr(>|t|)    
## (Intercept)             -0.5349933  0.7601214  -0.704    0.482    
## sales                    1.2098361  0.0047677 253.755   <2e-16 ***
## cogs                    -1.2360293  0.0144415 -85.589   <2e-16 ***
## total_expenses          -1.2620345  0.0131659 -95.856   <2e-16 ***
## inventory                0.0006843  0.0006459   1.060    0.289    
## market_sizeSmall Market  0.3458065  0.5613301   0.616    0.538    
## typeRegular              0.0378695  0.5259041   0.072    0.943    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 16.9 on 4241 degrees of freedom
## Multiple R-squared:  0.9724, Adjusted R-squared:  0.9724 
## F-statistic: 2.492e+04 on 6 and 4241 DF,  p-value: < 2.2e-16

Hasil awal menunjukkan bahwa tidak semua variabel berkontribusi signifikan terhadap prediksi profit.

Stepwise Regression

Untuk memperoleh model yang lebih efisien, dilakukan stepwise regression menggunakan metode kombinasi forward dan backward selection berdasarkan kriteria AIC (Akaike Information Criterion).

Hasilnya adalah model akhir yang hanya mempertahankan variabel-variabel yang paling berkontribusi dalam menjelaskan variasi profit secara signifikan.

# Stepwise Regression (kombinasi forward & backward)
stepwise_model <- stepAIC(full_model, direction = "both", trace = TRUE)
## Start:  AIC=24029.69
## profit ~ sales + cogs + total_expenses + inventory + market_size + 
##     type
## 
##                  Df Sum of Sq      RSS   AIC
## - type            1         1  1211799 24028
## - market_size     1       108  1211906 24028
## - inventory       1       321  1212118 24029
## <none>                         1211798 24030
## - cogs            1   2093120  3304918 28290
## - total_expenses  1   2625433  3837231 28924
## - sales           1  18398797 19610595 35854
## 
## Step:  AIC=24027.7
## profit ~ sales + cogs + total_expenses + inventory + market_size
## 
##                  Df Sum of Sq      RSS   AIC
## - market_size     1       108  1211908 24026
## - inventory       1       320  1212119 24027
## <none>                         1211799 24028
## + type            1         1  1211798 24030
## - cogs            1   2095290  3307089 28291
## - total_expenses  1   2638983  3850783 28937
## - sales           1  18410202 19622001 35854
## 
## Step:  AIC=24026.08
## profit ~ sales + cogs + total_expenses + inventory
## 
##                  Df Sum of Sq      RSS   AIC
## - inventory       1       328  1212235 24025
## <none>                         1211908 24026
## + market_size     1       108  1211799 24028
## + type            1         1  1211906 24028
## - cogs            1   2116383  3328290 28316
## - total_expenses  1   2678306  3890214 28978
## - sales           1  18475451 19687359 35867
## 
## Step:  AIC=24025.23
## profit ~ sales + cogs + total_expenses
## 
##                  Df Sum of Sq      RSS   AIC
## <none>                         1212235 24025
## + inventory       1       328  1211908 24026
## + market_size     1       117  1212119 24027
## + type            1         0  1212235 24027
## - total_expenses  1   2748145  3960380 29052
## - cogs            1   4555710  5767945 30649
## - sales           1  30188516 31400752 37848
# Tampilkan hasil akhir model
summary(stepwise_model)
## 
## Call:
## lm(formula = profit ~ sales + cogs + total_expenses, data = data)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -112.712   -5.413    0.283    5.637  104.944 
## 
## Coefficients:
##                 Estimate Std. Error  t value Pr(>|t|)    
## (Intercept)     0.021583   0.514584    0.042    0.967    
## sales           1.206475   0.003711  325.099   <2e-16 ***
## cogs           -1.225534   0.009704 -126.291   <2e-16 ***
## total_expenses -1.263012   0.012876  -98.088   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 16.9 on 4244 degrees of freedom
## Multiple R-squared:  0.9724, Adjusted R-squared:  0.9724 
## F-statistic: 4.986e+04 on 3 and 4244 DF,  p-value: < 2.2e-16
Interpretasi:

  • Jika semua prediktor = 0, profit hampir nol (tidak signifikan, p-value = 0,967).
  • Tiga variabel yang terpilih sebagai prediktor terbaik secara statistik, yaitu Sales, COGS, dan Total Expenses.
  • Setiap kenaikan 1 unit Sales, profit naik sebesar 1,206.
  • Setiap kenaikan 1 unit COGS, profit turun 1,225.
  • Setiap kenaikan 1 unit Total Expenses, profit turun 1,263.

semua variabel sangat signifikan karena p-value nya < 0,05

# Cek Multikolinearitas (VIF)
vif(stepwise_model)
##          sales           cogs total_expenses 
##       4.677316       6.332252       2.580334

Setelah dilakukan cek multikolinearitas, terdapat nilai VIF yang lebih dari 5, yaitu pada variabel COGS. Hal tersebut menunjukkan bahwa terjadi korelasi tinggi antara COGS dan variabel prediktor lain.

Membandingkan 2 model, yaitu model dengan variabel COGS (model 1) dan model tanpa variabel COGS (model 2)

#model tanpa cogs
model_drop_cogs <- lm(profit ~ sales + total_expenses, data = data)
summary(model_drop_cogs)
## 
## Call:
## lm(formula = profit ~ sales + total_expenses, data = data)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -358.14   -9.88    1.78   12.51  305.91 
## 
## Coefficients:
##                 Estimate Std. Error t value Pr(>|t|)    
## (Intercept)    11.135139   1.105801   10.07   <2e-16 ***
## sales           0.845681   0.005166  163.69   <2e-16 ***
## total_expenses -2.094634   0.024134  -86.79   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 36.86 on 4245 degrees of freedom
## Multiple R-squared:  0.8687, Adjusted R-squared:  0.8687 
## F-statistic: 1.404e+04 on 2 and 4245 DF,  p-value: < 2.2e-16
# Cek Multikolinearitas (VIF)
vif(model_drop_cogs)
##          sales total_expenses 
##         1.9055         1.9055
Interpretasi:

  • Adjusted R-Squared model 2 sebesar 86,87%.
  • Error Residual sebesar 36,86.
  • Kedua variabel signifikan.
  • Tidak ada masalah multikolinearitas yang terdeteksi.

Kesimpulan Perbandingan Model

  • Model 1 memiliki Adjusted R-Squared yang lebih tinggi, yaitu sebesar 97,24%.
  • Model 1 memiliki error yang lebih kecil, sehingga prediksi lebih akurat.
  • Model 1 memiliki multikolinearitas yang ditunjukkan dengan nilai VIF pada variabel COGS, jadi COGS harus dikontrol dengan metode seperti ridge regression. Sebaliknya, model 2 tidak terdapat multikolinearitas.