Lewati ke konten utama

Adjusted R-Squared: Penjelasan Jelas dengan Contoh

Pelajari cara menafsirkan adjusted r-squared untuk mengevaluasi kinerja model regresi. Bandingkan perbedaan antara r-squared dan adjusted r-squared dengan contoh di R dan Python.
Diperbarui 4 Jun 2026  · 7 mnt baca

Regresi linear adalah alat yang kuat dalam analisis data dan data science. Teknik ini digunakan untuk mengukur hubungan antara variabel dependen dan satu atau lebih variabel independen. Jika Anda sudah mengenal regresi linear, Anda mungkin juga akrab dengan ukuran goodness-of-fit yang umum disebut r-squared, yang menunjukkan proporsi variasi pada variabel dependen yang dijelaskan oleh variabel independen. Namun, Anda mungkin kurang akrab dengan adjusted r-squared, yang sering digunakan pada model yang lebih kompleks dengan banyak prediktor. 

Artikel ini akan memberikan pemahaman menyeluruh tentang adjusted r-squared, pentingnya dalam evaluasi model, perbedaan utamanya dari r-squared, serta penerapannya dalam skenario regresi berganda sehingga Anda dapat benar-benar menguasai statistik model ini. Saat kita mulai, saya sangat merekomendasikan mengikuti kursus DataCamp Introduction to Regression with statsmodels in Python dan kursus Introduction to Regression in R untuk mempelajari model regresi dan cara menafsirkan berbagai metrik kinerja, termasuk adjusted r-squared.

Apa itu Adjusted R-Squared?

R-squared mengukur proporsi varians pada variabel dependen yang dijelaskan oleh variabel atau variabel-variabel independen dalam model. Adjusted r-squared juga menjelaskan varians, tetapi memiliki pertimbangan tambahan: Seperti namanya, ia menyesuaikan nilai r-squared dengan memberikan penalti pada penyertaan variabel yang tidak relevan, yaitu variabel yang sangat kolinear. Ini dilakukan dengan mempertimbangkan jumlah prediktor dan ukuran sampel.

Untuk mencari adjusted r-squared, kita harus terlebih dahulu mencari r-squared. Meskipun ada berbagai cara untuk mendapatkan nilai r-squared, rumus di bawah ini adalah salah satu yang paling umum:

Rumus r-squared

Di sini, r-squared dihitung sebagai satu dikurangi hasil bagi jumlah kuadrat residual terhadap jumlah kuadrat total.

rumus r-squared

Dengan:

  • RSS = Jumlah kuadrat residual (jumlah kuadrat selisih antara nilai teramati dan nilai prediksi)
  • TSS = Jumlah kuadrat total (jumlah kuadrat selisih antara nilai teramati dan rata-rata nilai teramati)

Rumus adjusted r-squared

Setelah mendapatkan nilai r-squared, kita dapat mencari adjusted r-squared. Kita lakukan dengan memasukkan nilai r-squared ke dalam rumus di bawah.

rumus adjusted r-squared

Dengan:

  • R² = r-squared dari model
  • n = jumlah observasi (titik data)
  • p = jumlah prediktor (variabel independen)

Untuk berlatih, mari coba contoh. Pertimbangkan skenario ini: Kita memiliki dataset dengan 30 observasi. Kita membuat model regresi linear berganda dengan lima prediktor. Kita mendapatkan r-squared sebesar 0,8. Berikut cara menggunakan informasi ini untuk mencari adjusted r-squared:

Anda mungkin bertanya-tanya tentang -1 dalam persamaan, baik di pembilang maupun penyebut. Untuk memperjelas, n−1 pada pembilang memperhitungkan derajat kebebasan, mengoreksi penggunaan rata-rata sampel saat menghitung varians. Ini karena, saat menghitung varians, kita biasanya menggunakan rata-rata sampel sebagai estimasi rata-rata populasi. Karena rata-rata sampel bukan rata-rata populasi yang sebenarnya, varians cenderung terestimasi lebih rendah. Untuk mengoreksi bias ini, kita mengurangi derajat kebebasan sebesar 1. 

Pada penyebut, n−p−1 menyesuaikan jumlah prediktor p dalam model, di mana p adalah jumlah variabel independen. Tambahan −1 pada penyebut mengoreksi estimasi intersep model, yang juga menghabiskan satu derajat kebebasan. Kita harus ingat bahwa, dalam model regresi, kita mengestimasi baik koefisien kemiringan untuk prediktor maupun intersep demi mewakili kompleksitas penuh.

