Pages

Friday, July 13, 2018

Regresi Linear Berganda

Analisis Regresi Linear Menggunakan Python

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.

1 comment: