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
Pengolahan Data
Syntax dibawah digunakan untuk menghapus format huruf besar dan spasi dari nama variabel digantikan dengan huruf kecil dan simbol “_“
## [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"
Pembangunan Model Awal
# Model awal: semua variabel dimasukkan
full_model <- lm(profit ~ sales + cogs + total_expenses + inventory + market_size + type, data = data)##
## 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
##
## 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
## 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
## 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.