Bagaimana Adjusted R-Squared Berbeda dari R-Squared?

Meskipun keduanya mengevaluasi kinerja model regresi, terdapat perbedaan kunci antara r-squared dan adjusted r-squared. Nilai r-squared selalu meningkat atau tetap sama saat lebih banyak prediktor ditambahkan ke model, bahkan jika prediktor tersebut tidak secara signifikan meningkatkan daya jelaskan model. Masalah ini dapat menimbulkan kesan yang menyesatkan tentang efektivitas model.

Adjusted r-squared menyesuaikan nilai r-squared agar memperhitungkan jumlah variabel independen dalam model. Nilai adjusted r-squared dapat menurun jika prediktor baru tidak memperbaiki kecocokan model, menjadikannya ukuran akurasi model yang lebih andal. Karena alasan ini, adjusted r-squared dapat digunakan sebagai alat oleh analis data untuk membantu memutuskan prediktor mana yang perlu dimasukkan.

Kapan Menggunakan Adjusted R-Squared

Memahami kapan menggunakan adjusted r-squared dibanding r-squared penting dalam membangun model yang andal. Berikut adalah skenario di mana penggunaan adjusted r-squared untuk mengevaluasi model tepat dilakukan.

  • Regresi Berganda: Secara umum, adjusted r-squared adalah metrik yang lebih andal karena memperhitungkan jumlah prediktor, sehingga evaluasi kinerja model menjadi lebih baik.
  • Perbandingan Model: Adjusted r-squared berguna ketika membandingkan model dengan jumlah prediktor yang berbeda untuk memilih yang berkinerja terbaik.
  • Mencegah Overfitting: Adjusted r-squared membantu dengan memberikan penalti pada penyertaan prediktor yang tidak relevan agar hanya prediktor yang meningkatkan kinerja model yang disertakan.

Secara umum, meskipun adjusted r-squared lebih disukai daripada r-squared dalam model regresi berganda karena memperhitungkan jumlah prediktor dan memberikan penalti untuk penambahan variabel yang tidak relevan, ada beberapa skenario di mana penggunaan r-squared tetap sesuai:

  • Perbandingan Sederhana Antar Model: Jika Anda membandingkan model dengan jumlah prediktor yang sama, r-squared dapat digunakan untuk mengukur goodness of fit secara keseluruhan tanpa khawatir overfitting, karena kedua model memiliki kompleksitas yang sama.
  • Fokus pada Daya Jelaskan: Jika tujuan Anda murni untuk memahami seberapa besar variasi pada variabel dependen yang dijelaskan oleh variabel independen, terlepas dari jumlah prediktor, r-squared dapat memberikan interpretasi yang lebih lugas.

Menafsirkan Adjusted R-Squared dalam Praktik

Mari pertimbangkan contoh di mana nuansa antara r-squared dan adjusted r-squared berperan. Misalkan kita memiliki dua model regresi berikut:

  • Model 1 memiliki r-squared 0,9 dan adjusted r-squared 0,75.
  • Model 2 memiliki r-squared 0,85 dan adjusted R-squared 0,8.

Kita mungkin mengatakan bahwa model 1 tampak menjelaskan lebih banyak varians keseluruhan pada data karena memiliki nilai r-squared yang lebih tinggi. Namun kita juga harus mempertimbangkan bahwa model 2 mungkin lebih menjelaskan hubungan dasar yang sebenarnya antara variabel karena memperhitungkan prediktor yang tidak relevan. Adjusted r-squared yang lebih tinggi pada model 2 menunjukkan bahwa model tersebut memberikan kecocokan yang lebih andal dengan memberi penalti pada kompleksitas yang tidak perlu, dan kemungkinan juga lebih kecil risikonya mengalami overfitting. Secara pribadi, dan tanpa informasi lain, saya akan memilih model 2.

Adjusted R-Squared di R dan Python

Mari kita jelajahi contoh praktis perhitungan adjusted r-squared di R dan Python. Kita akan menggunakan dataset “Fish Market” dari Kaggle, yang berguna untuk mengestimasi berat ikan berdasarkan spesies dan ukuran fisiknya. Untuk menyederhanakan, kita akan membulatkan output hingga lima tempat desimal.

Adjusted r-squared di R

Unduh dataset dan simpan di direktori kerja Anda. Gunakan kode berikut untuk memfitting model linear guna memprediksi berat ikan sebagai fungsi dari beberapa variabel, termasuk Length1, Height, Width, dan Length3, yang masing-masing merujuk pada panjang vertikal ikan, tinggi ikan, lebar diagonal ikan, dan panjang silang ikan.

