Belajar R – Regresi Linear Berganda – R Squared
Sinopsis
Contents
Tentu kalian sudah akrab dengan analisis regresi yang telah penulis bahas menggunakan bahasa Matlab beserta rumus persamaan matematika yaitu https://softscients.com/2020/03/26/buku-belajar-machine-learning-dengan-matlab-regresi-linear/ dan https://softscients.com/2020/03/26/buku-belajar-machine-learning-dengan-matlab-regresi-linear-berganda/ . Biar tidak membahas yang berulang-ulang kalian bisa pelajari sendiri di link tersebut. Analisis regresi digunakan ketika dijumpai sebuah variabel yang bersifat metrik misalkan penghasilkan perbulan, tinggi badan, berat badan, jumlah mobil yang diproduksi, sedangkan non metrik maka analisis yang digunakan berupa regresi logistik, analisis diskriminan, atau pohon klasifikasi (classification tree). Persamaan matematika untuk regresi linear berganda yaitu
- disebut dengan intercept
- disebut dengan variabel bebas / independen
- disebut dengan variabel tak bebas / dependen
Dataset
Dataset yang digunakan sama dengan link diatas yaitu untuk memprediksi pengaruh PER (sebagai X1) dan ROI (sebagai X2) terhadap harga saham (sebagai Y) yang disimpan dengan nama saham.csv
tahun,harga,per,roi 2003,8300,5,6 2004,7500,3,5 2005,8950,4,4 2006,8250,5,6 2007,9000,4,3 2008,8750,3,5 2009,9500,5,6 2010,8500,6,4 2011,8350,4,6 2012,9500,6,5 2013,9750,7,6
Analisis Korelasi Pearson
Sebagai analisis awal, kita akan melakukan analisis terhadap nilai korelasi pearson ref: https://softscients.com/2020/04/17/buku-belajar-dasar-dasar-statistika-dengan-r-korelasi-linear-pearson/
saham <-read.csv('saham.csv') head(saham) r1 = cor(saham$per,saham$harga,method='pearson') print(paste('nilai korelasi pearson PER vs HARGA',r1,sep=': ')) r2 = cor(saham$roi,saham$harga,method='pearson') print(paste('nilai korelasi pearson ROI vs HARGA',r2,sep=': '))
hasil
[1] "nilai korelasi pearson PER vs HARGA: 0.585613749218283" [2] "nilai korelasi pearson ROI vs HARGA: -0.00846759106408295"
Rupanya nilai tersebut tidak begitu menarik nilainya karena sangat rendah / tidak mendekati -1 dan +1. Tapi tidak mengapa karena hanya sebuah contoh saja.
Model Regresi Linear Berganda
Hal menarik dari function yang digunakan untuk memodelkan regresi linear berganda pada R dengan memanggil perintah lm() singkatan dari linear model, seperti berikut layaknya sebuah bahasa simbolik
model = lm (formula = harga ~ per + roi, data = saham) print(model)
hasil
Call: lm(formula = harga ~ per + roi, data = saham) Coefficients: (Intercept) per roi 7735.1 328.6 -104.0
Menunjukan rumus berikut
Maka nilai nya yaitu
b0 = model$coefficient[1] b1 = model$coefficient[2] b2 = model$coefficient[3] print(data.frame(b0,b1,b2))
hasil
b0 b1 b2 (Intercept) 7735.088 328.6184 -104.0022
Prediksi Regresi Linear Berganda
Untuk melakukan prediksi gunakan persamaan diatas yang dibuat kode menjadi berikut
harga_estimasi = b0+b1*saham$per+b2*saham$roi print(data.frame(saham$harga,harga_estimasi))
hasil
saham.harga harga_estimasi 1 8300 8754.167 2 7500 8200.932 3 8950 8633.553 4 8250 8754.167 5 9000 8737.555 6 8750 8200.932 7 9500 8754.167 8 8500 9290.789 9 8350 8425.548 10 9500 9186.787 11 9750 9411.404
Perhitungan Nilai Residual untuk setiap Pengamatan
Nilai residual dilambangkan dengan merupakan selisih antara variabel dependen dengan variabel prediksi
residual = saham$harga-harga_estimasi print(data.frame(saham$harga,harga_estimasi,residual))
saham.harga harga_estimasi residual 1 8300 8754.167 -454.16667 2 7500 8200.932 -700.93202 3 8950 8633.553 316.44737 4 8250 8754.167 -504.16667 5 9000 8737.555 262.44518 6 8750 8200.932 549.06798 7 9500 8754.167 745.83333 8 8500 9290.789 -790.78947 9 8350 8425.548 -75.54825 10 9500 9186.787 313.21272 11 9750 9411.404 338.59649
Mengukur Kinerja Model Regresi Linear dengan Koefisien Determinasi
Koefisien determinasi atau R-Squared berguna untuk mengukur kemampuan model regresi linear dalam melakukan prediksi/estimasi. Nilai koefisien determinasi mempunyai rentang nilai 0 sampai dengan 1, bila nilai mendekati 1 maka model regresi linear mampu melakukan estimasi dengan baik.
Harap dibedakan antar notasi dan , kode yang digunakan untuk R-Squared yaitu
determinasi = sum((harga_estimasi-mean(saham$harga))^2) / sum((saham$harga-mean(saham$harga))^2) print(determinasi)
hasil
[1] 0.3677723
Nilai koefisien determinasi (R-squared) bernilai 0.3677723. Nilai tersebut dapat diinterpretasikan variabel PER dan ROI mampu menjelaskan atau menerangkan variation dari variabel HARGA_SAHAM sebesar 36.77%, sisanya sebesar 63.22 % dijelaskan oleh variabel atau faktor lain.
Perintah summary
Untuk melihat lebih detail mengenai model regresi diatas, bisa menggunakan perintah summary()
summary(model)
hasil
Call: lm(formula = harga ~ per + roi, data = saham) Residuals: Min 1Q Median 3Q Max -790.8 -479.2 262.4 327.5 745.8 Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) 7735.1 1052.6 7.349 8e-05 *** per 328.6 152.3 2.157 0.0631 . roi -104.0 185.5 -0.561 0.5905 --- Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 Residual standard error: 594 on 8 degrees of freedom Multiple R-squared: 0.3678, Adjusted R-squared: 0.2097 F-statistic: 2.327 on 2 and 8 DF, p-value: 0.1598
Kalian bisa melihat nilai Multiple R-squared: 0.3678
, dan informasi statistik yang lainnya