Lewati ke konten utama

Penjelasan R-Squared: Seberapa Baik Model Regresi Anda Cocok?

Pelajari makna R-squared dalam analisis regresi, cara menghitungnya, dan kapan menggunakannya untuk mengevaluasi kinerja model. Bandingkan dengan metrik terkait beserta contoh di R dan Python.
Diperbarui 5 Jun 2026  · 8 mnt baca

Pada intinya, R-squared menjelaskan proporsi varians pada variabel dependen yang dapat diatribusikan kepada variabel independen (atau beberapa variabel). Kita dapat memandangnya sebagai ukuran seberapa baik model kita menangkap pola pada data, dan seberapa banyak yang tersisa sebagai derau yang tak terjelaskan. Kesederhanaan dan interpretasinya yang langsung membuatnya banyak digunakan dalam diagnostik regresi linear, terutama pada regresi linear sederhana dan berganda.

Dalam artikel ini, kita akan membahas makna, perhitungan, interpretasi, dan jebakan umum terkait R-squared, sehingga kita dapat menggunakannya dengan percaya diri sekaligus penuh kehati-hatian. Selain itu, kita akan melihat beberapa contoh potongan kode untuk menghitung R-squared di R dan Python.

Apa Itu R-Squared?

R-squared, dilambangkan sebagai R², adalah ukuran statistik untuk menilai goodness of fit pada model regresi. Nilai ini memberi tahu kita seberapa besar variasi pada variabel dependen yang dapat dijelaskan oleh model.

Nilai R-squared berada di antara 0 dan 1:

  • R² = 0 berarti model tidak menjelaskan variabilitas sama sekali;
  • R² = 1 berarti model menjelaskan seluruhnya.

Walaupun konsepnya mudah, interpretasinya memerlukan pendekatan yang bernuansa, terutama saat berpindah dari teori ke praktik.

Cara Menghitung R-Squared

Ada beberapa cara yang secara matematis ekuivalen untuk menghitung R-squared, masing-masing menawarkan wawasan berbeda tentang apa arti “fit” sebenarnya, tergantung konteks—regresi sederhana, regresi berganda, aljabar matriks, atau pemodelan Bayesian. Mari kita telusuri pendekatan yang paling sering digunakan.

1. Menggunakan residual sum of squares dan total sum of squares

Ini adalah rumus yang paling standar dan paling banyak digunakan:

r-squared formula involving 1 - (RSS / TSS)

dengan:

  • RSS adalah residual sum of squares, yang mengukur variasi yang tidak dijelaskan model,
  • TSS adalah total sum of squares, yang mengukur total variasi pada data.

Dengan kata lain, R-squared merepresentasikan fraksi dari total variasi yang dapat dijelaskan model. 

Pendekatan ini menyoroti seberapa jauh kinerja model regresi lebih baik dibanding sekadar memprediksi rata-rata respons.

2. Menggunakan explained sum of squares dan total sum of squares

R-squared juga dapat dinyatakan langsung dalam hal varians yang dijelaskan:

r-squared formula involving ESS/ TSS

dengan:

  • ESS adalah explained sum of squares, yang mengukur seberapa banyak varians ditangkap oleh model,
  • TSS adalah total sum of squares, yang mengukur total variasi pada data.

Kita dapat melihat bahwa versi ini menekankan seberapa banyak total variasi pada keluaran yang ditangkap oleh prediksi model. Dengan kata lain, fokusnya bergeser dari apa yang gagal kita jelaskan (RSS) ke apa yang berhasil kita jelaskan (ESS), memberikan bingkai yang lebih optimistis.

Untuk telaah mendalam tentang tiga komponen sum of squares, baca Understanding Sum of Squares: A Guide to SST, SSR, and SSE.

3. Menggunakan explained sum of squares dan residual sum of squares

Dalam konteks tabel ANOVA, R-squared secara alami muncul dari dekomposisi total variabilitas: 

r-squared formula involving ESS / (ESS + RSS)

dengan:

  • ESS adalah explained sum of squares, yang mengukur seberapa banyak varians ditangkap oleh model,
  • RSS adalah residual sum of squares, yang mengukur variasi yang tidak dijelaskan model.

Formulasi ini menunjukkan seberapa banyak total varians yang ditangkap oleh model, dan seberapa banyak yang tersisa tidak terjelaskan.

