Uji Regresi Linear: Cara Menguji dan Membaca Output Tanpa Salah Tafsir
TL;DR
Uji regresi linear ngecek apakah satu variabel bisa dipakai buat memprediksi variabel lain, dan seberapa kuat pengaruhnya. Outputnya punya tiga bagian yang harus dibaca berurutan: R square buat proporsi keragaman yang terjelaskan, uji F buat kelayakan model secara keseluruhan, dan uji t buat tiap koefisien. Sebelum semua itu dipercaya, lima asumsi harus lolos, termasuk normalitas residual yang sering dikira normalitas variabel.
Uji regresi linear adalah prosedur buat ngecek apakah satu variabel bisa dipakai memprediksi variabel lain, sekaligus ngukur seberapa besar perubahannya.
Menjalankan ujinya gampang. SPSS butuh empat klik, Python butuh tiga baris.
Yang bikin skripsi kena revisi itu cara bacanya. Di bawah ini urutan asumsi yang wajib dicek, langkah ujinya, dan arti tiap baris output.
Apa itu uji regresi linear?
Uji regresi linear adalah metode statistik yang nyusun persamaan garis lurus buat memprediksi variabel terikat dari satu atau beberapa variabel bebas. Hasilnya berupa koefisien yang nunjukin berapa banyak variabel terikat berubah tiap satu satuan kenaikan variabel bebas. Uji statistiknya ngecek apakah koefisien itu beda dari nol secara nyata.
Bentuk persamaannya:
Y = a + bX + e
Y itu yang mau diprediksi, X itu prediktornya, a titik potong sumbu Y, b kemiringan garisnya, dan e sisa yang nggak kejelasin model.
Konsep dasarnya udah dibahas di regresi linear. Artikel ini fokus ke bagian ujinya.
Uji apa saja yang ada di dalam regresi linear?
Ada tiga lapis pengujian, dan ketiganya harus dibaca berurutan. Uji F ngecek kelayakan model secara keseluruhan. Uji t ngecek tiap koefisien satu per satu. R square ngukur seberapa besar keragaman variabel terikat yang kejelasin model. Ketiganya jawab pertanyaan berbeda.
| Bagian output | Pertanyaan yang dijawab | Cara baca |
|---|---|---|
| R square | Berapa persen keragaman Y yang kejelasin model? | 0 sampai 1, makin tinggi makin banyak yang kejelasin |
| Adjusted R square | Sama, tapi udah dihukum karena jumlah variabel | Dipakai kalau variabel bebasnya lebih dari satu |
| Uji F (ANOVA) | Modelnya layak nggak secara keseluruhan? | Sig di bawah 0,05 berarti model layak |
| Uji t (Coefficients) | Variabel ini ngaruh nggak secara sendiri? | Sig di bawah 0,05 berarti koefisiennya nyata |
| Beta terstandarisasi | Variabel mana yang paling kuat? | Bandingin nilai mutlaknya antar variabel |
Arti angka 0,05 dan cara nafsirin batasnya ada di glossary p-value.
Asumsi apa yang harus dipenuhi sebelum uji regresi?
Ada lima asumsi utama. Kalau salah satunya gagal, angka di output tetap keluar, tapi kesimpulannya bisa nyasar. Urutan pengecekannya: linearitas, normalitas residual, homoskedastisitas, bebas multikolinearitas, dan bebas autokorelasi.
- Linearitas. Hubungan X dan Y harus mendekati garis lurus. Cek pakai scatter plot sebelum ngapa-ngapain.
- Normalitas residual. Yang harus normal itu sisa model, bukan variabelnya. Simpan kolom residual dulu, baru jalanin Shapiro-Wilk ke kolom itu.
- Homoskedastisitas. Sebaran residual harus rata di semua tingkat prediksi. Plot residual versus nilai prediksi, polanya harus kayak awan tanpa bentuk.
- Bebas multikolinearitas. Variabel bebas nggak boleh saling kembar. Cek nilai VIF, patokan umumnya di bawah 10, dan banyak yang pakai batas lebih ketat di 5.
- Bebas autokorelasi. Berlaku buat data runtun waktu. Cek Durbin-Watson, nilai sekitar 1,5 sampai 2,5 biasanya dianggap aman.
Asumsi kedua yang paling sering salah dijalankan. Banyak mahasiswa nguji normalitas kolom X dan panik waktu hasilnya signifikan, padahal sebaran X boleh menceng.
Gimana cara menjalankan uji regresi linear?
Lima langkah, sama urutannya di SPSS maupun Python. Yang beda cuma tombolnya.
Langkah 1: Bikin scatter plot dulu
Sebelum ngitung apa pun, lihat bentuk hubungannya. Kalau titiknya melengkung, regresi linear bukan alat yang tepat.
Ini juga saat paling gampang buat ngeliat titik ekstrem yang bisa narik garis. Bahasan soal titik semacam ini ada di glossary outlier.
Langkah 2: Jalankan modelnya
Di SPSS: buka Analyze, pilih Regression, lalu Linear. Masukin variabel terikat ke kotak Dependent dan variabel bebas ke kotak Independent.
Di Python, versi paling ringkas pakai scipy buat regresi satu variabel:
from scipy import stats
promo = [3.0, 4.5, 2.0, 6.5, 5.0, 8.0, 7.0, 4.0]
omzet = [59.4, 62.1, 54.8, 70.2, 64.9, 74.5, 71.8, 61.0]
hasil = stats.linregress(promo, omzet)
print("intercept:", round(hasil.intercept, 2))
print("slope:", round(hasil.slope, 2))
print("r squared:", round(hasil.rvalue ** 2, 3))
print("p-value:", round(hasil.pvalue, 5))
Daftar lengkap nilai yang dibalikin fungsi ini ada di dokumentasi scipy linregress.
Langkah 3: Simpan residual dan nilai prediksi
Di SPSS, klik tombol Save, lalu centang Unstandardized pada Residuals dan Predicted Values. Dua kolom baru bakal muncul di data view.
Kolom inilah bahan buat ngecek asumsi 2 dan 3. Tanpa ini, pengecekan asumsinya cuma tebak-tebakan.
Langkah 4: Cek asumsinya
Jalanin Shapiro-Wilk ke kolom residual. Plot residual versus prediksi buat lihat homoskedastisitas.
Kalau variabel bebasnya lebih dari satu, minta VIF lewat tombol Statistics dan centang Collinearity diagnostics.
Langkah 5: Baca output dari atas ke bawah
Urutannya: Model Summary, lalu tabel ANOVA, lalu tabel Coefficients. Jangan langsung lompat ke Sig di tabel terakhir.
Gimana cara membaca output regresi linear?
Tiga tabel, tiga pertanyaan. Model Summary jawab seberapa besar yang kejelasin, ANOVA jawab apakah modelnya layak, dan Coefficients jawab arah serta besar pengaruh tiap variabel. Baca ketiganya berurutan, karena tabel bawah cuma masuk akal kalau tabel atas lolos.
Model Summary
Di sini ada R, R square, adjusted R square, dan standard error of the estimate.
R square 0,58 artinya 58 persen keragaman variabel terikat kejelasin model. Sisanya 42 persen dijelasin faktor yang nggak masuk model.
Adjusted R square selalu lebih kecil. Angka ini menghukum penambahan variabel yang nggak berguna, jadi pakai ini kalau variabel bebasnya lebih dari satu.
Tabel ANOVA
Baris yang dilihat cuma nilai F dan Sig. Kalau Sig di bawah 0,05, model kamu layak dipakai.
Kalau Sig di atas 0,05, berhenti di sini. Nggak ada gunanya nafsirin koefisien dari model yang secara keseluruhan nggak lolos.
Tabel Coefficients
Kolom B berisi koefisien dalam satuan asli. Ini yang kamu tulis di persamaan.
Kolom Beta berisi koefisien terstandarisasi. Angka ini nggak bersatuan, jadi bisa dipakai buat bandingin kekuatan antar variabel bebas.
Kolom t dan Sig ngetes apakah koefisiennya beda dari nol. Kolom Tolerance dan VIF buat cek multikolinearitas.
Contoh kasus: promo digital dan omzet toko_berkah
Dataset latihan toko_berkah di ngulikdata punya catatan mingguan selama 26 minggu. Variabel bebasnya biaya promo digital per minggu, variabel terikatnya omzet mingguan. Dua-duanya dalam juta rupiah.
Hasil modelnya:
omzet = 48,6 + 3,21 x promo
| Statistik | Nilai | Arti singkat |
|---|---|---|
| R square | 0,580 | 58 persen keragaman omzet kejelasin promo |
| Adjusted R square | 0,562 | Versi yang udah dihukum jumlah variabel |
| F (1, 24) | 33,1 | Model layak |
| Sig uji F | 0,000006 | Jauh di bawah 0,05 |
| Koefisien promo (B) | 3,21 | Tiap Rp 1 juta promo, omzet naik Rp 3,21 juta |
| t koefisien | 5,75 | Sig di bawah 0,05 |
Terjemahan bisnisnya: rata-rata tiap tambahan Rp 1 juta belanja promo dibarengi kenaikan omzet Rp 3,21 juta di minggu yang sama.
Sekarang bagian yang sering dilewat. Data promo di dataset ini cuma bergerak antara Rp 2 juta sampai Rp 9 juta per minggu.
Jadi persamaan itu cuma berlaku di rentang tersebut. Masukin angka Rp 50 juta ke rumus bakal ngasih ramalan Rp 209 juta, dan itu omong kosong. Nggak ada satu pun data yang mendukung rentang segitu.
Titik potong 48,6 juga bukan angka ajaib. Dia cuma nilai omzet waktu promo nol, dan di dataset ini nggak pernah ada minggu dengan promo nol. Angkanya jadi hasil perpanjangan garis, bukan pengamatan.
Terakhir, 42 persen keragaman omzet masih nggak kejelasin. Hari libur, cuaca, dan promo pesaing nggak masuk model. Itu ruang yang cukup besar buat salah tebak.
Kesalahan umum waktu baca output regresi
1. Nguji normalitas variabel, bukan residual. Yang punya asumsi normal itu sisa model. Sebaran X boleh menceng.
2. Ngejar R square tinggi dengan nambah variabel. R square selalu naik tiap variabel ditambah, walau variabelnya nggak nyambung. Pakai adjusted R square biar ketahuan.
3. Nafsirin koefisien padahal uji F gagal. Kalau model secara keseluruhan nggak lolos, koefisien per variabel nggak layak dibahas.
4. Ngeklaim sebab akibat. Regresi nunjukin pola hubungan. Buat klaim sebab akibat, kamu butuh desain eksperimen.
5. Meramal di luar rentang data. Garis regresi cuma valid di rentang nilai X yang kamu amati. Di luar itu, dia cuma perpanjangan garis tanpa bukti.
6. Bandingin koefisien B antar variabel dengan satuan berbeda. Koefisien jumlah karyawan dan koefisien biaya iklan nggak bisa diadu langsung. Pakai kolom Beta terstandarisasi.
7. Ngabaikan VIF di regresi berganda. Dua variabel yang isinya mirip bikin koefisien jadi liar dan tandanya bisa kebalik. Detailnya dibahas di regresi linear berganda.
FAQ
Apa bedanya uji F dan uji t di regresi linear?
Uji F ngetes model secara keseluruhan, apakah semua variabel bebas bareng-bareng punya pengaruh ke variabel terikat. Uji t ngetes satu koefisien per satu, apakah variabel itu punya kontribusi sendiri setelah variabel lain dikendalikan. Di regresi sederhana dengan satu variabel bebas, dua uji ini selalu ngasih kesimpulan sama, dan nilai F persis sama dengan t kuadrat.
R square berapa yang dianggap bagus?
Nggak ada patokan tunggal. Di data eksperimen laboratorium, R square 0,90 itu biasa. Di data perilaku manusia kayak survei kepuasan, 0,30 udah dianggap lumayan. Yang lebih penting: apakah koefisiennya masuk akal secara bisnis dan asumsinya lolos. R square tinggi dari model yang asumsinya berantakan itu nggak berguna.
Yang harus normal itu datanya atau residualnya?
Residualnya, yaitu selisih antara nilai asli dan nilai prediksi. Variabel bebas boleh sebarannya menceng, itu nggak melanggar asumsi apa pun. Banyak yang jalanin Shapiro-Wilk ke kolom X dan panik waktu hasilnya signifikan. Uji normalitas di regresi harusnya dijalankan ke kolom residual yang kamu simpan setelah model jalan.
Kalau salah satu asumsi regresi gagal, harus gimana?
Tergantung asumsi mana. Multikolinearitas tinggi dibenerin dengan ngeluarin salah satu variabel yang kembar. Heteroskedastisitas bisa diatasi pakai robust standard error atau transformasi logaritma pada variabel terikat. Residual nggak normal di sampel besar biasanya masih aman. Autokorelasi pada data runtun waktu butuh model deret waktu, bukan regresi biasa.
Regresi linear bisa buktiin sebab akibat nggak?
Nggak bisa sendirian. Regresi cuma nunjukin pola hubungan di data yang kamu punya. Buat klaim sebab akibat, kamu butuh desain yang ngendaliin faktor lain, misalnya eksperimen dengan penugasan acak. Tanpa itu, koefisien positif antara biaya promo dan omzet bisa aja muncul karena dua-duanya naik di bulan yang sama.
Penutup
Urutannya nggak boleh dibalik. Scatter plot dulu, lalu model, lalu simpan residual, lalu cek lima asumsi, baru baca output dari Model Summary ke bawah.
Dua jebakan yang paling mahal: nguji normalitas di kolom yang salah, dan meramal di luar rentang data. Dua-duanya bikin kesimpulan kelihatan rapi padahal keliru.
Coba ambil satu pasang variabel dari datamu, jalanin regresinya, lalu simpan residualnya dan cek sebarannya. Kalau mau balik ke dasar hipotesis dulu, baca uji hipotesis.
Mau praktek langsung? Mulai latihan SQL gratis
Latihan interaktif, langsung di browser.
Artikel terkait
Pandas to_excel: Ekspor DataFrame ke Excel (2026)
to_excel nyimpen DataFrame pandas jadi file Excel .xlsx. Ini cara pakainya, dari satu sheet sampai banyak sheet, plus setelan yang bikin hasilnya rapi.
Pandas read_excel: Baca File Excel di Python
pandas read_excel baca file Excel jadi DataFrame, bisa pilih sheet tertentu dan lompatin baris judul yang berantakan. Ini cara pakai plus parameter penting dengan contoh data toko.
Pandas read_csv: Baca File CSV di Python untuk Analis
pandas read_csv baca file CSV jadi DataFrame siap olah cuma satu baris kode. Ini cara pakai plus parameter penting kayak sep, encoding, dan usecols dengan contoh data toko.