Melihat R-Squared dari Regresi
R-squared mengukur seberapa baik data cocok dengan garis regresi, sehingga R-squared pada regresi sederhana berkaitan dengan korelasi antara kedua variabel. Secara khusus, besar kecilnya korelasi adalah akar kuadrat dari R-squared dan tanda korelasi sama dengan tanda koefisien regresi.
Dalam latihan ini, Anda akan mulai menggunakan paket statistik statsmodels, yang menjalankan banyak pemodelan dan pengujian statistik seperti yang ada di R dan perangkat lunak seperti SAS dan MATLAB.
Anda akan mengambil dua seri, x dan y, menghitung korelasinya, lalu meregresikan y pada x menggunakan fungsi OLS(y,x) dari pustaka statsmodels.api (perhatikan bahwa variabel dependen, atau variabel sisi kanan y, adalah argumen pertama). Sebagian besar regresi linear memuat konstanta yang merupakan intersep (\(\small \alpha\) pada regresi \(\small y_t=\alpha + \beta x_t + \epsilon_t\)). Untuk menyertakan konstanta menggunakan fungsi OLS(), Anda perlu menambahkan kolom berisi 1 pada sisi kanan regresi.
Modul statsmodels.api telah diimpor untuk Anda sebagai sm.
Latihan ini adalah bagian dari kursus
Analisis Deret Waktu dengan Python
Petunjuk latihan
- Hitung korelasi antara
xdanymenggunakan metode.corr(). - Jalankan regresi:
- Ubah terlebih dahulu Series
xmenjadi DataFramedfx. - Tambahkan konstanta menggunakan
sm.add_constant(), simpan sebagaidfx1 - Regress
ypadadfx1menggunakansm.OLS().fit().
- Ubah terlebih dahulu Series
- Cetak hasil regresi dan bandingkan R-squared dengan korelasinya.
Latihan interaktif praktis
Cobalah latihan ini dengan menyelesaikan kode contoh berikut.
# Import the statsmodels module
import statsmodels.api as sm
# Compute correlation of x and y
correlation = ___
print("The correlation between x and y is %4.2f" %(correlation))
# Convert the Series x to a DataFrame and name the column x
dfx = pd.DataFrame(x, columns=['x'])
# Add a constant to the DataFrame dfx
dfx1 = sm.add_constant(___)
# Regress y on dfx1
result = sm.OLS(___, ___).fit()
# Print out the results and look at the relationship between R-squared and the correlation above
print(result.summary())