1. Deskripsi Data

1.1 Latar Belakang

Industri wine memanfaatkan berbagai pengujian fisikokimia untuk memastikan kualitas dan sertifikasi produk. Uji laboratorium seperti pengukuran densitas, kadar alkohol, dan pH merupakan bagian penting dalam proses tersebut.

Data yang digunakan dalam analisis ini berasal dari:

Cortez, P., Cerdeira, A., Almeida, F., Matos, T., & Reis, J. (2009). Modeling wine preferences by data mining from physicochemical properties. Decision Support Systems, 47(4), 547–553.

Fokus analisis adalah mengidentifikasi variabel-variabel fisikokimia yang berhubungan dengan density (g/mL) pada white vinho verde dari Portugal.


1.2 Variabel yang Digunakan

Variabel yang dianalisis:

  • density : densitas wine (g/mL)
  • citric_acid : kadar asam sitrat (g/L)
  • residual_sugar : kadar gula residual (g/L)
  • chlorides : kadar sodium chloride (g/L)
  • total_sulfur_dioxide : total sulfur dioksida (mg/L)
  • alcohol : persentase alkohol (% vol)
wine <- read_xlsx("wine.xlsx")

varkeep <- names(wine)[c(3,4,5,7,11,8)]
wine <- wine %>% select(varkeep)

dim(wine)
## [1] 4898    6

Dataset terdiri dari 4898 observasi dan 6 variabel.


2. Eksplorasi Data

2.1 Pair Plot

Pair plot digunakan untuk melihat pola hubungan antar variabel secara visual.

ggpairs(wine %>%
          select(citric_acid,
                 residual_sugar,
                 chlorides,
                 total_sulfur_dioxide,
                 alcohol,
                 density)) +
  theme_bw()
Pair Plot Seluruh Variabel

Pair Plot Seluruh Variabel

Berdasarkan visualisasi, terlihat bahwa:

  • residual_sugar dan total_sulfur_dioxide menunjukkan kecenderungan hubungan positif terhadap density.
  • alcohol menunjukkan kecenderungan hubungan negatif terhadap density.

2.2 Scatter Plot terhadap Density

p1 <- ggplot(wine, aes(x = citric_acid, y = density)) +
  geom_point() + theme_bw()

p2 <- ggplot(wine, aes(x = residual_sugar, y = density)) +
  geom_point() + theme_bw()

p3 <- ggplot(wine, aes(x = chlorides, y = density)) +
  geom_point() + theme_bw()

p4 <- ggplot(wine, aes(x = total_sulfur_dioxide, y = density)) +
  geom_point() + theme_bw()

p5 <- ggplot(wine, aes(x = alcohol, y = density)) +
  geom_point() + theme_bw()

grid.arrange(p1, p2, p3, p4, p5, ncol = 3)
Scatter Plot Variabel terhadap Density

Scatter Plot Variabel terhadap Density


3. Model Regresi

3.1 Spesifikasi Model

Model regresi linear berganda yang digunakan adalah:

\[ Y_i = \beta_0 + \beta_1 x_{1i} + \beta_2 x_{2i} + \beta_3 x_{3i} + \beta_4 x_{4i} + \beta_5 x_{5i} + \varepsilon_i \]

dengan:

  • \(Y_i\) = density
  • \(x_{1i}\) = citric_acid
  • \(x_{2i}\) = residual_sugar
  • \(x_{3i}\) = chlorides
  • \(x_{4i}\) = total_sulfur_dioxide
  • \(x_{5i}\) = alcohol
  • \(\varepsilon_i \sim N(0, \sigma^2)\)

3.2 Estimasi Parameter

model_fit <- lm(density ~ citric_acid +
                              residual_sugar +
                              chlorides +
                              total_sulfur_dioxide +
                              alcohol, wine)

summary(model_fit)
## 
## Call:
## lm(formula = density ~ citric_acid + residual_sugar + chlorides + 
##     total_sulfur_dioxide + alcohol, data = wine)
## 
## Residuals:
##        Min         1Q     Median         3Q        Max 
## -0.0021263 -0.0005689 -0.0001093  0.0004314  0.0251132 
## 
## Coefficients:
##                        Estimate Std. Error  t value Pr(>|t|)    
## (Intercept)           1.003e+00  1.719e-04 5832.375  < 2e-16 ***
## citric_acid           1.177e-03  1.052e-04   11.191  < 2e-16 ***
## residual_sugar        3.488e-04  2.884e-06  120.939  < 2e-16 ***
## chlorides             2.038e-03  6.229e-04    3.271  0.00108 ** 
## total_sulfur_dioxide  5.040e-06  3.434e-07   14.676  < 2e-16 ***
## alcohol              -1.148e-03  1.280e-05  -89.742  < 2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.0008789 on 4892 degrees of freedom
## Multiple R-squared:  0.9137, Adjusted R-squared:  0.9137 
## F-statistic: 1.036e+04 on 5 and 4892 DF,  p-value: < 2.2e-16

Model taksiran yang diperoleh adalah:

\[ \hat{Y} = 1.002688 + 0.001177x_1 + 3.49\times 10^{-4}x_2 + 0.002038x_3 + 5\times 10^{-6}x_4 + -0.001148x_5 \]

Sebagai contoh, koefisien residual_sugar sebesar 3.49^{-4} menunjukkan bahwa setiap kenaikan 1 g/L residual sugar akan meningkatkan density rata-rata sebesar nilai tersebut dengan variabel lain konstan.


4. Representasi Matriks Model

Model dalam bentuk matriks dinyatakan sebagai:

