Insight

Analisis kali ini akan berfokus untuk melihat apa saja variabel yang berpengaruh dan bagaimana pengaruhnya terhadap keuntungan bersih (profit) bisnis yang ada di daerah California. Variabel yang dianalisis lebih jauh adalah variabel bertipe numerik, yaitu variabel Cost of Goods Sold (COGS), Margin, Marketing, Profit, Sales, dan Total Expenses. Profit bertindak sebagai variabel dependen dan variabel lainnya bertindak sebagai variabel independen. Variabel numerik yang lain, seperti Budget COGS, Budget Margin, Budget Profit, Budget Sales, dan Inventory tidak dimasukkan ke dalam analisis karena tidak terlalu relevan dengan tujuan analisis. Pengetahuan terkait variabel numerik apa saja yang berpengaruh terhadap profit dapat membantu pebisnis di California dalam menentukan bagaimana mereka mengelola variabel-variabel tersebut sehingga dapat memaksimalkan profit yang didapatkan.


Analisis yang Digunakan

Bagian ini berisi teori-teori yang menjadi dasar untuk analisis kali ini.

*tekan tab untuk melihat isi.

Regresi Linear Berganda digunakan untuk mengetahui bagaimana pengaruh tiap variabel independen terhadap variabel dependen. Secara umum, persamaan Regresi Linear Berganda dapat dituliskan sebagai berikut (Yule, 1897).

\[Y = \beta_0 + \beta_1X_1 + \beta_2X_2 + ... + \beta_nX_n + \epsilon\]

Keterangan:

  • \(Y = \text{variabel dependen}\)

  • \(\beta_0 = \text{konstanta}\)

  • \(\beta_1, \beta_2, ..., \beta_n = \text{koefisien}\)

  • \(X_1, X_2, ..., X_n = \text{variabel independen}\)

  • \(\epsilon = error\)


Terdapat beberapa uji yang perlu dilakukan untuk memastikan apakah model yang telah dibuat sudah cukup untuk data yang digunakan. Uji-uji tersebut meliputi uji linearitas, uji normalitas, uji homoskedastisitas, uji non autokorelasi, dan uji non multikolinearitas.

1. Uji Linearitas

Uji linearitas digunakan untuk mengetahui apakah hubungan antara variabel independen dan variabel dependen bersifat linear atau tidak. Uji yang digunakan adalah uji Ramsey RESET (Regression Equation Specification Error Test). Langkah-langkah untuk melakukan uji Ramsey RESET sebagai berikut (Ramsey, 1969).

  1. Hipotesis:
    • \(H_0\) : Hubungan antara variabel independen dan variabel dependen linear
    • \(H_1\) : Hubungan antara variabel independen dan variabel dependen tidak linear
  2. Tingkat Signifikansi:
    • \(\alpha = 0,05\)
  3. Daerah Kritis:
    • \(H_0\) ditolak jika p-value < 0,05
  4. Statistik uji:
    • p-value
  5. Kesimpulan:
    • \(H_0\) ditolak jika p-value < 0,05 yang berarti hubungan antara variabel independen dan variabel dependen tidak linear.
    • Sementara itu, apabila p-value > 0,05 maka \(H_0\) gagal ditolak yang berarti hubungan antara variabel independen dan variabel dependen linear.

2. Uji Normalitas

Uji normalitas digunakan untuk mengetahui apakah residu berdistribusi secara normal atau tidak (Kolmogorov, 1933). Uji yang digunakan adalah uji Kolmogorov-Smirnov karena sampel pada analisis kali ini berukuran besar (>30). Langkah-langkah untuk melakukan uji Kolmogorov-Smirnov sebagai berikut.

  1. Hipotesis:
    • \(H_0\) : Residu Berdistribusi Normal
    • \(H_1\) : Residu Tidak Berdistribusi Normal
  2. Tingkat Signifikansi:
    • \(\alpha = 0,05\)
  3. Daerah Kritis:
    • \(H_0\) ditolak jika p-value < 0,05
  4. Statistik uji:
    • p-value
  5. Kesimpulan:
    • \(H_0\) ditolak jika p-value < 0,05 yang berarti residu tidak berdistribusi normal.
    • Sementara itu, apabila p-value > 0,05 maka \(H_0\) gagal ditolak yang berarti residu berdistribusi normal.

3. Uji Homoskedastisitas

Uji homoskedastisitas digunakan untuk mengetahui apakah variansi residu homogen atau tidak. Uji yang digunakan adalah uji Breusch-Pagan (Breusch & Pagan, 1979). Langkah-langkah untuk melakukan uji Breusch-Pagan sebagai berikut.

  1. Hipotesis:
    • \(H_0\) : Variansi Residu Homogen
    • \(H_1\) : Variansi Residu Tidak Homogen
  2. Tingkat Signifikansi:
    • \(\alpha = 0,05\)
  3. Daerah Kritis:
    • \(H_0\) ditolak jika p-value < 0,05
  4. Statistik uji:
    • p-value
  5. Kesimpulan:
    • \(H_0\) ditolak jika p-value < 0,05 yang berarti variansi redisu tidak homogen.
    • Sementara itu, apabila p-value > 0,05 maka \(H_0\) gagal ditolak yang berarti variansi residu homogen.

4. Uji Non Autokorelasi

