Anda di halaman 1dari 15

LAPORAN PRATIKUM

REGRESI LINIER BERGANDA

DISUSUN OLEH:

NAMA : 1. PUJI PERMATA SARI (C1A021018)

2. ADRIAN ALAMSYAH (C1A021084)

3. RIZKY PRANAMA SURYA (C1A021088)

ASISTEN DOSEN : IKHSAN ADI NUGROHO (G1A019046)

DOSEN PENGAMPU: INDRA AGUSTIAN, S.T., M.Eng

PROGRAM STUDI EKONOMI PEMBANGUNAN

FAKULTAS EKONOMI DAN BISNIS

UNIVERSTAS BENGKULU

2021
LANDASAN TEORI

Regresi Linier hanya bisa digunakan untuk data yang bersifat interval dan
ratio yang biasanya bersifat diskrit dan kontinu, dan merupakan analisis bivariate
dan multivariate. Regresi Linier melibatkan 2 variabel dimana salah satunya
adalah variabel independent (x) dan satu lagi adalah variabel dependen (y).

Independen berarti variabel ini sebagai variabel utama yang mungkin akan
mempengaruhi nilai variabel kedua (dependen). Dependen berarti nilai variabel
ini akan tergantung dari nilai variabel independennya, jika korelasi tinggi maka
dependensi juga tinggi.

Multiple Linear Regression (MLR) adalah teknik prediksi. Ini memberikan


penjelasan untuk memahami hubungan antara satu variabel dependen atau target
kontinu (y) dan dua atau lebih variabel independent atau prediktor (x).

Persamaan MLR adalah y = bo + b1x1 + b2x2 + … + bnxn, dimana bo


adalah perpotongan, b1 adalah koefisien dari x1, demikian pula b2 adalah
koefisien dari x2 dan seterusnya.

Hal lain yang perlu diperhatikan dalam membuat model linear regresi
(simple atau multi), maka variabel dependen harus memenuhi beberapa asumsi
lainnya. Dimana jika asumsi ini tidak terpenuji maka model dinyatakan tidak
cukup baik. Asumsi-asumsi tersebut antara lain: Linearity, Homoscedasticity,
Multivariate normality, Independence of errors, dan Lack of multicollinearity.

Kelebihan metode regresi linier berganda diantaranya melakukan


generalisasi dan ekstraksi dari pola data tertentu, mampu mengakuisisi
pengetahuan walau tidak ada kepastian, dan mampu melakukan perhitungan
secara paralel sehingga proses lebih singkat. Multiple regresi juga bisa
diaplikasikan untuk data biologis seperti data pertumbuhan tanaman, data DNA,
data medis, data eskerimen dan masih banyak lagi. Umumnya, analisis regresi
digunakan untuk prediksi atau ramalan. Sedangkan hubungan variabel tersebut
bersifat fungsional yang diwujudkan dalam suatu model matematis.

1
PEMBAHASAN

1. Import Library dan Package

Gambar 1.1 Source code import library dan package


Source Code:

import numpy as np
import pandas as pd 
import pylab as pl 
import matplotlib.pyplot as plt
from sklearn.linear_model import LinearRegression
from sklearn.model_selection import train_test_split

Penjelasan:
Pada gambar 1.1 terdapat source code import numpy as np yang berfungsi
untuk mengimport lalu membuat list, import pandas as pd untuk data frame yaitu
berfungsi analisis data, source code import pylab as pl dan import
matplotlib.pyplot as plt untuk plotting, serta from sklearn.linear_model import
LinearRegression berfungsi untuk memanggil algoritma Linear Regression dan
from sklearn.model_selection import train_test_split berfungsi untuk membagi
data menjadi training dan testing set.
2. Mengupload Data

Gambar 2.1 Source code untuk mengupload data

2
Source Code:
from google.colab import files

uploaded=files.upload()

Penjelasan:
Pada gambar 2.1 terdapat source code from google.colab import files dan
uploaded=files.upload () yang nantinya memberikan perintah untuk mengimport
file csv yang telah tersedia di excel.
Output:

Gambar 2.2 Output dari mengimport file file csv


Penjelasan:
Pada gambar 2.2 terdapat output dari file yang telah diimport tadi, yaitu
file yang akan diregresi linearkan.
3. Membaca Data

Gambar 3.1 Source code membaca data


Source Code:
df = pd.read_csv("heart failure prediction dataset.csv")

df.head()

Penjelasan:
Pada gambar 3.1 terdapat source code df = pd.read_csv (“heart failure
prediction dataset.csv”) yang berfungsi untuk membaca data dari file heart failure