# Load the dataset
data <- read.csv("data/Fish.csv")

# Remove rows with missing values
data <- na.omit(data)

# Model 1: Using 4 predictors ('Length1', 'Height', 'Width', 'Length3')
model1 <- lm(Weight ~ Length1 + Height + Width + Length3, data = data)

Sekarang, kita periksa nilai r-squared dan adjusted r-squared, dan kita melihat hal berikut. Adjusted r-squared sangat dekat dengan nilai r-squared, hanya sedikit lebih rendah.

r_squared_model1 <- round(summary(model1)$r.squared, 4)
r_squared_model1 <- round(summary(model1)$adj.r.squared, 4)
0.88527
0.88229

Bagaimana jika sekarang kita mencoba membuat model lain dengan menambahkan satu prediktor lagi? Kali ini, kita membuat model kedua dan menambahkan Length2, yang merujuk pada panjang diagonal ikan. Dengan cara yang sama seperti sebelumnya, kita dapat memeriksa nilai r-squared dan adjusted r-squared dari model baru.

# Model 2: Adding one more predictor ('Length2')
model2 <- lm(Weight ~ Length1 + Height + Width + Length3 + Length2, data = data)
r_squared_model2 <- round(summary(model1)$r.squared, 4)
r_squared_model2 <- round(summary(model1)$adj.r.squared, 4)
0.88529
0.88154

Untuk model 2, kita melihat bahwa nilai r-squared hampir tidak meningkat sama sekali dibandingkan model 1. Kita juga melihat bahwa nilai adjusted r-squared menurun, dan penurunan adjusted r-squared lebih besar daripada kenaikan nilai r-squared. Ini memberi tahu kita bahwa prediktor yang kita tambahkan bukanlah pilihan yang baik. 

Jika dipikirkan, Length2, yang merujuk pada panjang diagonal ikan, kemungkinan besar sangat berkorelasi dengan variabel lain dalam model atau kombinasi linear dari variabel lain dalam model. Secara khusus, kita memperkirakan panjang diagonal ikan sangat berkorelasi dengan panjang ikan dan panjang silang ikan. Jadi kita melihat variabel baru kita tidak menambahkan informasi baru yang relevan.

Demi kelengkapan, kita juga dapat menunjukkan cara mencari adjusted r-squared secara manual. Kita gunakan nilai r-squared dan parameter model, lalu mengikuti rumus yang ditunjukkan sebelumnya.

# Save R-squared as a variable
r_squared_model2 <- summary(model2)$r.squared

# Get the number of observations (n) for both models
n <- nrow(data)  # Same for both models

# Get the number of predictors (excluding intercept) for each model
p_model1 <- length(coef(model1)) - 1
p_model2 <- length(coef(model2)) - 1

# Adjusted r-squared formula for Model 1
adjusted_r_squared_model1 <- 1 - ((1 - r_squared_model1) * (n - 1)) / (n - p_model1 - 1)

# Adjusted r-squared formula for Model 2
adjusted_r_squared_model2 <- 1 - ((1 - r_squared_model2) * (n - 1)) / (n - p_model2 - 1)

# Print R-Squared values for both models
cat("R-Squared for Model 1:", r_squared_model1, "\n")
cat("R-Squared for Model 2:", r_squared_model2, "\n")

# Print the Adjusted R-Squared values for both models
cat("Adjusted R-Squared for Model 1:", adjusted_r_squared_model1, "\n")
cat("Adjusted R-Squared for Model 2:", adjusted_r_squared_model2, "\n")

Adjusted r-squared di Python

Kode berikut menunjukkan implementasi contoh yang sama di Python.

# Import requied libraries
import pandas as pd
import statsmodels.api as sm

# Load the dataset
data = pd.read_csv('data/Fish.csv')

# Drop rows with missing values if any exist
data = data.dropna()

# Define predictors for Model 1 (4 variables)
X1 = data[['Length1', 'Height', 'Width', 'Length3']]

# Add a constant (intercept)
X1 = sm.add_constant(X1)

# Define the target variable 'Weight'
y = data['Weight']

# Fit Model 1
model1 = sm.OLS(y, X1).fit()

# Define predictors for Model 2 (5 variables)
X2 = data[['Length1', 'Height', 'Width', 'Length3', 'Length2']]

# Add a constant (intercept)
X2 = sm.add_constant(X2)

