Predict One Result from Many Variables

Domain: Statistika Terapan · SQalytics · PLSR multivariabel beginner-first dengan VIP scores + Q² cross-validation

1 Introduksi

1.1 Latar Belakang

Banyak respons di laboratorium pangan tidak bisa dijelaskan oleh satu prediktor saja. Skor sensori secara keseluruhan dipengaruhi oleh ratusan parameter fisikokimia; rendemen ekstraksi tergantung suhu, waktu, pH, dan rasio pelarut sekaligus; kualitas roti adalah fungsi dari kelembaban, protein, gula, dan suhu pemanggangan. Saat prediktor lebih dari satu dan beberapa di antaranya saling berkorelasi (mis. kelembaban berkorelasi dengan tekstur, yang juga berkorelasi dengan kekenyalan), regresi linier sederhana atau multiple linear regression (MLR) klasik bisa menjadi tidak stabil karena masalah multicollinearity.

Partial Least Squares Regression (PLSR; Wold, 1975; Wold, Sjöström, & Eriksson, 2001) adalah solusi modern untuk masalah ini. Berbeda dengan MLR yang langsung memetakan X → Y, PLSR membangun komponen laten — kombinasi linier dari prediktor yang memaksimumkan kovariansi dengan Y, lalu melakukan regresi pada komponen tersebut. Hasilnya: model yang robust terhadap multicollinearity, bekerja meski $p > n$ (lebih banyak prediktor daripada observasi), dan menyediakan VIP (Variable Importance in Projection) yang menunjukkan kontribusi relatif setiap prediktor.

1.2 Tujuan Modul

Modul Predict One Result from Many Variables di SQalytics ditujukan untuk:

1.3 Posisi di Antara Alternatif

Pilih Predict One Result from Many Variables ketika Anda punya satu target numerik + ≥2 prediktor numerik dan ingin model prediksi awal. Untuk satu prediktor saja, pakai X vs Y Relationship. Untuk diagnostik PLSR mendalam (loadings plot, score plot, optimisasi komponen yang lebih granular), pakai PLSR Studio (Expert Desk). Untuk prediktor kategori atau campuran, pakai Compare 2 Factors atau Regression Studio. Untuk target kategori (klasifikasi), pakai Cluster Analysis Explorer atau modul ML khusus.

2 Metode

2.1 Dasar Teoretis

PLSR mengasumsikan bahwa variabilitas penting dalam prediktor $\mathbf{X}$ (matriks $n \times p$) dan respons $\mathbf{y}$ (vektor $n \times 1$) dapat ditangkap oleh sejumlah kecil komponen laten $\mathbf{T}$ (matriks $n \times h$, $h \ll p$). Setiap komponen laten adalah kombinasi linier dari prediktor:

$$ \mathbf{t}_a = \mathbf{X} \mathbf{w}_a $$

di mana $\mathbf{w}_a$ adalah weight vector untuk komponen ke-$a$, dipilih untuk memaksimumkan kovariansi $\text{cov}(\mathbf{t}_a, \mathbf{y})$ dengan kendala $\|\mathbf{w}_a\| = 1$.

Pemilihan jumlah komponen ($h$) dilakukan dengan k-fold cross-validation (default $k = 7$ atau leave-one-out untuk $n$ kecil). Untuk setiap $h$ kandidat, hitung $Q^2$ — proporsi variansi $\mathbf{y}$ yang dapat diprediksi pada fold yang ditahan. Pilih $h$ yang memaksimumkan $Q^2$ tanpa overfitting.

Variable Importance in Projection (VIP) menghitung seberapa penting setiap prediktor dalam membangun komponen yang memprediksi $\mathbf{y}$:

Distinction antara $R^2$ dan $Q^2$:

2.2 Persamaan Inti

🧮 Algoritma NIPALS (Wold, 1966) — komponen ke-$a$
  1. Inisialisasi $\mathbf{u} = \mathbf{y}$.
  2. Hitung weight: $\mathbf{w} = \mathbf{X}^T \mathbf{u} / (\mathbf{u}^T \mathbf{u})$, normalisasi: $\mathbf{w} \leftarrow \mathbf{w} / \|\mathbf{w}\|$.
  3. Hitung score: $\mathbf{t} = \mathbf{X} \mathbf{w}$.
  4. Hitung loading $q$ untuk $\mathbf{y}$: $q = \mathbf{y}^T \mathbf{t} / (\mathbf{t}^T \mathbf{t})$.
  5. Update $\mathbf{u} = \mathbf{y} q$.
  6. Hitung loading $\mathbf{p}$ untuk $\mathbf{X}$: $\mathbf{p} = \mathbf{X}^T \mathbf{t} / (\mathbf{t}^T \mathbf{t})$.
  7. Deflasi: $\mathbf{X} \leftarrow \mathbf{X} - \mathbf{t} \mathbf{p}^T$, $\mathbf{y} \leftarrow \mathbf{y} - \mathbf{t} q$.

Prediksi $\hat{y}_i$ dari komponen $h$:

$$ \hat{y}_i = \sum_{a=1}^{h} t_{ia} q_a $$

Goodness of fit:

$$ R^2 = 1 - \frac{\sum_{i}(y_i - \hat{y}_i)^2}{\sum_{i}(y_i - \bar{y})^2} $$

Predictive power dari cross-validation:

$$ Q^2 = 1 - \frac{\text{PRESS}}{\text{SS}_{\text{tot}}}, \quad \text{PRESS} = \sum_{i=1}^{n}(y_i - \hat{y}_{(-i)})^2 $$

di mana $\hat{y}_{(-i)}$ adalah prediksi untuk observasi ke-$i$ saat observasi tersebut dikeluarkan dari training (leave-one-out CV).

VIP score untuk prediktor ke-$j$ pada model dengan $h$ komponen:

$$ \text{VIP}_j = \sqrt{p \cdot \frac{\sum_{a=1}^{h} w_{ja}^2 \cdot \text{SSY}_a / \text{SSY}_{\text{total}}}{1}} $$

dengan $\text{SSY}_a$ = sum of squares of $\mathbf{y}$ explained by komponen ke-$a$.

RMSE (Root Mean Square Error):

$$ \text{RMSE} = \sqrt{\frac{1}{n} \sum_{i=1}^{n}(y_i - \hat{y}_i)^2} $$

2.3 Asumsi & Batas Validitas

AsumsiKonsekuensi jika dilanggarCara cek di SQalytics
Hubungan X ↔ Y secara umum linierKomponen latent tidak optimalInspeksi visual Observed vs Predicted
Prediktor numerikPLSR tidak menerima stringData Editor → cek tipe kolom
Target numerikUntuk klasifikasi pakai PLS-DA (Expert Desk)Modul tolak target kategori
Minimal $n \geq 3 \times$ jumlah komponenEstimasi tidak stabilModul beri peringatan
Kolom prediktor tidak terlalu mirip ($\rho < 0.99$)Multicollinearity ekstrem masih dapat ditangani PLSRModul tidak menolak

3 Cara Kerja

3.1 Step-by-Step di SQalytics

  1. Buka Predict One Result from Many Variables dari domain Statistika Terapan di sidebar.
  2. Pada langkah Pick the question, pastikan tabel aktif sudah siap.
  3. Pada langkah Pick the columns, pilih:
    • Target result column — satu kolom respons numerik (mis. Yield_pct).
    • Predictor columns — minimal 2 kolom prediktor numerik.
  4. Pada langkah SQalytics checks the data, pilih mode komponen:
    • Auto components — modul memilih jumlah optimal via cross-validation (paling aman).
    • Choose components myself — Anda menentukan Component count manual.
  5. Klik Run Analysis.
  6. Tinjau hasil: kesimpulan ringkas → tabel Model quality → tabel Component comparison → tabel VIP scores → grafik Observed vs Predicted + VIP bar chart.
  7. Ekspor TXT atau lampiran scientific soundness bila perlu.

3.2 Template Tabel Input + Contoh Data Sintetis

Skema tabel input minimum:

KolomTipeSatuanWajibCatatan
target_ynumericsesuai konteksSatu kolom respons
predictor_1 ... predictor_pnumericsesuai konteksMinimal 2 kolom prediktor

Contoh data sintetis (13 baris, 1 target + 4 prediktor):

Yield_pctMoistureProteinTextureColorScore
72.418.212.835.26.5
71.818.512.634.86.3
73.117.913.135.56.7
72.018.312.935.06.4
78.516.414.242.17.8
79.116.114.542.87.9
77.916.814.041.57.6
78.816.314.342.47.7
76.217.013.739.67.2
76.816.713.940.27.3
75.917.213.539.37.1
76.516.913.839.87.4
78.816.314.342.47.7
SYNTHETIC Pola optimasi formulasi biskuit dengan 4 prediktor numerik dan 1 target Yield. Moisture negatif berkorelasi dengan Yield; Protein, Texture, ColorScore positif. Pola ini meniru data tipikal optimasi roti/biskuit. CSV setara tersedia di docs/assets/example-data/id/statistics/template_stats_groups.csv.

3.3 Contoh Luaran

Tabel Model quality (mode Auto components):

ParameterNilaiInterpretasi
Jumlah komponen ($h$)2Optimal via CV
$R^2$ (fit)0.998Model menjelaskan 99.8% variansi
$Q^2$ (predictive power)0.991Predictive power sangat tinggi
$R^2 - Q^2$0.007Selisih kecil → tidak overfit
RMSE0.31 %Error prediksi rata-rata
$n$ training13
$p$ prediktor4

Tabel Component comparison (validasi pilihan otomatis):

Komponen ($h$)$R^2$$Q^2$RMSERekomendasi
10.9870.9780.81Baik
20.9980.9910.31Optimal ⭐
30.9990.9890.28Sedikit overfit
40.9990.9840.27Overfit

VIP scores (visualisasi bar chart):

Texture1.45
Protein1.22
Moisture1.08
ColorScore0.62
VIP > 1 = penting · VIP < 1 = lemah
Kesimpulan ringkas: "Model PLSR dengan 2 komponen menjelaskan 99.8% variansi Yield ($R^2$ = 0.998) dan memiliki predictive power yang sangat tinggi ($Q^2$ = 0.991). Selisih $R^2 - Q^2$ kecil (0.007) → tidak ada overfitting. Prediktor terpenting (VIP > 1): Texture (1.45), Protein (1.22), Moisture (1.08). ColorScore (VIP = 0.62) berkontribusi lebih sedikit — kandidat untuk dihapus pada model yang lebih ramping."

Grafik utama (2 panel):

  1. Observed vs Predictedscatter $y_i$ vs $\hat{y}_i$ dengan garis identitas $y = x$. Titik dekat garis = prediksi akurat. RMSE muncul sebagai annotation.
  2. VIP bar chart — bar horizontal per prediktor diurut dari VIP tertinggi, dengan garis vertikal merah pada VIP = 1 (threshold importance).
Observed vs Predicted dan VIP bar chart untuk model PLSR
Gambar 1. Diagnostik model PLSR dua-komponen untuk prediksi Yield dari empat prediktor (n=13). (a) Observed vs Predicted: titik dekat garis identitas y=x menunjukkan prediksi akurat; R2 = 0.998, Q2 = 0.991, RMSE = 0.31%. Selisih R2Q2 kecil (0.007) menandakan model tidak overfit. (b) Variable Importance in Projection: Texture, Protein, dan Moisture berada di atas threshold VIP=1 (garis merah putus-putus) — kontributor utama prediksi. ColorScore (VIP = 0.62) kandidat untuk dihapus pada model yang lebih ramping.

4 Kesimpulan

4.1 Relevansi Real-World

PLSR adalah metode prediksi multivariabel paling banyak dipakai di chemometrics modern — yaitu cabang kimia yang menggunakan statistik dan machine learning untuk analisis data analitik (Wold et al., 2001). Contoh konkret di laboratorium pangan dan farmasi:

Dalam konteks publikasi IMRAD, output VIP + Observed-vs-Predicted menjadi Figure utama di bagian Hasil — terutama untuk paper chemometrics di jurnal seperti Food Chemistry, Journal of Agricultural and Food Chemistry, atau Talanta. Pada Rencana Publikasi Singkil v5, prinsip PLSR-style scoring dipakai pada Tahap 1 skoring komposit tertimbang — meski perhitungannya manual berbasis literatur, alur "banyak prediktor → satu target IC₅₀" adalah PLSR conceptual.

4.2 Where to Go from Here

Modul lanjutan di SQalytics:

Pembacaan lanjutan:

Troubleshooting Cepat

Tombol run tetap nonaktif. Pastikan minimal ada satu target + dua prediktor numerik yang berbeda; target tidak boleh ikut dipilih ulang sebagai prediktor.
Hasil model terasa terlalu optimistis. Perhatikan selisih $R^2 - Q^2$. Bila $R^2$ = 0.99 tetapi $Q^2$ = 0.30, model overfit — kurangi jumlah komponen atau prediktor.
Prediktor terlalu banyak tetapi tidak informatif. Kembali ke Correlation Explorer untuk menyaring kandidat kolom; hapus prediktor dengan VIP < 0.5 dari model.
VIP semuanya < 1. Indikasi model lemah secara keseluruhan; cek $Q^2$ — bila < 0.5, hubungan X-Y mungkin tidak ada atau terlalu kompleks untuk PLSR linier.
Baris terlalu sedikit ($n < 8$). PLSR butuh data cukup; pertimbangkan menambah observasi atau pakai X vs Y Relationship untuk satu prediktor terpenting saja.

i Riwayat Revisi

Riwayat Revisi Panduan

TanggalRevisiPenulis
2026-05-12Migrasi MD v2 → HTML final (KaTeX rendered + TOC + algoritma box ungu + VIP bar chart visual)Claude
2026-05-12Migrasi v1 → v2 (template publikasi)Claude
2026-05-09Draft awal v1Tim docs

4 Referensi

  • Mehmood, T., Liland, K. H., Snipen, L., & Sæbø, S. (2012). A review of variable selection methods in partial least squares regression. Chemometrics and Intelligent Laboratory Systems, 118, 62–69. https://doi.org/10.1016/j.chemolab.2012.07.010
  • Wold, H. (1966). Estimation of principal components and related models by iterative least squares. In P. R. Krishnaiah (Ed.), Multivariate analysis (pp. 391–420). Academic Press.
  • Wold, H. (1975). Soft modeling by latent variables: The nonlinear iterative partial least squares (NIPALS) approach. Journal of Applied Probability, 12(S1), 117–142. https://doi.org/10.1017/S0021900200047604
  • Wold, S., Sjöström, M., & Eriksson, L. (2001). PLS-regression: A basic tool of chemometrics. Chemometrics and Intelligent Laboratory Systems, 58(2), 109–130. https://doi.org/10.1016/S0169-7439(01)00155-1