Uji non autokorelasi digunakan untuk mengetahui tidak adanya autokorelasi antar residu. Uji yang digunakan adalah uji Durbin-Watson (Durbin & Watson, 1971). Langkah-langkah untuk melakukan uji Durbin-Watson sebagai berikut.

  1. Hipotesis:
    • \(H_0\) : Tidak terdapat Autokorelasi antar Residu
    • \(H_1\) : Terdapat Autokorelasi antar Residu
  2. Tingkat Signifikansi:
    • \(\alpha = 0,05\)
  3. Daerah Kritis:
    • \(H_0\) ditolak jika p-value < 0,05
  4. Statistik uji:
    • p-value
  5. Kesimpulan:
    • \(H_0\) ditolak jika p-value < 0,05 yang berarti terdapat autokorelasi antar residu.
    • Sementara itu, apabila p-value > 0,05 maka \(H_0\) gagal ditolak yang berarti tidak terdapat autokorelasi antar residu.

5. Uji Non Multikolinearitas

Uji non multikolinearitas digunakan untuk mengetahui tidak adanya multikolinearitas yang tinggi antar variabel independen. Nilai Variance Inflation Factor (VIF) adalah nilai yang dilihat pada uji non multikolinearitas (Kutner et al, 2004). Langkah-langkah untuk melakukan uji non multikolinearitas sebagai berikut.

  1. Hipotesis:
    • \(H_0\) : Tidak terdapat multikolinearitas antar variabel independen.
    • \(H_1\) : Terdapat multikolinearitas antar variabel independen.
  2. Ambang Batas:
    • VIF = 10
  3. Daerah Kritis:
    • \(H_0\) ditolak jika \(VIF_{hitung}\) > 10
  4. Statistik uji:
    • \(VIF_{hitung}\)
  5. Kesimpulan:
    • \(H_0\) ditolak jika \(VIF_{hitung}\) > 10 yang berarti terdapat multikolinearitas antar variabel independen.
    • Sementara itu, apabila p-value < 10 maka \(H_0\) gagal ditolak yang berarti tidak terdapat multikolinearitas antar variabel independen.

Nilai DFFITS yang dihasilkan oleh model dibandingkan dengan nilai pembanding DFFITTS (Belsley et al, 1980).

\[\text{Nilai pembanding DFFITS} = 2 \sqrt{\frac{k}{n}}\]

Keterangan:

  • k = banyak variabel independen

  • n = banyak observasi

Apabila absolut nilai DFFITS suatu observasi melebihi nilai pembanding DFFITS maka observasi tersebut adalah outlier.


Regresi Robust digunakan ketika terdapat outlier dan asumsi normalitas pada model regresi dengan metode kuadrat terkecil tidak terpenuhi. Metode robust yang digunakan adalah Least Trimmed Square (LTS). LTS menggunakan h kuadrat residu yang nilainya diurutkan dari terkecil ke terbesar (h \(\le\) n). Metode ini meminimalkan nilai berikut.

\[\sum_{i = 1}^{h} e_i^2\]

dengan \(h = (\frac{n}{2}) + (\frac{k+2}{2})\)

\(e_i^2\) = kuadrat residu yang diurutkan dari terkecil ke terbesar

n = banyak sampel

k = banyak variabel independen

Nilai h harus dalam bentuk bilangan bulat sehingga jika nilai h dalam bentuk pecahan maka dilakukan pembulatan ke atas. Menurut Rousseeuw dan Hubert (1997), estimator LTS dapat didapatkan dengan cara

\[s_{LTS} = d_{h,n} \sqrt{\frac{1}{h} \sum_{i=1}^{h} e_i^2}\]

dengan

\(d_{h,n} = \frac {1} {\sqrt{1 - \frac{2n}{h c_{h,n}} \phi\left(\frac{1}{c_{h,n}}\right)}}\)

\(c_{h,n} = \frac{1} {\phi^{-1}\left(\frac{h + n}{2n}\right)}\)

Setelah didapatkan nilai \(s_{LTS}\), hitung pembobot \(w_i\) dengan rumus

\[ w_i = \begin{cases} 0 & \text{jika } \left| \frac{e_i}{S_{LTS}} \right| > 2,5 \\ 1 & \text{untuk lainnya} \end{cases} \]

Algoritma Metode LTS

  1. Estimasi koefisien regresi \(\hat \beta_i\) dengan metode kuadrat terkecil dengan i = 1,2,…,n.

  2. Hitung n kuadrat residu \(e_i^2\) yang bersesuaian dengan \(\hat \beta_i\).

  3. Hitung \(h = (\frac{n}{2}) + (\frac{k+2}{2})\).

  4. Estimasi parameter \(\hat \beta_{baru(i)}\) dari \(h_{baru(i)}\) pengamatan.

  5. Hitung \(\hat \beta_{baru(i)}\) dan ulangi menghitung h berikutnya hingga konvergen.

  6. Hitung pembobot \(w_i\).

  7. Estimasi koefisien regresi \(\hat \beta_{LTS}\) dengan pembobot w.


Setelah uji asumsi pada model dilakukan, uji signifikansi simultan dan uji signifikan parsial diterapkan. Uji ini digunakan untuk mengetahui apakah variabel yang digunakan pada model yang dibangun berpengaruh signifikan atau tidak.

1. Uji Signifikansi Simultan

