Dataset Wine Quality dari UCI Machine Learning Repository
berisi sampel Vinho Verde dari Portugal. Dataset menyediakan
sebelas karakteristik fisikokimia sebagai prediktor dan skor
quality sebagai respons. UCI menyediakan dua kelompok data,
yaitu red wine dan white wine, dan
keduanya dapat dianalisis sebagai masalah regresi maupun klasifikasi.
Pada project ini quality diperlakukan sebagai variabel
numerik sehingga fokus analisis adalah regresi (Cortez et al.,
2009).
Ridge regression digunakan karena penalti \(L_2\) dapat membantu menstabilkan estimasi ketika prediktor saling berkorelasi. Analisis dilakukan melalui dua jalur yang sengaja dipisahkan:
tidymodels dan glmnet dengan preprocessing
yang direproduksi melalui recipe().Kedua jalur menggunakan pembagian data dan nilai \(\lambda\) yang sama sehingga koefisien dan prediksi dapat dibandingkan secara langsung.
Pada komputasi manual, standardisasi dilakukan secara eksplisit
menggunakan rumus \(Z=(X-\bar X)/s\).
Pada komputasi package, standardisasi dilakukan melalui
step_normalize() yang mempelajari mean dan simpangan baku
dari training set. Karena standardisasi sudah dilakukan oleh
recipe, standardisasi internal glmnet
dinonaktifkan dengan standardize = FALSE. Dokumentasi
recipes menjelaskan bahwa step_normalize()
mengestimasi mean dan SD dari data training dan menerapkannya pada data
baru (recipes documentation).
Analisis bertujuan untuk memahami struktur data, memeriksa multikolinearitas, melakukan standardisasi, menghitung Ridge secara manual, mengimplementasikan Ridge dengan package R, menentukan \(\lambda\) melalui cross-validation, mengevaluasi prediksi out-of-sample, dan membandingkan hasil kedua pendekatan.
Model regresi linear dengan \(p\) prediktor ditulis sebagai
\[ Y_i=\beta_0+\sum_{j=1}^{p}\beta_jX_{ij}+\varepsilon_i. \]
OLS memperoleh koefisien dengan meminimumkan jumlah kuadrat residual:
\[ \hat\beta_{OLS}=\arg\min_{\beta}\sum_{i=1}^{n}(y_i-\beta_0-X_i\beta)^2. \]
Karena penalti Ridge bekerja pada besar koefisien, perbedaan skala antar-prediktor perlu dikendalikan. Standardisasi menggunakan
\[ Z_{ij}=\frac{X_{ij}-\bar X_j}{s_j}, \]
dengan \(\bar X_j\) sebagai mean dan \(s_j\) sebagai simpangan baku prediktor ke-\(j\).
Dalam project ini standardisasi hanya menggunakan informasi training set. Dengan demikian, mean dan SD dari test set tidak digunakan untuk membentuk model.
Ridge menambahkan penalti kuadrat koefisien. Untuk regresi Gaussian,
formulasi yang konsisten dengan glmnet adalah
\[ \hat\beta_{Ridge}=\arg\min_{\beta_0,\beta}\left\{\frac{1}{2n}\lVert y-\beta_0-Z\beta\rVert_2^2+\frac{\lambda}{2}\lVert\beta\rVert_2^2\right\}. \]
Karena prediktor telah dipusatkan, intercept dapat dipisahkan dan solusi slope manual menjadi
\[ \hat\beta_{Ridge}=(Z^TZ+n\lambda I)^{-1}Z^T(y-\bar y). \]
Intercept dapat diperoleh kembali dari mean response karena prediktor telah dipusatkan:
\[ \hat\beta_0=\bar y. \]
Nilai \(\lambda\) mengendalikan kekuatan shrinkage. Ketika \(\lambda=0\), solusi kembali ke OLS. Semakin besar \(\lambda\), koefisien semakin menyusut menuju nol, tetapi Ridge tidak melakukan seleksi variabel secara langsung.
Nilai \(\lambda\) tidak dipilih berdasarkan test set. Pada project ini, \(\lambda\) dipilih menggunakan 10-fold cross-validation pada training set dengan RMSE sebagai metrik utama.
RMSE:
\[ RMSE=\sqrt{\frac{1}{n}\sum_{i=1}^{n}(y_i-\hat y_i)^2}. \]
MAE:
\[ MAE=\frac{1}{n}\sum_{i=1}^{n}|y_i-\hat y_i|. \]
Koefisien determinasi:
\[ R^2=1-\frac{\sum_i(y_i-\hat y_i)^2}{\sum_i(y_i-\bar y)^2}. \]
Untuk RMSE dan MAE, nilai yang lebih kecil menunjukkan error prediksi yang lebih rendah. Untuk \(R^2\), nilai yang lebih besar menunjukkan proporsi variasi response yang lebih banyak dijelaskan oleh prediksi model.
Data berasal dari UCI Machine Learning Repository, yang menyediakan
file winequality-red.csv dan
winequality-white.csv. UCI mencatat 11 fitur fisikokimia
dan quality sebagai output sensorik (UCI Machine Learning
Repository).
metric_table <- function(truth, estimate) {
tibble(
RMSE = rmse_vec(truth, estimate),
MAE = mae_vec(truth, estimate),
R2 = rsq_vec(truth, estimate)
)
}
manual_ridge <- function(train_data, predictors, response, lambda) {
X <- as.matrix(train_data[, predictors])
y <- train_data[[response]]
x_mean <- colMeans(X)
x_sd <- apply(X, 2, sd)
Z <- scale(X, center = x_mean, scale = x_sd)
p <- ncol(Z)
penalty_matrix <- diag(p)
n <- nrow(Z)
# glmnet Gaussian Ridge uses: RSS/(2n) + lambda/2 * ||beta||^2.
# Multiplying the objective by 2n gives: RSS + n*lambda*||beta||^2.
beta <- solve(
crossprod(Z) + n * lambda * penalty_matrix,
crossprod(Z, y - mean(y))
)
beta <- as.numeric(beta)
names(beta) <- predictors
intercept <- mean(y)
list(
beta = beta,
intercept = intercept,
means = x_mean,
sds = x_sd,
lambda = lambda
)
}
predict_manual_ridge <- function(model, new_data) {
X_new <- as.matrix(new_data[names(model$beta)])
Z_new <- sweep(X_new, 2, model$means, "-")
Z_new <- sweep(Z_new, 2, model$sds, "/")
as.numeric(model$intercept + Z_new %*% model$beta)
}red_url <- paste0(
"https://archive.ics.uci.edu/ml/machine-learning-databases/",
"wine-quality/winequality-red.csv"
)
red_wine <- read.csv(red_url, sep = ";")
red_model <- red_wine %>% select(all_of(c(predictors, response)))
cat("Observasi:", nrow(red_model), "\n")## Observasi: 1599
## Variabel: 12
red_missing <- colSums(is.na(red_model))
red_duplicates <- sum(duplicated(red_model))
kable(
tibble(variable = names(red_missing), missing = as.integer(red_missing)),
caption = "Missing Value Red Wine"
)| variable | missing |
|---|---|
| fixed.acidity | 0 |
| volatile.acidity | 0 |
| citric.acid | 0 |
| residual.sugar | 0 |
| chlorides | 0 |
| free.sulfur.dioxide | 0 |
| total.sulfur.dioxide | 0 |
| density | 0 |
| pH | 0 |
| sulphates | 0 |
| alcohol | 0 |
| quality | 0 |
## Duplikasi: 240
p1 <- ggplot(red_model, aes(quality)) +
geom_histogram(binwidth = 1, boundary = .5, color = "white") +
labs(title = "Distribusi Quality — Red Wine", x = "Quality", y = "Frekuensi") +
theme_minimal(base_size = 12)
red_long <- red_model %>%
pivot_longer(all_of(predictors), names_to = "variable", values_to = "value")
p2 <- ggplot(red_long, aes(value)) +
geom_histogram(bins = 30, color = "white") +
facet_wrap(~variable, scales = "free", ncol = 3) +
labs(title = "Distribusi Prediktor — Red Wine", x = NULL, y = "Frekuensi") +
theme_minimal(base_size = 10)
p1 / p2set.seed(12345)
red_split <- initial_split(red_model, prop = .80, strata = quality)
red_train <- training(red_split)
red_test <- testing(red_split)
cat("Training:", nrow(red_train), "\n")## Training: 1278
## Testing : 321
red_train_tmp <- red_train
red_ols_tmp <- lm(quality ~ ., data = red_train_tmp)
red_vif <- car::vif(red_ols_tmp)
red_vif_table <- tibble(
variable = names(red_vif),
VIF = as.numeric(red_vif)
) %>% arrange(desc(VIF))
kable(red_vif_table, digits = 3, caption = "VIF Red Wine")| variable | VIF |
|---|---|
| fixed.acidity | 7.967 |
| density | 6.600 |
| pH | 3.459 |
| alcohol | 3.209 |
| citric.acid | 3.064 |
| total.sulfur.dioxide | 2.190 |
| free.sulfur.dioxide | 1.960 |
| volatile.acidity | 1.754 |
| residual.sugar | 1.704 |
| chlorides | 1.544 |
| sulphates | 1.503 |
Hasil VIF menunjukkan bahwa fixed.acidity memiliki nilai VIF paling tinggi, yaitu 7,967, diikuti oleh density sebesar 6,600. Nilai ini menunjukkan bahwa kedua variabel tersebut memiliki keterkaitan yang cukup kuat dengan prediktor lainnya sehingga berpotensi menimbulkan multikolinearitas. Sementara itu, variabel pH, alcohol, dan citric.acid memiliki VIF sekitar 3, sedangkan variabel lainnya berada di bawah 2,2, sehingga hubungan linear dengan prediktor lain relatif lebih rendah. Secara keseluruhan, hasil ini menunjukkan adanya multikolinearitas terutama pada fixed.acidity dan density, yang mendukung penggunaan Ridge Regression untuk membantu menstabilkan estimasi koefisien ketika prediktor saling berkorelasi.
red_cor <- cor(red_model[predictors], use = "complete.obs")
red_cor_long <- as.data.frame(red_cor) %>%
rownames_to_column("v1") %>%
pivot_longer(-v1, names_to = "v2", values_to = "r")
ggplot(red_cor_long, aes(v1, v2, fill = r)) +
geom_tile() +
geom_text(aes(label = sprintf("%.2f", r)), size = 2.5) +
scale_fill_gradient2(low = "#2166AC", mid = "white", high = "#B2182B", midpoint = 0, limits = c(-1,1)) +
labs(title = "Korelasi Prediktor — Red Wine", x = NULL, y = NULL, fill = "r") +
theme_minimal(base_size = 9) +
theme(axis.text.x = element_text(angle = 45, hjust = 1))Matriks korelasi menunjukkan beberapa hubungan yang cukup kuat antar prediktor. Korelasi positif paling terlihat antara fixed.acidity dengan citric.acid (r = 0,67), fixed.acidity dengan density (r = 0,67), serta free.sulfur.dioxide dengan total.sulfur.dioxide (r = 0,67). Sebaliknya, hubungan negatif yang cukup kuat terlihat antara pH dengan fixed.acidity (r = −0,68) dan pH dengan citric.acid (r = −0,54). Pola ini memperlihatkan bahwa beberapa karakteristik kimia wine bergerak bersama, terutama variabel yang berkaitan dengan tingkat keasaman dan sulfur dioksida. Hasil korelasi ini sejalan dengan nilai VIF yang menunjukkan bahwa fixed.acidity dan density merupakan variabel yang perlu mendapat perhatian dalam masalah multikolinearitas.
X_red <- as.matrix(red_train[predictors])
y_red <- red_train$quality
red_means <- colMeans(X_red)
red_sds <- apply(X_red, 2, sd)
Z_red <- scale(X_red, center = red_means, scale = red_sds)
red_standardization <- tibble(
variable = predictors,
mean_training = as.numeric(red_means),
sd_training = as.numeric(red_sds)
)
kable(red_standardization, digits = 4, caption = "Parameter Standardisasi Manual — Red Wine")| variable | mean_training | sd_training |
|---|---|---|
| fixed.acidity | 8.3111 | 1.7418 |
| volatile.acidity | 0.5310 | 0.1816 |
| citric.acid | 0.2701 | 0.1957 |
| residual.sugar | 2.5420 | 1.4072 |
| chlorides | 0.0882 | 0.0493 |
| free.sulfur.dioxide | 15.7750 | 10.1708 |
| total.sulfur.dioxide | 46.1287 | 32.3489 |
| density | 0.9967 | 0.0019 |
| pH | 3.3098 | 0.1559 |
| sulphates | 0.6603 | 0.1739 |
| alcohol | 10.4157 | 1.0717 |
Dengan \(Z\) sebagai matriks prediktor terstandardisasi, perhitungan manual mengikuti:
\[ \hat\beta(\lambda)=(Z^TZ+n\lambda I)^{-1}Z^T(y-\bar y). \]
Intercept dihitung sebagai \(\hat\beta_0=\bar y\) karena kolom prediktor telah dipusatkan.
Agar perbandingan manual dan package adil, kandidat \(\lambda\) menggunakan grid yang sama.
red_lambda_grid <- 10^seq(-4, 2, length.out = 100)
set.seed(12345)
red_manual_folds <- vfold_cv(red_train, v = 10, strata = quality)
red_manual_cv <- map_dfr(red_lambda_grid, function(lambda) {
fold_rmse <- map_dbl(red_manual_folds$splits, function(s) {
tr <- analysis(s)
va <- assessment(s)
fit <- manual_ridge(tr, predictors, response, lambda)
pred <- predict_manual_ridge(fit, va)
rmse_vec(va$quality, pred)
})
tibble(
penalty = lambda,
RMSE = mean(fold_rmse)
)
})
red_manual_best <- red_manual_cv %>% slice_min(RMSE, n = 1)
red_manual_bestggplot(red_manual_cv, aes(penalty, RMSE)) +
geom_line(linewidth = .8) +
geom_point(data = red_manual_best, size = 3) +
scale_x_log10() +
labs(title = "10-Fold CV Manual Ridge — Red Wine", x = expression(lambda), y = "Mean RMSE") +
theme_minimal(base_size = 12)Hasil 10-fold cross-validation menunjukkan bahwa nilai RMSE berada di sekitar 0,65 pada sebagian besar nilai \(\lambda\) yang kecil, kemudian meningkat cukup tajam ketika \(\lambda\) semakin besar. Nilai RMSE minimum diperoleh pada \(\lambda \approx 0,06\), dengan RMSE = 0,6515, sehingga nilai tersebut dipilih sebagai \(\lambda\) optimal karena memberikan kesalahan prediksi rata-rata terkecil pada data validasi. Ketika \(\lambda\) semakin besar, penalti Ridge semakin kuat sehingga koefisien semakin menyusut dan performa prediksi menurun, yang terlihat dari kenaikan RMSE hingga sekitar 0,81.
red_lambda_manual <- red_manual_best$penalty
red_manual_fit <- manual_ridge(red_train, predictors, response, red_lambda_manual)
red_manual_coef <- tibble(
term = predictors,
estimate = unname(red_manual_fit$beta)
)
kable(red_manual_coef, digits = 5, caption = "Koefisien Manual Ridge — Red Wine")| term | estimate |
|---|---|
| fixed.acidity | 0.05370 |
| volatile.acidity | -0.19479 |
| citric.acid | -0.01029 |
| residual.sugar | 0.03302 |
| chlorides | -0.09225 |
| free.sulfur.dioxide | 0.04596 |
| total.sulfur.dioxide | -0.11194 |
| density | -0.04489 |
| pH | -0.05403 |
| sulphates | 0.13112 |
| alcohol | 0.27578 |
red_manual_pred <- predict_manual_ridge(red_manual_fit, red_test)
red_manual_metrics <- metric_table(red_test$quality, red_manual_pred)
red_manual_metricsPada \(\lambda\) terpilih, model menghasilkan MAE = 0,4956 dan R² = 0,3052, yang berarti model mampu menjelaskan sekitar 30,52% variasi kualitas wine pada data yang dievaluasi.
recipe()step_normalize() mempelajari mean dan SD dari training
data lalu menggunakan parameter tersebut ketika data baru diproses.
Dengan demikian, standardisasi tidak menggunakan informasi test set
(recipes documentation).
red_ridge_spec <- linear_reg(
penalty = tune(),
mixture = 0
) %>%
set_engine("glmnet", standardize = FALSE)mixture = 0 menyatakan penalti Ridge murni.
standardize = FALSE digunakan karena standardisasi sudah
dilakukan oleh step_normalize().
red_folds <- red_manual_folds
red_grid <- tibble(penalty = red_lambda_grid)
red_workflow <- workflow() %>%
add_recipe(red_recipe) %>%
add_model(red_ridge_spec)
red_tuned <- tune_grid(
red_workflow,
resamples = red_folds,
grid = red_grid,
metrics = metric_set(rmse, mae, rsq)
)
red_best <- select_best(red_tuned, metric = "rmse")
red_bestred_final_workflow <- finalize_workflow(red_workflow, red_best)
red_package_fit <- fit(red_final_workflow, data = red_train)
red_package_pred <- predict(red_package_fit, new_data = red_test)$.pred
red_package_metrics <- metric_table(red_test$quality, red_package_pred)
red_package_metricsred_package_coef <- tidy(extract_fit_parsnip(red_package_fit)$fit) %>%
filter(term != "(Intercept)") %>%
transmute(term, package_estimate = estimate)
red_coef_comparison <- red_manual_coef %>%
rename(manual_estimate = estimate) %>%
left_join(red_package_coef, by = "term") %>%
mutate(abs_difference = abs(manual_estimate - package_estimate))
kable(red_coef_comparison, digits = 6, caption = "Perbandingan Koefisien Manual dan Package — Red Wine")| term | manual_estimate | package_estimate | abs_difference |
|---|---|---|---|
| fixed.acidity | 0.053696 | 0.000000 | 0.053696 |
| fixed.acidity | 0.053696 | 0.000248 | 0.053448 |
| fixed.acidity | 0.053696 | 0.000272 | 0.053424 |
| fixed.acidity | 0.053696 | 0.000299 | 0.053397 |
| fixed.acidity | 0.053696 | 0.000328 | 0.053368 |
| fixed.acidity | 0.053696 | 0.000359 | 0.053337 |
| fixed.acidity | 0.053696 | 0.000394 | 0.053302 |
| fixed.acidity | 0.053696 | 0.000432 | 0.053264 |
| fixed.acidity | 0.053696 | 0.000474 | 0.053222 |
| fixed.acidity | 0.053696 | 0.000519 | 0.053177 |
| fixed.acidity | 0.053696 | 0.000569 | 0.053127 |
| fixed.acidity | 0.053696 | 0.000624 | 0.053072 |
| fixed.acidity | 0.053696 | 0.000684 | 0.053012 |
| fixed.acidity | 0.053696 | 0.000749 | 0.052947 |
| fixed.acidity | 0.053696 | 0.000821 | 0.052875 |
| fixed.acidity | 0.053696 | 0.000899 | 0.052797 |
| fixed.acidity | 0.053696 | 0.000985 | 0.052711 |
| fixed.acidity | 0.053696 | 0.001078 | 0.052618 |
| fixed.acidity | 0.053696 | 0.001180 | 0.052516 |
| fixed.acidity | 0.053696 | 0.001292 | 0.052404 |
| fixed.acidity | 0.053696 | 0.001414 | 0.052282 |
| fixed.acidity | 0.053696 | 0.001547 | 0.052149 |
| fixed.acidity | 0.053696 | 0.001691 | 0.052005 |
| fixed.acidity | 0.053696 | 0.001849 | 0.051847 |
| fixed.acidity | 0.053696 | 0.002021 | 0.051675 |
| fixed.acidity | 0.053696 | 0.002208 | 0.051488 |
| fixed.acidity | 0.053696 | 0.002411 | 0.051285 |
| fixed.acidity | 0.053696 | 0.002631 | 0.051065 |
| fixed.acidity | 0.053696 | 0.002871 | 0.050825 |
| fixed.acidity | 0.053696 | 0.003130 | 0.050566 |
| fixed.acidity | 0.053696 | 0.003411 | 0.050285 |
| fixed.acidity | 0.053696 | 0.003715 | 0.049981 |
| fixed.acidity | 0.053696 | 0.004043 | 0.049653 |
| fixed.acidity | 0.053696 | 0.004397 | 0.049299 |
| fixed.acidity | 0.053696 | 0.004779 | 0.048917 |
| fixed.acidity | 0.053696 | 0.005189 | 0.048507 |
| fixed.acidity | 0.053696 | 0.005629 | 0.048066 |
| fixed.acidity | 0.053696 | 0.006102 | 0.047594 |
| fixed.acidity | 0.053696 | 0.006607 | 0.047089 |
| fixed.acidity | 0.053696 | 0.007147 | 0.046549 |
| fixed.acidity | 0.053696 | 0.007722 | 0.045974 |
| fixed.acidity | 0.053696 | 0.008333 | 0.045363 |
| fixed.acidity | 0.053696 | 0.008982 | 0.044714 |
| fixed.acidity | 0.053696 | 0.009669 | 0.044027 |
| fixed.acidity | 0.053696 | 0.010395 | 0.043301 |
| fixed.acidity | 0.053696 | 0.011159 | 0.042537 |
| fixed.acidity | 0.053696 | 0.011963 | 0.041733 |
| fixed.acidity | 0.053696 | 0.012804 | 0.040892 |
| fixed.acidity | 0.053696 | 0.013684 | 0.040012 |
| fixed.acidity | 0.053696 | 0.014601 | 0.039095 |
| fixed.acidity | 0.053696 | 0.015555 | 0.038141 |
| fixed.acidity | 0.053696 | 0.016543 | 0.037153 |
| fixed.acidity | 0.053696 | 0.017565 | 0.036131 |
| fixed.acidity | 0.053696 | 0.018620 | 0.035076 |
| fixed.acidity | 0.053696 | 0.019704 | 0.033992 |
| fixed.acidity | 0.053696 | 0.020817 | 0.032879 |
| fixed.acidity | 0.053696 | 0.021957 | 0.031739 |
| fixed.acidity | 0.053696 | 0.023121 | 0.030575 |
| fixed.acidity | 0.053696 | 0.024307 | 0.029389 |
| fixed.acidity | 0.053696 | 0.025513 | 0.028183 |
| fixed.acidity | 0.053696 | 0.026737 | 0.026959 |
| fixed.acidity | 0.053696 | 0.027977 | 0.025719 |
| fixed.acidity | 0.053696 | 0.029230 | 0.024466 |
| fixed.acidity | 0.053696 | 0.030495 | 0.023201 |
| fixed.acidity | 0.053696 | 0.031769 | 0.021927 |
| fixed.acidity | 0.053696 | 0.033050 | 0.020646 |
| fixed.acidity | 0.053696 | 0.034335 | 0.019361 |
| fixed.acidity | 0.053696 | 0.035622 | 0.018074 |
| fixed.acidity | 0.053696 | 0.036894 | 0.016802 |
| fixed.acidity | 0.053696 | 0.038169 | 0.015527 |
| fixed.acidity | 0.053696 | 0.039436 | 0.014260 |
| fixed.acidity | 0.053696 | 0.040690 | 0.013006 |
| fixed.acidity | 0.053696 | 0.041928 | 0.011768 |
| fixed.acidity | 0.053696 | 0.043144 | 0.010552 |
| fixed.acidity | 0.053696 | 0.044333 | 0.009363 |
| fixed.acidity | 0.053696 | 0.045492 | 0.008204 |
| fixed.acidity | 0.053696 | 0.046613 | 0.007083 |
| fixed.acidity | 0.053696 | 0.047692 | 0.006003 |
| fixed.acidity | 0.053696 | 0.048724 | 0.004972 |
| fixed.acidity | 0.053696 | 0.049703 | 0.003993 |
| fixed.acidity | 0.053696 | 0.050623 | 0.003073 |
| fixed.acidity | 0.053696 | 0.051480 | 0.002216 |
| fixed.acidity | 0.053696 | 0.052268 | 0.001428 |
| fixed.acidity | 0.053696 | 0.052984 | 0.000712 |
| fixed.acidity | 0.053696 | 0.053625 | 0.000071 |
| fixed.acidity | 0.053696 | 0.054186 | 0.000490 |
| fixed.acidity | 0.053696 | 0.054666 | 0.000970 |
| fixed.acidity | 0.053696 | 0.055062 | 0.001366 |
| fixed.acidity | 0.053696 | 0.055375 | 0.001679 |
| fixed.acidity | 0.053696 | 0.055603 | 0.001907 |
| fixed.acidity | 0.053696 | 0.055748 | 0.002052 |
| fixed.acidity | 0.053696 | 0.055811 | 0.002115 |
| fixed.acidity | 0.053696 | 0.055794 | 0.002098 |
| fixed.acidity | 0.053696 | 0.055700 | 0.002004 |
| fixed.acidity | 0.053696 | 0.055534 | 0.001838 |
| fixed.acidity | 0.053696 | 0.055299 | 0.001603 |
| fixed.acidity | 0.053696 | 0.055000 | 0.001304 |
| fixed.acidity | 0.053696 | 0.054643 | 0.000947 |
| fixed.acidity | 0.053696 | 0.054233 | 0.000537 |
| fixed.acidity | 0.053696 | 0.053777 | 0.000081 |
| volatile.acidity | -0.194787 | 0.000000 | 0.194787 |
| volatile.acidity | -0.194787 | -0.000757 | 0.194031 |
| volatile.acidity | -0.194787 | -0.000830 | 0.193957 |
| volatile.acidity | -0.194787 | -0.000911 | 0.193877 |
| volatile.acidity | -0.194787 | -0.000999 | 0.193788 |
| volatile.acidity | -0.194787 | -0.001096 | 0.193692 |
| volatile.acidity | -0.194787 | -0.001202 | 0.193586 |
| volatile.acidity | -0.194787 | -0.001318 | 0.193469 |
| volatile.acidity | -0.194787 | -0.001445 | 0.193342 |
| volatile.acidity | -0.194787 | -0.001585 | 0.193202 |
| volatile.acidity | -0.194787 | -0.001738 | 0.193049 |
| volatile.acidity | -0.194787 | -0.001906 | 0.192881 |
| volatile.acidity | -0.194787 | -0.002089 | 0.192698 |
| volatile.acidity | -0.194787 | -0.002290 | 0.192497 |
| volatile.acidity | -0.194787 | -0.002511 | 0.192277 |
| volatile.acidity | -0.194787 | -0.002752 | 0.192036 |
| volatile.acidity | -0.194787 | -0.003015 | 0.191772 |
| volatile.acidity | -0.194787 | -0.003304 | 0.191484 |
| volatile.acidity | -0.194787 | -0.003619 | 0.191168 |
| volatile.acidity | -0.194787 | -0.003964 | 0.190823 |
| volatile.acidity | -0.194787 | -0.004341 | 0.190446 |
| volatile.acidity | -0.194787 | -0.004753 | 0.190034 |
| volatile.acidity | -0.194787 | -0.005203 | 0.189585 |
| volatile.acidity | -0.194787 | -0.005694 | 0.189094 |
| volatile.acidity | -0.194787 | -0.006229 | 0.188558 |
| volatile.acidity | -0.194787 | -0.006813 | 0.187974 |
| volatile.acidity | -0.194787 | -0.007449 | 0.187338 |
| volatile.acidity | -0.194787 | -0.008142 | 0.186645 |
| volatile.acidity | -0.194787 | -0.008896 | 0.185891 |
| volatile.acidity | -0.194787 | -0.009716 | 0.185071 |
| volatile.acidity | -0.194787 | -0.010607 | 0.184181 |
| volatile.acidity | -0.194787 | -0.011573 | 0.183214 |
| volatile.acidity | -0.194787 | -0.012621 | 0.182166 |
| volatile.acidity | -0.194787 | -0.013757 | 0.181031 |
| volatile.acidity | -0.194787 | -0.014985 | 0.179803 |
| volatile.acidity | -0.194787 | -0.016311 | 0.178476 |
| volatile.acidity | -0.194787 | -0.017743 | 0.177044 |
| volatile.acidity | -0.194787 | -0.019286 | 0.175502 |
| volatile.acidity | -0.194787 | -0.020945 | 0.173843 |
| volatile.acidity | -0.194787 | -0.022726 | 0.172061 |
| volatile.acidity | -0.194787 | -0.024636 | 0.170151 |
| volatile.acidity | -0.194787 | -0.026679 | 0.168108 |
| volatile.acidity | -0.194787 | -0.028861 | 0.165927 |
| volatile.acidity | -0.194787 | -0.031184 | 0.163603 |
| volatile.acidity | -0.194787 | -0.033654 | 0.161134 |
| volatile.acidity | -0.194787 | -0.036271 | 0.158516 |
| volatile.acidity | -0.194787 | -0.039040 | 0.155748 |
| volatile.acidity | -0.194787 | -0.041958 | 0.152829 |
| volatile.acidity | -0.194787 | -0.045026 | 0.149761 |
| volatile.acidity | -0.194787 | -0.048241 | 0.146546 |
| volatile.acidity | -0.194787 | -0.051601 | 0.143187 |
| volatile.acidity | -0.194787 | -0.055099 | 0.139689 |
| volatile.acidity | -0.194787 | -0.058729 | 0.136059 |
| volatile.acidity | -0.194787 | -0.062482 | 0.132306 |
| volatile.acidity | -0.194787 | -0.066348 | 0.128439 |
| volatile.acidity | -0.194787 | -0.070317 | 0.124470 |
| volatile.acidity | -0.194787 | -0.074375 | 0.120412 |
| volatile.acidity | -0.194787 | -0.078508 | 0.116280 |
| volatile.acidity | -0.194787 | -0.082700 | 0.112087 |
| volatile.acidity | -0.194787 | -0.086938 | 0.107850 |
| volatile.acidity | -0.194787 | -0.091203 | 0.103584 |
| volatile.acidity | -0.194787 | -0.095480 | 0.099308 |
| volatile.acidity | -0.194787 | -0.099752 | 0.095035 |
| volatile.acidity | -0.194787 | -0.104004 | 0.090784 |
| volatile.acidity | -0.194787 | -0.108220 | 0.086567 |
| volatile.acidity | -0.194787 | -0.112386 | 0.082401 |
| volatile.acidity | -0.194787 | -0.116490 | 0.078297 |
| volatile.acidity | -0.194787 | -0.120520 | 0.074268 |
| volatile.acidity | -0.194787 | -0.124478 | 0.070310 |
| volatile.acidity | -0.194787 | -0.128331 | 0.066456 |
| volatile.acidity | -0.194787 | -0.132085 | 0.062702 |
| volatile.acidity | -0.194787 | -0.135733 | 0.059054 |
| volatile.acidity | -0.194787 | -0.139271 | 0.055516 |
| volatile.acidity | -0.194787 | -0.142697 | 0.052090 |
| volatile.acidity | -0.194787 | -0.146009 | 0.048779 |
| volatile.acidity | -0.194787 | -0.149205 | 0.045582 |
| volatile.acidity | -0.194787 | -0.152287 | 0.042500 |
| volatile.acidity | -0.194787 | -0.155256 | 0.039532 |
| volatile.acidity | -0.194787 | -0.158112 | 0.036676 |
| volatile.acidity | -0.194787 | -0.160857 | 0.033930 |
| volatile.acidity | -0.194787 | -0.163494 | 0.031293 |
| volatile.acidity | -0.194787 | -0.166025 | 0.028762 |
| volatile.acidity | -0.194787 | -0.168452 | 0.026336 |
| volatile.acidity | -0.194787 | -0.170776 | 0.024011 |
| volatile.acidity | -0.194787 | -0.173001 | 0.021786 |
| volatile.acidity | -0.194787 | -0.175128 | 0.019659 |
| volatile.acidity | -0.194787 | -0.177159 | 0.017628 |
| volatile.acidity | -0.194787 | -0.179097 | 0.015690 |
| volatile.acidity | -0.194787 | -0.180943 | 0.013844 |
| volatile.acidity | -0.194787 | -0.182699 | 0.012088 |
| volatile.acidity | -0.194787 | -0.184368 | 0.010420 |
| volatile.acidity | -0.194787 | -0.185950 | 0.008837 |
| volatile.acidity | -0.194787 | -0.187448 | 0.007339 |
| volatile.acidity | -0.194787 | -0.188865 | 0.005923 |
| volatile.acidity | -0.194787 | -0.190202 | 0.004586 |
| volatile.acidity | -0.194787 | -0.191461 | 0.003326 |
| volatile.acidity | -0.194787 | -0.192646 | 0.002141 |
| volatile.acidity | -0.194787 | -0.193759 | 0.001028 |
| volatile.acidity | -0.194787 | -0.194802 | 0.000015 |
| volatile.acidity | -0.194787 | -0.195778 | 0.000991 |
| citric.acid | -0.010290 | 0.000000 | 0.010290 |
| citric.acid | -0.010290 | 0.000442 | 0.010732 |
| citric.acid | -0.010290 | 0.000485 | 0.010774 |
| citric.acid | -0.010290 | 0.000531 | 0.010821 |
| citric.acid | -0.010290 | 0.000583 | 0.010873 |
| citric.acid | -0.010290 | 0.000639 | 0.010929 |
| citric.acid | -0.010290 | 0.000701 | 0.010991 |
| citric.acid | -0.010290 | 0.000769 | 0.011058 |
| citric.acid | -0.010290 | 0.000843 | 0.011132 |
| citric.acid | -0.010290 | 0.000924 | 0.011214 |
| citric.acid | -0.010290 | 0.001013 | 0.011303 |
| citric.acid | -0.010290 | 0.001110 | 0.011400 |
| citric.acid | -0.010290 | 0.001217 | 0.011506 |
| citric.acid | -0.010290 | 0.001333 | 0.011623 |
| citric.acid | -0.010290 | 0.001460 | 0.011750 |
| citric.acid | -0.010290 | 0.001600 | 0.011890 |
| citric.acid | -0.010290 | 0.001752 | 0.012042 |
| citric.acid | -0.010290 | 0.001919 | 0.012208 |
| citric.acid | -0.010290 | 0.002100 | 0.012390 |
| citric.acid | -0.010290 | 0.002299 | 0.012589 |
| citric.acid | -0.010290 | 0.002516 | 0.012805 |
| citric.acid | -0.010290 | 0.002752 | 0.013042 |
| citric.acid | -0.010290 | 0.003009 | 0.013299 |
| citric.acid | -0.010290 | 0.003290 | 0.013580 |
| citric.acid | -0.010290 | 0.003595 | 0.013885 |
| citric.acid | -0.010290 | 0.003927 | 0.014217 |
| citric.acid | -0.010290 | 0.004288 | 0.014578 |
| citric.acid | -0.010290 | 0.004680 | 0.014970 |
| citric.acid | -0.010290 | 0.005105 | 0.015395 |
| citric.acid | -0.010290 | 0.005565 | 0.015855 |
| citric.acid | -0.010290 | 0.006064 | 0.016353 |
| citric.acid | -0.010290 | 0.006602 | 0.016892 |
| citric.acid | -0.010290 | 0.007183 | 0.017473 |
| citric.acid | -0.010290 | 0.007810 | 0.018100 |
| citric.acid | -0.010290 | 0.008484 | 0.018773 |
| citric.acid | -0.010290 | 0.009207 | 0.019497 |
| citric.acid | -0.010290 | 0.009983 | 0.020273 |
| citric.acid | -0.010290 | 0.010813 | 0.021102 |
| citric.acid | -0.010290 | 0.011698 | 0.021988 |
| citric.acid | -0.010290 | 0.012641 | 0.022930 |
| citric.acid | -0.010290 | 0.013641 | 0.023931 |
| citric.acid | -0.010290 | 0.014701 | 0.024990 |
| citric.acid | -0.010290 | 0.015819 | 0.026108 |
| citric.acid | -0.010290 | 0.016995 | 0.027284 |
| citric.acid | -0.010290 | 0.018227 | 0.028517 |
| citric.acid | -0.010290 | 0.019514 | 0.029804 |
| citric.acid | -0.010290 | 0.020852 | 0.031141 |
| citric.acid | -0.010290 | 0.022236 | 0.032526 |
| citric.acid | -0.010290 | 0.023662 | 0.033952 |
| citric.acid | -0.010290 | 0.025123 | 0.035412 |
| citric.acid | -0.010290 | 0.026610 | 0.036900 |
| citric.acid | -0.010290 | 0.028116 | 0.038406 |
| citric.acid | -0.010290 | 0.029630 | 0.039920 |
| citric.acid | -0.010290 | 0.031141 | 0.041430 |
| citric.acid | -0.010290 | 0.032635 | 0.042925 |
| citric.acid | -0.010290 | 0.034101 | 0.044390 |
| citric.acid | -0.010290 | 0.035523 | 0.045812 |
| citric.acid | -0.010290 | 0.036886 | 0.047176 |
| citric.acid | -0.010290 | 0.038176 | 0.048465 |
| citric.acid | -0.010290 | 0.039376 | 0.049666 |
| citric.acid | -0.010290 | 0.040471 | 0.050761 |
| citric.acid | -0.010290 | 0.041446 | 0.051736 |
| citric.acid | -0.010290 | 0.042287 | 0.052576 |
| citric.acid | -0.010290 | 0.042978 | 0.053268 |
| citric.acid | -0.010290 | 0.043509 | 0.053799 |
| citric.acid | -0.010290 | 0.043868 | 0.054158 |
| citric.acid | -0.010290 | 0.044046 | 0.054335 |
| citric.acid | -0.010290 | 0.044034 | 0.054324 |
| citric.acid | -0.010290 | 0.043809 | 0.054098 |
| citric.acid | -0.010290 | 0.043403 | 0.053692 |
| citric.acid | -0.010290 | 0.042798 | 0.053088 |
| citric.acid | -0.010290 | 0.041998 | 0.052288 |
| citric.acid | -0.010290 | 0.041005 | 0.051295 |
| citric.acid | -0.010290 | 0.039826 | 0.050116 |
| citric.acid | -0.010290 | 0.038470 | 0.048759 |
| citric.acid | -0.010290 | 0.036946 | 0.047236 |
| citric.acid | -0.010290 | 0.035268 | 0.045557 |
| citric.acid | -0.010290 | 0.033448 | 0.043738 |
| citric.acid | -0.010290 | 0.031503 | 0.041793 |
| citric.acid | -0.010290 | 0.029448 | 0.039738 |
| citric.acid | -0.010290 | 0.027301 | 0.037591 |
| citric.acid | -0.010290 | 0.025078 | 0.035368 |
| citric.acid | -0.010290 | 0.022798 | 0.033087 |
| citric.acid | -0.010290 | 0.020476 | 0.030766 |
| citric.acid | -0.010290 | 0.018131 | 0.028421 |
| citric.acid | -0.010290 | 0.015778 | 0.026067 |
| citric.acid | -0.010290 | 0.013432 | 0.023721 |
| citric.acid | -0.010290 | 0.011107 | 0.021397 |
| citric.acid | -0.010290 | 0.008817 | 0.019107 |
| citric.acid | -0.010290 | 0.006574 | 0.016863 |
| citric.acid | -0.010290 | 0.004386 | 0.014676 |
| citric.acid | -0.010290 | 0.002263 | 0.012553 |
| citric.acid | -0.010290 | 0.000213 | 0.010503 |
| citric.acid | -0.010290 | -0.001758 | 0.008532 |
| citric.acid | -0.010290 | -0.003646 | 0.006644 |
| citric.acid | -0.010290 | -0.005448 | 0.004842 |
| citric.acid | -0.010290 | -0.007160 | 0.003130 |
| citric.acid | -0.010290 | -0.008782 | 0.001507 |
| citric.acid | -0.010290 | -0.010314 | 0.000025 |
| citric.acid | -0.010290 | -0.011757 | 0.001467 |
| residual.sugar | 0.033016 | 0.000000 | 0.033016 |
| residual.sugar | 0.033016 | 0.000041 | 0.032974 |
| residual.sugar | 0.033016 | 0.000045 | 0.032970 |
| residual.sugar | 0.033016 | 0.000050 | 0.032966 |
| residual.sugar | 0.033016 | 0.000055 | 0.032961 |
| residual.sugar | 0.033016 | 0.000060 | 0.032956 |
| residual.sugar | 0.033016 | 0.000066 | 0.032950 |
| residual.sugar | 0.033016 | 0.000072 | 0.032943 |
| residual.sugar | 0.033016 | 0.000079 | 0.032936 |
| residual.sugar | 0.033016 | 0.000087 | 0.032929 |
| residual.sugar | 0.033016 | 0.000096 | 0.032920 |
| residual.sugar | 0.033016 | 0.000105 | 0.032911 |
| residual.sugar | 0.033016 | 0.000115 | 0.032900 |
| residual.sugar | 0.033016 | 0.000126 | 0.032889 |
| residual.sugar | 0.033016 | 0.000139 | 0.032877 |
| residual.sugar | 0.033016 | 0.000153 | 0.032863 |
| residual.sugar | 0.033016 | 0.000167 | 0.032848 |
| residual.sugar | 0.033016 | 0.000184 | 0.032832 |
| residual.sugar | 0.033016 | 0.000202 | 0.032814 |
| residual.sugar | 0.033016 | 0.000222 | 0.032794 |
| residual.sugar | 0.033016 | 0.000244 | 0.032772 |
| residual.sugar | 0.033016 | 0.000268 | 0.032748 |
| residual.sugar | 0.033016 | 0.000294 | 0.032721 |
| residual.sugar | 0.033016 | 0.000323 | 0.032692 |
| residual.sugar | 0.033016 | 0.000355 | 0.032660 |
| residual.sugar | 0.033016 | 0.000391 | 0.032625 |
| residual.sugar | 0.033016 | 0.000429 | 0.032586 |
| residual.sugar | 0.033016 | 0.000472 | 0.032544 |
| residual.sugar | 0.033016 | 0.000519 | 0.032497 |
| residual.sugar | 0.033016 | 0.000571 | 0.032445 |
| residual.sugar | 0.033016 | 0.000628 | 0.032388 |
| residual.sugar | 0.033016 | 0.000691 | 0.032325 |
| residual.sugar | 0.033016 | 0.000760 | 0.032256 |
| residual.sugar | 0.033016 | 0.000836 | 0.032180 |
| residual.sugar | 0.033016 | 0.000920 | 0.032095 |
| residual.sugar | 0.033016 | 0.001013 | 0.032003 |
| residual.sugar | 0.033016 | 0.001115 | 0.031900 |
| residual.sugar | 0.033016 | 0.001228 | 0.031787 |
| residual.sugar | 0.033016 | 0.001353 | 0.031663 |
| residual.sugar | 0.033016 | 0.001490 | 0.031525 |
| residual.sugar | 0.033016 | 0.001642 | 0.031374 |
| residual.sugar | 0.033016 | 0.001809 | 0.031206 |
| residual.sugar | 0.033016 | 0.001994 | 0.031022 |
| residual.sugar | 0.033016 | 0.002197 | 0.030818 |
| residual.sugar | 0.033016 | 0.002422 | 0.030594 |
| residual.sugar | 0.033016 | 0.002669 | 0.030347 |
| residual.sugar | 0.033016 | 0.002940 | 0.030076 |
| residual.sugar | 0.033016 | 0.003239 | 0.029777 |
| residual.sugar | 0.033016 | 0.003566 | 0.029449 |
| residual.sugar | 0.033016 | 0.003925 | 0.029090 |
| residual.sugar | 0.033016 | 0.004318 | 0.028697 |
| residual.sugar | 0.033016 | 0.004747 | 0.028269 |
| residual.sugar | 0.033016 | 0.005214 | 0.027802 |
| residual.sugar | 0.033016 | 0.005720 | 0.027295 |
| residual.sugar | 0.033016 | 0.006269 | 0.026746 |
| residual.sugar | 0.033016 | 0.006861 | 0.026154 |
| residual.sugar | 0.033016 | 0.007498 | 0.025518 |
| residual.sugar | 0.033016 | 0.008179 | 0.024837 |
| residual.sugar | 0.033016 | 0.008906 | 0.024110 |
| residual.sugar | 0.033016 | 0.009677 | 0.023339 |
| residual.sugar | 0.033016 | 0.010492 | 0.022524 |
| residual.sugar | 0.033016 | 0.011349 | 0.021667 |
| residual.sugar | 0.033016 | 0.012244 | 0.020771 |
| residual.sugar | 0.033016 | 0.013176 | 0.019840 |
| residual.sugar | 0.033016 | 0.014140 | 0.018876 |
| residual.sugar | 0.033016 | 0.015131 | 0.017884 |
| residual.sugar | 0.033016 | 0.016145 | 0.016870 |
| residual.sugar | 0.033016 | 0.017176 | 0.015840 |
| residual.sugar | 0.033016 | 0.018206 | 0.014809 |
| residual.sugar | 0.033016 | 0.019250 | 0.013766 |
| residual.sugar | 0.033016 | 0.020291 | 0.012725 |
| residual.sugar | 0.033016 | 0.021323 | 0.011693 |
| residual.sugar | 0.033016 | 0.022340 | 0.010676 |
| residual.sugar | 0.033016 | 0.023335 | 0.009680 |
| residual.sugar | 0.033016 | 0.024304 | 0.008712 |
| residual.sugar | 0.033016 | 0.025239 | 0.007776 |
| residual.sugar | 0.033016 | 0.026137 | 0.006879 |
| residual.sugar | 0.033016 | 0.026992 | 0.006023 |
| residual.sugar | 0.033016 | 0.027801 | 0.005214 |
| residual.sugar | 0.033016 | 0.028560 | 0.004455 |
| residual.sugar | 0.033016 | 0.029267 | 0.003748 |
| residual.sugar | 0.033016 | 0.029919 | 0.003096 |
| residual.sugar | 0.033016 | 0.030516 | 0.002500 |
| residual.sugar | 0.033016 | 0.031055 | 0.001960 |
| residual.sugar | 0.033016 | 0.031538 | 0.001478 |
| residual.sugar | 0.033016 | 0.031964 | 0.001052 |
| residual.sugar | 0.033016 | 0.032334 | 0.000682 |
| residual.sugar | 0.033016 | 0.032650 | 0.000366 |
| residual.sugar | 0.033016 | 0.032912 | 0.000103 |
| residual.sugar | 0.033016 | 0.033124 | 0.000109 |
| residual.sugar | 0.033016 | 0.033288 | 0.000272 |
| residual.sugar | 0.033016 | 0.033406 | 0.000390 |
| residual.sugar | 0.033016 | 0.033481 | 0.000465 |
| residual.sugar | 0.033016 | 0.033516 | 0.000500 |
| residual.sugar | 0.033016 | 0.033515 | 0.000499 |
| residual.sugar | 0.033016 | 0.033480 | 0.000465 |
| residual.sugar | 0.033016 | 0.033416 | 0.000400 |
| residual.sugar | 0.033016 | 0.033324 | 0.000309 |
| residual.sugar | 0.033016 | 0.033209 | 0.000194 |
| residual.sugar | 0.033016 | 0.033074 | 0.000059 |
| chlorides | -0.092246 | 0.000000 | 0.092246 |
| chlorides | -0.092246 | -0.000264 | 0.091983 |
| chlorides | -0.092246 | -0.000289 | 0.091957 |
| chlorides | -0.092246 | -0.000317 | 0.091929 |
| chlorides | -0.092246 | -0.000348 | 0.091898 |
| chlorides | -0.092246 | -0.000382 | 0.091864 |
| chlorides | -0.092246 | -0.000419 | 0.091827 |
| chlorides | -0.092246 | -0.000460 | 0.091786 |
| chlorides | -0.092246 | -0.000504 | 0.091742 |
| chlorides | -0.092246 | -0.000553 | 0.091693 |
| chlorides | -0.092246 | -0.000607 | 0.091639 |
| chlorides | -0.092246 | -0.000666 | 0.091580 |
| chlorides | -0.092246 | -0.000730 | 0.091516 |
| chlorides | -0.092246 | -0.000801 | 0.091445 |
| chlorides | -0.092246 | -0.000878 | 0.091368 |
| chlorides | -0.092246 | -0.000963 | 0.091283 |
| chlorides | -0.092246 | -0.001056 | 0.091190 |
| chlorides | -0.092246 | -0.001158 | 0.091088 |
| chlorides | -0.092246 | -0.001270 | 0.090976 |
| chlorides | -0.092246 | -0.001392 | 0.090854 |
| chlorides | -0.092246 | -0.001526 | 0.090720 |
| chlorides | -0.092246 | -0.001672 | 0.090574 |
| chlorides | -0.092246 | -0.001832 | 0.090414 |
| chlorides | -0.092246 | -0.002008 | 0.090238 |
| chlorides | -0.092246 | -0.002200 | 0.090047 |
| chlorides | -0.092246 | -0.002409 | 0.089837 |
| chlorides | -0.092246 | -0.002638 | 0.089608 |
| chlorides | -0.092246 | -0.002889 | 0.089358 |
| chlorides | -0.092246 | -0.003162 | 0.089084 |
| chlorides | -0.092246 | -0.003460 | 0.088786 |
| chlorides | -0.092246 | -0.003785 | 0.088461 |
| chlorides | -0.092246 | -0.004140 | 0.088106 |
| chlorides | -0.092246 | -0.004527 | 0.087720 |
| chlorides | -0.092246 | -0.004947 | 0.087299 |
| chlorides | -0.092246 | -0.005405 | 0.086841 |
| chlorides | -0.092246 | -0.005902 | 0.086344 |
| chlorides | -0.092246 | -0.006442 | 0.085804 |
| chlorides | -0.092246 | -0.007027 | 0.085219 |
| chlorides | -0.092246 | -0.007662 | 0.084584 |
| chlorides | -0.092246 | -0.008349 | 0.083898 |
| chlorides | -0.092246 | -0.009091 | 0.083156 |
| chlorides | -0.092246 | -0.009891 | 0.082355 |
| chlorides | -0.092246 | -0.010754 | 0.081492 |
| chlorides | -0.092246 | -0.011682 | 0.080564 |
| chlorides | -0.092246 | -0.012679 | 0.079568 |
| chlorides | -0.092246 | -0.013746 | 0.078500 |
| chlorides | -0.092246 | -0.014888 | 0.077358 |
| chlorides | -0.092246 | -0.016107 | 0.076139 |
| chlorides | -0.092246 | -0.017404 | 0.074842 |
| chlorides | -0.092246 | -0.018781 | 0.073465 |
| chlorides | -0.092246 | -0.020239 | 0.072007 |
| chlorides | -0.092246 | -0.021779 | 0.070468 |
| chlorides | -0.092246 | -0.023400 | 0.068846 |
| chlorides | -0.092246 | -0.025101 | 0.067145 |
| chlorides | -0.092246 | -0.026881 | 0.065365 |
| chlorides | -0.092246 | -0.028736 | 0.063510 |
| chlorides | -0.092246 | -0.030664 | 0.061582 |
| chlorides | -0.092246 | -0.032660 | 0.059586 |
| chlorides | -0.092246 | -0.034718 | 0.057528 |
| chlorides | -0.092246 | -0.036833 | 0.055413 |
| chlorides | -0.092246 | -0.038998 | 0.053249 |
| chlorides | -0.092246 | -0.041204 | 0.051042 |
| chlorides | -0.092246 | -0.043444 | 0.048802 |
| chlorides | -0.092246 | -0.045708 | 0.046538 |
| chlorides | -0.092246 | -0.047989 | 0.044258 |
| chlorides | -0.092246 | -0.050275 | 0.041971 |
| chlorides | -0.092246 | -0.052558 | 0.039688 |
| chlorides | -0.092246 | -0.054827 | 0.037419 |
| chlorides | -0.092246 | -0.057083 | 0.035164 |
| chlorides | -0.092246 | -0.059298 | 0.032948 |
| chlorides | -0.092246 | -0.061472 | 0.030774 |
| chlorides | -0.092246 | -0.063596 | 0.028650 |
| chlorides | -0.092246 | -0.065663 | 0.026583 |
| chlorides | -0.092246 | -0.067664 | 0.024582 |
| chlorides | -0.092246 | -0.069594 | 0.022652 |
| chlorides | -0.092246 | -0.071447 | 0.020799 |
| chlorides | -0.092246 | -0.073218 | 0.019029 |
| chlorides | -0.092246 | -0.074903 | 0.017343 |
| chlorides | -0.092246 | -0.076500 | 0.015746 |
| chlorides | -0.092246 | -0.078006 | 0.014240 |
| chlorides | -0.092246 | -0.079422 | 0.012824 |
| chlorides | -0.092246 | -0.080746 | 0.011500 |
| chlorides | -0.092246 | -0.081980 | 0.010266 |
| chlorides | -0.092246 | -0.083126 | 0.009120 |
| chlorides | -0.092246 | -0.084185 | 0.008061 |
| chlorides | -0.092246 | -0.085162 | 0.007084 |
| chlorides | -0.092246 | -0.086059 | 0.006187 |
| chlorides | -0.092246 | -0.086881 | 0.005365 |
| chlorides | -0.092246 | -0.087632 | 0.004614 |
| chlorides | -0.092246 | -0.088316 | 0.003930 |
| chlorides | -0.092246 | -0.088938 | 0.003308 |
| chlorides | -0.092246 | -0.089504 | 0.002743 |
| chlorides | -0.092246 | -0.090016 | 0.002230 |
| chlorides | -0.092246 | -0.090481 | 0.001765 |
| chlorides | -0.092246 | -0.090901 | 0.001345 |
| chlorides | -0.092246 | -0.091283 | 0.000964 |
| chlorides | -0.092246 | -0.091628 | 0.000618 |
| chlorides | -0.092246 | -0.091941 | 0.000305 |
| chlorides | -0.092246 | -0.092226 | 0.000020 |
| chlorides | -0.092246 | -0.092485 | 0.000238 |
| free.sulfur.dioxide | 0.045962 | 0.000000 | 0.045962 |
| free.sulfur.dioxide | 0.045962 | -0.000095 | 0.046057 |
| free.sulfur.dioxide | 0.045962 | -0.000104 | 0.046066 |
| free.sulfur.dioxide | 0.045962 | -0.000114 | 0.046076 |
| free.sulfur.dioxide | 0.045962 | -0.000126 | 0.046087 |
| free.sulfur.dioxide | 0.045962 | -0.000138 | 0.046099 |
| free.sulfur.dioxide | 0.045962 | -0.000151 | 0.046112 |
| free.sulfur.dioxide | 0.045962 | -0.000165 | 0.046127 |
| free.sulfur.dioxide | 0.045962 | -0.000181 | 0.046143 |
| free.sulfur.dioxide | 0.045962 | -0.000198 | 0.046160 |
| free.sulfur.dioxide | 0.045962 | -0.000217 | 0.046179 |
| free.sulfur.dioxide | 0.045962 | -0.000238 | 0.046199 |
| free.sulfur.dioxide | 0.045962 | -0.000260 | 0.046222 |
| free.sulfur.dioxide | 0.045962 | -0.000285 | 0.046246 |
| free.sulfur.dioxide | 0.045962 | -0.000312 | 0.046273 |
| free.sulfur.dioxide | 0.045962 | -0.000341 | 0.046303 |
| free.sulfur.dioxide | 0.045962 | -0.000373 | 0.046334 |
| free.sulfur.dioxide | 0.045962 | -0.000408 | 0.046369 |
| free.sulfur.dioxide | 0.045962 | -0.000445 | 0.046407 |
| free.sulfur.dioxide | 0.045962 | -0.000487 | 0.046448 |
| free.sulfur.dioxide | 0.045962 | -0.000531 | 0.046493 |
| free.sulfur.dioxide | 0.045962 | -0.000580 | 0.046541 |
| free.sulfur.dioxide | 0.045962 | -0.000632 | 0.046594 |
| free.sulfur.dioxide | 0.045962 | -0.000689 | 0.046651 |
| free.sulfur.dioxide | 0.045962 | -0.000751 | 0.046712 |
| free.sulfur.dioxide | 0.045962 | -0.000817 | 0.046778 |
| free.sulfur.dioxide | 0.045962 | -0.000888 | 0.046850 |
| free.sulfur.dioxide | 0.045962 | -0.000965 | 0.046927 |
| free.sulfur.dioxide | 0.045962 | -0.001048 | 0.047009 |
| free.sulfur.dioxide | 0.045962 | -0.001136 | 0.047098 |
| free.sulfur.dioxide | 0.045962 | -0.001231 | 0.047192 |
| free.sulfur.dioxide | 0.045962 | -0.001332 | 0.047293 |
| free.sulfur.dioxide | 0.045962 | -0.001439 | 0.047400 |
| free.sulfur.dioxide | 0.045962 | -0.001552 | 0.047514 |
| free.sulfur.dioxide | 0.045962 | -0.001671 | 0.047633 |
| free.sulfur.dioxide | 0.045962 | -0.001797 | 0.047758 |
| free.sulfur.dioxide | 0.045962 | -0.001928 | 0.047889 |
| free.sulfur.dioxide | 0.045962 | -0.002064 | 0.048026 |
| free.sulfur.dioxide | 0.045962 | -0.002205 | 0.048166 |
| free.sulfur.dioxide | 0.045962 | -0.002349 | 0.048310 |
| free.sulfur.dioxide | 0.045962 | -0.002495 | 0.048457 |
| free.sulfur.dioxide | 0.045962 | -0.002643 | 0.048604 |
| free.sulfur.dioxide | 0.045962 | -0.002789 | 0.048751 |
| free.sulfur.dioxide | 0.045962 | -0.002933 | 0.048894 |
| free.sulfur.dioxide | 0.045962 | -0.003071 | 0.049033 |
| free.sulfur.dioxide | 0.045962 | -0.003202 | 0.049163 |
| free.sulfur.dioxide | 0.045962 | -0.003321 | 0.049282 |
| free.sulfur.dioxide | 0.045962 | -0.003425 | 0.049387 |
| free.sulfur.dioxide | 0.045962 | -0.003511 | 0.049472 |
| free.sulfur.dioxide | 0.045962 | -0.003573 | 0.049535 |
| free.sulfur.dioxide | 0.045962 | -0.003608 | 0.049570 |
| free.sulfur.dioxide | 0.045962 | -0.003610 | 0.049572 |
| free.sulfur.dioxide | 0.045962 | -0.003574 | 0.049536 |
| free.sulfur.dioxide | 0.045962 | -0.003495 | 0.049456 |
| free.sulfur.dioxide | 0.045962 | -0.003367 | 0.049328 |
| free.sulfur.dioxide | 0.045962 | -0.003184 | 0.049146 |
| free.sulfur.dioxide | 0.045962 | -0.002942 | 0.048903 |
| free.sulfur.dioxide | 0.045962 | -0.002634 | 0.048596 |
| free.sulfur.dioxide | 0.045962 | -0.002257 | 0.048219 |
| free.sulfur.dioxide | 0.045962 | -0.001806 | 0.047768 |
| free.sulfur.dioxide | 0.045962 | -0.001277 | 0.047238 |
| free.sulfur.dioxide | 0.045962 | -0.000666 | 0.046628 |
| free.sulfur.dioxide | 0.045962 | 0.000028 | 0.045934 |
| free.sulfur.dioxide | 0.045962 | 0.000807 | 0.045154 |
| free.sulfur.dioxide | 0.045962 | 0.001672 | 0.044289 |
| free.sulfur.dioxide | 0.045962 | 0.002623 | 0.043339 |
| free.sulfur.dioxide | 0.045962 | 0.003658 | 0.042304 |
| free.sulfur.dioxide | 0.045962 | 0.004775 | 0.041186 |
| free.sulfur.dioxide | 0.045962 | 0.005974 | 0.039987 |
| free.sulfur.dioxide | 0.045962 | 0.007245 | 0.038716 |
| free.sulfur.dioxide | 0.045962 | 0.008586 | 0.037375 |
| free.sulfur.dioxide | 0.045962 | 0.009991 | 0.035971 |
| free.sulfur.dioxide | 0.045962 | 0.011453 | 0.034509 |
| free.sulfur.dioxide | 0.045962 | 0.012964 | 0.032997 |
| free.sulfur.dioxide | 0.045962 | 0.014518 | 0.031443 |
| free.sulfur.dioxide | 0.045962 | 0.016105 | 0.029856 |
| free.sulfur.dioxide | 0.045962 | 0.017718 | 0.028244 |
| free.sulfur.dioxide | 0.045962 | 0.019347 | 0.026615 |
| free.sulfur.dioxide | 0.045962 | 0.020983 | 0.024979 |
| free.sulfur.dioxide | 0.045962 | 0.022617 | 0.023344 |
| free.sulfur.dioxide | 0.045962 | 0.024242 | 0.021719 |
| free.sulfur.dioxide | 0.045962 | 0.025850 | 0.020112 |
| free.sulfur.dioxide | 0.045962 | 0.027431 | 0.018530 |
| free.sulfur.dioxide | 0.045962 | 0.028981 | 0.016980 |
| free.sulfur.dioxide | 0.045962 | 0.030493 | 0.015469 |
| free.sulfur.dioxide | 0.045962 | 0.031961 | 0.014001 |
| free.sulfur.dioxide | 0.045962 | 0.033380 | 0.012581 |
| free.sulfur.dioxide | 0.045962 | 0.034748 | 0.011214 |
| free.sulfur.dioxide | 0.045962 | 0.036060 | 0.009901 |
| free.sulfur.dioxide | 0.045962 | 0.037316 | 0.008646 |
| free.sulfur.dioxide | 0.045962 | 0.038513 | 0.007449 |
| free.sulfur.dioxide | 0.045962 | 0.039650 | 0.006311 |
| free.sulfur.dioxide | 0.045962 | 0.040728 | 0.005233 |
| free.sulfur.dioxide | 0.045962 | 0.041747 | 0.004214 |
| free.sulfur.dioxide | 0.045962 | 0.042709 | 0.003253 |
| free.sulfur.dioxide | 0.045962 | 0.043613 | 0.002348 |
| free.sulfur.dioxide | 0.045962 | 0.044463 | 0.001499 |
| free.sulfur.dioxide | 0.045962 | 0.045259 | 0.000703 |
| free.sulfur.dioxide | 0.045962 | 0.046004 | 0.000043 |
| free.sulfur.dioxide | 0.045962 | 0.046701 | 0.000739 |
| total.sulfur.dioxide | -0.111936 | 0.000000 | 0.111936 |
| total.sulfur.dioxide | -0.111936 | -0.000357 | 0.111579 |
| total.sulfur.dioxide | -0.111936 | -0.000391 | 0.111545 |
| total.sulfur.dioxide | -0.111936 | -0.000429 | 0.111507 |
| total.sulfur.dioxide | -0.111936 | -0.000471 | 0.111465 |
| total.sulfur.dioxide | -0.111936 | -0.000517 | 0.111420 |
| total.sulfur.dioxide | -0.111936 | -0.000567 | 0.111370 |
| total.sulfur.dioxide | -0.111936 | -0.000621 | 0.111315 |
| total.sulfur.dioxide | -0.111936 | -0.000681 | 0.111255 |
| total.sulfur.dioxide | -0.111936 | -0.000747 | 0.111189 |
| total.sulfur.dioxide | -0.111936 | -0.000819 | 0.111117 |
| total.sulfur.dioxide | -0.111936 | -0.000898 | 0.111038 |
| total.sulfur.dioxide | -0.111936 | -0.000985 | 0.110951 |
| total.sulfur.dioxide | -0.111936 | -0.001080 | 0.110856 |
| total.sulfur.dioxide | -0.111936 | -0.001184 | 0.110753 |
| total.sulfur.dioxide | -0.111936 | -0.001297 | 0.110639 |
| total.sulfur.dioxide | -0.111936 | -0.001421 | 0.110515 |
| total.sulfur.dioxide | -0.111936 | -0.001557 | 0.110379 |
| total.sulfur.dioxide | -0.111936 | -0.001706 | 0.110230 |
| total.sulfur.dioxide | -0.111936 | -0.001869 | 0.110067 |
| total.sulfur.dioxide | -0.111936 | -0.002046 | 0.109890 |
| total.sulfur.dioxide | -0.111936 | -0.002240 | 0.109696 |
| total.sulfur.dioxide | -0.111936 | -0.002452 | 0.109484 |
| total.sulfur.dioxide | -0.111936 | -0.002684 | 0.109252 |
| total.sulfur.dioxide | -0.111936 | -0.002936 | 0.109000 |
| total.sulfur.dioxide | -0.111936 | -0.003211 | 0.108725 |
| total.sulfur.dioxide | -0.111936 | -0.003511 | 0.108425 |
| total.sulfur.dioxide | -0.111936 | -0.003838 | 0.108098 |
| total.sulfur.dioxide | -0.111936 | -0.004193 | 0.107743 |
| total.sulfur.dioxide | -0.111936 | -0.004580 | 0.107357 |
| total.sulfur.dioxide | -0.111936 | -0.004999 | 0.106937 |
| total.sulfur.dioxide | -0.111936 | -0.005455 | 0.106481 |
| total.sulfur.dioxide | -0.111936 | -0.005949 | 0.105987 |
| total.sulfur.dioxide | -0.111936 | -0.006484 | 0.105452 |
| total.sulfur.dioxide | -0.111936 | -0.007062 | 0.104874 |
| total.sulfur.dioxide | -0.111936 | -0.007688 | 0.104248 |
| total.sulfur.dioxide | -0.111936 | -0.008363 | 0.103573 |
| total.sulfur.dioxide | -0.111936 | -0.009090 | 0.102846 |
| total.sulfur.dioxide | -0.111936 | -0.009872 | 0.102064 |
| total.sulfur.dioxide | -0.111936 | -0.010713 | 0.101224 |
| total.sulfur.dioxide | -0.111936 | -0.011614 | 0.100323 |
| total.sulfur.dioxide | -0.111936 | -0.012578 | 0.099358 |
| total.sulfur.dioxide | -0.111936 | -0.013608 | 0.098328 |
| total.sulfur.dioxide | -0.111936 | -0.014706 | 0.097231 |
| total.sulfur.dioxide | -0.111936 | -0.015873 | 0.096063 |
| total.sulfur.dioxide | -0.111936 | -0.017112 | 0.094824 |
| total.sulfur.dioxide | -0.111936 | -0.018423 | 0.093513 |
| total.sulfur.dioxide | -0.111936 | -0.019808 | 0.092128 |
| total.sulfur.dioxide | -0.111936 | -0.021267 | 0.090669 |
| total.sulfur.dioxide | -0.111936 | -0.022799 | 0.089137 |
| total.sulfur.dioxide | -0.111936 | -0.024403 | 0.087533 |
| total.sulfur.dioxide | -0.111936 | -0.026080 | 0.085856 |
| total.sulfur.dioxide | -0.111936 | -0.027826 | 0.084110 |
| total.sulfur.dioxide | -0.111936 | -0.029639 | 0.082297 |
| total.sulfur.dioxide | -0.111936 | -0.031518 | 0.080418 |
| total.sulfur.dioxide | -0.111936 | -0.033458 | 0.078478 |
| total.sulfur.dioxide | -0.111936 | -0.035456 | 0.076480 |
| total.sulfur.dioxide | -0.111936 | -0.037508 | 0.074428 |
| total.sulfur.dioxide | -0.111936 | -0.039611 | 0.072326 |
| total.sulfur.dioxide | -0.111936 | -0.041758 | 0.070178 |
| total.sulfur.dioxide | -0.111936 | -0.043947 | 0.067989 |
| total.sulfur.dioxide | -0.111936 | -0.046172 | 0.065764 |
| total.sulfur.dioxide | -0.111936 | -0.048428 | 0.063508 |
| total.sulfur.dioxide | -0.111936 | -0.050711 | 0.061225 |
| total.sulfur.dioxide | -0.111936 | -0.053016 | 0.058920 |
| total.sulfur.dioxide | -0.111936 | -0.055339 | 0.056597 |
| total.sulfur.dioxide | -0.111936 | -0.057674 | 0.054262 |
| total.sulfur.dioxide | -0.111936 | -0.060016 | 0.051920 |
| total.sulfur.dioxide | -0.111936 | -0.062364 | 0.049572 |
| total.sulfur.dioxide | -0.111936 | -0.064708 | 0.047228 |
| total.sulfur.dioxide | -0.111936 | -0.067044 | 0.044892 |
| total.sulfur.dioxide | -0.111936 | -0.069369 | 0.042567 |
| total.sulfur.dioxide | -0.111936 | -0.071675 | 0.040261 |
| total.sulfur.dioxide | -0.111936 | -0.073959 | 0.037977 |
| total.sulfur.dioxide | -0.111936 | -0.076214 | 0.035722 |
| total.sulfur.dioxide | -0.111936 | -0.078435 | 0.033501 |
| total.sulfur.dioxide | -0.111936 | -0.080616 | 0.031320 |
| total.sulfur.dioxide | -0.111936 | -0.082752 | 0.029184 |
| total.sulfur.dioxide | -0.111936 | -0.084837 | 0.027099 |
| total.sulfur.dioxide | -0.111936 | -0.086867 | 0.025069 |
| total.sulfur.dioxide | -0.111936 | -0.088836 | 0.023100 |
| total.sulfur.dioxide | -0.111936 | -0.090741 | 0.021195 |
| total.sulfur.dioxide | -0.111936 | -0.092577 | 0.019359 |
| total.sulfur.dioxide | -0.111936 | -0.094342 | 0.017594 |
| total.sulfur.dioxide | -0.111936 | -0.096032 | 0.015904 |
| total.sulfur.dioxide | -0.111936 | -0.097647 | 0.014289 |
| total.sulfur.dioxide | -0.111936 | -0.099184 | 0.012752 |
| total.sulfur.dioxide | -0.111936 | -0.100644 | 0.011292 |
| total.sulfur.dioxide | -0.111936 | -0.102026 | 0.009910 |
| total.sulfur.dioxide | -0.111936 | -0.103332 | 0.008605 |
| total.sulfur.dioxide | -0.111936 | -0.104562 | 0.007374 |
| total.sulfur.dioxide | -0.111936 | -0.105718 | 0.006218 |
| total.sulfur.dioxide | -0.111936 | -0.106803 | 0.005133 |
| total.sulfur.dioxide | -0.111936 | -0.107820 | 0.004116 |
| total.sulfur.dioxide | -0.111936 | -0.108770 | 0.003166 |
| total.sulfur.dioxide | -0.111936 | -0.109658 | 0.002278 |
| total.sulfur.dioxide | -0.111936 | -0.110486 | 0.001450 |
| total.sulfur.dioxide | -0.111936 | -0.111258 | 0.000678 |
| total.sulfur.dioxide | -0.111936 | -0.111976 | 0.000040 |
| total.sulfur.dioxide | -0.111936 | -0.112644 | 0.000708 |
| density | -0.044894 | 0.000000 | 0.044894 |
| density | -0.044894 | -0.000317 | 0.044576 |
| density | -0.044894 | -0.000348 | 0.044546 |
| density | -0.044894 | -0.000382 | 0.044512 |
| density | -0.044894 | -0.000419 | 0.044475 |
| density | -0.044894 | -0.000460 | 0.044434 |
| density | -0.044894 | -0.000504 | 0.044389 |
| density | -0.044894 | -0.000553 | 0.044340 |
| density | -0.044894 | -0.000607 | 0.044287 |
| density | -0.044894 | -0.000666 | 0.044228 |
| density | -0.044894 | -0.000730 | 0.044164 |
| density | -0.044894 | -0.000801 | 0.044093 |
| density | -0.044894 | -0.000878 | 0.044015 |
| density | -0.044894 | -0.000963 | 0.043931 |
| density | -0.044894 | -0.001056 | 0.043838 |
| density | -0.044894 | -0.001158 | 0.043736 |
| density | -0.044894 | -0.001269 | 0.043624 |
| density | -0.044894 | -0.001391 | 0.043502 |
| density | -0.044894 | -0.001525 | 0.043369 |
| density | -0.044894 | -0.001671 | 0.043223 |
| density | -0.044894 | -0.001831 | 0.043063 |
| density | -0.044894 | -0.002006 | 0.042888 |
| density | -0.044894 | -0.002198 | 0.042696 |
| density | -0.044894 | -0.002407 | 0.042487 |
| density | -0.044894 | -0.002635 | 0.042259 |
| density | -0.044894 | -0.002885 | 0.042009 |
| density | -0.044894 | -0.003157 | 0.041737 |
| density | -0.044894 | -0.003454 | 0.041440 |
| density | -0.044894 | -0.003778 | 0.041116 |
| density | -0.044894 | -0.004131 | 0.040763 |
| density | -0.044894 | -0.004515 | 0.040378 |
| density | -0.044894 | -0.004933 | 0.039960 |
| density | -0.044894 | -0.005388 | 0.039506 |
| density | -0.044894 | -0.005881 | 0.039012 |
| density | -0.044894 | -0.006417 | 0.038477 |
| density | -0.044894 | -0.006997 | 0.037897 |
| density | -0.044894 | -0.007625 | 0.037269 |
| density | -0.044894 | -0.008303 | 0.036590 |
| density | -0.044894 | -0.009036 | 0.035858 |
| density | -0.044894 | -0.009825 | 0.035069 |
| density | -0.044894 | -0.010673 | 0.034221 |
| density | -0.044894 | -0.011584 | 0.033310 |
| density | -0.044894 | -0.012560 | 0.032334 |
| density | -0.044894 | -0.013603 | 0.031291 |
| density | -0.044894 | -0.014715 | 0.030179 |
| density | -0.044894 | -0.015897 | 0.028997 |
| density | -0.044894 | -0.017151 | 0.027743 |
| density | -0.044894 | -0.018476 | 0.026418 |
| density | -0.044894 | -0.019872 | 0.025022 |
| density | -0.044894 | -0.021338 | 0.023556 |
| density | -0.044894 | -0.022871 | 0.022022 |
| density | -0.044894 | -0.024469 | 0.020425 |
| density | -0.044894 | -0.026126 | 0.018768 |
| density | -0.044894 | -0.027837 | 0.017056 |
| density | -0.044894 | -0.029597 | 0.015297 |
| density | -0.044894 | -0.031397 | 0.013497 |
| density | -0.044894 | -0.033228 | 0.011666 |
| density | -0.044894 | -0.035081 | 0.009812 |
| density | -0.044894 | -0.036947 | 0.007947 |
| density | -0.044894 | -0.038812 | 0.006081 |
| density | -0.044894 | -0.040668 | 0.004226 |
| density | -0.044894 | -0.042500 | 0.002394 |
| density | -0.044894 | -0.044298 | 0.000596 |
| density | -0.044894 | -0.046050 | 0.001156 |
| density | -0.044894 | -0.047744 | 0.002850 |
| density | -0.044894 | -0.049369 | 0.004475 |
| density | -0.044894 | -0.050915 | 0.006021 |
| density | -0.044894 | -0.052373 | 0.007479 |
| density | -0.044894 | -0.053729 | 0.008835 |
| density | -0.044894 | -0.054982 | 0.010088 |
| density | -0.044894 | -0.056124 | 0.011231 |
| density | -0.044894 | -0.057150 | 0.012256 |
| density | -0.044894 | -0.058055 | 0.013161 |
| density | -0.044894 | -0.058837 | 0.013943 |
| density | -0.044894 | -0.059492 | 0.014599 |
| density | -0.044894 | -0.060022 | 0.015128 |
| density | -0.044894 | -0.060425 | 0.015531 |
| density | -0.044894 | -0.060702 | 0.015808 |
| density | -0.044894 | -0.060855 | 0.015961 |
| density | -0.044894 | -0.060887 | 0.015993 |
| density | -0.044894 | -0.060800 | 0.015906 |
| density | -0.044894 | -0.060599 | 0.015705 |
| density | -0.044894 | -0.060288 | 0.015394 |
| density | -0.044894 | -0.059872 | 0.014978 |
| density | -0.044894 | -0.059356 | 0.014462 |
| density | -0.044894 | -0.058746 | 0.013852 |
| density | -0.044894 | -0.058048 | 0.013154 |
| density | -0.044894 | -0.057269 | 0.012375 |
| density | -0.044894 | -0.056414 | 0.011521 |
| density | -0.044894 | -0.055492 | 0.010598 |
| density | -0.044894 | -0.054509 | 0.009615 |
| density | -0.044894 | -0.053472 | 0.008578 |
| density | -0.044894 | -0.052388 | 0.007494 |
| density | -0.044894 | -0.051265 | 0.006371 |
| density | -0.044894 | -0.050109 | 0.005215 |
| density | -0.044894 | -0.048927 | 0.004033 |
| density | -0.044894 | -0.047727 | 0.002833 |
| density | -0.044894 | -0.046514 | 0.001621 |
| density | -0.044894 | -0.045297 | 0.000403 |
| density | -0.044894 | -0.044079 | 0.000814 |
| pH | -0.054031 | 0.000000 | 0.054031 |
| pH | -0.054031 | -0.000121 | 0.053909 |
| pH | -0.054031 | -0.000133 | 0.053898 |
| pH | -0.054031 | -0.000146 | 0.053885 |
| pH | -0.054031 | -0.000160 | 0.053871 |
| pH | -0.054031 | -0.000176 | 0.053855 |
| pH | -0.054031 | -0.000193 | 0.053838 |
| pH | -0.054031 | -0.000211 | 0.053820 |
| pH | -0.054031 | -0.000231 | 0.053799 |
| pH | -0.054031 | -0.000254 | 0.053777 |
| pH | -0.054031 | -0.000278 | 0.053753 |
| pH | -0.054031 | -0.000304 | 0.053726 |
| pH | -0.054031 | -0.000333 | 0.053697 |
| pH | -0.054031 | -0.000365 | 0.053665 |
| pH | -0.054031 | -0.000400 | 0.053631 |
| pH | -0.054031 | -0.000438 | 0.053593 |
| pH | -0.054031 | -0.000479 | 0.053551 |
| pH | -0.054031 | -0.000524 | 0.053506 |
| pH | -0.054031 | -0.000574 | 0.053457 |
| pH | -0.054031 | -0.000628 | 0.053403 |
| pH | -0.054031 | -0.000686 | 0.053345 |
| pH | -0.054031 | -0.000750 | 0.053281 |
| pH | -0.054031 | -0.000819 | 0.053212 |
| pH | -0.054031 | -0.000895 | 0.053136 |
| pH | -0.054031 | -0.000976 | 0.053054 |
| pH | -0.054031 | -0.001065 | 0.052965 |
| pH | -0.054031 | -0.001162 | 0.052869 |
| pH | -0.054031 | -0.001266 | 0.052765 |
| pH | -0.054031 | -0.001379 | 0.052652 |
| pH | -0.054031 | -0.001500 | 0.052530 |
| pH | -0.054031 | -0.001632 | 0.052399 |
| pH | -0.054031 | -0.001773 | 0.052257 |
| pH | -0.054031 | -0.001925 | 0.052105 |
| pH | -0.054031 | -0.002089 | 0.051942 |
| pH | -0.054031 | -0.002264 | 0.051767 |
| pH | -0.054031 | -0.002451 | 0.051580 |
| pH | -0.054031 | -0.002651 | 0.051380 |
| pH | -0.054031 | -0.002864 | 0.051167 |
| pH | -0.054031 | -0.003090 | 0.050941 |
| pH | -0.054031 | -0.003329 | 0.050701 |
| pH | -0.054031 | -0.003583 | 0.050448 |
| pH | -0.054031 | -0.003850 | 0.050181 |
| pH | -0.054031 | -0.004131 | 0.049899 |
| pH | -0.054031 | -0.004427 | 0.049604 |
| pH | -0.054031 | -0.004736 | 0.049295 |
| pH | -0.054031 | -0.005058 | 0.048972 |
| pH | -0.054031 | -0.005394 | 0.048636 |
| pH | -0.054031 | -0.005743 | 0.048287 |
| pH | -0.054031 | -0.006105 | 0.047925 |
| pH | -0.054031 | -0.006480 | 0.047551 |
| pH | -0.054031 | -0.006867 | 0.047164 |
| pH | -0.054031 | -0.007266 | 0.046765 |
| pH | -0.054031 | -0.007678 | 0.046353 |
| pH | -0.054031 | -0.008102 | 0.045929 |
| pH | -0.054031 | -0.008539 | 0.045492 |
| pH | -0.054031 | -0.008989 | 0.045041 |
| pH | -0.054031 | -0.009455 | 0.044576 |
| pH | -0.054031 | -0.009936 | 0.044095 |
| pH | -0.054031 | -0.010435 | 0.043596 |
| pH | -0.054031 | -0.010953 | 0.043077 |
| pH | -0.054031 | -0.011494 | 0.042537 |
| pH | -0.054031 | -0.012058 | 0.041973 |
| pH | -0.054031 | -0.012650 | 0.041381 |
| pH | -0.054031 | -0.013271 | 0.040760 |
| pH | -0.054031 | -0.013924 | 0.040106 |
| pH | -0.054031 | -0.014613 | 0.039417 |
| pH | -0.054031 | -0.015341 | 0.038690 |
| pH | -0.054031 | -0.016108 | 0.037922 |
| pH | -0.054031 | -0.016931 | 0.037100 |
| pH | -0.054031 | -0.017790 | 0.036241 |
| pH | -0.054031 | -0.018695 | 0.035336 |
| pH | -0.054031 | -0.019647 | 0.034384 |
| pH | -0.054031 | -0.020646 | 0.033385 |
| pH | -0.054031 | -0.021692 | 0.032339 |
| pH | -0.054031 | -0.022783 | 0.031248 |
| pH | -0.054031 | -0.023918 | 0.030112 |
| pH | -0.054031 | -0.025095 | 0.028936 |
| pH | -0.054031 | -0.026310 | 0.027720 |
| pH | -0.054031 | -0.027561 | 0.026470 |
| pH | -0.054031 | -0.028843 | 0.025188 |
| pH | -0.054031 | -0.030153 | 0.023878 |
| pH | -0.054031 | -0.031485 | 0.022546 |
| pH | -0.054031 | -0.032836 | 0.021195 |
| pH | -0.054031 | -0.034201 | 0.019830 |
| pH | -0.054031 | -0.035576 | 0.018455 |
| pH | -0.054031 | -0.036956 | 0.017075 |
| pH | -0.054031 | -0.038337 | 0.015694 |
| pH | -0.054031 | -0.039715 | 0.014315 |
| pH | -0.054031 | -0.041087 | 0.012944 |
| pH | -0.054031 | -0.042448 | 0.011583 |
| pH | -0.054031 | -0.043795 | 0.010235 |
| pH | -0.054031 | -0.045126 | 0.008904 |
| pH | -0.054031 | -0.046438 | 0.007593 |
| pH | -0.054031 | -0.047728 | 0.006303 |
| pH | -0.054031 | -0.048993 | 0.005037 |
| pH | -0.054031 | -0.050233 | 0.003798 |
| pH | -0.054031 | -0.051443 | 0.002587 |
| pH | -0.054031 | -0.052624 | 0.001407 |
| pH | -0.054031 | -0.053773 | 0.000258 |
| pH | -0.054031 | -0.054889 | 0.000858 |
| sulphates | 0.131124 | 0.000000 | 0.131124 |
| sulphates | 0.131124 | 0.000420 | 0.130704 |
| sulphates | 0.131124 | 0.000461 | 0.130663 |
| sulphates | 0.131124 | 0.000506 | 0.130618 |
| sulphates | 0.131124 | 0.000555 | 0.130569 |
| sulphates | 0.131124 | 0.000609 | 0.130515 |
| sulphates | 0.131124 | 0.000668 | 0.130456 |
| sulphates | 0.131124 | 0.000732 | 0.130391 |
| sulphates | 0.131124 | 0.000803 | 0.130321 |
| sulphates | 0.131124 | 0.000881 | 0.130243 |
| sulphates | 0.131124 | 0.000966 | 0.130158 |
| sulphates | 0.131124 | 0.001059 | 0.130065 |
| sulphates | 0.131124 | 0.001162 | 0.129962 |
| sulphates | 0.131124 | 0.001273 | 0.129850 |
| sulphates | 0.131124 | 0.001396 | 0.129728 |
| sulphates | 0.131124 | 0.001530 | 0.129594 |
| sulphates | 0.131124 | 0.001677 | 0.129447 |
| sulphates | 0.131124 | 0.001838 | 0.129286 |
| sulphates | 0.131124 | 0.002014 | 0.129110 |
| sulphates | 0.131124 | 0.002206 | 0.128918 |
| sulphates | 0.131124 | 0.002416 | 0.128708 |
| sulphates | 0.131124 | 0.002646 | 0.128478 |
| sulphates | 0.131124 | 0.002897 | 0.128227 |
| sulphates | 0.131124 | 0.003171 | 0.127953 |
| sulphates | 0.131124 | 0.003470 | 0.127654 |
| sulphates | 0.131124 | 0.003797 | 0.127327 |
| sulphates | 0.131124 | 0.004153 | 0.126971 |
| sulphates | 0.131124 | 0.004541 | 0.126583 |
| sulphates | 0.131124 | 0.004963 | 0.126161 |
| sulphates | 0.131124 | 0.005423 | 0.125701 |
| sulphates | 0.131124 | 0.005923 | 0.125201 |
| sulphates | 0.131124 | 0.006467 | 0.124657 |
| sulphates | 0.131124 | 0.007057 | 0.124067 |
| sulphates | 0.131124 | 0.007696 | 0.123428 |
| sulphates | 0.131124 | 0.008390 | 0.122734 |
| sulphates | 0.131124 | 0.009140 | 0.121984 |
| sulphates | 0.131124 | 0.009951 | 0.121173 |
| sulphates | 0.131124 | 0.010827 | 0.120297 |
| sulphates | 0.131124 | 0.011771 | 0.119353 |
| sulphates | 0.131124 | 0.012788 | 0.118336 |
| sulphates | 0.131124 | 0.013880 | 0.117244 |
| sulphates | 0.131124 | 0.015053 | 0.116071 |
| sulphates | 0.131124 | 0.016310 | 0.114814 |
| sulphates | 0.131124 | 0.017653 | 0.113471 |
| sulphates | 0.131124 | 0.019087 | 0.112037 |
| sulphates | 0.131124 | 0.020615 | 0.110509 |
| sulphates | 0.131124 | 0.022238 | 0.108886 |
| sulphates | 0.131124 | 0.023960 | 0.107164 |
| sulphates | 0.131124 | 0.025781 | 0.105343 |
| sulphates | 0.131124 | 0.027702 | 0.103421 |
| sulphates | 0.131124 | 0.029725 | 0.101399 |
| sulphates | 0.131124 | 0.031849 | 0.099275 |
| sulphates | 0.131124 | 0.034073 | 0.097051 |
| sulphates | 0.131124 | 0.036394 | 0.094730 |
| sulphates | 0.131124 | 0.038810 | 0.092314 |
| sulphates | 0.131124 | 0.041318 | 0.089806 |
| sulphates | 0.131124 | 0.043914 | 0.087210 |
| sulphates | 0.131124 | 0.046591 | 0.084533 |
| sulphates | 0.131124 | 0.049343 | 0.081781 |
| sulphates | 0.131124 | 0.052165 | 0.078959 |
| sulphates | 0.131124 | 0.055048 | 0.076076 |
| sulphates | 0.131124 | 0.057983 | 0.073141 |
| sulphates | 0.131124 | 0.060963 | 0.070161 |
| sulphates | 0.131124 | 0.063977 | 0.067147 |
| sulphates | 0.131124 | 0.067015 | 0.064109 |
| sulphates | 0.131124 | 0.070068 | 0.061056 |
| sulphates | 0.131124 | 0.073124 | 0.058000 |
| sulphates | 0.131124 | 0.076174 | 0.054950 |
| sulphates | 0.131124 | 0.079208 | 0.051916 |
| sulphates | 0.131124 | 0.082212 | 0.048912 |
| sulphates | 0.131124 | 0.085177 | 0.045947 |
| sulphates | 0.131124 | 0.088093 | 0.043030 |
| sulphates | 0.131124 | 0.090951 | 0.040173 |
| sulphates | 0.131124 | 0.093742 | 0.037382 |
| sulphates | 0.131124 | 0.096455 | 0.034668 |
| sulphates | 0.131124 | 0.099085 | 0.032039 |
| sulphates | 0.131124 | 0.101623 | 0.029501 |
| sulphates | 0.131124 | 0.104064 | 0.027060 |
| sulphates | 0.131124 | 0.106402 | 0.024722 |
| sulphates | 0.131124 | 0.108632 | 0.022492 |
| sulphates | 0.131124 | 0.110752 | 0.020372 |
| sulphates | 0.131124 | 0.112759 | 0.018365 |
| sulphates | 0.131124 | 0.114651 | 0.016473 |
| sulphates | 0.131124 | 0.116429 | 0.014695 |
| sulphates | 0.131124 | 0.118093 | 0.013031 |
| sulphates | 0.131124 | 0.119643 | 0.011480 |
| sulphates | 0.131124 | 0.121084 | 0.010040 |
| sulphates | 0.131124 | 0.122416 | 0.008708 |
| sulphates | 0.131124 | 0.123645 | 0.007479 |
| sulphates | 0.131124 | 0.124773 | 0.006351 |
| sulphates | 0.131124 | 0.125805 | 0.005319 |
| sulphates | 0.131124 | 0.126747 | 0.004377 |
| sulphates | 0.131124 | 0.127602 | 0.003522 |
| sulphates | 0.131124 | 0.128377 | 0.002747 |
| sulphates | 0.131124 | 0.129076 | 0.002048 |
| sulphates | 0.131124 | 0.129705 | 0.001419 |
| sulphates | 0.131124 | 0.130269 | 0.000855 |
| sulphates | 0.131124 | 0.130772 | 0.000352 |
| sulphates | 0.131124 | 0.131221 | 0.000097 |
| sulphates | 0.131124 | 0.131619 | 0.000495 |
| alcohol | 0.275780 | 0.000000 | 0.275780 |
| alcohol | 0.275780 | 0.000890 | 0.274891 |
| alcohol | 0.275780 | 0.000976 | 0.274804 |
| alcohol | 0.275780 | 0.001071 | 0.274709 |
| alcohol | 0.275780 | 0.001175 | 0.274605 |
| alcohol | 0.275780 | 0.001289 | 0.274491 |
| alcohol | 0.275780 | 0.001414 | 0.274366 |
| alcohol | 0.275780 | 0.001551 | 0.274229 |
| alcohol | 0.275780 | 0.001701 | 0.274079 |
| alcohol | 0.275780 | 0.001866 | 0.273915 |
| alcohol | 0.275780 | 0.002046 | 0.273734 |
| alcohol | 0.275780 | 0.002244 | 0.273536 |
| alcohol | 0.275780 | 0.002461 | 0.273320 |
| alcohol | 0.275780 | 0.002698 | 0.273082 |
| alcohol | 0.275780 | 0.002958 | 0.272823 |
| alcohol | 0.275780 | 0.003243 | 0.272538 |
| alcohol | 0.275780 | 0.003554 | 0.272226 |
| alcohol | 0.275780 | 0.003895 | 0.271885 |
| alcohol | 0.275780 | 0.004269 | 0.271512 |
| alcohol | 0.275780 | 0.004677 | 0.271103 |
| alcohol | 0.275780 | 0.005124 | 0.270657 |
| alcohol | 0.275780 | 0.005612 | 0.270169 |
| alcohol | 0.275780 | 0.006146 | 0.269635 |
| alcohol | 0.275780 | 0.006729 | 0.269052 |
| alcohol | 0.275780 | 0.007365 | 0.268415 |
| alcohol | 0.275780 | 0.008060 | 0.267720 |
| alcohol | 0.275780 | 0.008818 | 0.266962 |
| alcohol | 0.275780 | 0.009645 | 0.266136 |
| alcohol | 0.275780 | 0.010545 | 0.265235 |
| alcohol | 0.275780 | 0.011526 | 0.264254 |
| alcohol | 0.275780 | 0.012593 | 0.263187 |
| alcohol | 0.275780 | 0.013753 | 0.262027 |
| alcohol | 0.275780 | 0.015014 | 0.260767 |
| alcohol | 0.275780 | 0.016381 | 0.259399 |
| alcohol | 0.275780 | 0.017864 | 0.257916 |
| alcohol | 0.275780 | 0.019471 | 0.256310 |
| alcohol | 0.275780 | 0.021208 | 0.254573 |
| alcohol | 0.275780 | 0.023085 | 0.252696 |
| alcohol | 0.275780 | 0.025109 | 0.250671 |
| alcohol | 0.275780 | 0.027291 | 0.248490 |
| alcohol | 0.275780 | 0.029636 | 0.246144 |
| alcohol | 0.275780 | 0.032155 | 0.243626 |
| alcohol | 0.275780 | 0.034854 | 0.240927 |
| alcohol | 0.275780 | 0.037741 | 0.238040 |
| alcohol | 0.275780 | 0.040822 | 0.234959 |
| alcohol | 0.275780 | 0.044103 | 0.231678 |
| alcohol | 0.275780 | 0.047589 | 0.228192 |
| alcohol | 0.275780 | 0.051283 | 0.224498 |
| alcohol | 0.275780 | 0.055187 | 0.220593 |
| alcohol | 0.275780 | 0.059302 | 0.216478 |
| alcohol | 0.275780 | 0.063627 | 0.212154 |
| alcohol | 0.275780 | 0.068158 | 0.207622 |
| alcohol | 0.275780 | 0.072890 | 0.202890 |
| alcohol | 0.275780 | 0.077817 | 0.197964 |
| alcohol | 0.275780 | 0.082927 | 0.192853 |
| alcohol | 0.275780 | 0.088211 | 0.187569 |
| alcohol | 0.275780 | 0.093654 | 0.182126 |
| alcohol | 0.275780 | 0.099240 | 0.176540 |
| alcohol | 0.275780 | 0.104953 | 0.170827 |
| alcohol | 0.275780 | 0.110773 | 0.165007 |
| alcohol | 0.275780 | 0.116681 | 0.159100 |
| alcohol | 0.275780 | 0.122654 | 0.153126 |
| alcohol | 0.275780 | 0.128672 | 0.147109 |
| alcohol | 0.275780 | 0.134711 | 0.141069 |
| alcohol | 0.275780 | 0.140752 | 0.135029 |
| alcohol | 0.275780 | 0.146771 | 0.129010 |
| alcohol | 0.275780 | 0.152748 | 0.123032 |
| alcohol | 0.275780 | 0.158665 | 0.117116 |
| alcohol | 0.275780 | 0.164503 | 0.111277 |
| alcohol | 0.275780 | 0.170246 | 0.105535 |
| alcohol | 0.275780 | 0.175879 | 0.099902 |
| alcohol | 0.275780 | 0.181389 | 0.094392 |
| alcohol | 0.275780 | 0.186765 | 0.089015 |
| alcohol | 0.275780 | 0.191999 | 0.083781 |
| alcohol | 0.275780 | 0.197084 | 0.078697 |
| alcohol | 0.275780 | 0.202014 | 0.073766 |
| alcohol | 0.275780 | 0.206786 | 0.068995 |
| alcohol | 0.275780 | 0.211398 | 0.064383 |
| alcohol | 0.275780 | 0.215849 | 0.059931 |
| alcohol | 0.275780 | 0.220141 | 0.055640 |
| alcohol | 0.275780 | 0.224274 | 0.051506 |
| alcohol | 0.275780 | 0.228251 | 0.047529 |
| alcohol | 0.275780 | 0.232076 | 0.043705 |
| alcohol | 0.275780 | 0.235751 | 0.040030 |
| alcohol | 0.275780 | 0.239280 | 0.036500 |
| alcohol | 0.275780 | 0.242669 | 0.033112 |
| alcohol | 0.275780 | 0.245920 | 0.029860 |
| alcohol | 0.275780 | 0.249039 | 0.026742 |
| alcohol | 0.275780 | 0.252029 | 0.023752 |
| alcohol | 0.275780 | 0.254895 | 0.020886 |
| alcohol | 0.275780 | 0.257640 | 0.018141 |
| alcohol | 0.275780 | 0.260269 | 0.015512 |
| alcohol | 0.275780 | 0.262784 | 0.012996 |
| alcohol | 0.275780 | 0.265191 | 0.010590 |
| alcohol | 0.275780 | 0.267491 | 0.008289 |
| alcohol | 0.275780 | 0.269689 | 0.006092 |
| alcohol | 0.275780 | 0.271787 | 0.003994 |
| alcohol | 0.275780 | 0.273787 | 0.001993 |
| alcohol | 0.275780 | 0.275694 | 0.000086 |
| alcohol | 0.275780 | 0.277509 | 0.001729 |
red_prediction_comparison <- tibble(
actual = red_test$quality,
manual = red_manual_pred,
package = red_package_pred
)
red_prediction_comparison %>% head(10)red_metrics_comparison <- bind_rows(
red_manual_metrics %>% mutate(method = "Manual Ridge"),
red_package_metrics %>% mutate(method = "Package Ridge")
) %>%
select(method, everything())
kable(red_metrics_comparison, digits = 4, caption = "Performa Manual vs Package — Red Wine")| method | RMSE | MAE | R2 |
|---|---|---|---|
| Manual Ridge | 0.6515 | 0.4956 | 0.3052 |
| Package Ridge | 0.6515 | 0.4955 | 0.3052 |
Hasil evaluasi menunjukkan bahwa Manual Ridge dan Package Ridge menghasilkan performa yang hampir identik. Keduanya memiliki RMSE = 0,6515 dan R² = 0,3052, sedangkan nilai MAE hanya berbeda sangat kecil, yaitu 0,4956 pada metode manual dan 0,4955 pada package. Kesamaan hasil ini menunjukkan bahwa perhitungan Ridge secara manual telah mengikuti formulasi dan proses standardisasi yang konsisten dengan implementasi package, sehingga kedua pendekatan menghasilkan prediksi yang praktis sama. Dengan demikian, package R dapat digunakan untuk memperoleh hasil yang setara dengan perhitungan manual tanpa mengubah hasil model secara berarti.
red_residual_df <- tibble(
fitted = red_package_pred,
residual = red_test$quality - red_package_pred
)
ggplot(red_residual_df, aes(fitted, residual)) +
geom_point(alpha = .45) +
geom_hline(yintercept = 0, linetype = "dashed") +
geom_smooth(method = "loess", se = TRUE) +
labs(title = "Residual vs Predicted — Red Wine", x = "Predicted", y = "Residual") +
theme_minimal(base_size = 12)red_plot <- tibble(
actual = red_test$quality,
manual = red_manual_pred,
package = red_package_pred
) %>%
pivot_longer(-actual, names_to = "method", values_to = "predicted")
ggplot(red_plot, aes(actual, predicted)) +
geom_point(alpha = .35) +
geom_abline(slope = 1, intercept = 0, linetype = "dashed") +
facet_wrap(~method) +
labs(title = "Actual vs Predicted — Red Wine", x = "Actual Quality", y = "Predicted Quality") +
theme_minimal(base_size = 12)Plot actual vs predicted menunjukkan pola yang hampir sama antara hasil manual dan package. Titik prediksi pada kedua metode tersebar pada rentang kualitas yang serupa, tetapi sebagian besar prediksi cenderung terkonsentrasi di sekitar nilai 5–6, sementara nilai kualitas aktual yang lebih tinggi tidak selalu diikuti prediksi yang sama tinggi. Garis putus-putus menunjukkan kondisi prediksi ideal, yaitu ketika nilai prediksi sama dengan nilai aktual. Jarak titik-titik terhadap garis tersebut menunjukkan adanya kesalahan prediksi, terutama pada pengamatan dengan kualitas aktual yang lebih rendah atau lebih tinggi. Secara visual, kedua metode menghasilkan pola prediksi yang sangat mirip.
red_model_comparison <- bind_rows(
red_package_metrics %>% mutate(model = "Ridge Package"),
red_ols_metrics %>% mutate(model = "OLS"),
red_rf_metrics %>% mutate(model = "Random Forest")
) %>% select(model, everything())
kable(red_model_comparison, digits = 4, caption = "Benchmark Model — Red Wine")| model | RMSE | MAE | R2 |
|---|---|---|---|
| Ridge Package | 0.6515 | 0.4955 | 0.3052 |
| OLS | 0.6524 | 0.4952 | 0.3049 |
| Random Forest | 0.5822 | 0.4192 | 0.4466 |
Pada Red Wine, Ridge Package dan OLS juga menghasilkan performa yang hampir sama, dengan RMSE masing-masing 0,6515 dan 0,6524, MAE 0,4955 dan 0,4952, serta R² 0,3052 dan 0,3049. Random Forest menghasilkan RMSE 0,5822, MAE 0,4192, dan R² 0,4466. Dengan demikian, hasil benchmark memperlihatkan bahwa kedua pendekatan regresi linear memberikan hasil yang sangat berdekatan, sementara Random Forest menghasilkan nilai RMSE dan MAE yang lebih rendah serta R² yang lebih tinggi pada data Red Wine.
white_url <- paste0(
"https://archive.ics.uci.edu/ml/machine-learning-databases/",
"wine-quality/winequality-white.csv"
)
white_wine <- read.csv(white_url, sep = ";")
white_model <- white_wine %>% select(all_of(c(predictors, response)))
cat("Observasi:", nrow(white_model), "\n")## Observasi: 4898
## Variabel: 12
white_missing <- colSums(is.na(white_model))
white_duplicates <- sum(duplicated(white_model))
kable(
tibble(variable = names(white_missing), missing = as.integer(white_missing)),
caption = "Missing Value White Wine"
)| variable | missing |
|---|---|
| fixed.acidity | 0 |
| volatile.acidity | 0 |
| citric.acid | 0 |
| residual.sugar | 0 |
| chlorides | 0 |
| free.sulfur.dioxide | 0 |
| total.sulfur.dioxide | 0 |
| density | 0 |
| pH | 0 |
| sulphates | 0 |
| alcohol | 0 |
| quality | 0 |
## Duplikasi: 937
p1 <- ggplot(white_model, aes(quality)) +
geom_histogram(binwidth = 1, boundary = .5, color = "white") +
labs(title = "Distribusi Quality — White Wine", x = "Quality", y = "Frekuensi") +
theme_minimal(base_size = 12)
white_long <- white_model %>%
pivot_longer(all_of(predictors), names_to = "variable", values_to = "value")
p2 <- ggplot(white_long, aes(value)) +
geom_histogram(bins = 30, color = "white") +
facet_wrap(~variable, scales = "free", ncol = 3) +
labs(title = "Distribusi Prediktor — White Wine", x = NULL, y = "Frekuensi") +
theme_minimal(base_size = 10)
p1 / p2set.seed(12345)
white_split <- initial_split(white_model, prop = .80, strata = quality)
white_train <- training(white_split)
white_test <- testing(white_split)
cat("Training:", nrow(white_train), "\n")## Training: 3918
## Testing : 980
white_train_tmp <- white_train
white_ols_tmp <- lm(quality ~ ., data = white_train_tmp)
white_vif <- car::vif(white_ols_tmp)
white_vif_table <- tibble(
variable = names(white_vif),
VIF = as.numeric(white_vif)
) %>% arrange(desc(VIF))
kable(white_vif_table, digits = 3, caption = "VIF White Wine")| variable | VIF |
|---|---|
| density | 26.544 |
| residual.sugar | 12.255 |
| alcohol | 7.128 |
| fixed.acidity | 2.624 |
| total.sulfur.dioxide | 2.191 |
| pH | 2.169 |
| free.sulfur.dioxide | 1.747 |
| chlorides | 1.249 |
| citric.acid | 1.151 |
| volatile.acidity | 1.139 |
| sulphates | 1.126 |
Hasil VIF menunjukkan bahwa density memiliki VIF paling tinggi, yaitu 26,544, diikuti oleh residual.sugar sebesar 12,255 dan alcohol sebesar 7,128. Nilai tersebut menunjukkan adanya multikolinearitas yang cukup kuat pada ketiga variabel tersebut, terutama density dan residual.sugar. Sementara itu, fixed.acidity, total.sulfur.dioxide, dan pH memiliki VIF sekitar 2–3, sedangkan variabel lainnya memiliki VIF mendekati 1 sehingga keterkaitannya dengan prediktor lain relatif rendah. Kondisi ini menunjukkan bahwa masalah multikolinearitas pada White Wine lebih menonjol dibandingkan Red Wine, terutama pada density, residual.sugar, dan alcohol, sehingga penggunaan Ridge Regression relevan untuk membantu menstabilkan estimasi koefisien.
white_cor <- cor(white_model[predictors], use = "complete.obs")
white_cor_long <- as.data.frame(white_cor) %>%
rownames_to_column("v1") %>%
pivot_longer(-v1, names_to = "v2", values_to = "r")
ggplot(white_cor_long, aes(v1, v2, fill = r)) +
geom_tile() +
geom_text(aes(label = sprintf("%.2f", r)), size = 2.5) +
scale_fill_gradient2(low = "#2166AC", mid = "white", high = "#B2182B", midpoint = 0, limits = c(-1,1)) +
labs(title = "Korelasi Prediktor — White Wine", x = NULL, y = NULL, fill = "r") +
theme_minimal(base_size = 9) +
theme(axis.text.x = element_text(angle = 45, hjust = 1))Matriks korelasi menunjukkan beberapa hubungan yang cukup kuat antar prediktor. Hubungan positif paling kuat terlihat antara residual.sugar dengan density (r = 0,84), sedangkan hubungan negatif paling kuat terlihat antara alcohol dengan density (r = −0,78). Selain itu, terdapat korelasi positif antara free.sulfur.dioxide dengan total.sulfur.dioxide (r = 0,62) dan antara density dengan total.sulfur.dioxide (r = 0,53). Pola ini membantu menjelaskan hasil VIF, terutama tingginya VIF pada density, residual.sugar, dan alcohol, karena ketiga variabel tersebut memiliki hubungan yang cukup kuat dengan prediktor lain. Jadi, pada White Wine, struktur korelasi antarvariabel terlihat lebih kuat pada beberapa pasangan dibandingkan Red Wine dan menjadi salah satu alasan penting penggunaan Ridge Regression.
X_white <- as.matrix(white_train[predictors])
y_white <- white_train$quality
white_means <- colMeans(X_white)
white_sds <- apply(X_white, 2, sd)
Z_white <- scale(X_white, center = white_means, scale = white_sds)
white_standardization <- tibble(
variable = predictors,
mean_training = as.numeric(white_means),
sd_training = as.numeric(white_sds)
)
kable(white_standardization, digits = 4, caption = "Parameter Standardisasi Manual — White Wine")| variable | mean_training | sd_training |
|---|---|---|
| fixed.acidity | 6.8462 | 0.8485 |
| volatile.acidity | 0.2776 | 0.1003 |
| citric.acid | 0.3349 | 0.1210 |
| residual.sugar | 6.4213 | 5.1262 |
| chlorides | 0.0457 | 0.0216 |
| free.sulfur.dioxide | 35.2633 | 16.5755 |
| total.sulfur.dioxide | 138.5966 | 42.0873 |
| density | 0.9940 | 0.0030 |
| pH | 3.1885 | 0.1510 |
| sulphates | 0.4902 | 0.1145 |
| alcohol | 10.5071 | 1.2323 |
white_lambda_grid <- 10^seq(-4, 2, length.out = 100)
set.seed(12345)
white_manual_folds <- vfold_cv(white_train, v = 10, strata = quality)
white_manual_cv <- map_dfr(white_lambda_grid, function(lambda) {
fold_rmse <- map_dbl(white_manual_folds$splits, function(s) {
tr <- analysis(s)
va <- assessment(s)
fit <- manual_ridge(tr, predictors, response, lambda)
pred <- predict_manual_ridge(fit, va)
rmse_vec(va$quality, pred)
})
tibble(penalty = lambda, RMSE = mean(fold_rmse))
})
white_manual_best <- white_manual_cv %>% slice_min(RMSE, n = 1)
white_manual_bestggplot(white_manual_cv, aes(penalty, RMSE)) +
geom_line(linewidth = .8) +
geom_point(data = white_manual_best, size = 3) +
scale_x_log10() +
labs(title = "10-Fold CV Manual Ridge — White Wine", x = expression(lambda), y = "Mean RMSE") +
theme_minimal(base_size = 12)Hasil 10-fold cross-validation pada White Wine menunjukkan bahwa RMSE berada di sekitar 0,75 pada nilai \(\lambda\) yang kecil, kemudian meningkat ketika \(\lambda\) semakin besar. Nilai RMSE minimum diperoleh pada \(\lambda\) sekitar 0,01, dengan nilai evaluasi RMSE = 0,7624. Hal ini menunjukkan bahwa penalti Ridge yang relatif kecil memberikan kesalahan prediksi yang lebih rendah, sedangkan peningkatan \(\lambda\) yang terlalu besar menyebabkan RMSE meningkat cukup tajam.
white_lambda_manual <- white_manual_best$penalty
white_manual_fit <- manual_ridge(white_train, predictors, response, white_lambda_manual)
white_manual_coef <- tibble(
term = predictors,
estimate = unname(white_manual_fit$beta)
)
kable(white_manual_coef, digits = 5, caption = "Koefisien Manual Ridge — White Wine")| term | estimate |
|---|---|
| fixed.acidity | 0.02517 |
| volatile.acidity | -0.18912 |
| citric.acid | -0.00388 |
| residual.sugar | 0.30481 |
| chlorides | -0.01402 |
| free.sulfur.dioxide | 0.08441 |
| total.sulfur.dioxide | -0.02040 |
| density | -0.29457 |
| pH | 0.06209 |
| sulphates | 0.06681 |
| alcohol | 0.30576 |
white_manual_pred <- predict_manual_ridge(white_manual_fit, white_test)
white_manual_metrics <- metric_table(white_test$quality, white_manual_pred)
white_manual_metricsPada \(\lambda\) terpilih, model menghasilkan MAE = 0,5851 dan R² = 0,2721, sehingga model menjelaskan sekitar 27,21% variasi kualitas White Wine pada data yang dievaluasi.
recipe()white_folds <- white_manual_folds
white_grid <- tibble(penalty = white_lambda_grid)
white_workflow <- workflow() %>%
add_recipe(white_recipe) %>%
add_model(white_ridge_spec)
white_tuned <- tune_grid(
white_workflow,
resamples = white_folds,
grid = white_grid,
metrics = metric_set(rmse, mae, rsq)
)
white_best <- select_best(white_tuned, metric = "rmse")
white_bestwhite_final_workflow <- finalize_workflow(white_workflow, white_best)
white_package_fit <- fit(white_final_workflow, data = white_train)
white_package_pred <- predict(white_package_fit, new_data = white_test)$.pred
white_package_metrics <- metric_table(white_test$quality, white_package_pred)
white_package_metricswhite_package_coef <- tidy(extract_fit_parsnip(white_package_fit)$fit) %>%
filter(term != "(Intercept)") %>%
transmute(term, package_estimate = estimate)
white_coef_comparison <- white_manual_coef %>%
rename(manual_estimate = estimate) %>%
left_join(white_package_coef, by = "term") %>%
mutate(abs_difference = abs(manual_estimate - package_estimate))
kable(white_coef_comparison, digits = 6, caption = "Perbandingan Koefisien Manual dan Package — White Wine")| term | manual_estimate | package_estimate | abs_difference |
|---|---|---|---|
| fixed.acidity | 0.025170 | 0.000000 | 0.025170 |
| fixed.acidity | 0.025170 | -0.000235 | 0.025406 |
| fixed.acidity | 0.025170 | -0.000258 | 0.025428 |
| fixed.acidity | 0.025170 | -0.000283 | 0.025453 |
| fixed.acidity | 0.025170 | -0.000310 | 0.025481 |
| fixed.acidity | 0.025170 | -0.000340 | 0.025510 |
| fixed.acidity | 0.025170 | -0.000373 | 0.025543 |
| fixed.acidity | 0.025170 | -0.000409 | 0.025579 |
| fixed.acidity | 0.025170 | -0.000448 | 0.025618 |
| fixed.acidity | 0.025170 | -0.000491 | 0.025661 |
| fixed.acidity | 0.025170 | -0.000538 | 0.025708 |
| fixed.acidity | 0.025170 | -0.000589 | 0.025760 |
| fixed.acidity | 0.025170 | -0.000646 | 0.025816 |
| fixed.acidity | 0.025170 | -0.000707 | 0.025878 |
| fixed.acidity | 0.025170 | -0.000775 | 0.025945 |
| fixed.acidity | 0.025170 | -0.000848 | 0.026019 |
| fixed.acidity | 0.025170 | -0.000928 | 0.026099 |
| fixed.acidity | 0.025170 | -0.001016 | 0.026186 |
| fixed.acidity | 0.025170 | -0.001112 | 0.026282 |
| fixed.acidity | 0.025170 | -0.001216 | 0.026386 |
| fixed.acidity | 0.025170 | -0.001329 | 0.026500 |
| fixed.acidity | 0.025170 | -0.001453 | 0.026623 |
| fixed.acidity | 0.025170 | -0.001588 | 0.026758 |
| fixed.acidity | 0.025170 | -0.001734 | 0.026904 |
| fixed.acidity | 0.025170 | -0.001893 | 0.027063 |
| fixed.acidity | 0.025170 | -0.002065 | 0.027236 |
| fixed.acidity | 0.025170 | -0.002252 | 0.027423 |
| fixed.acidity | 0.025170 | -0.002455 | 0.027626 |
| fixed.acidity | 0.025170 | -0.002674 | 0.027845 |
| fixed.acidity | 0.025170 | -0.002911 | 0.028082 |
| fixed.acidity | 0.025170 | -0.003167 | 0.028337 |
| fixed.acidity | 0.025170 | -0.003442 | 0.028613 |
| fixed.acidity | 0.025170 | -0.003738 | 0.028909 |
| fixed.acidity | 0.025170 | -0.004056 | 0.029227 |
| fixed.acidity | 0.025170 | -0.004397 | 0.029568 |
| fixed.acidity | 0.025170 | -0.004762 | 0.029932 |
| fixed.acidity | 0.025170 | -0.005151 | 0.030322 |
| fixed.acidity | 0.025170 | -0.005566 | 0.030736 |
| fixed.acidity | 0.025170 | -0.006006 | 0.031177 |
| fixed.acidity | 0.025170 | -0.006473 | 0.031644 |
| fixed.acidity | 0.025170 | -0.006967 | 0.032137 |
| fixed.acidity | 0.025170 | -0.007487 | 0.032657 |
| fixed.acidity | 0.025170 | -0.008034 | 0.033204 |
| fixed.acidity | 0.025170 | -0.008606 | 0.033777 |
| fixed.acidity | 0.025170 | -0.009204 | 0.034375 |
| fixed.acidity | 0.025170 | -0.009826 | 0.034997 |
| fixed.acidity | 0.025170 | -0.010471 | 0.035642 |
| fixed.acidity | 0.025170 | -0.011137 | 0.036308 |
| fixed.acidity | 0.025170 | -0.011823 | 0.036993 |
| fixed.acidity | 0.025170 | -0.012524 | 0.037695 |
| fixed.acidity | 0.025170 | -0.013240 | 0.038410 |
| fixed.acidity | 0.025170 | -0.013966 | 0.039137 |
| fixed.acidity | 0.025170 | -0.014701 | 0.039871 |
| fixed.acidity | 0.025170 | -0.015438 | 0.040609 |
| fixed.acidity | 0.025170 | -0.016176 | 0.041347 |
| fixed.acidity | 0.025170 | -0.016910 | 0.042080 |
| fixed.acidity | 0.025170 | -0.017635 | 0.042805 |
| fixed.acidity | 0.025170 | -0.018347 | 0.043517 |
| fixed.acidity | 0.025170 | -0.019043 | 0.044213 |
| fixed.acidity | 0.025170 | -0.019715 | 0.044886 |
| fixed.acidity | 0.025170 | -0.020361 | 0.045531 |
| fixed.acidity | 0.025170 | -0.020974 | 0.046144 |
| fixed.acidity | 0.025170 | -0.021550 | 0.046721 |
| fixed.acidity | 0.025170 | -0.022085 | 0.047255 |
| fixed.acidity | 0.025170 | -0.022572 | 0.047743 |
| fixed.acidity | 0.025170 | -0.023009 | 0.048179 |
| fixed.acidity | 0.025170 | -0.023390 | 0.048560 |
| fixed.acidity | 0.025170 | -0.023722 | 0.048893 |
| fixed.acidity | 0.025170 | -0.023984 | 0.049154 |
| fixed.acidity | 0.025170 | -0.024178 | 0.049349 |
| fixed.acidity | 0.025170 | -0.024304 | 0.049474 |
| fixed.acidity | 0.025170 | -0.024357 | 0.049527 |
| fixed.acidity | 0.025170 | -0.024336 | 0.049507 |
| fixed.acidity | 0.025170 | -0.024260 | 0.049431 |
| fixed.acidity | 0.025170 | -0.024093 | 0.049263 |
| fixed.acidity | 0.025170 | -0.023849 | 0.049019 |
| fixed.acidity | 0.025170 | -0.023528 | 0.048699 |
| fixed.acidity | 0.025170 | -0.023132 | 0.048303 |
| fixed.acidity | 0.025170 | -0.022662 | 0.047833 |
| fixed.acidity | 0.025170 | -0.022119 | 0.047289 |
| fixed.acidity | 0.025170 | -0.021504 | 0.046675 |
| fixed.acidity | 0.025170 | -0.020821 | 0.045991 |
| fixed.acidity | 0.025170 | -0.020023 | 0.045193 |
| fixed.acidity | 0.025170 | -0.019208 | 0.044378 |
| fixed.acidity | 0.025170 | -0.018334 | 0.043504 |
| fixed.acidity | 0.025170 | -0.017401 | 0.042572 |
| fixed.acidity | 0.025170 | -0.016412 | 0.041582 |
| fixed.acidity | 0.025170 | -0.015367 | 0.040538 |
| fixed.acidity | 0.025170 | -0.014270 | 0.039440 |
| fixed.acidity | 0.025170 | -0.013121 | 0.038291 |
| fixed.acidity | 0.025170 | -0.011921 | 0.037092 |
| fixed.acidity | 0.025170 | -0.010673 | 0.035843 |
| fixed.acidity | 0.025170 | -0.009344 | 0.034515 |
| fixed.acidity | 0.025170 | -0.007984 | 0.033154 |
| fixed.acidity | 0.025170 | -0.006537 | 0.031707 |
| fixed.acidity | 0.025170 | -0.005067 | 0.030238 |
| fixed.acidity | 0.025170 | -0.003508 | 0.028678 |
| fixed.acidity | 0.025170 | -0.001889 | 0.027059 |
| fixed.acidity | 0.025170 | -0.000267 | 0.025437 |
| fixed.acidity | 0.025170 | 0.001438 | 0.023732 |
| volatile.acidity | -0.189117 | 0.000000 | 0.189117 |
| volatile.acidity | -0.189117 | -0.000437 | 0.188680 |
| volatile.acidity | -0.189117 | -0.000480 | 0.188638 |
| volatile.acidity | -0.189117 | -0.000526 | 0.188591 |
| volatile.acidity | -0.189117 | -0.000577 | 0.188540 |
| volatile.acidity | -0.189117 | -0.000633 | 0.188484 |
| volatile.acidity | -0.189117 | -0.000695 | 0.188423 |
| volatile.acidity | -0.189117 | -0.000762 | 0.188355 |
| volatile.acidity | -0.189117 | -0.000836 | 0.188281 |
| volatile.acidity | -0.189117 | -0.000917 | 0.188200 |
| volatile.acidity | -0.189117 | -0.001006 | 0.188111 |
| volatile.acidity | -0.189117 | -0.001103 | 0.188014 |
| volatile.acidity | -0.189117 | -0.001210 | 0.187907 |
| volatile.acidity | -0.189117 | -0.001327 | 0.187790 |
| volatile.acidity | -0.189117 | -0.001455 | 0.187662 |
| volatile.acidity | -0.189117 | -0.001596 | 0.187521 |
| volatile.acidity | -0.189117 | -0.001750 | 0.187368 |
| volatile.acidity | -0.189117 | -0.001918 | 0.187199 |
| volatile.acidity | -0.189117 | -0.002103 | 0.187014 |
| volatile.acidity | -0.189117 | -0.002305 | 0.186812 |
| volatile.acidity | -0.189117 | -0.002526 | 0.186591 |
| volatile.acidity | -0.189117 | -0.002768 | 0.186349 |
| volatile.acidity | -0.189117 | -0.003033 | 0.186084 |
| volatile.acidity | -0.189117 | -0.003323 | 0.185795 |
| volatile.acidity | -0.189117 | -0.003639 | 0.185478 |
| volatile.acidity | -0.189117 | -0.003985 | 0.185132 |
| volatile.acidity | -0.189117 | -0.004363 | 0.184754 |
| volatile.acidity | -0.189117 | -0.004776 | 0.184341 |
| volatile.acidity | -0.189117 | -0.005227 | 0.183891 |
| volatile.acidity | -0.189117 | -0.005718 | 0.183399 |
| volatile.acidity | -0.189117 | -0.006254 | 0.182863 |
| volatile.acidity | -0.189117 | -0.006838 | 0.182279 |
| volatile.acidity | -0.189117 | -0.007474 | 0.181644 |
| volatile.acidity | -0.189117 | -0.008166 | 0.180952 |
| volatile.acidity | -0.189117 | -0.008918 | 0.180199 |
| volatile.acidity | -0.189117 | -0.009735 | 0.179382 |
| volatile.acidity | -0.189117 | -0.010622 | 0.178495 |
| volatile.acidity | -0.189117 | -0.011584 | 0.177533 |
| volatile.acidity | -0.189117 | -0.012626 | 0.176492 |
| volatile.acidity | -0.189117 | -0.013753 | 0.175364 |
| volatile.acidity | -0.189117 | -0.014971 | 0.174146 |
| volatile.acidity | -0.189117 | -0.016286 | 0.172832 |
| volatile.acidity | -0.189117 | -0.017702 | 0.171415 |
| volatile.acidity | -0.189117 | -0.019226 | 0.169891 |
| volatile.acidity | -0.189117 | -0.020864 | 0.168254 |
| volatile.acidity | -0.189117 | -0.022619 | 0.166498 |
| volatile.acidity | -0.189117 | -0.024499 | 0.164619 |
| volatile.acidity | -0.189117 | -0.026506 | 0.162611 |
| volatile.acidity | -0.189117 | -0.028647 | 0.160471 |
| volatile.acidity | -0.189117 | -0.030923 | 0.158194 |
| volatile.acidity | -0.189117 | -0.033339 | 0.155778 |
| volatile.acidity | -0.189117 | -0.035897 | 0.153221 |
| volatile.acidity | -0.189117 | -0.038597 | 0.150520 |
| volatile.acidity | -0.189117 | -0.041441 | 0.147676 |
| volatile.acidity | -0.189117 | -0.044428 | 0.144690 |
| volatile.acidity | -0.189117 | -0.047555 | 0.141562 |
| volatile.acidity | -0.189117 | -0.050820 | 0.138298 |
| volatile.acidity | -0.189117 | -0.054218 | 0.134900 |
| volatile.acidity | -0.189117 | -0.057742 | 0.131376 |
| volatile.acidity | -0.189117 | -0.061387 | 0.127731 |
| volatile.acidity | -0.189117 | -0.065144 | 0.123974 |
| volatile.acidity | -0.189117 | -0.069003 | 0.120114 |
| volatile.acidity | -0.189117 | -0.072954 | 0.116163 |
| volatile.acidity | -0.189117 | -0.076985 | 0.112133 |
| volatile.acidity | -0.189117 | -0.081083 | 0.108034 |
| volatile.acidity | -0.189117 | -0.085235 | 0.103882 |
| volatile.acidity | -0.189117 | -0.089428 | 0.099690 |
| volatile.acidity | -0.189117 | -0.093642 | 0.095475 |
| volatile.acidity | -0.189117 | -0.097872 | 0.091245 |
| volatile.acidity | -0.189117 | -0.102099 | 0.087018 |
| volatile.acidity | -0.189117 | -0.106309 | 0.082809 |
| volatile.acidity | -0.189117 | -0.110487 | 0.078631 |
| volatile.acidity | -0.189117 | -0.114620 | 0.074498 |
| volatile.acidity | -0.189117 | -0.118690 | 0.070427 |
| volatile.acidity | -0.189117 | -0.122695 | 0.066423 |
| volatile.acidity | -0.189117 | -0.126616 | 0.062501 |
| volatile.acidity | -0.189117 | -0.130445 | 0.058672 |
| volatile.acidity | -0.189117 | -0.134171 | 0.054947 |
| volatile.acidity | -0.189117 | -0.137784 | 0.051333 |
| volatile.acidity | -0.189117 | -0.141278 | 0.047839 |
| volatile.acidity | -0.189117 | -0.144645 | 0.044472 |
| volatile.acidity | -0.189117 | -0.147880 | 0.041237 |
| volatile.acidity | -0.189117 | -0.150962 | 0.038156 |
| volatile.acidity | -0.189117 | -0.153918 | 0.035199 |
| volatile.acidity | -0.189117 | -0.156732 | 0.032385 |
| volatile.acidity | -0.189117 | -0.159402 | 0.029715 |
| volatile.acidity | -0.189117 | -0.161929 | 0.027188 |
| volatile.acidity | -0.189117 | -0.164314 | 0.024804 |
| volatile.acidity | -0.189117 | -0.166557 | 0.022561 |
| volatile.acidity | -0.189117 | -0.168661 | 0.020456 |
| volatile.acidity | -0.189117 | -0.170629 | 0.018488 |
| volatile.acidity | -0.189117 | -0.172465 | 0.016652 |
| volatile.acidity | -0.189117 | -0.174199 | 0.014919 |
| volatile.acidity | -0.189117 | -0.175783 | 0.013335 |
| volatile.acidity | -0.189117 | -0.177260 | 0.011857 |
| volatile.acidity | -0.189117 | -0.178610 | 0.010508 |
| volatile.acidity | -0.189117 | -0.179857 | 0.009261 |
| volatile.acidity | -0.189117 | -0.180997 | 0.008120 |
| volatile.acidity | -0.189117 | -0.182035 | 0.007083 |
| volatile.acidity | -0.189117 | -0.182982 | 0.006136 |
| citric.acid | -0.003877 | 0.000000 | 0.003877 |
| citric.acid | -0.003877 | -0.000035 | 0.003842 |
| citric.acid | -0.003877 | -0.000038 | 0.003838 |
| citric.acid | -0.003877 | -0.000042 | 0.003835 |
| citric.acid | -0.003877 | -0.000046 | 0.003831 |
| citric.acid | -0.003877 | -0.000050 | 0.003827 |
| citric.acid | -0.003877 | -0.000055 | 0.003822 |
| citric.acid | -0.003877 | -0.000060 | 0.003817 |
| citric.acid | -0.003877 | -0.000065 | 0.003811 |
| citric.acid | -0.003877 | -0.000071 | 0.003805 |
| citric.acid | -0.003877 | -0.000078 | 0.003799 |
| citric.acid | -0.003877 | -0.000085 | 0.003792 |
| citric.acid | -0.003877 | -0.000093 | 0.003784 |
| citric.acid | -0.003877 | -0.000101 | 0.003776 |
| citric.acid | -0.003877 | -0.000110 | 0.003767 |
| citric.acid | -0.003877 | -0.000119 | 0.003757 |
| citric.acid | -0.003877 | -0.000130 | 0.003747 |
| citric.acid | -0.003877 | -0.000141 | 0.003735 |
| citric.acid | -0.003877 | -0.000153 | 0.003724 |
| citric.acid | -0.003877 | -0.000166 | 0.003711 |
| citric.acid | -0.003877 | -0.000180 | 0.003697 |
| citric.acid | -0.003877 | -0.000194 | 0.003683 |
| citric.acid | -0.003877 | -0.000209 | 0.003667 |
| citric.acid | -0.003877 | -0.000226 | 0.003651 |
| citric.acid | -0.003877 | -0.000242 | 0.003634 |
| citric.acid | -0.003877 | -0.000260 | 0.003616 |
| citric.acid | -0.003877 | -0.000278 | 0.003598 |
| citric.acid | -0.003877 | -0.000297 | 0.003579 |
| citric.acid | -0.003877 | -0.000316 | 0.003560 |
| citric.acid | -0.003877 | -0.000336 | 0.003541 |
| citric.acid | -0.003877 | -0.000355 | 0.003522 |
| citric.acid | -0.003877 | -0.000374 | 0.003503 |
| citric.acid | -0.003877 | -0.000391 | 0.003485 |
| citric.acid | -0.003877 | -0.000408 | 0.003469 |
| citric.acid | -0.003877 | -0.000423 | 0.003454 |
| citric.acid | -0.003877 | -0.000435 | 0.003442 |
| citric.acid | -0.003877 | -0.000443 | 0.003433 |
| citric.acid | -0.003877 | -0.000448 | 0.003429 |
| citric.acid | -0.003877 | -0.000447 | 0.003429 |
| citric.acid | -0.003877 | -0.000441 | 0.003436 |
| citric.acid | -0.003877 | -0.000426 | 0.003450 |
| citric.acid | -0.003877 | -0.000403 | 0.003474 |
| citric.acid | -0.003877 | -0.000370 | 0.003507 |
| citric.acid | -0.003877 | -0.000325 | 0.003552 |
| citric.acid | -0.003877 | -0.000267 | 0.003610 |
| citric.acid | -0.003877 | -0.000194 | 0.003682 |
| citric.acid | -0.003877 | -0.000106 | 0.003771 |
| citric.acid | -0.003877 | 0.000001 | 0.003877 |
| citric.acid | -0.003877 | 0.000126 | 0.004002 |
| citric.acid | -0.003877 | 0.000271 | 0.004147 |
| citric.acid | -0.003877 | 0.000436 | 0.004313 |
| citric.acid | -0.003877 | 0.000623 | 0.004499 |
| citric.acid | -0.003877 | 0.000831 | 0.004707 |
| citric.acid | -0.003877 | 0.001060 | 0.004936 |
| citric.acid | -0.003877 | 0.001308 | 0.005185 |
| citric.acid | -0.003877 | 0.001575 | 0.005452 |
| citric.acid | -0.003877 | 0.001859 | 0.005736 |
| citric.acid | -0.003877 | 0.002156 | 0.006033 |
| citric.acid | -0.003877 | 0.002467 | 0.006343 |
| citric.acid | -0.003877 | 0.002781 | 0.006658 |
| citric.acid | -0.003877 | 0.003098 | 0.006975 |
| citric.acid | -0.003877 | 0.003412 | 0.007289 |
| citric.acid | -0.003877 | 0.003718 | 0.007595 |
| citric.acid | -0.003877 | 0.004011 | 0.007888 |
| citric.acid | -0.003877 | 0.004286 | 0.008163 |
| citric.acid | -0.003877 | 0.004537 | 0.008413 |
| citric.acid | -0.003877 | 0.004759 | 0.008635 |
| citric.acid | -0.003877 | 0.004951 | 0.008828 |
| citric.acid | -0.003877 | 0.005102 | 0.008979 |
| citric.acid | -0.003877 | 0.005212 | 0.009088 |
| citric.acid | -0.003877 | 0.005277 | 0.009153 |
| citric.acid | -0.003877 | 0.005296 | 0.009173 |
| citric.acid | -0.003877 | 0.005269 | 0.009146 |
| citric.acid | -0.003877 | 0.005198 | 0.009075 |
| citric.acid | -0.003877 | 0.005078 | 0.008954 |
| citric.acid | -0.003877 | 0.004912 | 0.008789 |
| citric.acid | -0.003877 | 0.004705 | 0.008582 |
| citric.acid | -0.003877 | 0.004459 | 0.008336 |
| citric.acid | -0.003877 | 0.004178 | 0.008054 |
| citric.acid | -0.003877 | 0.003865 | 0.007742 |
| citric.acid | -0.003877 | 0.003527 | 0.007403 |
| citric.acid | -0.003877 | 0.003166 | 0.007043 |
| citric.acid | -0.003877 | 0.002794 | 0.006670 |
| citric.acid | -0.003877 | 0.002405 | 0.006281 |
| citric.acid | -0.003877 | 0.002008 | 0.005885 |
| citric.acid | -0.003877 | 0.001608 | 0.005485 |
| citric.acid | -0.003877 | 0.001208 | 0.005085 |
| citric.acid | -0.003877 | 0.000813 | 0.004690 |
| citric.acid | -0.003877 | 0.000425 | 0.004302 |
| citric.acid | -0.003877 | 0.000048 | 0.003925 |
| citric.acid | -0.003877 | -0.000316 | 0.003560 |
| citric.acid | -0.003877 | -0.000666 | 0.003211 |
| citric.acid | -0.003877 | -0.001007 | 0.002869 |
| citric.acid | -0.003877 | -0.001322 | 0.002555 |
| citric.acid | -0.003877 | -0.001621 | 0.002256 |
| citric.acid | -0.003877 | -0.001896 | 0.001981 |
| citric.acid | -0.003877 | -0.002153 | 0.001724 |
| citric.acid | -0.003877 | -0.002388 | 0.001489 |
| citric.acid | -0.003877 | -0.002602 | 0.001274 |
| citric.acid | -0.003877 | -0.002797 | 0.001080 |
| residual.sugar | 0.304811 | 0.000000 | 0.304811 |
| residual.sugar | 0.304811 | -0.000212 | 0.305023 |
| residual.sugar | 0.304811 | -0.000233 | 0.305043 |
| residual.sugar | 0.304811 | -0.000255 | 0.305066 |
| residual.sugar | 0.304811 | -0.000279 | 0.305090 |
| residual.sugar | 0.304811 | -0.000306 | 0.305116 |
| residual.sugar | 0.304811 | -0.000335 | 0.305145 |
| residual.sugar | 0.304811 | -0.000366 | 0.305177 |
| residual.sugar | 0.304811 | -0.000401 | 0.305211 |
| residual.sugar | 0.304811 | -0.000439 | 0.305249 |
| residual.sugar | 0.304811 | -0.000480 | 0.305290 |
| residual.sugar | 0.304811 | -0.000524 | 0.305335 |
| residual.sugar | 0.304811 | -0.000573 | 0.305383 |
| residual.sugar | 0.304811 | -0.000626 | 0.305436 |
| residual.sugar | 0.304811 | -0.000683 | 0.305494 |
| residual.sugar | 0.304811 | -0.000745 | 0.305556 |
| residual.sugar | 0.304811 | -0.000813 | 0.305623 |
| residual.sugar | 0.304811 | -0.000886 | 0.305696 |
| residual.sugar | 0.304811 | -0.000965 | 0.305775 |
| residual.sugar | 0.304811 | -0.001050 | 0.305861 |
| residual.sugar | 0.304811 | -0.001142 | 0.305952 |
| residual.sugar | 0.304811 | -0.001241 | 0.306051 |
| residual.sugar | 0.304811 | -0.001347 | 0.306157 |
| residual.sugar | 0.304811 | -0.001460 | 0.306270 |
| residual.sugar | 0.304811 | -0.001581 | 0.306391 |
| residual.sugar | 0.304811 | -0.001710 | 0.306520 |
| residual.sugar | 0.304811 | -0.001846 | 0.306657 |
| residual.sugar | 0.304811 | -0.001991 | 0.306801 |
| residual.sugar | 0.304811 | -0.002142 | 0.306953 |
| residual.sugar | 0.304811 | -0.002301 | 0.307112 |
| residual.sugar | 0.304811 | -0.002467 | 0.307277 |
| residual.sugar | 0.304811 | -0.002637 | 0.307448 |
| residual.sugar | 0.304811 | -0.002813 | 0.307623 |
| residual.sugar | 0.304811 | -0.002991 | 0.307802 |
| residual.sugar | 0.304811 | -0.003170 | 0.307981 |
| residual.sugar | 0.304811 | -0.003348 | 0.308159 |
| residual.sugar | 0.304811 | -0.003522 | 0.308332 |
| residual.sugar | 0.304811 | -0.003687 | 0.308498 |
| residual.sugar | 0.304811 | -0.003841 | 0.308652 |
| residual.sugar | 0.304811 | -0.003978 | 0.308788 |
| residual.sugar | 0.304811 | -0.004092 | 0.308902 |
| residual.sugar | 0.304811 | -0.004177 | 0.308988 |
| residual.sugar | 0.304811 | -0.004226 | 0.309036 |
| residual.sugar | 0.304811 | -0.004230 | 0.309040 |
| residual.sugar | 0.304811 | -0.004180 | 0.308990 |
| residual.sugar | 0.304811 | -0.004066 | 0.308876 |
| residual.sugar | 0.304811 | -0.003877 | 0.308687 |
| residual.sugar | 0.304811 | -0.003601 | 0.308411 |
| residual.sugar | 0.304811 | -0.003225 | 0.308036 |
| residual.sugar | 0.304811 | -0.002736 | 0.307547 |
| residual.sugar | 0.304811 | -0.002121 | 0.306931 |
| residual.sugar | 0.304811 | -0.001363 | 0.306174 |
| residual.sugar | 0.304811 | -0.000450 | 0.305261 |
| residual.sugar | 0.304811 | 0.000633 | 0.304177 |
| residual.sugar | 0.304811 | 0.001902 | 0.302909 |
| residual.sugar | 0.304811 | 0.003369 | 0.301442 |
| residual.sugar | 0.304811 | 0.005048 | 0.299762 |
| residual.sugar | 0.304811 | 0.006952 | 0.297859 |
| residual.sugar | 0.304811 | 0.009085 | 0.295726 |
| residual.sugar | 0.304811 | 0.011465 | 0.293346 |
| residual.sugar | 0.304811 | 0.014096 | 0.290715 |
| residual.sugar | 0.304811 | 0.016984 | 0.287826 |
| residual.sugar | 0.304811 | 0.020133 | 0.284677 |
| residual.sugar | 0.304811 | 0.023544 | 0.281267 |
| residual.sugar | 0.304811 | 0.027215 | 0.277595 |
| residual.sugar | 0.304811 | 0.031144 | 0.273666 |
| residual.sugar | 0.304811 | 0.035325 | 0.269486 |
| residual.sugar | 0.304811 | 0.039717 | 0.265094 |
| residual.sugar | 0.304811 | 0.044362 | 0.260449 |
| residual.sugar | 0.304811 | 0.049225 | 0.255586 |
| residual.sugar | 0.304811 | 0.054292 | 0.250518 |
| residual.sugar | 0.304811 | 0.059548 | 0.245263 |
| residual.sugar | 0.304811 | 0.064974 | 0.239837 |
| residual.sugar | 0.304811 | 0.070495 | 0.234316 |
| residual.sugar | 0.304811 | 0.076193 | 0.228618 |
| residual.sugar | 0.304811 | 0.082005 | 0.222806 |
| residual.sugar | 0.304811 | 0.087911 | 0.216899 |
| residual.sugar | 0.304811 | 0.093894 | 0.210916 |
| residual.sugar | 0.304811 | 0.099937 | 0.204874 |
| residual.sugar | 0.304811 | 0.106021 | 0.198789 |
| residual.sugar | 0.304811 | 0.112134 | 0.192677 |
| residual.sugar | 0.304811 | 0.118260 | 0.186551 |
| residual.sugar | 0.304811 | 0.124507 | 0.180304 |
| residual.sugar | 0.304811 | 0.130629 | 0.174181 |
| residual.sugar | 0.304811 | 0.136725 | 0.168085 |
| residual.sugar | 0.304811 | 0.142797 | 0.162014 |
| residual.sugar | 0.304811 | 0.148840 | 0.155971 |
| residual.sugar | 0.304811 | 0.154852 | 0.149958 |
| residual.sugar | 0.304811 | 0.160835 | 0.143976 |
| residual.sugar | 0.304811 | 0.166788 | 0.138023 |
| residual.sugar | 0.304811 | 0.172714 | 0.132097 |
| residual.sugar | 0.304811 | 0.178615 | 0.126196 |
| residual.sugar | 0.304811 | 0.184616 | 0.120194 |
| residual.sugar | 0.304811 | 0.190532 | 0.114278 |
| residual.sugar | 0.304811 | 0.196576 | 0.108235 |
| residual.sugar | 0.304811 | 0.202527 | 0.102283 |
| residual.sugar | 0.304811 | 0.208624 | 0.096187 |
| residual.sugar | 0.304811 | 0.214771 | 0.090040 |
| residual.sugar | 0.304811 | 0.220802 | 0.084008 |
| residual.sugar | 0.304811 | 0.226975 | 0.077835 |
| chlorides | -0.014023 | 0.000000 | 0.014023 |
| chlorides | -0.014023 | -0.000472 | 0.013551 |
| chlorides | -0.014023 | -0.000518 | 0.013505 |
| chlorides | -0.014023 | -0.000568 | 0.013455 |
| chlorides | -0.014023 | -0.000623 | 0.013400 |
| chlorides | -0.014023 | -0.000683 | 0.013340 |
| chlorides | -0.014023 | -0.000749 | 0.013274 |
| chlorides | -0.014023 | -0.000821 | 0.013202 |
| chlorides | -0.014023 | -0.000900 | 0.013123 |
| chlorides | -0.014023 | -0.000987 | 0.013036 |
| chlorides | -0.014023 | -0.001082 | 0.012941 |
| chlorides | -0.014023 | -0.001186 | 0.012837 |
| chlorides | -0.014023 | -0.001299 | 0.012724 |
| chlorides | -0.014023 | -0.001424 | 0.012599 |
| chlorides | -0.014023 | -0.001560 | 0.012463 |
| chlorides | -0.014023 | -0.001709 | 0.012314 |
| chlorides | -0.014023 | -0.001871 | 0.012152 |
| chlorides | -0.014023 | -0.002049 | 0.011974 |
| chlorides | -0.014023 | -0.002243 | 0.011780 |
| chlorides | -0.014023 | -0.002455 | 0.011568 |
| chlorides | -0.014023 | -0.002686 | 0.011337 |
| chlorides | -0.014023 | -0.002938 | 0.011085 |
| chlorides | -0.014023 | -0.003212 | 0.010811 |
| chlorides | -0.014023 | -0.003511 | 0.010512 |
| chlorides | -0.014023 | -0.003837 | 0.010186 |
| chlorides | -0.014023 | -0.004191 | 0.009832 |
| chlorides | -0.014023 | -0.004576 | 0.009448 |
| chlorides | -0.014023 | -0.004993 | 0.009030 |
| chlorides | -0.014023 | -0.005446 | 0.008577 |
| chlorides | -0.014023 | -0.005937 | 0.008086 |
| chlorides | -0.014023 | -0.006468 | 0.007555 |
| chlorides | -0.014023 | -0.007042 | 0.006981 |
| chlorides | -0.014023 | -0.007662 | 0.006362 |
| chlorides | -0.014023 | -0.008329 | 0.005694 |
| chlorides | -0.014023 | -0.009048 | 0.004975 |
| chlorides | -0.014023 | -0.009820 | 0.004203 |
| chlorides | -0.014023 | -0.010648 | 0.003375 |
| chlorides | -0.014023 | -0.011534 | 0.002489 |
| chlorides | -0.014023 | -0.012481 | 0.001542 |
| chlorides | -0.014023 | -0.013490 | 0.000533 |
| chlorides | -0.014023 | -0.014563 | 0.000540 |
| chlorides | -0.014023 | -0.015701 | 0.001678 |
| chlorides | -0.014023 | -0.016904 | 0.002881 |
| chlorides | -0.014023 | -0.018174 | 0.004151 |
| chlorides | -0.014023 | -0.019508 | 0.005485 |
| chlorides | -0.014023 | -0.020907 | 0.006884 |
| chlorides | -0.014023 | -0.022368 | 0.008345 |
| chlorides | -0.014023 | -0.023888 | 0.009865 |
| chlorides | -0.014023 | -0.025463 | 0.011440 |
| chlorides | -0.014023 | -0.027089 | 0.013066 |
| chlorides | -0.014023 | -0.028759 | 0.014736 |
| chlorides | -0.014023 | -0.030466 | 0.016443 |
| chlorides | -0.014023 | -0.032203 | 0.018179 |
| chlorides | -0.014023 | -0.033959 | 0.019936 |
| chlorides | -0.014023 | -0.035724 | 0.021701 |
| chlorides | -0.014023 | -0.037487 | 0.023464 |
| chlorides | -0.014023 | -0.039235 | 0.025212 |
| chlorides | -0.014023 | -0.040954 | 0.026931 |
| chlorides | -0.014023 | -0.042633 | 0.028610 |
| chlorides | -0.014023 | -0.044253 | 0.030230 |
| chlorides | -0.014023 | -0.045802 | 0.031779 |
| chlorides | -0.014023 | -0.047263 | 0.033240 |
| chlorides | -0.014023 | -0.048623 | 0.034600 |
| chlorides | -0.014023 | -0.049866 | 0.035843 |
| chlorides | -0.014023 | -0.050980 | 0.036957 |
| chlorides | -0.014023 | -0.051953 | 0.037930 |
| chlorides | -0.014023 | -0.052774 | 0.038751 |
| chlorides | -0.014023 | -0.053444 | 0.039421 |
| chlorides | -0.014023 | -0.053939 | 0.039916 |
| chlorides | -0.014023 | -0.054264 | 0.040241 |
| chlorides | -0.014023 | -0.054415 | 0.040392 |
| chlorides | -0.014023 | -0.054393 | 0.040370 |
| chlorides | -0.014023 | -0.054201 | 0.040178 |
| chlorides | -0.014023 | -0.053857 | 0.039834 |
| chlorides | -0.014023 | -0.053345 | 0.039322 |
| chlorides | -0.014023 | -0.052686 | 0.038663 |
| chlorides | -0.014023 | -0.051889 | 0.037866 |
| chlorides | -0.014023 | -0.050968 | 0.036945 |
| chlorides | -0.014023 | -0.049937 | 0.035914 |
| chlorides | -0.014023 | -0.048809 | 0.034786 |
| chlorides | -0.014023 | -0.047600 | 0.033577 |
| chlorides | -0.014023 | -0.046323 | 0.032300 |
| chlorides | -0.014023 | -0.044981 | 0.030958 |
| chlorides | -0.014023 | -0.043615 | 0.029592 |
| chlorides | -0.014023 | -0.042225 | 0.028202 |
| chlorides | -0.014023 | -0.040822 | 0.026799 |
| chlorides | -0.014023 | -0.039416 | 0.025393 |
| chlorides | -0.014023 | -0.038017 | 0.023994 |
| chlorides | -0.014023 | -0.036634 | 0.022611 |
| chlorides | -0.014023 | -0.035273 | 0.021250 |
| chlorides | -0.014023 | -0.033941 | 0.019918 |
| chlorides | -0.014023 | -0.032643 | 0.018620 |
| chlorides | -0.014023 | -0.031359 | 0.017336 |
| chlorides | -0.014023 | -0.030132 | 0.016109 |
| chlorides | -0.014023 | -0.028928 | 0.014905 |
| chlorides | -0.014023 | -0.027782 | 0.013759 |
| chlorides | -0.014023 | -0.026662 | 0.012639 |
| chlorides | -0.014023 | -0.025582 | 0.011559 |
| chlorides | -0.014023 | -0.024560 | 0.010537 |
| chlorides | -0.014023 | -0.023567 | 0.009543 |
| free.sulfur.dioxide | 0.084415 | 0.000000 | 0.084415 |
| free.sulfur.dioxide | 0.084415 | 0.000047 | 0.084367 |
| free.sulfur.dioxide | 0.084415 | 0.000052 | 0.084362 |
| free.sulfur.dioxide | 0.084415 | 0.000058 | 0.084357 |
| free.sulfur.dioxide | 0.084415 | 0.000063 | 0.084351 |
| free.sulfur.dioxide | 0.084415 | 0.000070 | 0.084345 |
| free.sulfur.dioxide | 0.084415 | 0.000077 | 0.084338 |
| free.sulfur.dioxide | 0.084415 | 0.000085 | 0.084330 |
| free.sulfur.dioxide | 0.084415 | 0.000094 | 0.084321 |
| free.sulfur.dioxide | 0.084415 | 0.000104 | 0.084311 |
| free.sulfur.dioxide | 0.084415 | 0.000115 | 0.084300 |
| free.sulfur.dioxide | 0.084415 | 0.000127 | 0.084288 |
| free.sulfur.dioxide | 0.084415 | 0.000140 | 0.084274 |
| free.sulfur.dioxide | 0.084415 | 0.000156 | 0.084259 |
| free.sulfur.dioxide | 0.084415 | 0.000172 | 0.084242 |
| free.sulfur.dioxide | 0.084415 | 0.000191 | 0.084224 |
| free.sulfur.dioxide | 0.084415 | 0.000212 | 0.084203 |
| free.sulfur.dioxide | 0.084415 | 0.000236 | 0.084179 |
| free.sulfur.dioxide | 0.084415 | 0.000262 | 0.084153 |
| free.sulfur.dioxide | 0.084415 | 0.000292 | 0.084123 |
| free.sulfur.dioxide | 0.084415 | 0.000325 | 0.084090 |
| free.sulfur.dioxide | 0.084415 | 0.000362 | 0.084052 |
| free.sulfur.dioxide | 0.084415 | 0.000404 | 0.084010 |
| free.sulfur.dioxide | 0.084415 | 0.000452 | 0.083963 |
| free.sulfur.dioxide | 0.084415 | 0.000505 | 0.083909 |
| free.sulfur.dioxide | 0.084415 | 0.000566 | 0.083849 |
| free.sulfur.dioxide | 0.084415 | 0.000635 | 0.083780 |
| free.sulfur.dioxide | 0.084415 | 0.000712 | 0.083703 |
| free.sulfur.dioxide | 0.084415 | 0.000800 | 0.083615 |
| free.sulfur.dioxide | 0.084415 | 0.000900 | 0.083515 |
| free.sulfur.dioxide | 0.084415 | 0.001013 | 0.083402 |
| free.sulfur.dioxide | 0.084415 | 0.001142 | 0.083273 |
| free.sulfur.dioxide | 0.084415 | 0.001288 | 0.083127 |
| free.sulfur.dioxide | 0.084415 | 0.001454 | 0.082961 |
| free.sulfur.dioxide | 0.084415 | 0.001642 | 0.082773 |
| free.sulfur.dioxide | 0.084415 | 0.001856 | 0.082559 |
| free.sulfur.dioxide | 0.084415 | 0.002099 | 0.082316 |
| free.sulfur.dioxide | 0.084415 | 0.002374 | 0.082041 |
| free.sulfur.dioxide | 0.084415 | 0.002686 | 0.081729 |
| free.sulfur.dioxide | 0.084415 | 0.003039 | 0.081376 |
| free.sulfur.dioxide | 0.084415 | 0.003438 | 0.080977 |
| free.sulfur.dioxide | 0.084415 | 0.003888 | 0.080527 |
| free.sulfur.dioxide | 0.084415 | 0.004394 | 0.080020 |
| free.sulfur.dioxide | 0.084415 | 0.004963 | 0.079451 |
| free.sulfur.dioxide | 0.084415 | 0.005601 | 0.078814 |
| free.sulfur.dioxide | 0.084415 | 0.006313 | 0.078102 |
| free.sulfur.dioxide | 0.084415 | 0.007106 | 0.077309 |
| free.sulfur.dioxide | 0.084415 | 0.007986 | 0.076428 |
| free.sulfur.dioxide | 0.084415 | 0.008960 | 0.075454 |
| free.sulfur.dioxide | 0.084415 | 0.010034 | 0.074381 |
| free.sulfur.dioxide | 0.084415 | 0.011211 | 0.073203 |
| free.sulfur.dioxide | 0.084415 | 0.012499 | 0.071916 |
| free.sulfur.dioxide | 0.084415 | 0.013899 | 0.070516 |
| free.sulfur.dioxide | 0.084415 | 0.015415 | 0.068999 |
| free.sulfur.dioxide | 0.084415 | 0.017049 | 0.067365 |
| free.sulfur.dioxide | 0.084415 | 0.018802 | 0.065613 |
| free.sulfur.dioxide | 0.084415 | 0.020671 | 0.063744 |
| free.sulfur.dioxide | 0.084415 | 0.022655 | 0.061760 |
| free.sulfur.dioxide | 0.084415 | 0.024749 | 0.059666 |
| free.sulfur.dioxide | 0.084415 | 0.026945 | 0.057469 |
| free.sulfur.dioxide | 0.084415 | 0.029238 | 0.055177 |
| free.sulfur.dioxide | 0.084415 | 0.031617 | 0.052798 |
| free.sulfur.dioxide | 0.084415 | 0.034071 | 0.050344 |
| free.sulfur.dioxide | 0.084415 | 0.036589 | 0.047826 |
| free.sulfur.dioxide | 0.084415 | 0.039156 | 0.045258 |
| free.sulfur.dioxide | 0.084415 | 0.041759 | 0.042655 |
| free.sulfur.dioxide | 0.084415 | 0.044383 | 0.040031 |
| free.sulfur.dioxide | 0.084415 | 0.047013 | 0.037402 |
| free.sulfur.dioxide | 0.084415 | 0.049630 | 0.034784 |
| free.sulfur.dioxide | 0.084415 | 0.052222 | 0.032193 |
| free.sulfur.dioxide | 0.084415 | 0.054773 | 0.029642 |
| free.sulfur.dioxide | 0.084415 | 0.057269 | 0.027146 |
| free.sulfur.dioxide | 0.084415 | 0.059698 | 0.024717 |
| free.sulfur.dioxide | 0.084415 | 0.062049 | 0.022366 |
| free.sulfur.dioxide | 0.084415 | 0.064306 | 0.020108 |
| free.sulfur.dioxide | 0.084415 | 0.066465 | 0.017950 |
| free.sulfur.dioxide | 0.084415 | 0.068517 | 0.015898 |
| free.sulfur.dioxide | 0.084415 | 0.070457 | 0.013958 |
| free.sulfur.dioxide | 0.084415 | 0.072280 | 0.012135 |
| free.sulfur.dioxide | 0.084415 | 0.073984 | 0.010431 |
| free.sulfur.dioxide | 0.084415 | 0.075567 | 0.008848 |
| free.sulfur.dioxide | 0.084415 | 0.077029 | 0.007386 |
| free.sulfur.dioxide | 0.084415 | 0.078401 | 0.006014 |
| free.sulfur.dioxide | 0.084415 | 0.079628 | 0.004787 |
| free.sulfur.dioxide | 0.084415 | 0.080743 | 0.003672 |
| free.sulfur.dioxide | 0.084415 | 0.081747 | 0.002667 |
| free.sulfur.dioxide | 0.084415 | 0.082646 | 0.001768 |
| free.sulfur.dioxide | 0.084415 | 0.083445 | 0.000970 |
| free.sulfur.dioxide | 0.084415 | 0.084147 | 0.000267 |
| free.sulfur.dioxide | 0.084415 | 0.084760 | 0.000345 |
| free.sulfur.dioxide | 0.084415 | 0.085289 | 0.000874 |
| free.sulfur.dioxide | 0.084415 | 0.085739 | 0.001324 |
| free.sulfur.dioxide | 0.084415 | 0.086065 | 0.001651 |
| free.sulfur.dioxide | 0.084415 | 0.086371 | 0.001956 |
| free.sulfur.dioxide | 0.084415 | 0.086582 | 0.002168 |
| free.sulfur.dioxide | 0.084415 | 0.086764 | 0.002349 |
| free.sulfur.dioxide | 0.084415 | 0.086871 | 0.002456 |
| free.sulfur.dioxide | 0.084415 | 0.086929 | 0.002514 |
| free.sulfur.dioxide | 0.084415 | 0.086959 | 0.002544 |
| free.sulfur.dioxide | 0.084415 | 0.086934 | 0.002520 |
| total.sulfur.dioxide | -0.020402 | 0.000000 | 0.020402 |
| total.sulfur.dioxide | -0.020402 | -0.000388 | 0.020014 |
| total.sulfur.dioxide | -0.020402 | -0.000425 | 0.019977 |
| total.sulfur.dioxide | -0.020402 | -0.000466 | 0.019936 |
| total.sulfur.dioxide | -0.020402 | -0.000511 | 0.019891 |
| total.sulfur.dioxide | -0.020402 | -0.000561 | 0.019842 |
| total.sulfur.dioxide | -0.020402 | -0.000614 | 0.019788 |
| total.sulfur.dioxide | -0.020402 | -0.000673 | 0.019729 |
| total.sulfur.dioxide | -0.020402 | -0.000738 | 0.019664 |
| total.sulfur.dioxide | -0.020402 | -0.000808 | 0.019594 |
| total.sulfur.dioxide | -0.020402 | -0.000886 | 0.019516 |
| total.sulfur.dioxide | -0.020402 | -0.000970 | 0.019432 |
| total.sulfur.dioxide | -0.020402 | -0.001062 | 0.019340 |
| total.sulfur.dioxide | -0.020402 | -0.001163 | 0.019239 |
| total.sulfur.dioxide | -0.020402 | -0.001273 | 0.019129 |
| total.sulfur.dioxide | -0.020402 | -0.001393 | 0.019009 |
| total.sulfur.dioxide | -0.020402 | -0.001524 | 0.018878 |
| total.sulfur.dioxide | -0.020402 | -0.001667 | 0.018735 |
| total.sulfur.dioxide | -0.020402 | -0.001822 | 0.018580 |
| total.sulfur.dioxide | -0.020402 | -0.001992 | 0.018410 |
| total.sulfur.dioxide | -0.020402 | -0.002176 | 0.018226 |
| total.sulfur.dioxide | -0.020402 | -0.002376 | 0.018026 |
| total.sulfur.dioxide | -0.020402 | -0.002594 | 0.017808 |
| total.sulfur.dioxide | -0.020402 | -0.002830 | 0.017572 |
| total.sulfur.dioxide | -0.020402 | -0.003086 | 0.017316 |
| total.sulfur.dioxide | -0.020402 | -0.003363 | 0.017039 |
| total.sulfur.dioxide | -0.020402 | -0.003662 | 0.016740 |
| total.sulfur.dioxide | -0.020402 | -0.003986 | 0.016416 |
| total.sulfur.dioxide | -0.020402 | -0.004335 | 0.016067 |
| total.sulfur.dioxide | -0.020402 | -0.004710 | 0.015692 |
| total.sulfur.dioxide | -0.020402 | -0.005114 | 0.015288 |
| total.sulfur.dioxide | -0.020402 | -0.005547 | 0.014855 |
| total.sulfur.dioxide | -0.020402 | -0.006011 | 0.014391 |
| total.sulfur.dioxide | -0.020402 | -0.006507 | 0.013895 |
| total.sulfur.dioxide | -0.020402 | -0.007035 | 0.013367 |
| total.sulfur.dioxide | -0.020402 | -0.007597 | 0.012805 |
| total.sulfur.dioxide | -0.020402 | -0.008193 | 0.012209 |
| total.sulfur.dioxide | -0.020402 | -0.008823 | 0.011579 |
| total.sulfur.dioxide | -0.020402 | -0.009488 | 0.010914 |
| total.sulfur.dioxide | -0.020402 | -0.010188 | 0.010215 |
| total.sulfur.dioxide | -0.020402 | -0.010920 | 0.009482 |
| total.sulfur.dioxide | -0.020402 | -0.011686 | 0.008716 |
| total.sulfur.dioxide | -0.020402 | -0.012482 | 0.007920 |
| total.sulfur.dioxide | -0.020402 | -0.013308 | 0.007094 |
| total.sulfur.dioxide | -0.020402 | -0.014160 | 0.006242 |
| total.sulfur.dioxide | -0.020402 | -0.015036 | 0.005366 |
| total.sulfur.dioxide | -0.020402 | -0.015933 | 0.004469 |
| total.sulfur.dioxide | -0.020402 | -0.016848 | 0.003554 |
| total.sulfur.dioxide | -0.020402 | -0.017776 | 0.002626 |
| total.sulfur.dioxide | -0.020402 | -0.018713 | 0.001690 |
| total.sulfur.dioxide | -0.020402 | -0.019654 | 0.000748 |
| total.sulfur.dioxide | -0.020402 | -0.020596 | 0.000194 |
| total.sulfur.dioxide | -0.020402 | -0.021534 | 0.001132 |
| total.sulfur.dioxide | -0.020402 | -0.022463 | 0.002061 |
| total.sulfur.dioxide | -0.020402 | -0.023378 | 0.002976 |
| total.sulfur.dioxide | -0.020402 | -0.024276 | 0.003874 |
| total.sulfur.dioxide | -0.020402 | -0.025153 | 0.004751 |
| total.sulfur.dioxide | -0.020402 | -0.026005 | 0.005602 |
| total.sulfur.dioxide | -0.020402 | -0.026836 | 0.006434 |
| total.sulfur.dioxide | -0.020402 | -0.027631 | 0.007229 |
| total.sulfur.dioxide | -0.020402 | -0.028393 | 0.007991 |
| total.sulfur.dioxide | -0.020402 | -0.029119 | 0.008716 |
| total.sulfur.dioxide | -0.020402 | -0.029807 | 0.009405 |
| total.sulfur.dioxide | -0.020402 | -0.030456 | 0.010054 |
| total.sulfur.dioxide | -0.020402 | -0.031065 | 0.010663 |
| total.sulfur.dioxide | -0.020402 | -0.031632 | 0.011230 |
| total.sulfur.dioxide | -0.020402 | -0.032155 | 0.011753 |
| total.sulfur.dioxide | -0.020402 | -0.032657 | 0.012255 |
| total.sulfur.dioxide | -0.020402 | -0.033095 | 0.012692 |
| total.sulfur.dioxide | -0.020402 | -0.033486 | 0.013084 |
| total.sulfur.dioxide | -0.020402 | -0.033830 | 0.013428 |
| total.sulfur.dioxide | -0.020402 | -0.034126 | 0.013724 |
| total.sulfur.dioxide | -0.020402 | -0.034372 | 0.013970 |
| total.sulfur.dioxide | -0.020402 | -0.034596 | 0.014194 |
| total.sulfur.dioxide | -0.020402 | -0.034745 | 0.014343 |
| total.sulfur.dioxide | -0.020402 | -0.034844 | 0.014442 |
| total.sulfur.dioxide | -0.020402 | -0.034892 | 0.014490 |
| total.sulfur.dioxide | -0.020402 | -0.034891 | 0.014489 |
| total.sulfur.dioxide | -0.020402 | -0.034842 | 0.014440 |
| total.sulfur.dioxide | -0.020402 | -0.034746 | 0.014344 |
| total.sulfur.dioxide | -0.020402 | -0.034605 | 0.014203 |
| total.sulfur.dioxide | -0.020402 | -0.034422 | 0.014020 |
| total.sulfur.dioxide | -0.020402 | -0.034199 | 0.013797 |
| total.sulfur.dioxide | -0.020402 | -0.033943 | 0.013541 |
| total.sulfur.dioxide | -0.020402 | -0.033657 | 0.013254 |
| total.sulfur.dioxide | -0.020402 | -0.033340 | 0.012938 |
| total.sulfur.dioxide | -0.020402 | -0.032995 | 0.012593 |
| total.sulfur.dioxide | -0.020402 | -0.032626 | 0.012224 |
| total.sulfur.dioxide | -0.020402 | -0.032235 | 0.011833 |
| total.sulfur.dioxide | -0.020402 | -0.031826 | 0.011424 |
| total.sulfur.dioxide | -0.020402 | -0.031400 | 0.010998 |
| total.sulfur.dioxide | -0.020402 | -0.030961 | 0.010559 |
| total.sulfur.dioxide | -0.020402 | -0.030445 | 0.010043 |
| total.sulfur.dioxide | -0.020402 | -0.029977 | 0.009575 |
| total.sulfur.dioxide | -0.020402 | -0.029456 | 0.009054 |
| total.sulfur.dioxide | -0.020402 | -0.028968 | 0.008566 |
| total.sulfur.dioxide | -0.020402 | -0.028442 | 0.008040 |
| total.sulfur.dioxide | -0.020402 | -0.027911 | 0.007509 |
| total.sulfur.dioxide | -0.020402 | -0.027405 | 0.007003 |
| total.sulfur.dioxide | -0.020402 | -0.026875 | 0.006473 |
| density | -0.294568 | 0.000000 | 0.294568 |
| density | -0.294568 | -0.000675 | 0.293893 |
| density | -0.294568 | -0.000740 | 0.293828 |
| density | -0.294568 | -0.000811 | 0.293757 |
| density | -0.294568 | -0.000890 | 0.293678 |
| density | -0.294568 | -0.000976 | 0.293592 |
| density | -0.294568 | -0.001070 | 0.293498 |
| density | -0.294568 | -0.001173 | 0.293395 |
| density | -0.294568 | -0.001285 | 0.293283 |
| density | -0.294568 | -0.001409 | 0.293159 |
| density | -0.294568 | -0.001544 | 0.293024 |
| density | -0.294568 | -0.001691 | 0.292877 |
| density | -0.294568 | -0.001853 | 0.292715 |
| density | -0.294568 | -0.002029 | 0.292539 |
| density | -0.294568 | -0.002222 | 0.292346 |
| density | -0.294568 | -0.002433 | 0.292135 |
| density | -0.294568 | -0.002664 | 0.291904 |
| density | -0.294568 | -0.002915 | 0.291653 |
| density | -0.294568 | -0.003189 | 0.291379 |
| density | -0.294568 | -0.003488 | 0.291080 |
| density | -0.294568 | -0.003814 | 0.290754 |
| density | -0.294568 | -0.004169 | 0.290399 |
| density | -0.294568 | -0.004555 | 0.290013 |
| density | -0.294568 | -0.004975 | 0.289594 |
| density | -0.294568 | -0.005431 | 0.289137 |
| density | -0.294568 | -0.005926 | 0.288642 |
| density | -0.294568 | -0.006462 | 0.288106 |
| density | -0.294568 | -0.007044 | 0.287524 |
| density | -0.294568 | -0.007673 | 0.286895 |
| density | -0.294568 | -0.008352 | 0.286216 |
| density | -0.294568 | -0.009086 | 0.285482 |
| density | -0.294568 | -0.009876 | 0.284692 |
| density | -0.294568 | -0.010726 | 0.283842 |
| density | -0.294568 | -0.011639 | 0.282929 |
| density | -0.294568 | -0.012618 | 0.281950 |
| density | -0.294568 | -0.013666 | 0.280903 |
| density | -0.294568 | -0.014784 | 0.279784 |
| density | -0.294568 | -0.015976 | 0.278592 |
| density | -0.294568 | -0.017244 | 0.277324 |
| density | -0.294568 | -0.018588 | 0.275980 |
| density | -0.294568 | -0.020010 | 0.274558 |
| density | -0.294568 | -0.021511 | 0.273057 |
| density | -0.294568 | -0.023090 | 0.271478 |
| density | -0.294568 | -0.024747 | 0.269821 |
| density | -0.294568 | -0.026480 | 0.268088 |
| density | -0.294568 | -0.028287 | 0.266281 |
| density | -0.294568 | -0.030166 | 0.264402 |
| density | -0.294568 | -0.032114 | 0.262455 |
| density | -0.294568 | -0.034125 | 0.260443 |
| density | -0.294568 | -0.036195 | 0.258373 |
| density | -0.294568 | -0.038319 | 0.256249 |
| density | -0.294568 | -0.040491 | 0.254077 |
| density | -0.294568 | -0.042705 | 0.251864 |
| density | -0.294568 | -0.044953 | 0.249615 |
| density | -0.294568 | -0.047230 | 0.247338 |
| density | -0.294568 | -0.049529 | 0.245039 |
| density | -0.294568 | -0.051842 | 0.242726 |
| density | -0.294568 | -0.054165 | 0.240403 |
| density | -0.294568 | -0.056490 | 0.238078 |
| density | -0.294568 | -0.058811 | 0.235757 |
| density | -0.294568 | -0.061125 | 0.233443 |
| density | -0.294568 | -0.063427 | 0.231141 |
| density | -0.294568 | -0.065714 | 0.228854 |
| density | -0.294568 | -0.067984 | 0.226584 |
| density | -0.294568 | -0.070237 | 0.224331 |
| density | -0.294568 | -0.072472 | 0.222096 |
| density | -0.294568 | -0.074692 | 0.219876 |
| density | -0.294568 | -0.076882 | 0.217686 |
| density | -0.294568 | -0.079071 | 0.215497 |
| density | -0.294568 | -0.081255 | 0.213313 |
| density | -0.294568 | -0.083441 | 0.211127 |
| density | -0.294568 | -0.085637 | 0.208931 |
| density | -0.294568 | -0.087851 | 0.206717 |
| density | -0.294568 | -0.090047 | 0.204521 |
| density | -0.294568 | -0.092315 | 0.202253 |
| density | -0.294568 | -0.094632 | 0.199936 |
| density | -0.294568 | -0.097012 | 0.197556 |
| density | -0.294568 | -0.099467 | 0.195101 |
| density | -0.294568 | -0.102010 | 0.192558 |
| density | -0.294568 | -0.104654 | 0.189914 |
| density | -0.294568 | -0.107413 | 0.187155 |
| density | -0.294568 | -0.110299 | 0.184269 |
| density | -0.294568 | -0.113482 | 0.181086 |
| density | -0.294568 | -0.116665 | 0.177904 |
| density | -0.294568 | -0.119996 | 0.174572 |
| density | -0.294568 | -0.123495 | 0.171073 |
| density | -0.294568 | -0.127171 | 0.167397 |
| density | -0.294568 | -0.131034 | 0.163534 |
| density | -0.294568 | -0.135091 | 0.159477 |
| density | -0.294568 | -0.139351 | 0.155217 |
| density | -0.294568 | -0.143818 | 0.150750 |
| density | -0.294568 | -0.148497 | 0.146071 |
| density | -0.294568 | -0.153517 | 0.141051 |
| density | -0.294568 | -0.158701 | 0.135867 |
| density | -0.294568 | -0.164274 | 0.130294 |
| density | -0.294568 | -0.169975 | 0.124593 |
| density | -0.294568 | -0.176086 | 0.118482 |
| density | -0.294568 | -0.182487 | 0.112081 |
| density | -0.294568 | -0.188944 | 0.105624 |
| density | -0.294568 | -0.195789 | 0.098779 |
| pH | 0.062090 | 0.000000 | 0.062090 |
| pH | 0.062090 | 0.000187 | 0.061903 |
| pH | 0.062090 | 0.000206 | 0.061885 |
| pH | 0.062090 | 0.000225 | 0.061865 |
| pH | 0.062090 | 0.000247 | 0.061843 |
| pH | 0.062090 | 0.000271 | 0.061819 |
| pH | 0.062090 | 0.000297 | 0.061793 |
| pH | 0.062090 | 0.000326 | 0.061765 |
| pH | 0.062090 | 0.000357 | 0.061733 |
| pH | 0.062090 | 0.000391 | 0.061699 |
| pH | 0.062090 | 0.000428 | 0.061662 |
| pH | 0.062090 | 0.000469 | 0.061621 |
| pH | 0.062090 | 0.000514 | 0.061576 |
| pH | 0.062090 | 0.000563 | 0.061527 |
| pH | 0.062090 | 0.000616 | 0.061474 |
| pH | 0.062090 | 0.000675 | 0.061415 |
| pH | 0.062090 | 0.000738 | 0.061352 |
| pH | 0.062090 | 0.000808 | 0.061282 |
| pH | 0.062090 | 0.000884 | 0.061206 |
| pH | 0.062090 | 0.000966 | 0.061124 |
| pH | 0.062090 | 0.001056 | 0.061034 |
| pH | 0.062090 | 0.001154 | 0.060936 |
| pH | 0.062090 | 0.001260 | 0.060830 |
| pH | 0.062090 | 0.001376 | 0.060714 |
| pH | 0.062090 | 0.001501 | 0.060589 |
| pH | 0.062090 | 0.001637 | 0.060453 |
| pH | 0.062090 | 0.001784 | 0.060306 |
| pH | 0.062090 | 0.001943 | 0.060147 |
| pH | 0.062090 | 0.002115 | 0.059975 |
| pH | 0.062090 | 0.002301 | 0.059789 |
| pH | 0.062090 | 0.002501 | 0.059589 |
| pH | 0.062090 | 0.002716 | 0.059374 |
| pH | 0.062090 | 0.002946 | 0.059144 |
| pH | 0.062090 | 0.003193 | 0.058897 |
| pH | 0.062090 | 0.003457 | 0.058633 |
| pH | 0.062090 | 0.003739 | 0.058351 |
| pH | 0.062090 | 0.004039 | 0.058052 |
| pH | 0.062090 | 0.004357 | 0.057734 |
| pH | 0.062090 | 0.004693 | 0.057397 |
| pH | 0.062090 | 0.005048 | 0.057042 |
| pH | 0.062090 | 0.005422 | 0.056668 |
| pH | 0.062090 | 0.005814 | 0.056276 |
| pH | 0.062090 | 0.006223 | 0.055867 |
| pH | 0.062090 | 0.006649 | 0.055441 |
| pH | 0.062090 | 0.007090 | 0.055000 |
| pH | 0.062090 | 0.007546 | 0.054544 |
| pH | 0.062090 | 0.008015 | 0.054075 |
| pH | 0.062090 | 0.008495 | 0.053595 |
| pH | 0.062090 | 0.008984 | 0.053106 |
| pH | 0.062090 | 0.009479 | 0.052611 |
| pH | 0.062090 | 0.009979 | 0.052111 |
| pH | 0.062090 | 0.010480 | 0.051610 |
| pH | 0.062090 | 0.010980 | 0.051110 |
| pH | 0.062090 | 0.011477 | 0.050613 |
| pH | 0.062090 | 0.011968 | 0.050122 |
| pH | 0.062090 | 0.012450 | 0.049640 |
| pH | 0.062090 | 0.012921 | 0.049169 |
| pH | 0.062090 | 0.013380 | 0.048710 |
| pH | 0.062090 | 0.013825 | 0.048265 |
| pH | 0.062090 | 0.014255 | 0.047835 |
| pH | 0.062090 | 0.014669 | 0.047421 |
| pH | 0.062090 | 0.015067 | 0.047023 |
| pH | 0.062090 | 0.015451 | 0.046639 |
| pH | 0.062090 | 0.015821 | 0.046269 |
| pH | 0.062090 | 0.016179 | 0.045911 |
| pH | 0.062090 | 0.016528 | 0.045562 |
| pH | 0.062090 | 0.016870 | 0.045220 |
| pH | 0.062090 | 0.017205 | 0.044885 |
| pH | 0.062090 | 0.017543 | 0.044547 |
| pH | 0.062090 | 0.017886 | 0.044204 |
| pH | 0.062090 | 0.018237 | 0.043853 |
| pH | 0.062090 | 0.018601 | 0.043489 |
| pH | 0.062090 | 0.018982 | 0.043108 |
| pH | 0.062090 | 0.019372 | 0.042718 |
| pH | 0.062090 | 0.019794 | 0.042296 |
| pH | 0.062090 | 0.020244 | 0.041846 |
| pH | 0.062090 | 0.020724 | 0.041366 |
| pH | 0.062090 | 0.021236 | 0.040854 |
| pH | 0.062090 | 0.021783 | 0.040307 |
| pH | 0.062090 | 0.022367 | 0.039723 |
| pH | 0.062090 | 0.022989 | 0.039101 |
| pH | 0.062090 | 0.023649 | 0.038441 |
| pH | 0.062090 | 0.024382 | 0.037708 |
| pH | 0.062090 | 0.025122 | 0.036968 |
| pH | 0.062090 | 0.025899 | 0.036191 |
| pH | 0.062090 | 0.026715 | 0.035376 |
| pH | 0.062090 | 0.027568 | 0.034522 |
| pH | 0.062090 | 0.028461 | 0.033629 |
| pH | 0.062090 | 0.029391 | 0.032699 |
| pH | 0.062090 | 0.030360 | 0.031730 |
| pH | 0.062090 | 0.031366 | 0.030724 |
| pH | 0.062090 | 0.032410 | 0.029680 |
| pH | 0.062090 | 0.033515 | 0.028575 |
| pH | 0.062090 | 0.034646 | 0.027444 |
| pH | 0.062090 | 0.035847 | 0.026243 |
| pH | 0.062090 | 0.037065 | 0.025025 |
| pH | 0.062090 | 0.038356 | 0.023734 |
| pH | 0.062090 | 0.039695 | 0.022395 |
| pH | 0.062090 | 0.041038 | 0.021053 |
| pH | 0.062090 | 0.042448 | 0.019642 |
| sulphates | 0.066813 | 0.000000 | 0.066813 |
| sulphates | 0.066813 | 0.000128 | 0.066686 |
| sulphates | 0.066813 | 0.000140 | 0.066673 |
| sulphates | 0.066813 | 0.000154 | 0.066660 |
| sulphates | 0.066813 | 0.000169 | 0.066645 |
| sulphates | 0.066813 | 0.000185 | 0.066628 |
| sulphates | 0.066813 | 0.000203 | 0.066610 |
| sulphates | 0.066813 | 0.000223 | 0.066590 |
| sulphates | 0.066813 | 0.000245 | 0.066569 |
| sulphates | 0.066813 | 0.000269 | 0.066545 |
| sulphates | 0.066813 | 0.000295 | 0.066519 |
| sulphates | 0.066813 | 0.000323 | 0.066490 |
| sulphates | 0.066813 | 0.000355 | 0.066459 |
| sulphates | 0.066813 | 0.000389 | 0.066424 |
| sulphates | 0.066813 | 0.000427 | 0.066386 |
| sulphates | 0.066813 | 0.000469 | 0.066345 |
| sulphates | 0.066813 | 0.000514 | 0.066299 |
| sulphates | 0.066813 | 0.000564 | 0.066249 |
| sulphates | 0.066813 | 0.000619 | 0.066195 |
| sulphates | 0.066813 | 0.000679 | 0.066135 |
| sulphates | 0.066813 | 0.000744 | 0.066069 |
| sulphates | 0.066813 | 0.000816 | 0.065997 |
| sulphates | 0.066813 | 0.000895 | 0.065918 |
| sulphates | 0.066813 | 0.000982 | 0.065832 |
| sulphates | 0.066813 | 0.001077 | 0.065737 |
| sulphates | 0.066813 | 0.001180 | 0.065633 |
| sulphates | 0.066813 | 0.001294 | 0.065520 |
| sulphates | 0.066813 | 0.001418 | 0.065395 |
| sulphates | 0.066813 | 0.001554 | 0.065259 |
| sulphates | 0.066813 | 0.001703 | 0.065110 |
| sulphates | 0.066813 | 0.001866 | 0.064947 |
| sulphates | 0.066813 | 0.002044 | 0.064769 |
| sulphates | 0.066813 | 0.002239 | 0.064575 |
| sulphates | 0.066813 | 0.002451 | 0.064363 |
| sulphates | 0.066813 | 0.002683 | 0.064131 |
| sulphates | 0.066813 | 0.002935 | 0.063878 |
| sulphates | 0.066813 | 0.003211 | 0.063603 |
| sulphates | 0.066813 | 0.003510 | 0.063303 |
| sulphates | 0.066813 | 0.003836 | 0.062977 |
| sulphates | 0.066813 | 0.004191 | 0.062623 |
| sulphates | 0.066813 | 0.004575 | 0.062238 |
| sulphates | 0.066813 | 0.004992 | 0.061821 |
| sulphates | 0.066813 | 0.005444 | 0.061370 |
| sulphates | 0.066813 | 0.005931 | 0.060882 |
| sulphates | 0.066813 | 0.006458 | 0.060356 |
| sulphates | 0.066813 | 0.007025 | 0.059789 |
| sulphates | 0.066813 | 0.007634 | 0.059180 |
| sulphates | 0.066813 | 0.008288 | 0.058526 |
| sulphates | 0.066813 | 0.008987 | 0.057826 |
| sulphates | 0.066813 | 0.009734 | 0.057080 |
| sulphates | 0.066813 | 0.010529 | 0.056284 |
| sulphates | 0.066813 | 0.011373 | 0.055440 |
| sulphates | 0.066813 | 0.012267 | 0.054546 |
| sulphates | 0.066813 | 0.013211 | 0.053603 |
| sulphates | 0.066813 | 0.014203 | 0.052610 |
| sulphates | 0.066813 | 0.015244 | 0.051570 |
| sulphates | 0.066813 | 0.016331 | 0.050483 |
| sulphates | 0.066813 | 0.017463 | 0.049351 |
| sulphates | 0.066813 | 0.018637 | 0.048176 |
| sulphates | 0.066813 | 0.019850 | 0.046963 |
| sulphates | 0.066813 | 0.021099 | 0.045714 |
| sulphates | 0.066813 | 0.022379 | 0.044434 |
| sulphates | 0.066813 | 0.023687 | 0.043127 |
| sulphates | 0.066813 | 0.025017 | 0.041797 |
| sulphates | 0.066813 | 0.026364 | 0.040450 |
| sulphates | 0.066813 | 0.027723 | 0.039090 |
| sulphates | 0.066813 | 0.029089 | 0.037725 |
| sulphates | 0.066813 | 0.030457 | 0.036357 |
| sulphates | 0.066813 | 0.031820 | 0.034993 |
| sulphates | 0.066813 | 0.033174 | 0.033639 |
| sulphates | 0.066813 | 0.034514 | 0.032300 |
| sulphates | 0.066813 | 0.035835 | 0.030979 |
| sulphates | 0.066813 | 0.037132 | 0.029681 |
| sulphates | 0.066813 | 0.038403 | 0.028410 |
| sulphates | 0.066813 | 0.039643 | 0.027170 |
| sulphates | 0.066813 | 0.040850 | 0.025964 |
| sulphates | 0.066813 | 0.042021 | 0.024793 |
| sulphates | 0.066813 | 0.043154 | 0.023659 |
| sulphates | 0.066813 | 0.044249 | 0.022564 |
| sulphates | 0.066813 | 0.045305 | 0.021509 |
| sulphates | 0.066813 | 0.046321 | 0.020493 |
| sulphates | 0.066813 | 0.047298 | 0.019516 |
| sulphates | 0.066813 | 0.048242 | 0.018572 |
| sulphates | 0.066813 | 0.049143 | 0.017670 |
| sulphates | 0.066813 | 0.050009 | 0.016805 |
| sulphates | 0.066813 | 0.050839 | 0.015974 |
| sulphates | 0.066813 | 0.051637 | 0.015176 |
| sulphates | 0.066813 | 0.052405 | 0.014409 |
| sulphates | 0.066813 | 0.053143 | 0.013670 |
| sulphates | 0.066813 | 0.053855 | 0.012958 |
| sulphates | 0.066813 | 0.054543 | 0.012270 |
| sulphates | 0.066813 | 0.055209 | 0.011605 |
| sulphates | 0.066813 | 0.055856 | 0.010957 |
| sulphates | 0.066813 | 0.056487 | 0.010327 |
| sulphates | 0.066813 | 0.057106 | 0.009707 |
| sulphates | 0.066813 | 0.057710 | 0.009104 |
| sulphates | 0.066813 | 0.058308 | 0.008506 |
| sulphates | 0.066813 | 0.058898 | 0.007915 |
| sulphates | 0.066813 | 0.059474 | 0.007340 |
| sulphates | 0.066813 | 0.060048 | 0.006766 |
| alcohol | 0.305760 | 0.000000 | 0.305760 |
| alcohol | 0.305760 | 0.000965 | 0.304795 |
| alcohol | 0.305760 | 0.001058 | 0.304702 |
| alcohol | 0.305760 | 0.001161 | 0.304599 |
| alcohol | 0.305760 | 0.001273 | 0.304487 |
| alcohol | 0.305760 | 0.001397 | 0.304363 |
| alcohol | 0.305760 | 0.001532 | 0.304228 |
| alcohol | 0.305760 | 0.001680 | 0.304080 |
| alcohol | 0.305760 | 0.001842 | 0.303918 |
| alcohol | 0.305760 | 0.002019 | 0.303741 |
| alcohol | 0.305760 | 0.002214 | 0.303546 |
| alcohol | 0.305760 | 0.002427 | 0.303333 |
| alcohol | 0.305760 | 0.002661 | 0.303099 |
| alcohol | 0.305760 | 0.002916 | 0.302844 |
| alcohol | 0.305760 | 0.003196 | 0.302564 |
| alcohol | 0.305760 | 0.003502 | 0.302258 |
| alcohol | 0.305760 | 0.003836 | 0.301924 |
| alcohol | 0.305760 | 0.004202 | 0.301558 |
| alcohol | 0.305760 | 0.004602 | 0.301158 |
| alcohol | 0.305760 | 0.005039 | 0.300721 |
| alcohol | 0.305760 | 0.005516 | 0.300244 |
| alcohol | 0.305760 | 0.006038 | 0.299722 |
| alcohol | 0.305760 | 0.006606 | 0.299154 |
| alcohol | 0.305760 | 0.007227 | 0.298533 |
| alcohol | 0.305760 | 0.007903 | 0.297857 |
| alcohol | 0.305760 | 0.008640 | 0.297120 |
| alcohol | 0.305760 | 0.009442 | 0.296318 |
| alcohol | 0.305760 | 0.010314 | 0.295446 |
| alcohol | 0.305760 | 0.011263 | 0.294497 |
| alcohol | 0.305760 | 0.012294 | 0.293466 |
| alcohol | 0.305760 | 0.013412 | 0.292348 |
| alcohol | 0.305760 | 0.014625 | 0.291135 |
| alcohol | 0.305760 | 0.015939 | 0.289821 |
| alcohol | 0.305760 | 0.017361 | 0.288399 |
| alcohol | 0.305760 | 0.018898 | 0.286862 |
| alcohol | 0.305760 | 0.020558 | 0.285202 |
| alcohol | 0.305760 | 0.022348 | 0.283412 |
| alcohol | 0.305760 | 0.024275 | 0.281485 |
| alcohol | 0.305760 | 0.026348 | 0.279412 |
| alcohol | 0.305760 | 0.028575 | 0.277185 |
| alcohol | 0.305760 | 0.030962 | 0.274798 |
| alcohol | 0.305760 | 0.033519 | 0.272241 |
| alcohol | 0.305760 | 0.036252 | 0.269508 |
| alcohol | 0.305760 | 0.039168 | 0.266592 |
| alcohol | 0.305760 | 0.042276 | 0.263484 |
| alcohol | 0.305760 | 0.045582 | 0.260178 |
| alcohol | 0.305760 | 0.049092 | 0.256668 |
| alcohol | 0.305760 | 0.052812 | 0.252948 |
| alcohol | 0.305760 | 0.056748 | 0.249012 |
| alcohol | 0.305760 | 0.060905 | 0.244855 |
| alcohol | 0.305760 | 0.065287 | 0.240473 |
| alcohol | 0.305760 | 0.069898 | 0.235862 |
| alcohol | 0.305760 | 0.074740 | 0.231020 |
| alcohol | 0.305760 | 0.079816 | 0.225944 |
| alcohol | 0.305760 | 0.085126 | 0.220634 |
| alcohol | 0.305760 | 0.090672 | 0.215088 |
| alcohol | 0.305760 | 0.096452 | 0.209308 |
| alcohol | 0.305760 | 0.102464 | 0.203296 |
| alcohol | 0.305760 | 0.108702 | 0.197058 |
| alcohol | 0.305760 | 0.115164 | 0.190596 |
| alcohol | 0.305760 | 0.121844 | 0.183916 |
| alcohol | 0.305760 | 0.128732 | 0.177028 |
| alcohol | 0.305760 | 0.135818 | 0.169942 |
| alcohol | 0.305760 | 0.143090 | 0.162670 |
| alcohol | 0.305760 | 0.150533 | 0.155227 |
| alcohol | 0.305760 | 0.158131 | 0.147629 |
| alcohol | 0.305760 | 0.165865 | 0.139895 |
| alcohol | 0.305760 | 0.173705 | 0.132055 |
| alcohol | 0.305760 | 0.181642 | 0.124118 |
| alcohol | 0.305760 | 0.189644 | 0.116116 |
| alcohol | 0.305760 | 0.197684 | 0.108076 |
| alcohol | 0.305760 | 0.205731 | 0.100029 |
| alcohol | 0.305760 | 0.213756 | 0.092004 |
| alcohol | 0.305760 | 0.221720 | 0.084040 |
| alcohol | 0.305760 | 0.229602 | 0.076158 |
| alcohol | 0.305760 | 0.237364 | 0.068396 |
| alcohol | 0.305760 | 0.244971 | 0.060789 |
| alcohol | 0.305760 | 0.252392 | 0.053368 |
| alcohol | 0.305760 | 0.259594 | 0.046166 |
| alcohol | 0.305760 | 0.266548 | 0.039212 |
| alcohol | 0.305760 | 0.273225 | 0.032535 |
| alcohol | 0.305760 | 0.279601 | 0.026159 |
| alcohol | 0.305760 | 0.285605 | 0.020155 |
| alcohol | 0.305760 | 0.291304 | 0.014456 |
| alcohol | 0.305760 | 0.296643 | 0.009117 |
| alcohol | 0.305760 | 0.301607 | 0.004153 |
| alcohol | 0.305760 | 0.306185 | 0.000425 |
| alcohol | 0.305760 | 0.310371 | 0.004611 |
| alcohol | 0.305760 | 0.314159 | 0.008399 |
| alcohol | 0.305760 | 0.317547 | 0.011787 |
| alcohol | 0.305760 | 0.320537 | 0.014777 |
| alcohol | 0.305760 | 0.323132 | 0.017372 |
| alcohol | 0.305760 | 0.325324 | 0.019564 |
| alcohol | 0.305760 | 0.327123 | 0.021363 |
| alcohol | 0.305760 | 0.328504 | 0.022744 |
| alcohol | 0.305760 | 0.329538 | 0.023778 |
| alcohol | 0.305760 | 0.330161 | 0.024401 |
| alcohol | 0.305760 | 0.330414 | 0.024654 |
| alcohol | 0.305760 | 0.330391 | 0.024631 |
| alcohol | 0.305760 | 0.329996 | 0.024236 |
white_metrics_comparison <- bind_rows(
white_manual_metrics %>% mutate(method = "Manual Ridge"),
white_package_metrics %>% mutate(method = "Package Ridge")
) %>%
select(method, everything())
kable(white_metrics_comparison, digits = 4, caption = "Performa Manual vs Package — White Wine")| method | RMSE | MAE | R2 |
|---|---|---|---|
| Manual Ridge | 0.7624 | 0.5851 | 0.2721 |
| Package Ridge | 0.7638 | 0.5860 | 0.2696 |
Hasil evaluasi menunjukkan bahwa Manual Ridge dan Package Ridge memiliki performa yang sangat berdekatan. Manual Ridge menghasilkan RMSE = 0,7624, MAE = 0,5851, dan R² = 0,2721, sedangkan Package Ridge menghasilkan RMSE = 0,7638, MAE = 0,5860, dan R² = 0,2696. Selisih pada ketiga metrik tersebut relatif kecil, sehingga kedua metode memberikan hasil yang hampir sama. Hal ini menunjukkan bahwa implementasi Ridge secara manual telah menghasilkan model yang konsisten dengan implementasi menggunakan package R, meskipun terdapat sedikit perbedaan pada hasil evaluasinya.
white_plot <- tibble(
actual = white_test$quality,
manual = white_manual_pred,
package = white_package_pred
) %>%
pivot_longer(-actual, names_to = "method", values_to = "predicted")
ggplot(white_plot, aes(actual, predicted)) +
geom_point(alpha = .25) +
geom_abline(slope = 1, intercept = 0, linetype = "dashed") +
facet_wrap(~method) +
labs(title = "Actual vs Predicted — White Wine", x = "Actual Quality", y = "Predicted Quality") +
theme_minimal(base_size = 12)Plot actual vs predicted menunjukkan bahwa hasil prediksi Manual Ridge dan Package Ridge memiliki pola yang sangat mirip. Pada kedua metode, prediksi cenderung terkonsentrasi di sekitar kualitas 5–7, sedangkan nilai aktual yang lebih rendah maupun lebih tinggi memiliki penyebaran prediksi yang cukup lebar. Garis putus-putus menunjukkan kondisi prediksi ideal, yaitu ketika nilai prediksi sama dengan nilai aktual. Banyak titik yang berada cukup jauh dari garis tersebut, terutama pada kualitas aktual 4, 5, dan 7, sehingga masih terdapat kesalahan prediksi yang cukup besar. Meskipun demikian, pola kedua metode hampir sama secara visual, yang menunjukkan bahwa hasil perhitungan manual dan package memberikan prediksi yang relatif konsisten.
white_residual_df <- tibble(
fitted = white_package_pred,
residual = white_test$quality - white_package_pred
)
ggplot(white_residual_df, aes(fitted, residual)) +
geom_point(alpha = .3) +
geom_hline(yintercept = 0, linetype = "dashed") +
geom_smooth(method = "loess", se = TRUE) +
labs(title = "Residual vs Predicted — White Wine", x = "Predicted", y = "Residual") +
theme_minimal(base_size = 12)white_model_comparison <- bind_rows(
white_package_metrics %>% mutate(model = "Ridge Package"),
white_ols_metrics %>% mutate(model = "OLS"),
white_rf_metrics %>% mutate(model = "Random Forest")
) %>% select(model, everything())
kable(white_model_comparison, digits = 4, caption = "Benchmark Model — White Wine")| model | RMSE | MAE | R2 |
|---|---|---|---|
| Ridge Package | 0.7638 | 0.5860 | 0.2696 |
| OLS | 0.7612 | 0.5849 | 0.2744 |
| Random Forest | 0.6112 | 0.4374 | 0.5413 |
Pada White Wine, hasil benchmark menunjukkan bahwa Ridge Package dan OLS memiliki performa yang sangat berdekatan, dengan RMSE masing-masing 0,7638 dan 0,7612, MAE 0,5860 dan 0,5849, serta R² 0,2696 dan 0,2744. Sementara itu, Random Forest menghasilkan RMSE 0,6112, MAE 0,4374, dan R² 0,5413. Ini menunjukkan bahwa pada data White Wine, performa kedua model regresi linear relatif mirip, sedangkan Random Forest menghasilkan kesalahan prediksi yang lebih kecil dan mampu menjelaskan proporsi variasi kualitas wine yang lebih besar berdasarkan metrik evaluasi yang digunakan.
final_method_comparison <- bind_rows(
red_manual_metrics %>% mutate(dataset = "Red Wine", method = "Manual Ridge"),
red_package_metrics %>% mutate(dataset = "Red Wine", method = "Package Ridge"),
white_manual_metrics %>% mutate(dataset = "White Wine", method = "Manual Ridge"),
white_package_metrics %>% mutate(dataset = "White Wine", method = "Package Ridge")
) %>%
select(dataset, method, everything())
kable(final_method_comparison, digits = 4, caption = "Manual vs Package")| dataset | method | RMSE | MAE | R2 |
|---|---|---|---|---|
| Red Wine | Manual Ridge | 0.6515 | 0.4956 | 0.3052 |
| Red Wine | Package Ridge | 0.6515 | 0.4955 | 0.3052 |
| White Wine | Manual Ridge | 0.7624 | 0.5851 | 0.2721 |
| White Wine | Package Ridge | 0.7638 | 0.5860 | 0.2696 |
tibble(
dataset = c("Red Wine", "White Wine"),
lambda_manual = c(red_lambda_manual, white_lambda_manual),
lambda_package = c(red_best$penalty, white_best$penalty)
) %>%
kable(digits = 6, caption = "Lambda Optimal Manual dan Package")| dataset | lambda_manual | lambda_package |
|---|---|---|
| Red Wine | 0.053367 | 0.04037 |
| White Wine | 0.013219 | 0.00010 |
Hasil perbandingan menunjukkan bahwa Manual Ridge dan Package Ridge menghasilkan performa yang sangat dekat pada kedua dataset, meskipun nilai \(\lambda\) optimal yang dipilih tidak selalu sama. Pada Red Wine, \(\lambda\) optimal sebesar 0,053367 untuk manual dan 0,04037 untuk package, sedangkan pada White Wine perbedaannya lebih besar, yaitu 0,013219 pada manual dan 0,00010 pada package. Meskipun demikian, perbedaan \(\lambda\) tersebut tidak menyebabkan perubahan besar pada performa model. Pada Red Wine, kedua metode menghasilkan RMSE = 0,6515 dan R² = 0,3052, dengan perbedaan MAE yang sangat kecil (0,4956 dan 0,4955). Pada White Wine, performanya juga berdekatan, yaitu RMSE 0,7624 dan 0,7638, MAE 0,5851 dan 0,5860, serta R² 0,2721 dan 0,2696. Hal ini menunjukkan bahwa meskipun proses pemilihan \(\lambda\) menghasilkan nilai yang berbeda, terutama pada White Wine, solusi Ridge yang diperoleh tetap memberikan prediksi dan performa yang hampir sama. Perbedaan nilai \(\lambda\) dapat terjadi karena titik minimum hasil cross-validation tidak selalu menghasilkan perbedaan performa yang besar di sekitar nilai optimum. Perbandingan Red Wine dan White Wine di sini hanya digunakan untuk melihat perilaku model pada dua dataset yang berbeda, bukan sebagai ranking kualitas wine.
Analisis Ridge Regression dilakukan melalui dua alur komputasi, yaitu perhitungan manual menggunakan standardisasi eksplisit dan solusi matriks \(\left(Z^TZ+n\lambda I\right)^{-1}Z^T(y-\bar{y})\), serta perhitungan menggunakan package R melalui recipe() dan glmnet. Pada jalur package, step_normalize() melakukan standardisasi berdasarkan data training dan glmnet diatur dengan standardize = FALSE agar tidak terjadi standardisasi ganda. Pemilihan \(\lambda\) dilakukan menggunakan 10-fold cross-validation pada data training, kemudian model dievaluasi menggunakan data test. Hasil menunjukkan bahwa Manual Ridge dan Package Ridge memberikan performa yang sangat konsisten pada Red Wine maupun White Wine, meskipun nilai \(\lambda\) optimal berbeda, terutama pada White Wine. Kedekatan nilai RMSE, MAE, dan R² menunjukkan bahwa kedua implementasi menghasilkan model yang secara praktis serupa, sehingga hasil tersebut sekaligus menjadi pemeriksaan bahwa implementasi manual telah mengikuti formulasi Ridge dan menghasilkan prediksi yang konsisten dengan implementasi package.
Beberapa keterbatasan perlu diperhatikan. Pertama, dataset hanya
memuat karakteristik fisikokimia dan skor sensorik; informasi lain
seperti merek, varietas anggur, harga, atau jenis anggur tidak tersedia
(UCI Machine Learning Repository). Kedua, quality merupakan
skor sensorik sehingga hubungan dengan karakteristik kimia tidak harus
sepenuhnya linear. Ketiga, Ridge terutama menangani stabilitas koefisien
akibat korelasi antar-prediktor dan tidak otomatis menjamin bahwa bentuk
linear merupakan bentuk hubungan yang paling tepat. Keempat, benchmark
Random Forest digunakan untuk konteks prediksi dan tidak menggantikan
interpretasi koefisien Ridge.
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. https://doi.org/10.1016/j.dss.2009.05.016
UCI Machine Learning Repository. Wine Quality. Dataset red and white Vinho Verde wine. DOI: 10.24432/C56S3T. https://archive.ics.uci.edu/dataset/186/wine+quality
Hastie, T., Tibshirani, R., & Friedman, J. (2009). The Elements of Statistical Learning (2nd ed.). Springer. https://doi.org/10.1007/978-0-387-84858-7
Kuhn, M., & Johnson, K. (2013). Applied Predictive Modeling. Springer. https://doi.org/10.1007/978-1-4614-6849-3
Kuhn, M. (2026). recipes: Preprocessing and Feature Engineering Steps for Modeling. R package documentation. https://recipes.tidymodels.org/reference/step_normalize.html
Friedman, J., Hastie, T., Tibshirani, R., et al. glmnet: Lasso and Elastic-Net Regularized Generalized Linear Models. CRAN documentation. https://CRAN.R-project.org/package=glmnet
Memastikan bahwa data yang digunakan oleh dua jalur memiliki konsep standardisasi yang sama.
red_check <- tibble(
variable = predictors,
manual_mean = colMeans(Z_red),
manual_sd = apply(Z_red, 2, sd)
)
white_check <- tibble(
variable = predictors,
manual_mean = colMeans(Z_white),
manual_sd = apply(Z_white, 2, sd)
)
kable(red_check, digits = 6, caption = "Verifikasi Standardisasi Red Wine")| variable | manual_mean | manual_sd |
|---|---|---|
| fixed.acidity | 0 | 1 |
| volatile.acidity | 0 | 1 |
| citric.acid | 0 | 1 |
| residual.sugar | 0 | 1 |
| chlorides | 0 | 1 |
| free.sulfur.dioxide | 0 | 1 |
| total.sulfur.dioxide | 0 | 1 |
| density | 0 | 1 |
| pH | 0 | 1 |
| sulphates | 0 | 1 |
| alcohol | 0 | 1 |
| variable | manual_mean | manual_sd |
|---|---|---|
| fixed.acidity | 0 | 1 |
| volatile.acidity | 0 | 1 |
| citric.acid | 0 | 1 |
| residual.sugar | 0 | 1 |
| chlorides | 0 | 1 |
| free.sulfur.dioxide | 0 | 1 |
| total.sulfur.dioxide | 0 | 1 |
| density | 0 | 1 |
| pH | 0 | 1 |
| sulphates | 0 | 1 |
| alcohol | 0 | 1 |
Secara numerik, mean prediktor terstandardisasi akan mendekati 0 dan
simpangan baku mendekati 1. Pada implementasi package, parameter yang
digunakan berasal dari training data melalui
step_normalize()