Analisis Regresi Linear Menggunakan Python
panji
July 13, 2018
R Markdown
Assalamualaikum.wr.wb gaes… kali ini saya mau membahas sedikit tentang regresi linear berganda denga menggunakan python. Semoga bermanfaat ya gaes.Oke kita mulai. Dalam rangka menentukan hubungan antara variabel dependen (y) dari variabel independen (x) dapat pula digunakan analisis statistika. Salah satu metode untuk menyelesaikan masalah tersebut yaitu analisis regresi. Analisis regresi yang menganalisis hubungan antara satu variabel x dan variabel y disebut regresi linier sederhana, sedangkan regresi linier yang melibatkan lebih dari satu variabel independen disebut Regresi Linier Berganda (Sembiring, 1995). <!–more–> Nah di sini kita akan mempelajari regresi linear berganda . Oke kita coba dengan contoh data ekspor Pakaian Jadi dari Indonesia ke Jepang (1985-2000). Dengan variabel penelitiannya yaitu Ekspo Pakaian Jadi, dalam ton (EKS) sebagai variabel dependen (y) dan Harga Ekspor Pakaian Jadi, dalam juta per ton (HRG) sebagi X1 dan Kurs Yen terhadap Rupiah (KURS) sebagai X2. Datanya didapat dari https://dosen.perbanas.id/wp-content/uploads/2015/05/Regresi-Linier-Berganda-SPSS1.pdf
import pandas as pd
data = pd.read_csv('E:\data.csv')
print (data)
## Tahun EKS HRG KURS
## 0 1985 3678.8 248.48 5.65
## 1 1986 4065.3 331.48 10.23
## 2 1987 8431.4 641.88 13.50
## 3 1988 15718.0 100.80 13.84
## 4 1989 11891.0 536.69 12.66
## 5 1990 9349.7 332.25 13.98
## 6 1991 14561.0 657.60 15.69
## 7 1992 20148.0 928.10 16.62
## 8 1993 26776.0 1085.50 18.96
## 9 1994 43501.0 1912.20 22.05
## 10 1995 49223.0 2435.80 22.50
## 11 1996 65076.0 6936.70 20.60
## 12 1997 54941.0 3173.14 43.00
## 13 1998 58097.0 2107.70 70.67
## 14 1999 112871.0 2935.70 71.20
## 15 2000 108280.0 3235.80 84.00
Setelah itu gunakan syntax berikut. Cekidottttt…!!!import numpy as np
import statsmodels
import patsy
import statsmodels.api as sm
## C:\ProgramData\ANACON~1\lib\site-packages\statsmodels\compat\pandas.py:56: FutureWarning: The pandas.core.datetools module is deprecated and will be removed in a future version. Please use the pandas.tseries module instead.
## from pandas.core import datetools
import matplotlib.pyplot as plt
#Import model
from sklearn.linear_model import LinearRegression
from sklearn.cross_validation import train_test_split
## C:\ProgramData\ANACON~1\lib\site-packages\sklearn\cross_validation.py:41: DeprecationWarning: This module was deprecated in version 0.18 in favor of the model_selection module into which all the refactored classes and functions are moved. Also note that the interface of the new CV iterators are different from that of this module. This module will be removed in 0.20.
## "This module will be removed in 0.20.", DeprecationWarning)
from sklearn import metrics
#Masukin data yang telah berbentuk csv dengan memanggil datanya sesuai tempat penyimpanannya
#Pilih HRG dan Kurs untuk variabel X dan EKS sebagai variabel y:
feature_names=['HRG','KURS']
X=data[feature_names]
X
y=data.EKS
#Kemudian memisahkan X dan y ke dalam data latih (train) dan data pengujian (test):
X_train, X_test, y_train, y_test = train_test_split(X,y,random_state=1)
# Linear Regression Model
linreg=LinearRegression()
#Membuat model dengan data latih
linreg.fit(X_train,y_train)
#Membuat prediksi pada data pengujian
y_pred=linreg.predict(X_test)
print (y_pred)
#menghitung RMSE
## [ 11727.62134408 92996.85476652 20756.72644481 15074.86179215]
print(np.sqrt(metrics.mean_squared_error(y_test,y_pred)))
## 17877.5635715
#mencari model regresi
model=sm.OLS(y,X).fit()
predictions=model.predict(X)
model.summary()
## C:\ProgramData\ANACON~1\lib\site-packages\scipy\stats\stats.py:1334: UserWarning: kurtosistest only valid for n>=20 ... continuing anyway, n=16
## "anyway, n=%i" % int(n))
#menambahkan variabel konstan
X=sm.add_constant(X)
model=sm.OLS(y,X).fit()
model.summary()
Pada Gambar diatas diketahui bahwa fungsi yang dibuat menghasilkan model linier sederhana yaitu: EKS = -4067.4959 + 7.8150HRG + 1001.8555KURS Berdasarkan model diatas artinya jika HRG dan KURS mendekati nol maka nilai EKS -4067.4959. Sedangkan jika HRG naik satu satuan akan menaikkan nilai EKS sebesar 7.8150 dan jika KURS naik satu satuan maka akan menaikkan EKS sebesar 1001.8555 dengan R-square sebesar 0.911 atau 91.1% variabel HRG dan KURS dapat menjelaskan variabel EKS.
Alhamdulillah..
ReplyDelete