Uji Signifikansi Simultan digunakan untuk menguji pengaruh seluruh variabel independen terhadap variabel dependen secara bersama-sama (Fisher, 1925). Langkah-langkah untuk melakukan uji ini adalah sebagai berikut.

  1. Hipotesis:
    • \(H_0\) : \(\beta_1\) = \(\beta_2\) = … = \(\beta_n\) = 0 (Semua koefisien regresi sama dengan nol)
    • \(H_1\) : Paling tidak terdapat satu \(\beta_i \ne 0\) , i = 1,2,…,n (Setidaknya terdapat satu koefisien regresi yang tidak sama dengan nol)
  2. Tingkat Signifikansi:
    • \(\alpha = 0,05\)
  3. Daerah Kritis:
    • \(H_0\) ditolak jika p-value < 0,05
  4. Statistik uji:
    • p-value
  5. Kesimpulan:
    • \(H_0\) ditolak jika p-value < 0,05 yang berarti setidaknya terdapat satu koefisien regresi yang tidak sama dengan nol.
    • Sementara itu, apabila p-value > 0,05 maka \(H_0\) gagal ditolak yang berarti semua koefisien regresi sama dengan nol.
2. Uji Signifikansi Parsial

Uji signifikansi parsial digunakan untuk mengetahui pengaruh variabel independen terhadap variabel dependen secara parsial atau sendiri-sendiri (STUDENT, 1908). Langkah untuk melakukan uji ini adalah sebagai berikut.

  1. Hipotesis:
    • \(H_0\) : \(\beta_i = 0\) , i = 1,2,…,n (Variabel \(X_i\) tidak berpengaruh signifikan secara parsial)
    • \(H_1\) : \(\beta_i \ne 0\) , i = 1,2,…,n (Variabel \(X_i\) berpengaruh signifikan secara parsial)
  2. Tingkat Signifikansi:
    • \(\alpha = 0,05\)
  3. Daerah Kritis:
    • \(H_0\) ditolak jika p-value < 0,05
  4. Statistik uji:
    • p-value
  5. Kesimpulan:
    • \(H_0\) ditolak jika p-value < 0,05 yang berarti variabel \(X_i\) berpengaruh signifikan secara parsial
    • Sementara itu, apabila p-value > 0,05 maka \(H_0\) gagal ditolak yang berarti variabel \(X_i\) tidak berpengaruh signifikan secara parsial

Source Code

Bagian ini berisi tahapan analisis data yang terdiri atas beberapa langkah, yaitu persiapan data, preprocessing data, exploratory data analysis, regresi linear berganda, dan regresi robust.

1. Import Library
library(readxl)
library(readr)
library(car)
library(MASS)
library(lmtest)
library(ggplot2)
library(corrplot)
library(robustbase)
library(dplyr)

2. Import Data
data <- read_excel("D:/Kuliah/Smt 4/SIM/CM 1/3. CM1 - Coffee Chain Datasets.xlsx")

3. Menampilkan Data
data
## # A tibble: 4,248 × 20
##    `Area Code` Date                Market  `Market Size` Product  `Product Line`
##          <dbl> <dttm>              <chr>   <chr>         <chr>    <chr>         
##  1         719 2012-01-01 00:00:00 Central Major Market  Amaretto Beans         
##  2         970 2012-01-01 00:00:00 Central Major Market  Colombi… Beans         
##  3         970 2012-01-01 00:00:00 Central Major Market  Decaf I… Beans         
##  4         303 2012-01-01 00:00:00 Central Major Market  Green T… Leaves        
##  5         303 2012-01-01 00:00:00 Central Major Market  Caffe M… Beans         
##  6         720 2012-01-01 00:00:00 Central Major Market  Decaf E… Beans         
##  7         970 2012-01-01 00:00:00 Central Major Market  Chamomi… Leaves        
##  8         719 2012-01-01 00:00:00 Central Major Market  Lemon    Leaves        
##  9         970 2012-01-01 00:00:00 Central Major Market  Mint     Leaves        
## 10         719 2012-01-01 00:00:00 Central Major Market  Darjeel… Leaves        
## # ℹ 4,238 more rows
## # ℹ 14 more variables: `Product Type` <chr>, State <chr>, Type <chr>,
## #   `Budget COGS` <dbl>, `Budget Margin` <dbl>, `Budget Profit` <dbl>,
## #   `Budget Sales` <dbl>, COGS <dbl>, Inventory <dbl>, Margin <dbl>,
## #   Marketing <dbl>, Profit <dbl>, Sales <dbl>, `Total Expenses` <dbl>

4. Pilih Baris yang Bernilai California pada Kolom State

Analisis hanya fokus pada bisnis yang berada pada daerah California sehingga data difilter untuk mendapatkan bisnis yang berada di daerah California.

data <- data %>% 
  filter(`State` == "California")

5. Pilih Kolom COGS, Margin, Marketing, Profit, Sales, Total Expenses

Analisis fokus pada COGS, Margin, Marketing, Profit, Sales, Total Expenses sehingga variabel-variabel tersebut dipilih dan variabel yang lain diabaikan.

data <- data %>% select(c("COGS","Margin","Marketing","Profit","Sales","Total Expenses"))

6. Menampilkan Data
data
## # A tibble: 288 × 6
##     COGS Margin Marketing Profit Sales `Total Expenses`
##    <dbl>  <dbl>     <dbl>  <dbl> <dbl>            <dbl>
##  1   228    228        63    140   456               88
##  2   105    145        95     17   250              128
##  3   234    312        77    203   546              109
##  4    95    139        26    102   234               37
##  5   207    245        64    160   452               85
##  6    83    107        27     67   190               40
##  7    89    130        24     94   219               36
##  8    54     80        15     54   134               26
##  9    72    108        23     54   180               54
## 10    95     50        30     -2   145               52
## # ℹ 278 more rows

Data berkurang dari 4248 baris dan 20 kolom hanya menjadi 288 baris dan 6 kolom.


7. Scatter Plot
vars <- c("COGS", "Margin", "Marketing", "Sales", "Total Expenses")

