Το dataset που χρησιμοποιούμε αφορά φυσικοχημικά χαρακτηριστικά κόκκινου κρασιού και την αξιολόγηση της ποιότητάς του. Περιλαμβάνει 11 εισαγωγικές μεταβλητές και 1 εξαρτημένη μεταβλητή (ποιότητα). Το dataset είναι διαθέσιμο από το UCI Machine Learning Repository.
Η αξιολόγηση της ποιότητας ενός κρασιού βάσει φυσικοχημικών χαρακτηριστικών αποτελεί σημαντικό εργαλείο για:
Ερωτήματα:
| Μεταβλητή | Τύπος |
|---|---|
| fixed acidity | Αριθμητικό |
| volatile acidity | Αριθμητικό |
| citric acidity | Αριθμητικό |
| residual sugar | Αριθμητικό |
| chlorides | Αριθμητικό |
| free sulfur dioxide | Αριθμητικό |
| total sulfur dioxide | Αριθμητικό |
| density | Αριθμητικό |
| pH | Αριθμητικό |
| sulphates | Αριθμητικό |
| alcohol | Αριθμητικό |
| quality | Αριθμητικό |
## fixed.acidity volatile.acidity citric.acid residual.sugar
## Min. : 4.60 Min. :0.1200 Min. :0.000 Min. : 0.900
## 1st Qu.: 7.10 1st Qu.:0.3900 1st Qu.:0.090 1st Qu.: 1.900
## Median : 7.90 Median :0.5200 Median :0.260 Median : 2.200
## Mean : 8.32 Mean :0.5278 Mean :0.271 Mean : 2.539
## 3rd Qu.: 9.20 3rd Qu.:0.6400 3rd Qu.:0.420 3rd Qu.: 2.600
## Max. :15.90 Max. :1.5800 Max. :1.000 Max. :15.500
## chlorides free.sulfur.dioxide total.sulfur.dioxide density
## Min. :0.01200 Min. : 1.00 Min. : 6.00 Min. :0.9901
## 1st Qu.:0.07000 1st Qu.: 7.00 1st Qu.: 22.00 1st Qu.:0.9956
## Median :0.07900 Median :14.00 Median : 38.00 Median :0.9968
## Mean :0.08747 Mean :15.87 Mean : 46.47 Mean :0.9967
## 3rd Qu.:0.09000 3rd Qu.:21.00 3rd Qu.: 62.00 3rd Qu.:0.9978
## Max. :0.61100 Max. :72.00 Max. :289.00 Max. :1.0037
## pH sulphates alcohol quality
## Min. :2.740 Min. :0.3300 Min. : 8.40 Min. :3.000
## 1st Qu.:3.210 1st Qu.:0.5500 1st Qu.: 9.50 1st Qu.:5.000
## Median :3.310 Median :0.6200 Median :10.20 Median :6.000
## Mean :3.311 Mean :0.6581 Mean :10.42 Mean :5.636
## 3rd Qu.:3.400 3rd Qu.:0.7300 3rd Qu.:11.10 3rd Qu.:6.000
## Max. :4.010 Max. :2.0000 Max. :14.90 Max. :8.000
ggplot(wine, aes(x = alcohol, y = quality)) +
geom_point(alpha = 0.5) +
labs(title = "Αλκοόλ vs Ποιότητα", x = "Αλκοόλ", y = "Ποιότητα")Σχόλιο: Δεν παρατηρείται ισχυρή συσχέτιση μεταξύ αλκοόλ και ποιότητας με γυμνό μάτι.️ Η μεταβλητή alcohol δεν φαίνεται να προβλέπει ισχυρά την quality.
ggplot(wine, aes(x = factor(quality), y = fixed.acidity)) +
geom_boxplot() +
labs(title = "Οξύτητα ανά Ποιότητα", x = "Ποιότητα", y = "Οξύτητα")Σχόλιο: Οι διάμεσοι τιμών οξύτητας (γραμμή μέσα στο box) παραμένουν σχετικά σταθερές σε όλες τις κατηγορίες ποιότητας.Υπάρχει μεγάλη διακύμανση της οξύτητας ανεξαρτήτως ποιότητας.
Ο παρακάτω πίνακας παρουσιάζει τους συντελεστές συσχέτισης Pearson μεταξύ των μεταβλητών. Οι τιμές πλησιέστερες στο 1 ή -1 δείχνουν ισχυρή θετική ή αρνητική σχέση αντίστοιχα.Για τα ακόλουθα μοντέλα, επιλέγουμε με φθίνουσα σειρά την μεταβλητή με την μεγαλύτερη συσχέτιση με την μεταβλητή ποιότητας.
cor_matrix <- cor(wine)
knitr::kable(round(cor_matrix, 2), caption = "Πίνακας Συσχετίσεων Μεταβλητών")| fixed.acidity | volatile.acidity | citric.acid | residual.sugar | chlorides | free.sulfur.dioxide | total.sulfur.dioxide | density | pH | sulphates | alcohol | quality | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| fixed.acidity | 1.00 | -0.26 | 0.67 | 0.11 | 0.09 | -0.15 | -0.11 | 0.67 | -0.68 | 0.18 | -0.06 | 0.12 |
| volatile.acidity | -0.26 | 1.00 | -0.55 | 0.00 | 0.06 | -0.01 | 0.08 | 0.02 | 0.23 | -0.26 | -0.20 | -0.39 |
| citric.acid | 0.67 | -0.55 | 1.00 | 0.14 | 0.20 | -0.06 | 0.04 | 0.36 | -0.54 | 0.31 | 0.11 | 0.23 |
| residual.sugar | 0.11 | 0.00 | 0.14 | 1.00 | 0.06 | 0.19 | 0.20 | 0.36 | -0.09 | 0.01 | 0.04 | 0.01 |
| chlorides | 0.09 | 0.06 | 0.20 | 0.06 | 1.00 | 0.01 | 0.05 | 0.20 | -0.27 | 0.37 | -0.22 | -0.13 |
| free.sulfur.dioxide | -0.15 | -0.01 | -0.06 | 0.19 | 0.01 | 1.00 | 0.67 | -0.02 | 0.07 | 0.05 | -0.07 | -0.05 |
| total.sulfur.dioxide | -0.11 | 0.08 | 0.04 | 0.20 | 0.05 | 0.67 | 1.00 | 0.07 | -0.07 | 0.04 | -0.21 | -0.19 |
| density | 0.67 | 0.02 | 0.36 | 0.36 | 0.20 | -0.02 | 0.07 | 1.00 | -0.34 | 0.15 | -0.50 | -0.17 |
| pH | -0.68 | 0.23 | -0.54 | -0.09 | -0.27 | 0.07 | -0.07 | -0.34 | 1.00 | -0.20 | 0.21 | -0.06 |
| sulphates | 0.18 | -0.26 | 0.31 | 0.01 | 0.37 | 0.05 | 0.04 | 0.15 | -0.20 | 1.00 | 0.09 | 0.25 |
| alcohol | -0.06 | -0.20 | 0.11 | 0.04 | -0.22 | -0.07 | -0.21 | -0.50 | 0.21 | 0.09 | 1.00 | 0.48 |
| quality | 0.12 | -0.39 | 0.23 | 0.01 | -0.13 | -0.05 | -0.19 | -0.17 | -0.06 | 0.25 | 0.48 | 1.00 |
##
## Call:
## lm(formula = quality ~ alcohol, data = wine)
##
## Residuals:
## Min 1Q Median 3Q Max
## -2.8442 -0.4112 -0.1690 0.5166 2.5888
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 1.87497 0.17471 10.73 <2e-16 ***
## alcohol 0.36084 0.01668 21.64 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.7104 on 1597 degrees of freedom
## Multiple R-squared: 0.2267, Adjusted R-squared: 0.2263
## F-statistic: 468.3 on 1 and 1597 DF, p-value: < 2.2e-16
ggplot(wine, aes(x = alcohol, y = quality)) +
geom_point(alpha = 0.5) +
geom_abline(intercept = coef(model1)[1], slope = coef(model1)[2], color = "red", linewidth = 1.2) +
labs(title = "Γραμμική Παλινδρόμηση: Ποιότητα ~ Αλκοόλ",
x = "Αλκοόλ", y = "Ποιότητα")Σχόλιο: Το αλκοόλ έχει σημαντική θετική επίδραση στην ποιότητα συγκριτικά με άλλες μεταβλητές. Το R² δείχνει ότι εξηγεί ένα μικρό ποσοστό της διακύμανσης(22.7%).
##
## Call:
## lm(formula = quality ~ alcohol + volatile.acidity, data = wine)
##
## Residuals:
## Min 1Q Median 3Q Max
## -2.59342 -0.40416 -0.07426 0.46539 2.25809
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 3.09547 0.18450 16.78 <2e-16 ***
## alcohol 0.31381 0.01601 19.60 <2e-16 ***
## volatile.acidity -1.38364 0.09527 -14.52 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.6678 on 1596 degrees of freedom
## Multiple R-squared: 0.317, Adjusted R-squared: 0.3161
## F-statistic: 370.4 on 2 and 1596 DF, p-value: < 2.2e-16
Σχόλιο: Με την προσθήκη της πτητικής οξύτητας το R² αυξάνεται αξιοσημείωτα και το SSE μειώνεται σημαντικά.
##
## Call:
## lm(formula = quality ~ alcohol + sulphates + volatile.acidity,
## data = wine)
##
## Residuals:
## Min 1Q Median 3Q Max
## -2.7186 -0.3820 -0.0641 0.4746 2.1807
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 2.61083 0.19569 13.342 < 2e-16 ***
## alcohol 0.30922 0.01580 19.566 < 2e-16 ***
## sulphates 0.67903 0.10080 6.737 2.26e-11 ***
## volatile.acidity -1.22140 0.09701 -12.591 < 2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.6587 on 1595 degrees of freedom
## Multiple R-squared: 0.3359, Adjusted R-squared: 0.3346
## F-statistic: 268.9 on 3 and 1595 DF, p-value: < 2.2e-16
Σχόλιο: Η προσθήκη θειικών αλάτων και των λοιπών μεταβλητών, όπως θα φανεί παρακάτω, δεν βελτιώνουν σημαντικά το R², και βελτιώνουν ελάχιστα το SSE.
model4 <- lm(quality ~ alcohol + sulphates + volatile.acidity + citric.acid, data = wine)
summary(model4)##
## Call:
## lm(formula = quality ~ alcohol + sulphates + volatile.acidity +
## citric.acid, data = wine)
##
## Residuals:
## Min 1Q Median 3Q Max
## -2.71408 -0.38590 -0.06402 0.46657 2.20393
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 2.64592 0.20106 13.160 < 2e-16 ***
## alcohol 0.30908 0.01581 19.553 < 2e-16 ***
## sulphates 0.69552 0.10311 6.746 2.12e-11 ***
## volatile.acidity -1.26506 0.11266 -11.229 < 2e-16 ***
## citric.acid -0.07913 0.10381 -0.762 0.446
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.6588 on 1594 degrees of freedom
## Multiple R-squared: 0.3361, Adjusted R-squared: 0.3345
## F-statistic: 201.8 on 4 and 1594 DF, p-value: < 2.2e-16
model5 <- lm(quality ~ alcohol + sulphates + citric.acid + volatile.acidity + total.sulfur.dioxide, data = wine)
summary(model5)##
## Call:
## lm(formula = quality ~ alcohol + sulphates + citric.acid + volatile.acidity +
## total.sulfur.dioxide, data = wine)
##
## Residuals:
## Min 1Q Median 3Q Max
## -2.72463 -0.38380 -0.06689 0.44606 2.14550
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 2.8431068 0.2050732 13.864 < 2e-16 ***
## alcohol 0.2953419 0.0160375 18.416 < 2e-16 ***
## sulphates 0.7207881 0.1027039 7.018 3.32e-12 ***
## citric.acid -0.0427246 0.1035810 -0.412 0.68
## volatile.acidity -1.2223102 0.1124774 -10.867 < 2e-16 ***
## total.sulfur.dioxide -0.0022182 0.0005126 -4.327 1.60e-05 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.6552 on 1593 degrees of freedom
## Multiple R-squared: 0.3439, Adjusted R-squared: 0.3418
## F-statistic: 167 on 5 and 1593 DF, p-value: < 2.2e-16
model6 <- lm(quality ~ alcohol + sulphates + citric.acid + volatile.acidity + total.sulfur.dioxide + density, data = wine)
summary(model6)##
## Call:
## lm(formula = quality ~ alcohol + sulphates + citric.acid + volatile.acidity +
## total.sulfur.dioxide + density, data = wine)
##
## Residuals:
## Min 1Q Median 3Q Max
## -2.7278 -0.3899 -0.0635 0.4392 2.1517
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -7.0092797 11.9723670 -0.585 0.558
## alcohol 0.3045866 0.0195810 15.555 < 2e-16 ***
## sulphates 0.7099695 0.1035519 6.856 1.01e-11 ***
## citric.acid -0.0927891 0.1201302 -0.772 0.440
## volatile.acidity -1.2468515 0.1163736 -10.714 < 2e-16 ***
## total.sulfur.dioxide -0.0021736 0.0005155 -4.217 2.62e-05 ***
## density 9.8195438 11.9307065 0.823 0.411
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.6552 on 1592 degrees of freedom
## Multiple R-squared: 0.3441, Adjusted R-squared: 0.3417
## F-statistic: 139.2 on 6 and 1592 DF, p-value: < 2.2e-16
model7 <- lm(quality ~ alcohol + sulphates + citric.acid + volatile.acidity + total.sulfur.dioxide + density + fixed.acidity, data = wine)
summary(model7)##
## Call:
## lm(formula = quality ~ alcohol + sulphates + citric.acid + volatile.acidity +
## total.sulfur.dioxide + density + fixed.acidity, data = wine)
##
## Residuals:
## Min 1Q Median 3Q Max
## -2.78316 -0.36672 -0.06091 0.44289 2.05714
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 2.730e+01 1.515e+01 1.802 0.071729 .
## alcohol 2.878e-01 2.004e-02 14.362 < 2e-16 ***
## sulphates 7.468e-01 1.036e-01 7.206 8.86e-13 ***
## citric.acid -3.583e-01 1.398e-01 -2.563 0.010471 *
## volatile.acidity -1.258e+00 1.160e-01 -10.852 < 2e-16 ***
## total.sulfur.dioxide -1.712e-03 5.286e-04 -3.239 0.001224 **
## density -2.492e+01 1.519e+01 -1.641 0.101070
## fixed.acidity 6.325e-02 1.722e-02 3.673 0.000248 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.6527 on 1591 degrees of freedom
## Multiple R-squared: 0.3496, Adjusted R-squared: 0.3468
## F-statistic: 122.2 on 7 and 1591 DF, p-value: < 2.2e-16
##
## Call:
## lm(formula = quality ~ ., data = wine)
##
## Residuals:
## Min 1Q Median 3Q Max
## -2.68911 -0.36652 -0.04699 0.45202 2.02498
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 2.197e+01 2.119e+01 1.036 0.3002
## fixed.acidity 2.499e-02 2.595e-02 0.963 0.3357
## volatile.acidity -1.084e+00 1.211e-01 -8.948 < 2e-16 ***
## citric.acid -1.826e-01 1.472e-01 -1.240 0.2150
## residual.sugar 1.633e-02 1.500e-02 1.089 0.2765
## chlorides -1.874e+00 4.193e-01 -4.470 8.37e-06 ***
## free.sulfur.dioxide 4.361e-03 2.171e-03 2.009 0.0447 *
## total.sulfur.dioxide -3.265e-03 7.287e-04 -4.480 8.00e-06 ***
## density -1.788e+01 2.163e+01 -0.827 0.4086
## pH -4.137e-01 1.916e-01 -2.159 0.0310 *
## sulphates 9.163e-01 1.143e-01 8.014 2.13e-15 ***
## alcohol 2.762e-01 2.648e-02 10.429 < 2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.648 on 1587 degrees of freedom
## Multiple R-squared: 0.3606, Adjusted R-squared: 0.3561
## F-statistic: 81.35 on 11 and 1587 DF, p-value: < 2.2e-16
| Μεταβλητές | R_squared | SSE |
|---|---|---|
| alcohol | 0.227 | 805.87 |
| alcohol, volatile acidity | 0.317 | 711.80 |
| alcohol, volatile acidity, sulphates | 0.336 | 692.10 |
| alcohol,volatile acidity,sulphates, citric.acid | 0.336 | 691.85 |
| alcohol,volatilie acidity, sulphates, citric.acid, total sulfur dioxide | 0.344 | 683.81 |
| alcohol,volatilie acidity, sulphates, citric.acid, total sulfur dioxide,density | 0.344 | 683.52 |
| alcohol,volatilie acidity, sulphates, citric.acid, total sulfur dioxide,density,fixed acidity | 0.350 | 677.78 |
| All features | 0.361 | 666.41 |
-Το αλκοόλ και η πτυτική οξύτητα είναι οι πιο σημαντικές μεταβλητές, με βάση τη σημαντική αύξηση του R² όταν προστίθονται.
-Η προσθήκη επιπλέον μεταβλητών βελτιώνει το μοντέλο, όμως η βελτίωση γίνεται φθίνουσα, δηλαδή κάθε νέα μεταβλητή συνεισφέρει όλο και λιγότερο.
-Το πλήρες μοντέλο έχει το χαμηλότερο SSE αλλά και το υψηλότερο R² (0.361). Όμως το όφελος από τις επιπλέον μεταβλητές είναι μικρό σε σχέση με την πολυπλοκότητα που προσθέτουν.