Nama : Wilbert Arifin NRP : 5006201028 Tugas : Business Intelligence - R Markdown
Pada artikel kali ini, kita akan membahas penerapan
Analisis Regresi Linear dalam membantu menyelesaikan
permasalahan yang ada dalam bisnis. Sebagai contoh, kita akan
menggunakan data survey pelanggan yang dihimpun seorang pedagang Nasi
Pecel Madiun.
Untuk mendapat data preferensi pembeli, sang pedagang melakukan
survey kepada para pelanggannya dengan meminta penilaian 0 - 100 untuk
aspek yang berkaitan dengan pembelian pecel: Sayur
(jumlah), Bumbu (rasa), Pedas (tingkat
kepedasan), dan Bungkus (tingkat estetika). Setiap harinya,
data penilaian pelanggan dihimpun dan dirata-rata untuk kemudian
digabung dengan data penjualan per hari itu.
Dengan data tersebut, sang pedagang ingin mengetahui aspek-aspek apa
yang berkontribusi signifikan terhadap Penjualan dan dapat
ditingkatkan untuk meningkatkan penjualannya.
Untuk menjawab permasalahan tersebut, kita dapat melakukan
Analisis Regresi Linear.
Pertama-tama, ada baiknya kita mengenal terlebih dahulu karakteristik dari data yang akan kita gunakan.
summary(data)
## Penjualan Sayur Bumbu Pedas
## Min. :117.0 Min. :11.00 Min. : 9.00 Min. :13.00
## 1st Qu.:256.0 1st Qu.:24.75 1st Qu.:27.00 1st Qu.:42.50
## Median :505.0 Median :49.00 Median :47.00 Median :51.00
## Mean :492.5 Mean :49.60 Mean :47.90 Mean :53.17
## 3rd Qu.:726.2 3rd Qu.:71.50 3rd Qu.:69.25 3rd Qu.:68.00
## Max. :886.0 Max. :88.00 Max. :91.00 Max. :96.00
## Bungkus
## Min. :35.00
## 1st Qu.:54.00
## Median :64.00
## Mean :66.00
## 3rd Qu.:78.25
## Max. :97.00
Terlihat bahwa median Penjualan pecel setiap harinya
adalah 505 dengan median penilaian untuk variabel Sayur,
Bumbu, Pedas, dan Bungkus secara
berurutan adalah 49, 47, 51, dan 64. Sehingga variabel dengan median
nilai tertinggi adalah Bungkus dan median nilai terendah
adalah Bumbu.
ggplot(data=data)+geom_point(mapping=aes(x=Sayur,y=Penjualan))
ggplot(data=data)+geom_point(mapping=aes(x=Bumbu,y=Penjualan))
ggplot(data=data)+geom_point(mapping=aes(x=Pedas,y=Penjualan))
ggplot(data=data)+geom_point(mapping=aes(x=Bungkus,y=Penjualan))
[Scatter Plot Data Penjualan vs. Aspek Penjualan]
Kemudian dengan bantuan scatter plot, terlihat bahwa terdapat pola
hubungan linear yang cukup kuat pada variabel Sayur dan
Penjualan. Sementara itu data menyebar pada variabel
lainnya sehingga perlu dilakukan uji korelasi.
chart.Correlation(data[, 1:5])
[Correlation Plot Data Penjualan & Aspek Penjualan]
Dengan p-value = 0,05 “*“, maka dapat disimpulkan bahwa variabel
Penjualan dan variabel Sayur memiliki korelasi
yang sangat signifikan. Hal ini sesuai dengan analisis yang telah
dilakukan sebelumnya melalui scatter plot. Korelasi pearson bernilai
0.99, artinya terdapat hubungan positif yang sangat kuat antara variabel
Penjualan dan variabel Sayur.
Dengan p-value = 0,05 “*“, maka dapat disimpulkan bahwa variabel
Penjualan dan variabel Bumbu tidak memiliki
korelasi yang signifikan. Sehingga, tidak terdapat hubungan antara
variabel Penjualan dan variabel Bumbu.
Dengan p-value = 0,05 “*“, maka dapat disimpulkan bahwa variabel
Penjualan dan variabel Pedas memiliki korelasi
yang sangat signifikan. Korelasi pearson bernilai 0.62, artinya terdapat
hubungan positif yang moderat antara variabel Penjualan dan
variabel Pedas.
Dengan p-value = 0,05 “*“, maka dapat disimpulkan bahwa variabel
Penjualan dan variabel Bungkus memiliki
korelasi yang sangat signifikan. Korelasi pearson bernilai 0.44, artinya
terdapat hubungan positif yang lemah antara variabel
Penjualan dan variabel Bungkus.
Karena mayoritas aspek memiliki korelasi dengan penjualan (kecuali
Bumbu), maka dapat dilakukan
Analisis Regresi Linear.
Sebelum melakukan analisis regresi linear secara agregat (berganda), ada baiknya untuk melakukan analisis regresi linear sederhana terlebih dahulu.
Regresi_Sayur <- lm(Penjualan ~ Sayur, data=data)
plot(Penjualan ~ Sayur, data=data)
abline(Regresi_Sayur)
##
## Shapiro-Wilk normality test
##
## data: Regresi_Sayur$residuals
## W = 0.95181, p-value = 0.04723
##
## Durbin-Watson test
##
## data: Regresi_Sayur
## DW = 1.9748, p-value = 0.9356
## alternative hypothesis: true autocorrelation is not 0
##
## studentized Breusch-Pagan test
##
## data: Regresi_Sayur
## BP = 2.6571, df = 1, p-value = 0.1031
##
## Call:
## lm(formula = Penjualan ~ Sayur, data = data)
##
## Residuals:
## Min 1Q Median 3Q Max
## -43.615 -24.460 -6.205 22.311 60.089
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -9.3784 9.4064 -0.997 0.324
## Sayur 10.1172 0.1709 59.198 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 28.24 on 46 degrees of freedom
## Multiple R-squared: 0.987, Adjusted R-squared: 0.9868
## F-statistic: 3504 on 1 and 46 DF, p-value: < 2.2e-16
Berdasarkan hasil analisis regresi, didapatkan bahwa variabel
Sayur signifikan sehingga variabel dapat digunakan untuk
model regresi linear.
Model regresi linear yang terbentuk adalah Penjualan = -
9,3784 + 10,1172xSayur, artinya setiap peningkatan 1 satuan
pada variabel Sayur, maka terjadi peningkatan 10,1172
satuan pada Penjualan.
Nilai R-squared model adalah 98,7% sehingga hanya 1,3% data yang tidak terwakili model. Meskipun demikian, regresi hanya memenuhi asumsi independensi dan non-heteroskedastisitas sementara regresi tidak memenuhi asumsi normalitas.
Regresi_Bumbu <- lm(Penjualan ~ Bumbu, data=data)
plot(Penjualan ~ Bumbu, data=data)
abline(Regresi_Bumbu)
##
## Shapiro-Wilk normality test
##
## data: Regresi_Bumbu$residuals
## W = 0.937, p-value = 0.01247
##
## Durbin-Watson test
##
## data: Regresi_Bumbu
## DW = 2.1811, p-value = 0.5338
## alternative hypothesis: true autocorrelation is not 0
##
## studentized Breusch-Pagan test
##
## data: Regresi_Bumbu
## BP = 0.86407, df = 1, p-value = 0.3526
##
## Call:
## lm(formula = Penjualan ~ Bumbu, data = data)
##
## Residuals:
## Min 1Q Median 3Q Max
## -408.85 -211.21 7.04 221.68 414.86
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 388.507 79.384 4.894 1.25e-05 ***
## Bumbu 2.171 1.488 1.459 0.151
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 242.5 on 46 degrees of freedom
## Multiple R-squared: 0.04424, Adjusted R-squared: 0.02347
## F-statistic: 2.129 on 1 and 46 DF, p-value: 0.1513
Berdasarkan hasil analisis regresi, didapatkan bahwa variabel
Bumbu tidak signifikan sehingga variabel tidak dapat
digunakan untuk model regresi linear.
Nilai R-squared model yang dihasilkan juga hanya sebesar 4,42% sehingga sebanyak 95,58% data tidak terwakili model.
Regresi_Pedas <- lm(Penjualan ~ Pedas, data=data)
plot(Penjualan ~ Pedas, data=data)
abline(Regresi_Pedas)
##
## Shapiro-Wilk normality test
##
## data: Regresi_Pedas$residuals
## W = 0.97308, p-value = 0.3322
##
## Durbin-Watson test
##
## data: Regresi_Pedas
## DW = 1.8527, p-value = 0.6188
## alternative hypothesis: true autocorrelation is not 0
##
## studentized Breusch-Pagan test
##
## data: Regresi_Pedas
## BP = 0.21067, df = 1, p-value = 0.6462
##
## Call:
## lm(formula = Penjualan ~ Pedas, data = data)
##
## Residuals:
## Min 1Q Median 3Q Max
## -357.75 -121.56 30.63 93.04 427.29
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 106.484 77.347 1.377 0.175
## Pedas 7.260 1.355 5.356 2.63e-06 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 194.7 on 46 degrees of freedom
## Multiple R-squared: 0.3841, Adjusted R-squared: 0.3707
## F-statistic: 28.69 on 1 and 46 DF, p-value: 2.635e-06
Berdasarkan hasil analisis regresi, didapatkan bahwa variabel
Pedas signifikan sehingga variabel dapat digunakan untuk
model regresi linear.
Model regresi linear yang terbentuk adalah Penjualan =
106,484 + 7,260xPedas, artinya setiap peningkatan 1 satuan
pada variabel Pedas, maka terjadi peningkatan 7,260 satuan
pada Penjualan.
Meskipun demikian, nilai R-squared model hanya sebesar 38,41% sehingga sebanyak 61,59% data tidak terwakili model. Regresi memenuhi asumsi normalitas, independensi, dan non-heteroskedastisitas.
Regresi_Bungkus <- lm(Penjualan ~ Bungkus, data=data)
plot(Penjualan ~ Bungkus, data=data)
abline(Regresi_Bungkus)
##
## Shapiro-Wilk normality test
##
## data: Regresi_Bungkus$residuals
## W = 0.96649, p-value = 0.1842
##
## Durbin-Watson test
##
## data: Regresi_Bungkus
## DW = 1.9954, p-value = 0.9822
## alternative hypothesis: true autocorrelation is not 0
##
## studentized Breusch-Pagan test
##
## data: Regresi_Bungkus
## BP = 0.18002, df = 1, p-value = 0.6714
##
## Call:
## lm(formula = Penjualan ~ Bungkus, data = data)
##
## Residuals:
## Min 1Q Median 3Q Max
## -443.78 -172.89 14.97 185.15 359.18
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 41.722 140.325 0.297 0.76756
## Bungkus 6.830 2.069 3.300 0.00187 **
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 223.1 on 46 degrees of freedom
## Multiple R-squared: 0.1914, Adjusted R-squared: 0.1739
## F-statistic: 10.89 on 1 and 46 DF, p-value: 0.001871
Berdasarkan hasil analisis regresi, didapatkan bahwa variabel
Bungkus signifikan sehingga variabel dapat digunakan untuk
model regresi linear.
Model regresi linear yang terbentuk adalah Penjualan =
41,722 + 6,830xBungkus, artinya setiap peningkatan 1 satuan
pada variabel Bungkus, maka terjadi peningkatan 6,830
satuan pada Penjualan.
Meskipun demikian, nilai R-squared model hanya sebesar 19,14% sehingga sebanyak 80,86% data tidak terwakili model. Regresi memenuhi asumsi normalitas, independensi, dan non-heteroskedastisitas.
Setelah melakukan analisis regresi linear secara sederhana, maka dapat dilakukan analisis regresi linear secara agregat (berganda).
Regresi_Berganda <- lm(Penjualan ~ Sayur + Bumbu + Pedas + Bungkus, data=data)
plot(Regresi_Berganda)
##
## Shapiro-Wilk normality test
##
## data: Regresi_Berganda$residuals
## W = 0.97694, p-value = 0.4583
## Sayur Bumbu Pedas Bungkus
## 1.794289 1.061385 1.630958 1.261752
##
## Durbin-Watson test
##
## data: Regresi_Berganda
## DW = 2.0291, p-value = 0.9341
## alternative hypothesis: true autocorrelation is not 0
##
## studentized Breusch-Pagan test
##
## data: Regresi_Berganda
## BP = 14.031, df = 4, p-value = 0.007197
##
## Call:
## lm(formula = Penjualan ~ Sayur + Bumbu + Pedas + Bungkus, data = data)
##
## Residuals:
## Min 1Q Median 3Q Max
## -54.851 -15.034 -4.029 20.742 43.779
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -45.2816 17.4586 -2.594 0.01293 *
## Sayur 9.9092 0.2079 47.655 < 2e-16 ***
## Bumbu 0.5238 0.1621 3.232 0.00236 **
## Pedas 0.1191 0.2280 0.522 0.60412
## Bungkus 0.2243 0.2673 0.839 0.40592
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 25.65 on 43 degrees of freedom
## Multiple R-squared: 0.99, Adjusted R-squared: 0.9891
## F-statistic: 1065 on 4 and 43 DF, p-value: < 2.2e-16
Berdasarkan hasil analisis regresi, didapatkan bahwa secara simultan
model signifikan dengan p-value < 2.2e-16. Sedangkan secara parsial
hanya variabel sayur dan bumbu yang signifikan
sementara variabel pedas dan bungkus tidak
signifikan.
Nilai adjusted R-squared model adalah 98,91% sehingga hanya 1,09% data yang tidak terwakili model. Regresi memenuhi asumsi normalitas, multikolinearitas, dan independensi sementara regresi tidak memenuhi asumsi non-heteroskedastisitas.
Karena terdapat dua variabel yang tidak signifikan secara parsial,
maka variabel pedas dan bungkus akan
dihapus.
Regresi_Berganda_2 <- lm(Penjualan ~ Sayur + Bumbu, data=data)
plot(Regresi_Berganda_2)
##
## Shapiro-Wilk normality test
##
## data: Regresi_Berganda_2$residuals
## W = 0.97258, p-value = 0.3183
## Sayur Bumbu
## 1.026243 1.026243
##
## Durbin-Watson test
##
## data: Regresi_Berganda_2
## DW = 1.9903, p-value = 0.975
## alternative hypothesis: true autocorrelation is not 0
##
## studentized Breusch-Pagan test
##
## data: Regresi_Berganda_2
## BP = 11.302, df = 2, p-value = 0.003515
##
## Call:
## lm(formula = Penjualan ~ Sayur + Bumbu, data = data)
##
## Residuals:
## Min 1Q Median 3Q Max
## -53.267 -17.235 -4.353 20.231 51.816
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -31.2211 10.5542 -2.958 0.00492 **
## Sayur 10.0312 0.1556 64.467 < 2e-16 ***
## Bumbu 0.5451 0.1577 3.457 0.00120 **
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 25.38 on 45 degrees of freedom
## Multiple R-squared: 0.9898, Adjusted R-squared: 0.9893
## F-statistic: 2175 on 2 and 45 DF, p-value: < 2.2e-16
Berdasarkan hasil analisis regresi, didapatkan bahwa secara simultan model signifikan dengan p-value < 2.2e-16. Secara parsial semua variabel signifikan dengan tingkat signifikansi 5%.
Model regresi linear yang terbentuk adalah Penjualan =
-31,2211 + 10,0312xSayur + 0,5451xBumbu,
artinya setiap peningkatan 1 satuan pada variabel Sayur,
maka terjadi peningkatan 10,0312 satuan pada Penjualan dan
setiap peningkatan 1 satuan pada variabel Bumbu, maka
terjadi peningkatan 0,5451 satuan pada Penjualan.
Nilai adjusted R-squared model adalah 98,93% sehingga hanya 1,07% data yang tidak terwakili model. Regresi memenuhi asumsi normalitas, multikolinearitas, dan independensi sementara regresi tidak memenuhi asumsi non-heteroskedastisitas.
Berdasarkan hasil Analisis Regresi Linear yang telah
dilakukan, maka dianjurkan kepada sang pedagang untuk meningkatkan
jumlah Sayur dan rasa Bumbu pada pecel yang
dijual. Kedua variabel tersebut bekorelasi signifikan dan dapat
meningkatkan Penjualan pecel.