# Fit Model 2
model2 = sm.OLS(y, X2).fit()

# Save r-squared as a variable
r_squared_model1 = model1.rsquared  # R-Squared for Model 1
r_squared_model2 = model2.rsquared  # R-Squared for Model 2

# Get the number of observations
n = X1.shape[0]  # Same for both models

# Get the number of predictors (excluding intercept) for each model
p_model1 = X1.shape[1] - 1  # Number of predictors for Model 1
p_model2 = X2.shape[1] - 1  # Number of predictors for Model 2

# Adjusted R-Squared formula for Model 1
adjusted_r_squared_model1 = 1 - ((1 - r_squared_model1) * (n - 1)) / (n - p_model1 - 1)

# Adjusted R-Squared formula for Model 2
adjusted_r_squared_model2 = 1 - ((1 - r_squared_model2) * (n - 1)) / (n - p_model2 - 1)

# Print R-squared for both models
print("R-Squared for Model 1:", r_squared_model1)
print("R-Squared for Model 2:", r_squared_model2)

# Print the Adjusted R-Squared values for both models
print("Adjusted R-Squared for Model 1:", adjusted_r_squared_model1)
print("Adjusted R-Squared for Model 2:", adjusted_r_squared_model2)

Kita juga dapat menggunakan fungsi di Python untuk mendapatkan nilai r-squared dan adjusted r-squared dari model regresi:

# Model 1
print("Model 1 R-Squared:", model1.rsquared)
print("Model 1 Adjusted R-Squared:", model1.rsquared_adj)

# Model 2
print("Model 2 R-Squared:", model2.rsquared)
print("Model 2 Adjusted R-Squared:", model2.rsquared_adj)

Jika Anda mengalami kesulitan dengan bagian kode di atas, lihat panduan kami tentang Essentials of Linear Regression in Python dan How to Do Linear Regression in R untuk mempelajari langkah demi langkah implementasi dan interpretasi berbagai metrik pada model regresi. Jika Excel adalah alat analisis pilihan Anda, lihat tutorial kami tentang Linear Regression in Excel: A Comprehensive Guide For Beginners untuk mempelajari cara mengimplementasikan dan memvisualisasikan model regresi linear di Excel.

Adjusted R-Squared, R-Squared, dan Predicted R-Squared

Saat membahas adjusted r-squared, kita perlu meluruskan istilah. Ada beberapa istilah yang terdengar mirip tetapi punya tujuan berbeda. Di sini, saya membuat tabel yang membandingkan beberapa konsep yang mirip namun berbeda: r-squared, adjusted r-squared, dan predicted r-squared.

Metrik Mengukur Kasus Penggunaan Kelebihan Keterbatasan
R-squared Proporsi varians yang dijelaskan oleh model Memahami seberapa baik model menyesuaikan data pelatihan Mudah ditafsirkan dan cepat memberikan gambaran kecocokan model Menyesatkan saat membandingkan model dengan jumlah prediktor berbeda, rentan terhadap overfitting
Adjusted R-squared Proporsi varians yang dijelaskan, disesuaikan dengan jumlah prediktor Membandingkan model dengan jumlah prediktor yang berbeda Memberi penalti untuk penambahan variabel yang tidak relevan, mencegah overfitting Tidak menunjukkan kinerja prediksi pada data baru
Predicted R-squared Seberapa baik model memprediksi data baru Mengevaluasi kinerja model pada data yang belum pernah dilihat Menunjukkan seberapa baik model melakukan generalisasi ke data baru Memerlukan cross-validation atau holdout dataset, secara komputasi mahal

Kesalahpahaman Umum tentang Adjusted R-Squared

Terakhir, mari lihat beberapa kekeliruan umum karena ada beberapa salah paham tentang penggunaannya dalam regresi.

  • Adjusted R-Squared Rendah Berarti Model Buruk: Adjusted r-squared yang rendah tidak selalu berarti modelnya buruk atau tidak relevan. Nilai rendah dapat menunjukkan bahwa variabel independen dalam model tidak menjelaskan proporsi besar varians pada variabel dependen, tetapi bergantung pada topiknya, hal itu bisa saja wajar.
  • Adjusted R-Squared Tidak Bisa Bernilai Negatif: Secara teknis adjusted r-squared bisa negatif ketika model menjelaskan proporsi varians pada variabel dependen yang sangat kecil dan pada saat yang sama menggunakan banyak prediktor, sehingga penalti yang diberikan menghasilkan nilai adjusted r-squared negatif.
  • Adjusted R-Squared Selalu Menurun Saat Menambah Variabel: Adjusted r-squared akan menurun jika variabel baru tidak meningkatkan kinerja model tetapi akan meningkat jika variabel baru benar-benar menambah nilai pada model. Bayangkan sebuah model dengan satu prediktor yang buruk, lalu Anda menambahkan prediktor yang baik; adjusted r-squared akan meningkat.