3
prediction dataset, sedangkan df.head () berfungsi untuk menampilkan objek
berdasarkan posisi.
Output:

Gambar 3.2 Output data


Penjelasan:
Pada gambar 3.2 terdapat output dari heart failure prediction dataset atau
dataset prediksi gagal jantung. Dataset ini berisi: Age, Sex, ChestPainType,
RestingBP, Cholesterol, FastingBS, RestingECG, MaxHR, ExerciseAngina,
Oldpeak, ST_Slope, dan HeartDisease.
4. Analisis Data

Gambar 4.1 Source code data yang ingin dianalisis


Source Code:
cdf = df[["Age", "MaxHR"]]

cdf.head(9)

Penjelasan:
Pada gambar 4.1 terdapat source code cdf = df [[“Age”, “MaxHR”]] yang
berfungsi memberikan perintah untuk data frame terhadap data Age dan MaxHR,
dan source code cdf.head(9) merupakan perintah untuk menampilkan objek
dengan posisi 9 baris.

4
Output:

Gambar 4.2 Output Analisis Data


Penjelasan:
Pada gambar 4.2 terdapat output terhadap data Age dan MaxHR dengan
jumlah 9 baris.
5. Membaca Statistik Data

Gambar 5.1 Source code membaca statistik data


Source Code:
df.describe()

Penjelasan:
Pada gambar 5.1 terdapat source code df.describe () yang berfungsi untuk
menampilkan statistik data.

5
Output:

Gambar 5.2 Output dari membaca statistik data


Penjelasan:
Pada gambar 5.2 terdapat output dari membaca statistik data. Output
tersebut menampilkan jumlah data di setiap kolom (count), rata-rata nilai tiap
kolom (mean), standard deviasi (std), nilai minimun (min), nilai maksimum (max),
serta batas nilai dari masing-masing kuartil (25%, 50%, 75%).
6. Plot Hubungan Antar Data

Gambar 6.1 Source code plot hubungan antar data


Source Code:
plt.scatter(cdf.MaxHR, cdf.Age, color='blue')
plt.xlabel("MaxHR")
plt.ylabel("Age")
plt.show()

Penjelasan:
Pada gambar 6.1 terdapat source code plt.scatter (cdf.MaxHR, cdf.Age,
color=’blue’) yang digunakan untuk memplot pada MaxHR dan Age dengan
tampilan berwarna biru, plt.xlabel (“MaxHR”) untuk menunjukkan MaxHR
diposisi garis horizontal (x), plt.ylabe (“Age”) untuk menunjukkan Age diposisi
garis vertical (y) dan plt.show () untuk menampilkan hasilnya.

6
Output:

Gambar 6.2 Output plot hubungan antar data


Penjelasan:
Pada gambar 6.2 adalah hubungan antara MaxHR dan Age.
7. Membagi Data

Gambar 7.1 Souce code membagi data


Source Code:
msk = np.random.rand(len(df)) < 0.8
train = cdf[msk]
test = cdf[~msk]

Penjelasan:
Pada gambar 7.1 terdapat source code msk = np.random.rand (len(df)) <
0.8 yang artinya menghasilkan angka acak dari distribusi seragam standar (yaitu,
11 distribusi seragam dari 0 hingga 1), dan menampilkan angka-angka itu sebagai
array Numpy dan msk dalah array boolean.

7
8. Membuat Variabel

Gambar 8.1 Source code membuat variabel


Source Code:
x = df['MaxHR'].values.reshape(-1,1)
y = df['Age'].values.reshape(-1,1)

Penjelasan:
Pada gambar 8.1 terdapat source code x = df [‘MaxHR’].values.reshape (-
1,1) dan y = df [‘Age’].values.reshape (-1,1) yang berguna untuk membuat
variabel dalam regresi linear.
9. Training Data Menggunakan Data Split Sebelumnya

Gambar 9.1 Source code training data


Source Code:
x_train, x_test, y_train, y_test = train_test_split(x, y, 
test_size=0.2)

Penjelasan:
Pada gambar 9.1 terdapat source code x_train, x_test, y_train, y_test =
train_test_split(x, y, test_size=0.2) yang berfungsi untuk training data pada data
yang telah di split sebelumnya.
10. Mencari Nilai Koefisien dan Intercept

Gambar 10.1 Source code mencari koefisien dan intercept

8
Source Code:
lin_reg = LinearRegression()
lin_reg.fit(x_train, y_train)
print(lin_reg.coef_)
print(lin_reg.intercept_)

Penjelasan:
Pada gambar 10.1 terdapat sejumlah source code yang berguna untuk
mencari nilai koefisien dan intercept.
Output:

Gambar 10.2 Output nilai koefisien dan intercept


Penjelasan:
Pada gambar 10.2 merupakan output atau nilai dari koefisien dan intercept,
yaitu -0.1548382 dan 74.82221393
11. Visualisasi Data Hasil Training Menggunakan Plot

Gambar 11.1 Source code visualisasi data hasil training dengan plot
Source Code:
y_prediksi = lin_reg.predict(x_test)
plt.scatter(x_test, y_test)
plt.plot(x_test, y_prediksi, c='r')
plt.xlabel('MaxHR')
plt.ylabel('Age')

Penjelasan:
Pada gambar 11.1 terdapat sejumlah source code yang berguna untuk
menampilkan hasil data yang telah ditraining dalam bentuk plot dengan posisi
MaxHR pada titik x dan Age pada titik y.

9
Output:

Gambar 11.2 Output visualisasi data


Penjelasan:
Pada gambar 11.2 terdapat output dari visualisasi data yang sudah
ditraining dengan garis merah yang menunjukkan regression line yang dibuat
sebelumnya.
12. Menghitung Error

Gambar 12.1 Source code menghitung error


Source Code:
from sklearn.metrics import r2_score

test_x = np.asanyarray(test[['MaxHR']])
test_y = np.asanyarray(test[['Age']])
test_y_= regr.predict(test_x)

print("Mean absolute error: %.2f" % np.mean(np.absolute(t
est_y_ - test_y)))

10
print("Residual sum of squares (MSE): %.2f" % np.mean((te
st_y_ - test_y) ** 2))
print("R2-score: %.2f" % r2_score(test_y_ , test_y) )

Penjelasan:
Pada gambar 12.1 terdapat sejumlah source code yang berguna untuk
menghitung error data yang telah dibuat, hal ini digunakan untuk melihat seberapa
besar faktor lain dalam mempengaruhi suatu data atau variabel.
Output:

Gambar 12.2 Output menghitung error


Penjelasan:
Dari sejumlah source code pada menghitung error tersebut, dapat diketahui
bahwa Mean absolute error senilai 7.06, Residual sum of squares (MSE) senilai
76.86, dan R2-score senilai -6.23.
13. Prediksi Umur dengan Detak Jantung Maksimum (Max Heart Rate) 50

Gambar 13.1 Source code menghitung prediksi umur dengan MaxHR 50


Source Code:
lin_reg.predict([[50]])

Penjelasan:
Pada gambar 13.1 terdapat source code yang berguna untuk meprediksi
umur dengan detak jantung maksimum 50.
Output:

Gambar 13.2 Output dari menghitung prediksi umur dengan MaxHR 50.

11
Penjelasan:
Pada gambar 13.2 prediksi umur pada detak jantung maksimum 50 adalah
67.18248011 atau 67 tahun.
14. Prediksi Umur dengan Detak Jantung Maksimum (Max Heart Rate) 75

Gambar 14.1 Source code menghitung prediksi umur dengan MaxHR 75


Source Code:
lin_reg.predict([[75]])

Penjelasan:
Pada gambar 14.1 merupakan source code yang berguna untuk meprediksi
umur dengan detak jantung maksimum 75.
Output:

Gambar 14.2 Output dari menghitung prediksi umur dengan MaxHR 75


Penjelasan:
Pada gambar 14.2 prediksi umur pada detak jantung maksimum 75 adalah
63.26656828 atau 63 tahun.
15. Prediksi Umur dengan Detak Jantung Maksimum (Max Heart Rate) 100

Gambar 15.1 Source code menghitung prediksi umur dengan MaxHR 100
Source Code:
lin_reg.predict([[100]])

Penjelasan:
Pada gambar 14.1 merupakan source code yang berguna untuk meprediksi
umur dengan detak jantung maksimum 100.

12
Output:

Gambar 15.2 Ouput dari menghitung prediksi umur dengan MaxHR 100.
Penjelasan:
Pada gambar 15.2 prediksi umur pada detak jantung maksimum 100
adalah 59.35065644 atau 59 tahun.

13
DAFTAR PUSTAKA

Jimy. (2019). Regresi Linier dengan R dan Python.


https://medium.com/@jrendz/regresi-linier-dengan-r-dan-python-ebb80662c6da
(diakses pada tanggal 22 Desember 2021)
Herlambang, MB. (2020). Machine Learning:Multiple Linear Regression.
https://www.megabagus.id/multiple-linear-regression/ (diakses pada tanggal 22
Desember 2021)

14

Anda mungkin juga menyukai