for (var in vars) {
  p <- ggplot(data, aes(x = .data[[var]], y = Profit)) +
    geom_point(color = "#A1E3F9", size = 3) +
    labs(title = paste("Scatter Plot of", var, "vs. Profit"),
         x = var,
         y = "Profit") +
    theme_minimal() +
    theme(
      plot.title = element_text(color = "white"),
      axis.title.x = element_text(color = "white"),
      axis.title.y = element_text(color = "white")
    )
  
  print(p)
}
## Error : The fig.showtext code chunk option must be TRUE

## Error : The fig.showtext code chunk option must be TRUE

## Error : The fig.showtext code chunk option must be TRUE

## Error : The fig.showtext code chunk option must be TRUE

## Error : The fig.showtext code chunk option must be TRUE

Semua variabel independen berkorelasi positif dengan variabel dependen. Hal ini berarti kenaikan nilai variabel independen sebanding dengan kenaikan variabel dependen.


8. Korelasi
vars <- c("COGS", "Margin", "Marketing", "Sales", "Total Expenses", "Profit")

cor_matrix <- cor(data[vars], use = "complete.obs", method = "pearson")

corrplot(cor_matrix, method = "color", type = "upper", 
         addCoef.col = "white",
         tl.col = "white",
         tl.srt = 45,
         diag = FALSE,
         cl.cex = 0.8,
         cl.col = "white",
         plot.bg = "black",
         col = colorRampPalette(c("red", "white", "blue"))(100))
## Error : The fig.showtext code chunk option must be TRUE

Variabel Margin dan Sales memiliki hubungan yang positif kuat dengan Profit. COGS memiliki hubungan positif yang sedang dengan Profit. Sementara itu, Marketing dan Total Expenses memiliki hubungan yang lemah dengan Profit.

9. Distribusi Variabel Dependen
ggplot(data = data, aes(x = Profit)) +
  geom_histogram(aes(y = after_stat(density)), fill = "lightblue", color = "black", bins = 50) +  
  geom_density(color = "red", linewidth = 1) +  
  labs(title = "Histogram dari Profit", x = "Profit", y = "Frekuensi") +
  theme_minimal() +
  theme(
    plot.title = element_text(hjust = 0.5, colour = "white"),  
    axis.title.x = element_text(colour = "white"),           
    axis.title.y = element_text(colour = "white")       
  )
## Error : The fig.showtext code chunk option must be TRUE

Variabel Profit memiliki skewness positif. Dengan kata lain, terdapat outlier yang memiliki nilai besar jika dibandingkan pusat data.


10. Pencarian Variabel Independen yang Berpengaruh Signifikan

Pemodelan regresi linear berganda dilakukan beberapa kali untuk mendapatkan variabel independen yang benar-benar berpengaruh signifikan terhadap variabel dependen.

Model 1
model <- lm(Profit ~
COGS +
Margin +
Marketing +
Sales +
data$"Total Expenses", data = data)

summary(model)
## 
## Call:
## lm(formula = Profit ~ COGS + Margin + Marketing + Sales + data$"Total Expenses", 
##     data = data)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -50.941 -19.949   0.379  12.572  86.422 
## 
## Coefficients:
##                       Estimate Std. Error t value Pr(>|t|)    
## (Intercept)             1.6853     3.4964   0.482   0.6302    
## COGS                   -1.6615     0.1121 -14.816  < 2e-16 ***
## Margin                 -0.5044     0.1132  -4.455 1.21e-05 ***
## Marketing               0.6320     0.1946   3.248   0.0013 ** 
## Sales                   1.6763     0.1087  15.421  < 2e-16 ***
## data$"Total Expenses"  -1.7562     0.1538 -11.422  < 2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 24.46 on 282 degrees of freedom
## Multiple R-squared:  0.9725, Adjusted R-squared:  0.972 
## F-statistic:  1996 on 5 and 282 DF,  p-value: < 2.2e-16
Model 2
model <- lm(Profit ~
COGS +
Marketing +
Sales +
data$"Total Expenses", data = data)

summary(model)
## 
## Call:
## lm(formula = Profit ~ COGS + Marketing + Sales + data$"Total Expenses", 
##     data = data)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -57.300 -21.236   1.957  15.999  74.350 
## 
## Coefficients:
##                       Estimate Std. Error t value Pr(>|t|)    
## (Intercept)            1.76846    3.61095   0.490   0.6247    
## COGS                  -1.20030    0.04452 -26.963   <2e-16 ***
## Marketing              0.40488    0.19396   2.087   0.0377 *  
## Sales                  1.19711    0.01624  73.718   <2e-16 ***
## data$"Total Expenses" -1.57720    0.15328 -10.290   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 25.26 on 283 degrees of freedom
## Multiple R-squared:  0.9706, Adjusted R-squared:  0.9702 
## F-statistic:  2335 on 4 and 283 DF,  p-value: < 2.2e-16
Model 3
model <- lm(Profit ~
COGS +
Marketing +
Sales, data = data)

summary(model)
## 
## Call:
## lm(formula = Profit ~ COGS + Marketing + Sales, data = data)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -73.743 -15.839  -4.257  20.348  81.769 
## 
## Coefficients:
##              Estimate Std. Error t value Pr(>|t|)    
## (Intercept) -13.32461    3.86107  -3.451 0.000643 ***
## COGS         -1.33324    0.04985 -26.746  < 2e-16 ***
## Marketing    -1.46568    0.07912 -18.525  < 2e-16 ***
## Sales         1.23646    0.01847  66.952  < 2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 29.56 on 284 degrees of freedom
## Multiple R-squared:  0.9596, Adjusted R-squared:  0.9592 
## F-statistic:  2248 on 3 and 284 DF,  p-value: < 2.2e-16

