# Praktikum 1

{% file src="<https://1473714265-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fhh7WzzoZbeFX9VC0bZSU%2Fuploads%2FVB6ZRhKrJLvfxDXVpOhJ%2Fdataset.csv?alt=media&token=a3695d68-85bf-4f82-9cb8-c3e7135615f4>" %}

## :arrow\_up: **Download Dataset Terlebih Dahulu** :arrow\_up:

Berikut adalah langkah-langkah beserta penjelasan singkat dan snapshot kode program Python untuk melakukan praktikum regresi linier, mengacu pada kode program yang telah diberikan sebelumnya:

#### Langkah 1: Persiapan Data

* Download dan letakkan file data yang akan digunakan pada direktori yang sama. Pastikan data telah disimpan dalam format CSV.

#### Langkah 2: Import Library

```python
# import package
import numpy as np
import pandas as pd
```

* Import library NumPy dan Pandas yang digunakan untuk manipulasi data.

#### Langkah 3: Baca Data

```python
# baca data dari file CSV
data = pd.read_csv('dataset.csv')
```

* Baca data dari file CSV dengan menggunakan Pandas.

#### Langkah 4: Pemahaman Terhadap Data

```python
# melihat beberapa data awal
data.head()

# mengecek ukuran data
data.shape

# informasi tentang data
data.info()

# deskripsi data
data.describe()
```

* Tampilkan beberapa data awal, ukuran data, informasi data, dan deskripsi statistik data untuk memahami karakteristik data.

#### Langkah 5: Visualisasi Data

```python
# import library untuk visualisasi
import matplotlib.pyplot as plt
import seaborn as sns
```

* Import library Matplotlib dan Seaborn untuk visualisasi data.

```python
# visualisasi data dengan pairplot
sns.pairplot(data, x_vars=['Time on App', 'Time on Website', 'Length of Membership'],
             y_vars='Yearly Amount Spent', size=4, aspect=1, kind='scatter')
plt.show()
```

* Gunakan pairplot untuk menampilkan hubungan antara variabel bebas dan variabel target dalam bentuk scatter plot.

```python
# visualisasi korelasi dengan heatmap
sns.heatmap(data.corr(), cmap="YlGnBu", annot=True)
plt.show()
```

* Gunakan heatmap untuk menampilkan matriks korelasi antara variabel-variabel dalam dataset. Semakin tinggi nilainya, semakin tinggi korelasinya.

#### Langkah 6: Regresi Linier

```python
# Membuat variabel bebas X dan Y, contoh pengambilan dari analisis korelasi sebelumnya
X = data['Length of Membership']
y = data['Yearly Amount Spent']
```

* Pisahkan variabel bebas (X) dan variabel target (y).

```python
# Pembagian data latih dan data uji dengan proporsi 7:3
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, train_size=0.7, test_size=0.3, random_state=100)
```

* Bagi data menjadi data latih (70%) dan data uji (30%) menggunakan train\_test\_split.
* Lakukan training model regresi linier menggunakan library StatsModels. Tambahkan konstanta (intercept) ke variabel bebas.

```python
# Training model
import statsmodels.api as sm

X_train_sm = sm.add_constant(X_train)
lr = sm.OLS(y_train, X_train_sm).fit()
```

* Visualisasikan garis regresi pada data latih.

```python
# Visualisasi garis regresi
plt.scatter(X_train, y_train)
plt.plot(X_train, 265.2483 + 66.3015*X_train, 'r')
plt.show()
```

*

#### Langkah 7: Analisis Residual

```python
# Prediksi nilai y_value dari data x yang telah dilatih
y_train_pred = lr.predict(X_train_sm)

# Menghitung residual
res = (y_train - y_train_pred)
```

* Lakukan prediksi nilai y dari data latih dan hitung residual (selisih antara nilai sebenarnya dan nilai prediksi).

```python
# Histogram residual
fig = plt.figure()
sns.distplot(res, bins=15)
plt.title('Error Terms', fontsize=15)
plt.xlabel('y_train - y_train_pred', fontsize=15)
plt.show()

# Scatter plot residual
plt.scatter(X_train, res)
plt.show()
```

* Visualisasikan residual dalam bentuk histogram dan scatter plot untuk mengevaluasi distribusi dan pola error.

#### Langkah 8: Prediksi pada Data Uji dan Evaluasi Model

```python
# Prediksi pada data uji
X_test_sm = sm.add_constant(X_test)
y_test_pred = lr.predict(X_test_sm)
```

* Lakukan prediksi pada data uji.

```python
# Hitung nilai R-squared
from sklearn.metrics import r2_score

r_squared = r2_score(y_test, y_test_pred)
```

* Hitung nilai R-squared untuk mengukur kinerja model pada data uji.

#### Langkah 9: Visualisasi Hasil

```python
# Visualisasi data uji dan hasil prediksi
plt.scatter(X_test, y_test)
plt.plot(X_test, y_test_pred, 'r')
plt.show()
```

* Visualisasikan data uji dan hasil prediksi dalam bentuk scatter plot.

Dengan mengikuti langkah-langkah di atas, Anda dapat melakukan analisis regresi linier pada data Anda, mengukur kinerja model, dan memvisualisasikan hasilnya.

## Kode Lengkap

{% file src="<https://1473714265-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fhh7WzzoZbeFX9VC0bZSU%2Fuploads%2FsoxLTd2UgIfVwB8AlilC%2Fmodul03_1.ipynb?alt=media&token=fd34407a-33f1-4212-81ce-03cb730ccd48>" %}