Perspektif ini agak unik karena mengaitkan R-squared dengan pengujian hipotesis. Ini karena rasio ESS terhadap RSS digunakan untuk menghitung F-statistic, sehingga R-squared menjadi bagian penting dari pengujian signifikansi dalam pelaporan bergaya ANOVA.

4. Menggunakan koefisien korelasi pada regresi linear sederhana

Tiga metode terakhir adalah rumus yang setara secara aljabar yang diturunkan dari dekomposisi regresi. Sekarang, berikut perspektif baru:

Pada regresi linear sederhana dengan hanya satu prediktor, R-squared memiliki jalan pintas:

r-squared is correlation squared

dengan

  • r adalah koefisien korelasi Pearson antara x dan y.

Rumus ini menunjukkan bagaimana hubungan linear yang kuat antara dua variabel beralih langsung menjadi nilai R-squared yang tinggi. 

Untuk memahami teori dasar di balik regresi linear sederhana, pelajari Simple Linear Regression: Everything You Need to Know.

5. Menggunakan mean squared error dan varians keluaran

R-squared dapat dihitung sebagai ukuran kesalahan model yang dinormalisasi: 

r-squared formula involving 1 - MSE / var(y)

dengan:

  • MSE adalah mean squared error dari model,
  • Var(y) adalah varians keluaran sebenarnya.

Kerangka ini sangat relevan saat membandingkan model pada skala atau satuan yang berbeda, karena menormalkan kesalahan model dengan sebaran data keseluruhan.

6. Menggunakan varians nilai prediksi

Dengan asumsi residual tidak berkorelasi dengan prediksi, R-squared juga dapat ditafsirkan sebagai fraksi varians yang ditangkap oleh model:

r-squared formula involving the variance of the predicted values

dengan:

  • Var(ŷ) adalah varians dari prediksi model,
  • Var(y) adalah varians keluaran sebenarnya.

Versi ini menyoroti seberapa baik prediksi itu sendiri mencerminkan sebaran data aktual.

Menafsirkan R-Squared

Seperti telah disebutkan sebelumnya, R-squared mudah dihitung tetapi sedikit lebih rumit untuk ditafsirkan secara bermakna.

  • R-squared tinggi berarti model menjelaskan porsi besar varians. Namun, ini tidak berarti model kita pasti benar atau berguna.
  • R-squared rendah berarti hanya sedikit varians yang dijelaskan oleh model. Ini tidak selalu buruk, terutama pada ilmu sosial atau data yang bising, di mana R-squared rendah sering kali diharapkan.

Penting untuk diingat bahwa R-squared mengukur korelasi, tetapi tidak mengukur kausalitas. Hanya karena prediktor kita menjelaskan keluaran tidak berarti mereka menyebabkannya, karena korelasi tetap bukan kausalitas. Selain itu, R-squared tidak menunjukkan apakah prediksi akurat.

Berikut dua sumber yang berguna tentang topik lanjutan terkait regresi linear: 

Kapan Menggunakan R-Squared

R-squared dapat sangat membantu jika digunakan pada situasi yang tepat. Ukuran ini sesuai untuk:

  • Membandingkan model dengan jumlah prediktor yang sama.
  • Menjelaskan seberapa banyak varians dalam suatu dataset yang dipertanggungjawabkan oleh model.

Di sisi lain, R-squared dapat menyesatkan dalam skenario berikut:

  • Menambahkan prediktor yang tidak relevan, yang menghasilkan overfitting. Dalam kasus ini, R-squared selalu meningkat meskipun kinerja prediktif model tidak membaik.
  • Membandingkan model dengan jumlah prediktor yang berbeda, yaitu dengan kompleksitas berbeda. Di sini, adjusted R-squared adalah pilihan yang lebih baik. Saya akan membahas lebih lanjut tentang adjusted R-squared nanti.

Contoh R-Squared di R dan Python

Sekarang mari ilustasikan konsep R-squared di R dan Python menggunakan dataset Kaggle Fish Market. Dalam kedua bahasa pemrograman, kita akan membangun dua model:

  • Model 1: Memprediksi berat ikan menggunakan empat prediktor.
  • Model 2: Menambahkan satu prediktor acak yang tidak relevan.

Contoh R

Mari mulai dengan R.

Model 1

# Load data
fish <- read.csv("Fish.csv")

# Model 1
model1 <- lm(Weight ~ Length1 + Length2 + Height + Width, data=fish)
summary(model1)$r.squared

Keluaran:

[1] 0.8673

Model 2