Didapatkan hasil bahwa variabel COGS, Marketing, dan Sales berpengaruh secara signifikan terhadap Profit. Hal ini dapat dilihat dari nilai p-value ketiga variabel tersebut yang kurang dari 0,05.


11. Uji Asumsi Model
Uji Linearitas
  1. Hipotesis:
    • \(H_0\) : Hubungan antara variabel independen dan variabel dependen linear
    • \(H_1\) : Hubungan antara variabel independen dan variabel dependen tidak linear
  2. Tingkat Signifikansi:
    • \(\alpha = 0,05\)
  3. Daerah Kritis:
    • \(H_0\) ditolak jika p-value < 0,05
  4. Statistik uji:
    • p-value = 0,09472
resettest(model, power = 2:3, type = "fitted")
## 
##  RESET test
## 
## data:  model
## RESET = 2.3766, df1 = 2, df2 = 282, p-value = 0.09472
  1. Kesimpulan:
    • \(H_0\) gagal ditolak karena p-value > 0,05 maka yang berarti hubungan antara variabel independen dan variabel dependen linear.
Uji Normalitas
  1. Hipotesis:
    • \(H_0\) : Residu Berdistribusi Normal
    • \(H_1\) : Residu Tidak Berdistribusi Normal
  2. Tingkat Signifikansi:
    • \(\alpha = 0,05\)
  3. Daerah Kritis:
    • \(H_0\) ditolak jika p-value < 0,05
  4. Statistik uji:
    • p-value < 2,2e-16
residu = resid(model)
ks.test(residu, 'pnorm')
## 
##  Asymptotic one-sample Kolmogorov-Smirnov test
## 
## data:  residu
## D = 0.51832, p-value < 2.2e-16
## alternative hypothesis: two-sided
  1. Kesimpulan:
    • \(H_0\) ditolak karena p-value < 0,05 yang berarti residu tidak berdistribusi normal.
Uji Homoskedastisitas
  1. Hipotesis:
    • \(H_0\) : Variansi Residu Homogen
    • \(H_1\) : Variansi Residu Tidak Homogen
  2. Tingkat Signifikansi:
    • \(\alpha = 0,05\)
  3. Daerah Kritis:
    • \(H_0\) ditolak jika p-value < 0,05
  4. Statistik uji:
    • p-value < 2,2e-16
bptest(model)
## 
##  studentized Breusch-Pagan test
## 
## data:  model
## BP = 94.361, df = 3, p-value < 2.2e-16
  1. Kesimpulan:
    • \(H_0\) ditolak karena p-value < 0,05 yang berarti variansi redisu tidak homogen.
Uji Non Autokorelasi
  1. Hipotesis:
    • \(H_0\) : Tidak terdapat Autokorelasi antar Residu
    • \(H_1\) : Terdapat Autokorelasi antar Residu
  2. Tingkat Signifikansi:
    • \(\alpha = 0,05\)
  3. Daerah Kritis:
    • \(H_0\) ditolak jika p-value < 0,05
  4. Statistik uji:
    • p-value = 0,8416
dwtest(model)
## 
##  Durbin-Watson test
## 
## data:  model
## DW = 2.1143, p-value = 0.8416
## alternative hypothesis: true autocorrelation is greater than 0
  1. Kesimpulan:
    • \(H_0\) gagal ditolak karena p-value > 0,05 yang berarti tidak terdapat autokorelasi antar residu.
Uji Non Multikolinearitas
  1. Hipotesis:
    • \(H_0\) : Tidak terdapat multikolinearitas antar variabel independen.
    • \(H_1\) : Terdapat multikolinearitas antar variabel independen.
  2. Ambang Batas:
    • VIF = 10
  3. Daerah Kritis:
    • \(H_0\) ditolak jika \(VIF_{hitung}\) > 10
  4. Statistik uji:
    • \(VIF_{hitung}\) < 10
vif(model)
##      COGS Marketing     Sales 
##  5.438527  2.340838  4.817219
  1. Kesimpulan:
    • \(H_0\) gagal ditolak karena \(VIF_{hitung}\) < 10 yang berarti tidak terdapat multikolinearitas antar variabel independen.

12. Pengecekan Outlier
dffits_values <- dffits(model)

nilai_pembanding_dffits <- 2 * sqrt(3 / 288)

outliers <- abs(dffits_values) > nilai_pembanding_dffits

jumlah_outlier <- sum(outliers)

cat("Jumlah observasi yang termasuk outlier berdasarkan DFFITS:", jumlah_outlier, "\n")
## Jumlah observasi yang termasuk outlier berdasarkan DFFITS: 37
indeks_outlier <- which(outliers)
if (length(indeks_outlier) > 0) {
  cat("Indeks observasi outlier:", paste(indeks_outlier, collapse = ", "), "\n")
} else {
  cat("Tidak ada observasi outlier.\n")
}
## Indeks observasi outlier: 11, 23, 36, 41, 53, 65, 73, 74, 81, 85, 86, 98, 116, 128, 140, 141, 154, 166, 179, 192, 203, 213, 215, 220, 224, 226, 227, 228, 233, 236, 238, 239, 240, 249, 263, 275, 288

Kesimpulan Model Regresi Linear Berganda:

Asumsi normalitas pada model di atas tidak terpenuhi dan terdapat 37 outlier sehingga model dengan metode kuadrat terkecil di atas tidak cukup. Dikarenakan kedua hal tersebut, maka pencarian model regresi dilanjutkan dengan metode robust. Selain itu, asumsi homoskedastisitas juga tidak terpenuhi pada model dengan metode kuadrat terkecil.


