# Memuat paket yang diperlukan
library(stats)
library(readxl)
# Membaca data dari file Excel
<- read_excel("data/data_regresilinear.xlsx")
data head(data) # Menampilkan beberapa baris pertama dari data
# Melakukan regresi linear sederhana
<- lm(IRR ~ `Debt Ratio` + `Current Ratio` + TA, data = data) # Gunakan backticks untuk nama variabel dengan spasi
model summary(model) # Menampilkan ringkasan model
Topik 10 | Regresi
1. Regression
Regresi (regression) adalah suatu teknik statistik yang digunakan untuk memahami hubungan antara satu atau lebih variabel independen (dikenal sebagai prediktor) dan variabel dependen (dikenal sebagai respons). Tujuan utama dari analisis regresi adalah untuk memodelkan dan memahami sejauh mana perubahan dalam variabel independen memengaruhi variabel dependen.
Regresi digunakan dalam berbagai bidang seperti ilmu sosial, ekonomi, ilmu alam, kedokteran, dan bisnis untuk menjelaskan atau memprediksi hubungan antara variabel-variabel yang diamati.
1.1 Contoh Kasus
Pada data ini (input data excel), terdapat empat variabel yang terdiri dari tiga variabel independen dan satu variabel dependen. Variabel independennya adalah Rasio Hutang (Debt Ratio), Rasio Lancar (Current Ratio), dan Total Assets. Sementara itu, variabel dependennya adalah Keputusan Investasi. Dalam konteks ini, peneliti tertarik untuk mengamati pengaruh ketiga variabel tersebut terhadap variabel dependen menggunakan Regresi Linear
Contoh code Regresi Linear :
Hasil :
Penjelasan :
Residuals (Sisa)
- Residuals mengukur perbedaan antara nilai aktual dan nilai yang diprediksi oleh model regresi. Nilai minimum, kuartil pertama (1Q), median, kuartil ketiga (3Q), dan nilai maksimum dari residual menunjukkan seberapa baik model kita memperkirakan data. Semakin kecil nilai residual, semakin baik model kita dalam memprediksi data.
Koefisien
Intercept (Konstanta): Nilai estimasi intercept pada garis regresi. Ini adalah nilai prediksi ketika semua variabel independen bernilai nol.
Nilai t-statistik dan p-value digunakan untuk menguji signifikansi koefisien. Jika p-value rendah (biasanya < 0.05), kita dapat menyimpulkan bahwa koefisien tersebut signifikan secara statistik. Pada gambar ini ketiga variabel yaitu Current Ratio, Debt Ratio dan Total Aset (TA) tidak mempengaruhi Keputusan Investasi dikarenakan nilainya kurang dari 0.5
Residual Standard Error (RSE)
- RSE mengukur seberapa baik model kita memprediksi data. Semakin rendah nilai RSE, semakin baik model kita dalam memperkirakan nilai variabel dependen. Pada kasus ini memiliki nilai 0.1504 yang dimana standar model dikatakan baik itu nilainya dibawah 0.05. Sehingga bisa disimpulkan model ini kurang baik dalam memprediksi hasil akhir
Multiple R-squared dan Adjusted R-squared
Multiple R-squared mengukur seberapa baik variabel independen menjelaskan variasi dalam variabel dependen. Nilai ini berkisar antara 0 hingga 1, dan semakin tinggi nilainya, semakin baik model kita.
Adjusted R-squared memperhitungkan jumlah variabel independen dan mengoreksi multiple R-squared untuk kompleksitas model. Nilai ini lebih konservatif dan menghindari overfitting.
F-statistik
- F-statistik digunakan untuk menguji signifikansi keseluruhan model regresi. Jika p-value rendah, kita dapat menyimpulkan bahwa model secara keseluruhan signifikan. Pada kasus ini nilai F dilihat pada p-value yang bernilai 0.3646 yang dimana syarat dikatakan bawah model kesuluruhan varibel Independen mempengaruhi variabel Dependen harus dibawah 0.05
Kesimpulan Kasus
Setelah melakukan analisis dengan menggunakan Regresi Linear, dapat disimpulkan bahwa ketiga variabel independen, yaitu Debt Ratio (X1), Current Ratio (X2), dan Total Aset (X3), tidak memiliki pengaruh signifikan terhadap variabel dependen, yaitu Keputusan Investasi (Y). Hal ini disebabkan oleh nilai signifikansi yang berada di bawah 0,05.
Selain itu, nilai F-Statistik juga menunjukkan angka di bawah 0,05, yang mengindikasikan bahwa ketiga variabel tersebut belum dapat secara signifikan menjelaskan variabilitas variabel dependen. Dengan demikian, model regresi linear saat ini belum dapat dianggap baik karena variabel independennya tidak mampu mewakili atau memprediksi variabel dependen dengan cukup baik.
2. Regresi Logistik
2.1 Apa itu Regresi Logistik
Regresi logistik adalah sebuah metode statistik yang digunakan untuk memodelkan hubungan antara satu atau lebih variabel independen (biasanya disebut prediktor atau fitur) dengan variabel dependen biner (biasanya disebut variabel respons atau target). Variabel dependen ini hanya memiliki dua nilai atau kategori yang mungkin, misalnya “ya” atau “tidak”, “sukses” atau “gagal”, “benar” atau “salah”.
2.2 Tujuan Regresi Logistik
Tujuan dari regresi logistik adalah untuk memprediksi probabilitas bahwa suatu kejadian atau hasil akan terjadi berdasarkan nilai-nilai dari variabel prediktor yang diberikan. Model regresi logistik menghasilkan koefisien untuk setiap variabel prediktor yang menunjukkan seberapa besar pengaruh variabel tersebut terhadap probabilitas hasil yang diamati.
2.3 Visualisasi Regresi Logistik
Kurva regresi logistik ditampilkan dalam warna biru.
Bentuk kurva ini adalah S-shaped (mirip huruf “S”).
Dimulai dari Y=0, kemudian naik perlahan, tiba-tiba meningkat di tengah, dan akhirnya mendatar menuju Y=1.
Model ini cocok untuk masalah klasifikasi biner, di mana output berada dalam rentang 0 hingga 1.
2.4 Contoh Kasus Regresi logistik
Pada data ini (input data excel), terdapat empat variabel yang terdiri dari tiga variabel independen dan satu variabel dependen. Variabel independennya adalah kenaikan penjualan, arus kas bebas, dan perencanaan pajak. Sementara itu, variabel dependennya adalah perataan laba. Dalam variabel dependennya menunjukkan, nilai 1 menunjukkan tindakan perataan laba sedangkan nilai 0 menunjukkan ketiadaan tindakan perataan laba. Dalam konteks ini, peneliti tertarik untuk mengamati pengaruh ketiga variabel tersebut terhadap variabel dependen yang bersifat biner.
Code Regression Linear Logistik :
# Memuat paket yang diperlukan
library(stats)
library(readxl)
# Membaca data dari file Excel
<- read_excel("data/data_logistik.xlsx")
dataa head(dataa) # Menampilkan beberapa baris pertama dari data
# A tibble: 6 × 4
X1 X2 X3 Y1
<dbl> <dbl> <dbl> <dbl>
1 -0.0125 0.211 0.756 1
2 -0.0492 0.239 0.761 1
3 -0.119 0.242 0.809 1
4 0.389 0.438 0.787 1
5 0.381 0.382 0.786 1
6 -0.188 0.152 1.44 1
# Melakukan regresi logistik dengan menggunakan kolom 'income_smoothing' sebagai variabel dependen
# dan kolom 'X1', 'X2', dst sebagai variabel independen
<- glm(Y1 ~ X1 + X2 + X3, data = dataa, family = binomial)
logistic_model
# Menampilkan ringkasan model
summary(logistic_model)
Call:
glm(formula = Y1 ~ X1 + X2 + X3, family = binomial, data = dataa)
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -2.5806 0.6709 -3.847 0.000120 ***
X1 3.0130 0.7970 3.781 0.000157 ***
X2 3.6044 1.4433 2.497 0.012514 *
X3 0.5108 0.5781 0.884 0.376943
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 160.48 on 129 degrees of freedom
Residual deviance: 129.44 on 126 degrees of freedom
AIC: 137.44
Number of Fisher Scoring iterations: 5
# Melakukan prediksi pada dataset yang sama
<- predict(logistic_model, type = "response")
predicted
# Konversi hasil prediksi menjadi kelas (0 atau 1) berdasarkan threshold 0.5
<- ifelse(predicted > 0.5, 1, 0)
predicted_class
# Menampilkan confusion matrix
<- table(predicted_class, dataa$Y1)
conf_matrix conf_matrix
predicted_class 0 1
0 87 19
1 3 21
# Menghitung akurasi
<- sum(diag(conf_matrix)) / sum(conf_matrix)
accuracy cat("Akurasi:", accuracy, "\n")
Akurasi: 0.8307692
# Menghitung precision, recall dan F1 Score
<- conf_matrix[2,2] / sum(conf_matrix[,2])
precision <- conf_matrix[2,2] / sum(conf_matrix[2,])
recall <- 2*(precision * recall)/(precision+recall)
f1_score
cat("Precision sebesar ", precision, "\n" )
Precision sebesar 0.525
cat("Recall sebesar ", recall, "\n" )
Recall sebesar 0.875
cat("F1 Score sebesar ", f1_score, "\n" )
F1 Score sebesar 0.65625
Penjelasan :
Koefisien
- Dalam analisis regresi, koefisien menggambarkan pengaruh variabel prediktor terhadap variabel target.
- Dalam gambar, terdapat empat koefisien yang ditampilkan:
Intercept: Koefisien untuk nilai (X) ketika semua variabel prediktor lainnya nol.
(X_1), (X_2), dan (X_3): Koefisien untuk masing-masing variabel prediktor.
- Setiap koefisien memiliki estimasi (nilai perkiraan), kesalahan standar, nilai (z), dan nilai (p) ((Pr(>|z|)))
Signifikansi
Nilai (p) ((Pr(>|z|))) menunjukkan seberapa signifikan pengaruh koefisien terhadap variabel target.
Nilai (p) yang lebih kecil menunjukkan signifikansi yang lebih tinggi.
Tanda asterisk (*, **, atau ***) menunjukkan tingkat signifikansi (misalnya, *** berarti sangat signifikan). Yang artinya X1 dan X2 berpengaruh signifikan terhadap Y
Kelayakan Model
- Precision menunjukkan proporsi dari prediksi positif yang benar terhadap total prediksi positif. Nilai 0,525 menunjukkan bahwa sekitar 52,5% dari semua prediksi positif yang dilakukan oleh model benar-benar positif.
- Recall (juga dikenal sebagai sensitivitas) mengukur seberapa baik model dapat mengidentifikasi kelas positif. Nilai 0,875 menunjukkan bahwa sekitar 87,5% dari semua sampel yang sebenarnya positif berhasil diidentifikasi oleh model.
- F1 score adalah rata-rata harmonis dari precision dan recall, memberikan gambaran keseluruhan tentang kinerja model. Nilai 0,65625 menunjukkan keseimbangan antara precision dan recall. Semakin tinggi nilai F1 score, semakin baik keseimbangan antara precision dan recall.
- Akurasi merupakan proporsi dari prediksi yang benar secara keseluruhan. Nilai 0,8307692 menunjukkan bahwa sekitar 83,08% dari semua prediksi yang dibuat oleh model adalah benar.
Kesimpulan Kasus
Setelah menganalisis data dengan menggunakan Regresi Logistik, dapat disimpulkan bahwa variabel Kenaikan Penjualan (X1) dan Arus Kas Bebas (X2) memiliki pengaruh signifikan terhadap Perataan Laba (Y), ditunjukkan oleh nilai signifikansi masing-masing di bawah 0.05, yaitu 0.001 dan 0.01. Sementara itu, variabel Perencanaan Pajak (X3) tidak memiliki pengaruh signifikan terhadap Perataan Laba (Y), karena nilai signifikansinya lebih dari 0.05, yaitu sebesar 1. Secara keseluruhan, model memiliki kelayakan yang baik, karena akurasi mencapai 83,08%, yang menunjukkan bahwa sampel dalam uji latih model dapat diprediksi dengan benar.