# Model 2 with an irrelevant predictor
fish$random_noise <- rnorm(nrow(fish))
model2 <- lm(Weight ~ Length1 + Length2 + Height + Width + random_noise, data=fish)
summary(model2)$r.squared

Keluaran:

[1] 0.8679

Seperti yang kita lihat, R-squared sedikit meningkat setelah menambahkan prediktor yang tidak relevan (Model 2). Namun, itu tidak berarti model menjadi lebih baik. Bagaimanapun, kita hanya menambahkan derau acak.

Untuk bacaan lebih lanjut terkait topik ini, lihat tutorial berikut:

Dan jangan lupa untuk mendaftar di kursus khusus kami:

Contoh Python

Sekarang, mari coba di Python.

Model 1

import pandas as pd
import statsmodels.api as sm
import numpy as np

# Load data
fish = pd.read_csv('Fish.csv')
X1 = fish[['Length1', 'Length2', 'Height', 'Width']]
y = fish['Weight']

# Model 1
X1 = sm.add_constant(X1)
model1 = sm.OLS(y, X1).fit()
print(model1.rsquared)

Keluaran:

0.8673

Model 2

# Model 2 with an irrelevant predictor
fish['random_noise'] = np.random.randn(len(fish))
X2 = fish[['Length1', 'Length2', 'Height', 'Width', 'random_noise']]
X2 = sm.add_constant(X2)
model2 = sm.OLS(y, X2).fit()
print(model2.rsquared)

Keluaran:

0.8679

Sekali lagi, kita mengamati sedikit peningkatan nilai R-squared, tetapi ini hanya menangkap derau acak.

Untuk terus belajar, daftarlah di kursus kami:

R-Squared vs. Metrik Terkait

Sekarang kita akan secara singkat membandingkan R-squared dengan dua metrik terkait: adjusted R-squared dan predicted R-squared.

R-squared vs. adjusted R-squared

Berbeda dengan R-squared, adjusted R-squared memperhitungkan jumlah prediktor. Secara khusus, ia memberi penalti pada model yang memasukkan prediktor yang tidak perlu:

formula for adjusted r-squared

dengan:

  • n adalah jumlah observasi,
  • p adalah jumlah prediktor.

Metrik ini hanya meningkat jika prediktor baru benar-benar meningkatkan model secara bermakna, dan dapat menurun pada kasus sebaliknya. Baca tutorial kami untuk mempelajari lebih lanjut tentang perluasan penting ini: Adjusted R-Squared: A Clear Explanation with Examples.

R-squared vs. predicted R-squared

Sementara R-squared biasa menunjukkan seberapa baik model berkinerja pada data pelatihan, predicted R-squared memberi tahu kita seberapa baik kinerjanya pada data baru yang belum terlihat. Maka dari itu, metrik ini mengevaluasi kemampuan generalisasi model.

Predicted R-squared dihitung menggunakan cross-validation atau dengan menyisihkan sebagian data pelatihan untuk pengujian lebih lanjut. Nilainya dapat jauh lebih rendah daripada R-squared biasa jika model mengalami overfitting. Karena itu, skenario di mana kita memperoleh nilai R-squared biasa yang tinggi tetapi predicted R-squared rendah sangat mungkin mengindikasikan overfitting model.

Miskonsepsi Umum tentang R-Squared

Mari kita lihat beberapa mitos populer tentang R-squared, beserta keadaan yang sebenarnya: 

  • “R-squared tinggi selalu berarti model yang baik.” Ini tidak selalu benar. R-squared bisa tinggi untuk model yang overfit atau model yang dibangun di atas korelasi semu. Jelas, dalam kedua kasus tersebut, model tidak bisa disebut baik.
  • “R-squared mengukur daya prediksi.” Pada kenyataannya, ini hanya mengukur kecocokan model pada data pelatihan dan tidak mengatakan apa pun tentang data yang belum terlihat. Untuk mengevaluasi kinerja model di masa depan, kita memerlukan metrik lain seperti predicted R-squared yang telah dibahas di atas.
  • “Kita harus selalu mengincar R-squared yang tinggi.” Tidak selalu. Ini tergantung domain, serta kualitas data itu sendiri. Seperti yang telah disebutkan sebelumnya dalam artikel ini, untuk ilmu sosial seperti psikologi atau sejarah, nilai R-squared bisa sangat rendah (0,1 atau bahkan kurang) dan tetap bermakna. Hal yang sama berlaku untuk data yang bising, di mana nilai R-squared rendah sangat diharapkan.

Kesimpulan