13. Metode LTS
model_robust <- ltsReg(Profit ~ COGS + Marketing + Sales, data = data, alpha = 0.5)
summary(model_robust)
## 
## Call:
## ltsReg.formula(formula = Profit ~ COGS + Marketing + Sales, data = data, 
##     alpha = 0.5)
## 
## Residuals (from reweighted LS):
##     Min      1Q  Median      3Q     Max 
## -54.909  -4.883   0.000   9.336  55.862 
## 
## Coefficients:
##           Estimate Std. Error t value Pr(>|t|)    
## Intercept -2.68040    3.20224  -0.837    0.403    
## COGS      -1.18196    0.04238 -27.888   <2e-16 ***
## Marketing -1.27596    0.06285 -20.303   <2e-16 ***
## Sales      1.07242    0.01627  65.896   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 23.31 on 247 degrees of freedom
## Multiple R-Squared: 0.9597,  Adjusted R-squared: 0.9592 
## F-statistic:  1959 on 3 and 247 DF,  p-value: < 2.2e-16
model_robust$raw.weights
##   [1] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
##  [38] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
##  [75] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
## [112] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
## [149] 1 1 0 1 1 0 1 1 1 0 1 0 1 1 0 1 0 0 0 1 1 0 1 1 1 1 1 0 1 0 0 0 0 0 1 1 1
## [186] 1 0 1 0 0 0 0 0 0 1 0 0 1 0 1 0 1 0 0 0 0 1 0 0 1 0 1 0 1 0 0 0 1 0 0 1 0
## [223] 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 1 1 0 1 0 0 0 0 1 0 0 1 1 0 0 1 1
## [260] 0 0 0 0 0 0 1 1 1 0 1 1 0 1 0 0 1 0 1 1 1 0 1 0 1 0 0 0 0
h <- sum(model_robust$raw.weights)
cat("Jumlah observasi dalam subset h:", h, "\n")
## Jumlah observasi dalam subset h: 206

14. Pembobotan Ulang
mkt_dg_bobot <- lm(Profit ~ COGS + Marketing + Sales, data = data, weights = model_robust$raw.weights)
summary(mkt_dg_bobot)
## 
## Call:
## lm(formula = Profit ~ COGS + Marketing + Sales, data = data, 
##     weights = model_robust$raw.weights)
## 
## Weighted Residuals:
##     Min      1Q  Median      3Q     Max 
## -33.804  -3.075   0.000   2.027  36.963 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept) -2.68040    2.08343  -1.287      0.2    
## COGS        -1.18196    0.02997 -39.442   <2e-16 ***
## Marketing   -1.27596    0.04098 -31.133   <2e-16 ***
## Sales        1.07242    0.01210  88.645   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 14.4 on 202 degrees of freedom
## Multiple R-squared:  0.9823, Adjusted R-squared:  0.9821 
## F-statistic:  3741 on 3 and 202 DF,  p-value: < 2.2e-16

\(R^2_{adjusted}\) berhasil ditingkatkan menjadi 98,21% dengan metode LTS. Hal ini berarti 98,21% variabilitas dari variabel Profit dapat dijelaskan oleh variabel COGS, Marketing, dan Sales. Sementara itu, sebanyak 1,79% variabilitas variabel Profit yang lain dijelaskan oleh variabel yang belum masuk ke dalam model.


15. Uji Asumsi Model
Uji Linearitas
  1. Hipotesis:
    • \(H_0\) : Hubungan antara variabel independen dan variabel dependen linear
    • \(H_1\) : Hubungan antara variabel independen dan variabel dependen tidak linear
  2. Tingkat Signifikansi:
    • \(\alpha = 0,05\)
  3. Daerah Kritis:
    • \(H_0\) ditolak jika p-value < 0,05
  4. Statistik uji:
    • p-value = 0,09472
resettest(mkt_dg_bobot, power = 2:3, type = "fitted")
## 
##  RESET test
## 
## data:  mkt_dg_bobot
## RESET = 2.3766, df1 = 2, df2 = 282, p-value = 0.09472
  1. Kesimpulan:
    • \(H_0\) gagal ditolak karena p-value > 0,05 maka yang berarti hubungan antara variabel independen dan variabel dependen linear.
Uji Homoskedastisitas
  1. Hipotesis:
    • \(H_0\) : Variansi Residu Homogen
    • \(H_1\) : Variansi Residu Tidak Homogen
  2. Tingkat Signifikansi:
    • \(\alpha = 0,05\)
  3. Daerah Kritis:
    • \(H_0\) ditolak jika p-value < 0,05
  4. Statistik uji:
    • p-value = 0,9976
bptest(mkt_dg_bobot)
## 
##  studentized Breusch-Pagan test
## 
## data:  mkt_dg_bobot
## BP = 0.043676, df = 3, p-value = 0.9976
  1. Kesimpulan:
    • \(H_0\) gagal ditolak karena p-value > 0,05 yang berarti variansi redisu homogen.
Uji Non Autokorelasi
  1. Hipotesis:
    • \(H_0\) : Tidak terdapat Autokorelasi antar Residu
    • \(H_1\) : Terdapat Autokorelasi antar Residu
  2. Tingkat Signifikansi:
    • \(\alpha = 0,05\)
  3. Daerah Kritis:
    • \(H_0\) ditolak jika p-value < 0,05
  4. Statistik uji:
    • p-value = 0,6547
idx_clean <- which(model_robust$raw.weights == 1)

data_clean <- data[idx_clean, ]

mkt_dg_clean <- lm(Profit ~ COGS + Marketing + Sales, data = data_clean)