\[ \mathbf{Y} = \mathbf{X}\boldsymbol{\beta} + \boldsymbol{\varepsilon} \]

dengan dimensi:

  • \(\mathbf{Y}\) berukuran 4898 × 1
  • \(\mathbf{X}\) berukuran 4898 × 6
  • \(\boldsymbol{\beta}\) berukuran 6 × 1
  • \(\boldsymbol{\varepsilon}\) berukuran 4898 × 1

5. Perhitungan Manual Estimator

Estimator parameter dihitung menggunakan rumus:

\[ \hat{\boldsymbol{\beta}} = (X'X)^{-1} X'Y \]

X <- model.matrix(model_fit)
y <- matrix(wine$density)

beta_hat <- solve(t(X) %*% X) %*% t(X) %*% y
beta_hat
##                               [,1]
## (Intercept)           1.002688e+00
## citric_acid           1.176889e-03
## residual_sugar        3.487977e-04
## chlorides             2.037504e-03
## total_sulfur_dioxide  5.039731e-06
## alcohol              -1.148310e-03

5.1 Plot Residual vs Fitted (Manual)

wine <- wine %>%
  mutate(
    yhat = X %*% beta_hat,
    residual_manual = density - yhat
  )

ggplot(wine, aes(x = yhat, y = residual_manual)) +
  geom_point() +
  ylab("Residual") +
  xlab("Fitted Value") +
  theme_bw()
Residual vs Fitted Berdasarkan Perhitungan Manual

Residual vs Fitted Berdasarkan Perhitungan Manual


6. Interval Kepercayaan

Interval kepercayaan 95% untuk parameter alcohol:

confint(model_fit)
##                              2.5 %        97.5 %
## (Intercept)           1.002351e+00  1.003025e+00
## citric_acid           9.707285e-04  1.383050e-03
## residual_sugar        3.431436e-04  3.544518e-04
## chlorides             8.162637e-04  3.258745e-03
## total_sulfur_dioxide  4.366536e-06  5.712926e-06
## alcohol              -1.173396e-03 -1.123225e-03

Batas bawah dan atas interval adalah:

\[ \left( -0.001173, -0.001123 \right) \]

Artinya, dengan tingkat kepercayaan 95%, pengaruh alcohol terhadap density berada pada rentang tersebut dengan variabel lain konstan.


7. Uji Hipotesis Simultan

Hipotesis yang diuji adalah:

\[ H_0 : \beta_1 = \beta_2 = \beta_3 = \beta_4 = \beta_5 = 0 \]

\[ H_A : \text{Minimal satu } \beta_j \neq 0 \]

m2_fit <- lm(density ~ 1, wine)
anova(m2_fit, model_fit)
## Analysis of Variance Table
## 
## Model 1: density ~ 1
## Model 2: density ~ citric_acid + residual_sugar + chlorides + total_sulfur_dioxide + 
##     alcohol
##   Res.Df      RSS Df Sum of Sq     F    Pr(>F)    
## 1   4897 0.043806                                 
## 2   4892 0.003779  5  0.040027 10364 < 2.2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Nilai statistik F dan p-value menunjukkan adanya bukti yang sangat kuat bahwa minimal satu variabel independen berasosiasi dengan density.


8. Uji Hipotesis Parsial

8.1 Uji Dua Variabel

m3_fit <- lm(density ~ citric_acid + residual_sugar + alcohol, wine)
anova(m3_fit, model_fit)
## Analysis of Variance Table
## 
## Model 1: density ~ citric_acid + residual_sugar + alcohol
## Model 2: density ~ citric_acid + residual_sugar + chlorides + total_sulfur_dioxide + 
##     alcohol
##   Res.Df       RSS Df  Sum of Sq      F    Pr(>F)    
## 1   4894 0.0039587                                   
## 2   4892 0.0037788  2 0.00017987 116.43 < 2.2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

8.2 Uji Satu Variabel

summary(model_fit)
## 
## Call:
## lm(formula = density ~ citric_acid + residual_sugar + chlorides + 
##     total_sulfur_dioxide + alcohol, data = wine)
## 
## Residuals:
##        Min         1Q     Median         3Q        Max 
## -0.0021263 -0.0005689 -0.0001093  0.0004314  0.0251132 
## 
## Coefficients:
##                        Estimate Std. Error  t value Pr(>|t|)    
## (Intercept)           1.003e+00  1.719e-04 5832.375  < 2e-16 ***
## citric_acid           1.177e-03  1.052e-04   11.191  < 2e-16 ***
## residual_sugar        3.488e-04  2.884e-06  120.939  < 2e-16 ***
## chlorides             2.038e-03  6.229e-04    3.271  0.00108 ** 
## total_sulfur_dioxide  5.040e-06  3.434e-07   14.676  < 2e-16 ***
## alcohol              -1.148e-03  1.280e-05  -89.742  < 2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.0008789 on 4892 degrees of freedom
## Multiple R-squared:  0.9137, Adjusted R-squared:  0.9137 
## F-statistic: 1.036e+04 on 5 and 4892 DF,  p-value: < 2.2e-16

Nilai statistik t untuk chlorides adalah 3.271 dengan p-value sebesar 0.00108.


9. Kesimpulan

Model regresi linear berganda menunjukkan bahwa beberapa variabel fisikokimia memiliki hubungan signifikan terhadap density wine.

Model akhir yang diperoleh adalah:

\[ \hat{Y} = 1.002688 + 0.001177x_1 + 3.49\times 10^{-4}x_2 + 0.002038x_3 + 5\times 10^{-6}x_4 + -0.001148x_5 \]