Singkatnya, kita mempelajari apa itu R-squared, cara menghitung metrik ini (baik secara matematis maupun di R dan Python), kapan menggunakannya dan kapan menghindarinya, serta bagaimana menafsirkan hasilnya. Selain itu, kita menyinggung dua metrik terkait dan beberapa miskonsepsi luas tentang R-squared. 

Intinya, R-squared adalah ukuran kecocokan model regresi yang berguna, intuitif, dan lugas. Ini adalah titik awal yang bagus untuk evaluasi model, tetapi harus digunakan dengan bijak, ditafsirkan bersama metrik lainnya, dan tidak disalahartikan sebagai keseluruhan gambaran. Hal ini terutama berlaku untuk konteks regresi berganda dan pemilihan model.


Elena Kosourova's photo
Author
Elena Kosourova
LinkedIn

IBM Certified Data Scientist (2020), sebelumnya Ahli Geologi/Geomodeler Perminyakan untuk ladang minyak dan gas di seluruh dunia dengan pengalaman kerja internasional lebih dari 12 tahun. Mahir dalam Python, R, dan SQL. Bidang keahlian: pembersihan data, manipulasi data, visualisasi data, analisis data, pemodelan data, statistik, storytelling, machine learning. Berpengalaman luas dalam mengelola komunitas data science serta menulis/meninjau artikel dan tutorial tentang data science dan topik karier.

FAQ R-squared

Apa itu R-squared?

R-squared, dilambangkan sebagai R², adalah ukuran statistik goodness of fit dalam model regresi, yang menunjukkan seberapa besar variasi pada variabel dependen dapat dijelaskan oleh model.

Bagaimana cara menghitung R-squared?

Rumus paling umum untuk menghitung R-squared adalah: R2=1-RSS/TSS, di mana RSS adalah residual sum of squares dan TSS adalah total sum of squares.

Nilai apa saja yang dapat diambil oleh R-squared?

Nilai R-squared berada antara 0 dan 1, di mana R²=0 berarti model tidak menjelaskan variabilitas sama sekali dan R²=1 berarti model menjelaskannya seluruhnya.

Bagaimana menafsirkan R-squared?

R-squared tinggi berarti model menjelaskan porsi besar varians pada data pelatihan, sedangkan R-squared rendah berarti sedikit varians yang dijelaskan oleh model. R-squared tidak mengukur kausalitas atau mengatakan apa pun tentang kebenaran atau kegunaan model.

Kapan Anda menggunakan R-squared?

R-squared dapat membantu membandingkan model dengan jumlah prediktor yang sama atau menjelaskan seberapa banyak varians dalam suatu dataset yang dipertanggungjawabkan oleh model.

Topik

Belajar bersama DataCamp

Kursus

Supervised Learning di R: Regresi

4 Hr
46.4K
Dalam kursus ini, Anda akan belajar cara memprediksi peristiwa di masa depan menggunakan regresi linier, model aditif umum, hutan acak, dan xgboost.
Lihat DetailRight Arrow
Mulai Kursus
Lihat Lebih BanyakRight Arrow
Terkait

blogs

Tutorial Korelasi di R

Dapatkan pengenalan dasar-dasar korelasi di R: pelajari lebih lanjut tentang koefisien korelasi, matriks korelasi, plotting korelasi, dan sebagainya.
David Woods's photo

David Woods

13 mnt

blogs

Spaghetti Plot dan Jalur Badai

Temukan alasan mengapa Anda sebaiknya (tidak) menggunakan spaghetti plot untuk menyampaikan ketidakpastian jalur prediksi badai serta dampaknya terhadap interpretasi.
Hugo Bowne-Anderson's photo

Hugo Bowne-Anderson

13 mnt

blogs

40 Pertanyaan Wawancara DBMS Teratas di 2026

Kuasai pertanyaan wawancara basis data, dari konsep SQL dasar hingga skenario desain sistem tingkat lanjut. Panduan mendalam ini mencakup semua yang Anda perlukan untuk sukses di wawancara DBMS dan meraih peran berikutnya.
Dario Radečić's photo

Dario Radečić

15 mnt

blogs

12 Alternatif ChatGPT Terbaik yang Bisa Anda Coba pada 2026

Artikel ini menyajikan daftar alternatif ChatGPT yang akan meningkatkan produktivitas Anda.
Javier Canales Luna's photo

Javier Canales Luna

14 mnt

Lihat Lebih BanyakLihat Lebih Banyak