×

Belajar R – Regresi Linear Berganda – R Squared

Belajar R – Regresi Linear Berganda – R Squared

2,668 Views

Sinopsis

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

    \[Y=\beta_0+\beta_1X_1+\beta_2X_2+...+\beta_nX_n\]

  1. \beta_0 disebut dengan intercept
  2. X_n disebut dengan variabel bebas / independen
  3. Y 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

    \[Y=\beta_0+\beta_1X_1+\beta_2X_2+...+\beta_nX_n\]

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 \hat e merupakan selisih antara variabel dependen Y dengan variabel prediksi \hat Y

    \[\hat e = Y - \hat Y\]

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 r^2 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 r^2 mendekati 1 maka model regresi linear mampu melakukan estimasi dengan baik.

    \[r^2 = \frac{\sum{(\hat Y - \bar Y)^2}}{\sum{(Y - \bar Y)^2}}\]

Harap dibedakan antar notasi \hat Y dan \bar Y, 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

 

 

You May Have Missed