Penutup tentang Adjusted R-Squared

Adjusted r-squared adalah metrik penting untuk mengevaluasi kinerja model regresi, khususnya saat menangani banyak variabel independen. Dibandingkan metrik r-squared, metrik ini memberikan ukuran akurasi model yang lebih realistis dan andal ketika melibatkan banyak prediktor. 

Jika Anda penasaran bagaimana R dan Python menemukan koefisien model regresi linear, lihat tutorial berikut: Normal Equation for Linear Regression Tutorial dan QR Decomposition in Machine Learning: A Detailed Guide.


Allan Ouko's photo
Author
Allan Ouko
LinkedIn
Penulis teknis Data Science dengan pengalaman langsung dalam analitik data, business intelligence, dan data science. Saya menulis konten praktis berfokus industri tentang SQL, Python, Power BI, Databricks, dan rekayasa data, yang berakar pada pekerjaan analitik dunia nyata. Tulisan saya menjembatani kedalaman teknis dan dampak bisnis, membantu para profesional mengubah data menjadi keputusan yang meyakinkan.

Adjusted R-Squared FAQs

Bagaimana adjusted r-squared berbeda dari r-squared?

Sementara r-squared mengukur proporsi varians pada variabel dependen yang dijelaskan oleh variabel independen, nilainya selalu meningkat saat lebih banyak prediktor ditambahkan. Adjusted r-squared menyesuaikan terhadap jumlah prediktor dan menurun jika variabel tambahan tidak berkontribusi pada signifikansi model.

Kapan saya harus menggunakan adjusted r-squared?

Adjusted r-squared berguna saat membandingkan goodness-of-fit model regresi dengan jumlah prediktor yang berbeda atau ketika Anda khawatir tentang overfitting.

Apakah nilai adjusted r-squared bisa negatif?

Adjusted r-squared bisa bernilai negatif ketika model menjelaskan sangat sedikit varians pada variabel dependen dan mencakup banyak prediktor, sehingga penalti menghasilkan nilai negatif.

Mengapa nilai adjusted r-squared selalu sama atau lebih rendah daripada nilai r-squared?

Adjusted r-squared selalu sama atau lebih rendah daripada r-squared karena dirancang untuk menambahkan penalti atas penambahan prediktor yang tidak perlu ke dalam model.

Kapan saya harus menggunakan predicted r-squared alih-alih adjusted r-squared?

Predicted r-squared berguna untuk menilai seberapa baik model berkinerja pada data baru yang belum pernah dilihat.

Apa perbedaan antara adjusted f-squared dan metrik evaluasi model regresi linear lainnya seperti RMSE?

Adjusted r-squared mengukur proporsi varians yang dijelaskan oleh model dengan memperhitungkan jumlah prediktor, sedangkan RMSE (Root Mean Squared Error) mengukur rata-rata selisih antara nilai teramati dan nilai prediksi. Dengan kata lain, RMSE berfokus pada galat prediksi, sementara adjusted r-squared berfokus pada kecocokan model.

Apakah adjusted r squared hanya berlaku untuk regresi linear?

Ya, adjusted r-squared terutama terkait dengan model regresi linear berganda. Untuk model non-linear seperti fungsi eksponensial dan logaritmik, metrik lain seperti AIC atau BIC biasanya digunakan untuk memberi penalti pada kompleksitas model dan menilai goodness of fit.

Apa artinya jika nilai r-squared dan adjusted r-squared dari model regresi linear sangat berbeda?

Perbedaan besar antara r-squared dan adjusted r-squared menunjukkan bahwa model mencakup prediktor yang tidak relevan. Adjusted r-squared memberi penalti pada variabel yang tidak perlu, sehingga jika Anda melihat perbedaan besar di antara keduanya, mungkin ada prediktor yang sangat berkorelasi.

Apakah r-squared dan adjusted r-squared sama dalam regresi linear sederhana?

Dalam regresi linear sederhana, yaitu regresi dengan satu variabel dependen dan hanya satu variabel independen, r-squared dan adjusted r-squared akan sama.

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