Membuat prediksi

Pengantar Regresi dengan statsmodels di Python

Maarten Van den Broeck

Content Developer at DataCamp

Dataset ikan: bream

bream = fish[fish["species"] == "Bream"]
print(bream.head())
  species  mass_g  length_cm
0   Bream   242.0       23.2
1   Bream   290.0       24.0
2   Bream   340.0       23.9
3   Bream   363.0       26.3
4   Bream   430.0       26.5

Ikan bream umum, _Abramis brama_

Pengantar Regresi dengan statsmodels di Python

Memplot massa vs panjang

sns.regplot(x="length_cm",
            y="mass_g",
            data=bream,
            ci=None)

plt.show()

Scatter plot massa bream vs panjangnya, dengan garis tren linear. Semua titik berdekatan dengan garis tren.

Pengantar Regresi dengan statsmodels di Python

Menjalankan model

mdl_mass_vs_length = ols("mass_g ~ length_cm", data=bream).fit()

print(mdl_mass_vs_length.params)
Intercept   -1035.347565
length_cm      54.549981
dtype: float64
Pengantar Regresi dengan statsmodels di Python

Data nilai penjelas untuk diprediksi

Jika variabel penjelas saya set ke nilai ini,
berapa nilai variabel respons?

explanatory_data = pd.DataFrame({"length_cm": np.arange(20, 41)})
    length_cm
0          20
1          21
2          22
3          23
4          24
5          25
     ...
Pengantar Regresi dengan statsmodels di Python

Panggil predict()

print(mdl_mass_vs_length.predict(explanatory_data))
0       55.652054
1      110.202035
2      164.752015
3      219.301996
4      273.851977
    ...
16     928.451749
17     983.001730
18    1037.551710
19    1092.101691
20    1146.651672
Length: 21, dtype: float64
Pengantar Regresi dengan statsmodels di Python

Memprediksi di dalam DataFrame

explanatory_data = pd.DataFrame(
  {"length_cm": np.arange(20, 41)}
)

prediction_data = explanatory_data.assign( mass_g=mdl_mass_vs_length.predict(explanatory_data) )
print(prediction_data)
    length_cm         mass_g
0          20      55.652054
1          21     110.202035
2          22     164.752015
3          23     219.301996
4          24     273.851977
..        ...            ...
16         36     928.451749
17         37     983.001730
18         38    1037.551710
19         39    1092.101691
20         40    1146.651672
Pengantar Regresi dengan statsmodels di Python

Menampilkan prediksi

import matplotlib.pyplot as plt
import seaborn as sns
fig = plt.figure()
sns.regplot(x="length_cm",
            y="mass_g",
            ci=None,
            data=bream,)
sns.scatterplot(x="length_cm",
                y="mass_g",
                data=prediction_data, 
                color="red",
                marker="s")
plt.show()

Scatter plot massa bream vs panjangnya, dengan garis tren linear. Plot dianotasi dengan titik yang dihitung memakai predict(). Semua titik tepat mengikuti garis tren.

Pengantar Regresi dengan statsmodels di Python

Ekstrapolasi

Ekstrapolasi berarti membuat prediksi di luar rentang data yang diamati.

little_bream = pd.DataFrame({"length_cm": [10]})

pred_little_bream = little_bream.assign(
    mass_g=mdl_mass_vs_length.predict(little_bream))

print(pred_little_bream)
   length_cm      mass_g
0         10 -489.847756

Scatter plot massa bream vs panjangnya, dengan garis tren linear. Plot dianotasi dengan seekor bream fiktif 10 cm dan massa prediksinya.

Pengantar Regresi dengan statsmodels di Python

Ayo berlatih!

Pengantar Regresi dengan statsmodels di Python

Preparing Video For Download...