dwtest(mkt_dg_clean)
## 
##  Durbin-Watson test
## 
## data:  mkt_dg_clean
## DW = 2.0526, p-value = 0.6547
## alternative hypothesis: true autocorrelation is greater than 0
  1. Kesimpulan:
    • \(H_0\) gagal ditolak karena p-value > 0,05 yang berarti tidak terdapat autokorelasi antar residu.
Uji Non Multikolinearitas
  1. Hipotesis:
    • \(H_0\) : Tidak terdapat multikolinearitas antar variabel independen.
    • \(H_1\) : Terdapat multikolinearitas antar variabel independen.
  2. Ambang Batas:
    • VIF = 10
  3. Daerah Kritis:
    • \(H_0\) ditolak jika \(VIF_{hitung}\) > 10
  4. Statistik uji:
    • \(VIF_{hitung}\) < 10
vif(mkt_dg_bobot)
##      COGS Marketing     Sales 
##  5.388342  2.056551  5.100883
  1. Kesimpulan:
    • \(H_0\) gagal ditolak karena \(VIF_{hitung}\) < 10 yang berarti tidak terdapat multikolinearitas antar variabel independen.

16. Pengecekan Outlier
dffits_values <- dffits(mkt_dg_bobot)

nilai_pembanding_dffits <- 2 * sqrt(3 / 206)

outliers <- abs(dffits_values) > nilai_pembanding_dffits

jumlah_outlier <- sum(outliers)

cat("Jumlah observasi yang termasuk outlier berdasarkan DFFITS:", jumlah_outlier, "\n")
## Jumlah observasi yang termasuk outlier berdasarkan DFFITS: 21
indeks_outlier <- which(outliers)
if (length(indeks_outlier) > 0) {
  cat("Indeks observasi outlier:", paste(indeks_outlier, collapse = ", "), "\n")
} else {
  cat("Tidak ada observasi outlier.\n")
}
## Indeks observasi outlier: 11, 23, 36, 41, 53, 65, 73, 95, 98, 116, 128, 140, 146, 152, 154, 176, 179, 180, 183, 200, 201

Jumlah outlier berkurang pada model dengan metode LTS ini.


17. Uji Kecukupan Model
summary(mkt_dg_bobot)
## 
## Call:
## lm(formula = Profit ~ COGS + Marketing + Sales, data = data, 
##     weights = model_robust$raw.weights)
## 
## Weighted Residuals:
##     Min      1Q  Median      3Q     Max 
## -33.804  -3.075   0.000   2.027  36.963 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept) -2.68040    2.08343  -1.287      0.2    
## COGS        -1.18196    0.02997 -39.442   <2e-16 ***
## Marketing   -1.27596    0.04098 -31.133   <2e-16 ***
## Sales        1.07242    0.01210  88.645   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 14.4 on 202 degrees of freedom
## Multiple R-squared:  0.9823, Adjusted R-squared:  0.9821 
## F-statistic:  3741 on 3 and 202 DF,  p-value: < 2.2e-16
Uji Signifikansi Simultan
  1. Hipotesis:
    • \(H_0\) : \(\beta_1\) = \(\beta_2\) = … = \(\beta_n\) = 0 (Semua koefisien regresi sama dengan nol)
    • \(H_1\) : Paling tidak terdapat satu \(\beta_i \ne 0\) , i = 1,2,…,n (Setidaknya terdapat satu koefisien regresi yang tidak sama dengan nol)
  2. Tingkat Signifikansi:
    • \(\alpha = 0,05\)
  3. Daerah Kritis:
    • \(H_0\) ditolak jika p-value < 0,05
  4. Statistik uji:
    • p-value < 2.2e-16
  5. Kesimpulan:
    • \(H_0\) ditolak karena p-value < 0,05 yang berarti setidaknya terdapat satu koefisien regresi yang tidak sama dengan nol.
Uji Signifikansi Parsial
  1. Variabel Independen 1 (\(\beta_1\))
  1. Hipotesis:
    • \(H_0\) : \(\beta_1 = 0\) , i = 1,2,…,n (Variabel \(X_1\) tidak berpengaruh signifikan secara parsial)
    • \(H_1\) : \(\beta_1 \ne 0\) , i = 1,2,…,n (Variabel \(X_1\) berpengaruh signifikan secara parsial)
  2. Tingkat Signifikansi:
    • \(\alpha = 0,05\)
  3. Daerah Kritis:
    • \(H_0\) ditolak jika p-value < 0,05
  4. Statistik uji:
    • p-value <2e-16
  5. Kesimpulan:
    • \(H_0\) ditolak jika p-value < 0,05 yang berarti variabel \(X_1\) berpengaruh signifikan secara parsial.
  1. Variabel Independen 2 (\(\beta_2\))
  1. Hipotesis:
    • \(H_0\) : \(\beta_2 = 0\) , i = 1,2,…,n (Variabel \(X_2\) tidak berpengaruh signifikan secara parsial)
    • \(H_1\) : \(\beta_2 \ne 0\) , i = 1,2,…,n (Variabel \(X_2\) berpengaruh signifikan secara parsial)
  2. Tingkat Signifikansi:
    • \(\alpha = 0,05\)
  3. Daerah Kritis:
    • \(H_0\) ditolak jika p-value < 0,05
  4. Statistik uji:
    • p-value <2e-16
  5. Kesimpulan:
    • \(H_0\) ditolak jika p-value < 0,05 yang berarti variabel \(X_2\) berpengaruh signifikan secara parsial.
  1. Variabel Independen 3 (\(\beta_3\))
  1. Hipotesis:
    • \(H_0\) : \(\beta_3 = 0\) , i = 1,2,…,n (Variabel \(X_3\) tidak berpengaruh signifikan secara parsial)
    • \(H_1\) : \(\beta_3 \ne 0\) , i = 1,2,…,n (Variabel \(X_3\) berpengaruh signifikan secara parsial)
  2. Tingkat Signifikansi:
    • \(\alpha = 0,05\)
  3. Daerah Kritis:
    • \(H_0\) ditolak jika p-value < 0,05
  4. Statistik uji:
    • p-value <2e-16
  5. Kesimpulan:
    • \(H_0\) ditolak jika p-value < 0,05 yang berarti variabel \(X_3\) berpengaruh signifikan secara parsial.

