MULTIPLE REGRESI
- Multipe Linear Regression
variable bebas yang terlibat tidak hanya satu saja melainkan beberapa variable bebas. Hal ini dikarenakan input yang digunakan lebih dari satu dimensi.
PERSAMAAN
Y=b+e+m1x1 +242 + ... + mn*xn
- Y = dependent variable
- mn = koefisien dari persamaan
- Xn = independent variablE
- b = intercept
- e - error
Contoh Kasus Multiple Linear Regresi
CONTOH STUDY KASUS
Udin hendak membeli rumah di daerah King Country US, dengan kriteri sebagai berikut : :
- Jumlah Bedrooms = 3
- Jumlah Bathrooms - 2
- Luas rumahnya = 1800 sqft
- Dengan grade 7
- Tahun Pembuatan 1990
- Bantu udin untuk mempresiksi rumah idamannya
- Data harga rumah dapat diambil dari kaggle: https://www.kaggle.com/vikrishnan/boston-house-prices?select=housing.csv
Langkah penyelesaian
Penyelesaian Masalah
jika dilihat dari apa yang diinginkan Udin, maka kita dapat menngunakan metode Multiple Linear, Regression dikarenakan memiliki lebih dari 1 variabel bebas
- Variabel bebas disini ialah rumah dengan jumlah kamar tidur itu 3 jumlah kamar mandinya itu 2, luas rumahnya itu 1800sqft, grade rumahnya tahun pembangunanya pada tahun 1990
- terhadap variabel terikat ialah Harga
langkah Pembuatan
import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
import seaborn as sns
from sklearn.linear_model import LinearRegression
from sklearn.model_selection import train_test_split
Load datasets
#Nama dataframe kita adalah df yang berisi data dari housing.csv.
#Features yang digunakan adalah 'bedrooms 1, 'bathrooms', 'soft_living', 'grade', 'price' dan 'yr_built'
filecsv= "C:/Alde/kc_house_data.csv"
df = pd.read_csv(filecsv, usecols=['bedrooms', 'bathrooms', 'sqft_living', 'grade', 'price', 'yr_built'])
Sneak peak data
#Melihat 5 baris teratas dari data
#Independent variable(x) adalah bedrooms, bathrooms, sqft_living, grade, yr_built
#Defendent variable (y) adalah price
#Melihat statistical desription dari data mulai dari mean, kuartil, standard deviation dll
df describe
- Pada feature bathrooms terdapat nilai pecahan. maka kita ubah dulu jenis data yang semula float menjadi int.
- Pada feature bedrooms terdapat nilai 33, jadi kemungkinan itu typo dan akan saya ganti menjadi 3
#Merubah tipe data dari bathrooms yang semula float menjpdi int df['bathrooms') = df['bathrooms'].astype('int')
#Mengganti nilai 33 menjadi 3 df['bedrooms'] = df['bedrooms').replace(33,3) )
#Melihat statistical description dari data mulai dari mean, kuartill, standard deviation dll
df.describe()
Handling Misssing Values/nilai kosong/Melihat Kelengkapan data
# Mencari dan menangani missing values
#ternyata data kita tidak ada missing values
df.isnull().sum()
#Melihat distribusi dari bathrooms
f = plt.figure(figsize=(12,4))
f.add_subplot(1,2,1)
sns.countplot(df['bedrooms'])
f.add_subplot(1,2,2)
plt.boxplot(df['bedrooms'])
plt.show()
- Dapat dilihat bahwa besar jumlah kamar tidur itu angka 3 dan 4
- Data memilki banyak outlers
ANALISIS BATHROOM
#Univariate analysis sqft_living
#Melihat distribusi dari sqft_living
f = plt.figure(figsize=(12,4))
f.add_subplot(1,2,1)
df['sqft_living'].plot(kind='kde')
f.add_subplot(1,2,2)
plt.boxplot(df['sqft_living'])
plt.show()
- Jumlah kamar mandi paling banyak berada pada angka 1 dan 2
- Yang menarik disini adalah dimana ada rumah yang tidak ada kamar mandinya atau jumlahnya 0
- Nilai outlier sendiri lumayan banyak
ANALISIS LUAS LAHAN
#Univariate analysis grade
#Melihat distribusi dari grade
f = plt.figure(figsize=(12,4))
f.add_subplot(1,2,1)
sns.countplot(df['grade'])
f.add_subplot(1,2,2)
plt.boxplot(df['grade'])
plt.show()
- density dari distribusi luas rumah berada di sekitar angka 2000an
- Banyak terdapat outliets
ANALISIS GRADE
#Univariate analysis grade
#Melihat distribusi dari grade
f = plt.figure(figsize=(12,4))
f.add_subplot(1,2,1)
sns.countplot(df['yr_built'])
f.add_subplot(1,2,2)
plt.boxplot(df['yr_built'])
plt.show()
- Sebagian besa rumah di conty king US memiliki grade 7 dan 8
- Dilihat dari boxplot, data memilki beberapa outliers
ANALISIS TAHUN BANGUN
#Univariate analysis yr_built
#Melihat distribusi dari yr_built
f = plt.figure(figsize=(12,4))
f.add_subplot(1,2,1)
sns.countplot(df['yr_built'])
f.add_subplot(1,2,2)
plt.boxplot(df['yr_built'])
plt.show()
MELIHAT HUBUNGAN ANTAR VARIABEL
#Bivariate analysis antara independent variable dan dependent variable
#Melihat hubungan antara independent dan dependent
#Menggunakan pairplot
plt.figure(figsize=(10,8))
sns.pairplot(data=df,x_vars=['bedrooms','bathrooms','sqft_living','grade','yr_built'],y_vars=['p rice'],size=5,aspect=0.75)
plt.show()
MENGETAHUI NILAI KORELASI DARI INDEPENDEN DAN DEVENDEN VARIABEL
#Mengetahui nilai korelasi dari independent variable dan dependent variable
df.corr().style.background_gradient().set_precision
- Dari tabel diatas, dapat dilihat sqft_living mempunyai hubungan linear positif yang sangat kuat dengan price jika dibandingkan yang lain.
- Nilai korelasi yr_built hampir mendekati noll yang menandakan bahwa usia rumah tidak mempengaruhi pada harga rumah.
Ilmunya sangat bermanfaat banget
BalasHapus