Kesimpulan Model dengan Metode LTS:

Performa model meningkat, jumlah outlier berkurang, dan asumsi homoskedastisitas berhasil terpenuhi pada model ini.


Kesimpulan

Diperoleh model regresi dengan metode LTS sebagai berikut.

\[Y = -2,68040-1,18196X_1-1,27596X_2+1,07242X_3\]

Interpretasi Model:

Berdasarkan hal tersebut, beberapa hal yang perlu dilakukan oleh pebisnis di daerah California untuk mencapai Profit maksimal adalah meningkatkan Sales atau penjualan, menurunkan COGS, dan menurunkan Marketing atau pemasaran. Beberapa strategi yang dapat dilakukan adalah sebagai berikut.

  1. Kirim promosi khusus melalui email & SMS berdasarkan riwayat pembelian pelanggan (Dilworth Coffee Provision Co., 2024).

  2. Buat program loyalitas untuk pelanggan lama dan berikan after-sales service agar pelanggan melakukan pembelian berulang (Houston, 2024).

  3. Lakukan cross-selling melalui analisis pola pembelian, pelanggan yang pernah membeli A lebih mungkin tertarik untuk membeli B jika ditawarkan pada waktu yang tepat (Houston, 2024).

  1. Bangun hubungan jangka panjang dengan pemasok lokal (dekat dengan lokasi bisnis anda) untuk mendapatkan harga lebih murah dan dapat memangkas ongkos kirim (Rivero, 2025).

  2. Beli bakan baku yang tahan lama dalam volume besar (FoodRazor, 2021).

  1. Sediakan sesuatu yang dapat mendorong pelanggan membagikan konten ke sosial media, seperti dinding dengan mural atau cangkir yang estetik (Dilworth Coffee Provision Co., 2024).

  2. Berikan diskon pada pelanggan yang mereferensikan bisnis anda kepada temannya (The Team, 2023).


Daftar Pustaka

Belsley, David, A., Kuh, Edwin, Welsh, Roy, E. 1980. Regression Diagnostics: Identifying Influential Data and Sources of Collinearity. New York. John Wiley & Sons.

Breusch, T. S. & Pagan, A. R. (1979). A Simple Test for Heteroskedasticity and Random Coefficient Variation. Econometrica. 47(5): 1287–1294.

Dilworth Coffee Provision Co. 2024. Coffee Shop Marketing Strategies on A Budget. tautan: https://pro.dilworthcoffee.com/blogs/news/coffee-shop-marketing-strategies-on-a-budget?srsltid=AfmBOorKlBck10YjFpYDNdppL2YNRS4taBWDX_9IqAHs6w6PMmDYM0dw&utm.com. Diakses pada 10 Mei 2025.

Durbin, J. & Watson, G. S. (1971). Testing for serial correlation in least squares regression.III. Biometrika. 58 (1): 1–19.

Fisher, R. A. 1925. Statistical Methods for Research Workers. Edinburgh. Oliver and Boyd.

FoodRazor. 2021. 6 Ways to Lower Your COGS. tautan: https://modernrestaurantmanagement.com/6-ways-to-lower-your-cogs-sponsored-post/.com. Diakses pada 10 Mei 2025.

Houston, M. 2024. 7 Tips to Increase Sales and Make More Money in Your Business. tautab: https://www.forbes.com/sites/melissahouston/2024/09/28/7-tips-to-increase-sales-and-make-more-money-in-your-business.com. Diakses pada 10 Mei 2025.

Kolmogorov, A. N. 1933. Sulla determinazione empirica di una legge di distribuzione. Giornale dell’ Instituto Italiano degli Attuari. 4:83–91.

Kutner, M. H., Nachtsheim, C. J., & Neter, J. 2004. Applied Linear Regression Models (4th ed.). McGraw-Hill Irwin.

Ramsey, J. B. 1969. Tests for Specification Errors in Classical Linear Least Squares Regression Analysis. Journal of the Royal Statistical Society, Series B. 31(2): 350–371.

Rivero, L. 2025. How Much Does It Cost to Open a Coffee Shop in 2024? Managing COst of Goods Sold and Labor. tautan: https://www.taxfyle.com/blog/cost-of-goods-sold-and-labor-for-coffee-shops.com. Diakses pada 10 Mei 2025.

Rousseeuw, P. J. & Hubert, M. 1997. Robust Regression with Continuous and Binary Regressors. Journal of Statistical Planning an Inference. 57:153-163.

STUDENT. 1908. The Probable Error of A Mean. Biometrika. 6(1):1-25.

The Team. 2023. 7 Low-cost Marketing Strategies for Small Business. tautan: https://employmenthero.com/blog/low-cost-marketing-strategies.com. Diakses pada 10 Mei 2025.

Yule, G. U. 1897. On the Theory of Correlation. Journal of the Royal Statistical Society. 60(4):812-854.