Regresi Linier

Compiled by: Suprapto van Plaosan

Regresi linier adalah jenis analisis prediksi dasar dan banyak digunakan.

Ide dasar regresi adalah untuk memeriksa dua hal:

  • Apakah variabel prediktor (variabel independent) melakukan pekerjaan dengan baik memprediksi variabel hasil (variabel dependent)?

  • Apakah variabel prediktor memberi pengaruh signifikan terhadap variabel hasil dan sejauh mana memengaruhi variabel hasil?

Estimasi regresi digunakan untuk menjelaskan hubungan antara variabel dependen dan satu atau lebih variabel independen. Bentuk paling sederhana dari persamaan regresi dengan variabel dependen dan independen ditentukan oleh rumus y = c + b * x, di mana y = estimasi evaluasi variabel dependen, c = konstan, b = koefisien regresi dan x = evaluasi pada variabel independen.

Variabel dependen dapat disebut sebagai variabel hasil, variabel kriteria atau variabel endogen.

Variabel independen dapat disebut sebagai variabel eksogen atau variabel prediktor.

Aplikasi utama analisis regresi adalah

  • (1) menentukan pengaruh prediktor,
  • (2) memprediksi efek, dan
  • (3) perkiraan tren.

Pertama, regresi dapat digunakan untuk mengidentifikasi kekuatan efek yang dimiliki variabel independen terhadap variabel dependen. Misalnya hubungan antara dosis dan efek, biaya penjualan dan pemasaran, atau usia dan pendapatan.

Kedua, dapat digunakan untuk memprediksi efek perubahan. Artinya, analisis regresi membantu kita memahami berapa banyak variabel dependen berubah dengan perubahan dalam satu atau lebih variabel independen. Misalnya, "Berapa banyak pendapatan tambahan yang saya dapatkan untuk setiap tambahan Rp. 1.000.000 yang dihabiskan untuk pemasaran?"

Ketiga, analisis regresi memprediksi tren dan nilai-nilai masa depan. Analisis regresi dapat digunakan untuk mendapatkan estimasi titik. Contohnya: "Seberapa tinggi harga emas dalam 6 bulan?"

Kurva Kalibrasi

Kalibrasi adalah tahap penting dalam sebagian besar prosedur pengukuran kimia. Kalibrasi adalah satu set operasi untuk membangun hubungan antara output dari sistem pengukuran (mis., respons suatu instrumen) dan nilai-nilai standar kalibrasi yang diterima (mis., konsentrasi analit). Kalibrasi biasanya melibatkan persiapan seperangkat larutan standar yang mengandung analit yang diketahui konsentrasinya. Persamaan regresi dibuat dari korelasi hasil pengukuran respons instrumen untuk setiap standar. Persamaan regresi yang didapat kemudian digunakan untuk pengukuran sampel uji untuk mengetahui konsentrasi analit yang ada dalam cuplikan, seperti yang ditunjukkan pada Gambar 1.

Misalnya kita membuat kurva kalibrasi kadar besi menggunakan AAS. Larutan standar 1, 2, 3, 4, dan 5 ppm diukur dan absorbansi yang didapat digunakan untuk membuat kurva kalibrasi.

LinregressResult(slope=1.9303571428571429, intercept=1.5178571428571423, rvalue=0.9988795653485198, pvalue=8.066022732884022e-08, stderr=0.040900264457006626)

<AxesSubplot:>

Auto-assigning NUTS sampler...
Initializing NUTS using jitter+adapt_diag...
Sequential sampling (2 chains in 1 job)
NUTS: [sigma, slope, intercept]
Sampling chain 0, 0 divergences: 100%|██████████| 1500/1500 [00:09<00:00, 154.99it/s]
Sampling chain 1, 0 divergences: 100%|██████████| 1500/1500 [00:07<00:00, 202.79it/s]
The number of effective samples is smaller than 25% for some parameters.

mean sd hdi_3% hdi_97% mcse_mean mcse_sd ess_mean ess_sd ess_bulk ess_tail r_hat
intercept 1.362 0.355 0.722 2.049 0.013 0.009 767.0 767.0 815.0 877.0 1.00
slope 1.947 0.051 1.851 2.035 0.002 0.001 855.0 852.0 874.0 864.0 1.00
sigma 0.531 0.167 0.263 0.842 0.009 0.007 329.0 299.0 369.0 477.0 1.01
array([<AxesSubplot:title={'center':'intercept'}>,
       <AxesSubplot:title={'center':'slope'}>,
       <AxesSubplot:title={'center':'sigma'}>], dtype=object)

LinregressResult(slope=0.991230638098403, intercept=0.16810958567487333, rvalue=0.9988795653485197, pvalue=8.066022732886028e-08, stderr=0.02100212149141897)
rmse: 0.14137682107409769

LinregressResult(slope=0.01000185048112509, intercept=-0.0024241302738694515, rvalue=0.9988795653485196, pvalue=8.066022732888037e-08, stderr=0.0002119184686891745)
rmse: 2266071.478571429

Analisis regresi dari kurva di atas dirangkum dalam tabel di bawah ini, nilai Koefisien korelasi $r^2$ yang didapat adalah 0,998. Intercept = -0.0010, slope = 0.1210. Sehingga diperoleh persamaan regresi: $$y = -0.0010 + 0.1210 x$$

OLS Regression Results
Dep. Variable: y R-squared: 0.998
Model: OLS Adj. R-squared: 0.997
Method: Least Squares F-statistic: 2228.
Date: Thu, 27 Aug 2020 Prob (F-statistic): 8.07e-08
Time: 21:29:35 Log-Likelihood: -2.8933
No. Observations: 7 AIC: 9.787
Df Residuals: 5 BIC: 9.678
Df Model: 1
Covariance Type: nonrobust
coef std err t P>|t| [0.025 0.975]
const 1.5179 0.295 5.146 0.004 0.760 2.276
x1 1.9304 0.041 47.197 0.000 1.825 2.035
Omnibus: nan Durbin-Watson: 1.886
Prob(Omnibus): nan Jarque-Bera (JB): 0.503
Skew: 0.143 Prob(JB): 0.778
Kurtosis: 1.718 Cond. No. 13.2


Warnings:
[1] Standard Errors assume that the covariance matrix of the errors is correctly specified.
0.18735714285714303

Residue
0 0.582143
1 -0.378571
2 -0.239286
3 -0.500000
4 0.339286
5 0.178571
6 0.017857
% Recovery
0 72.278912
1 107.571429
2 102.658730
3 103.968254
4 98.038811
5 99.149660
6 99.927704

Dengan persamaan regresi yang diperoleh kita bisa menghitung kadar besi dalam larutan uji dari hasil pengukuran absorbansinya. Misalnya untuk larutan uji mempunyai absorbansi 0,42. Maka kosentrasi besi dalam larutan uji adalah $$C = {(A - (-0.0010))\over0.1210}$$

3.479338842975207

Keterbatasan Analisis Regresi Linear

Anscombe's quartet

Kuartet Anscombe terdiri dari empat set data yang memiliki statistik deskriptif sederhana yang hampir identik, namun memiliki distribusi yang sangat berbeda dan tampak sangat berbeda ketika dibuat grafik. Setiap dataset terdiri dari sebelas (x, y) poin. Mereka dibangun pada tahun 1973 oleh ahli statistik Francis Anscombe untuk menunjukkan pentingnya data grafik sebelum menganalisisnya dan efek dari pencilan dan pengamatan berpengaruh lainnya pada sifat statistik. Dia menggambarkan artikel itu dimaksudkan untuk melawan kesan di kalangan ahli statistik bahwa "perhitungan numerik tepat, tetapi grafiknya kasar."

dataset x y
0 I 10.0 8.04
1 I 8.0 6.95
2 I 13.0 7.58
3 I 9.0 8.81
4 I 11.0 8.33
5 I 14.0 9.96
6 I 6.0 7.24
7 I 4.0 4.26
8 I 12.0 10.84
9 I 7.0 4.82
10 I 5.0 5.68
11 II 10.0 9.14
12 II 8.0 8.14
13 II 13.0 8.74
14 II 9.0 8.77
15 II 11.0 9.26
16 II 14.0 8.10
17 II 6.0 6.13
18 II 4.0 3.10
19 II 12.0 9.13
20 II 7.0 7.26
21 II 5.0 4.74
22 III 10.0 7.46
23 III 8.0 6.77
24 III 13.0 12.74
25 III 9.0 7.11
26 III 11.0 7.81
27 III 14.0 8.84
28 III 6.0 6.08
29 III 4.0 5.39
30 III 12.0 8.15
31 III 7.0 6.42
32 III 5.0 5.73
33 IV 8.0 6.58
34 IV 8.0 5.76
35 IV 8.0 7.71
36 IV 8.0 8.84
37 IV 8.0 8.47
38 IV 8.0 7.04
39 IV 8.0 5.25
40 IV 19.0 12.50
41 IV 8.0 5.56
42 IV 8.0 7.91
43 IV 8.0 6.89
dataset x y
0 I 10.0 8.04
1 I 8.0 6.95
2 I 13.0 7.58
3 I 9.0 8.81
4 I 11.0 8.33
5 I 14.0 9.96
6 I 6.0 7.24
7 I 4.0 4.26
8 I 12.0 10.84
9 I 7.0 4.82
10 I 5.0 5.68
r2 Kurva1 0.8164205163448399
r2 Kurva2 0.816236506000243
r2 Kurva3 0.8162867394895982
r2 Kurva4 0.816521436888503

r2 Kurva1 LinregressResult(slope=0.5000909090909091, intercept=3.0000909090909103, rvalue=0.8164205163448399, pvalue=0.00216962887307879, stderr=0.11790550059563408)
r2 Kurva2 LinregressResult(slope=0.5000000000000001, intercept=3.000909090909089, rvalue=0.816236506000243, pvalue=0.0021788162369107845, stderr=0.11796374596764074)
r2 Kurva3 LinregressResult(slope=0.4997272727272727, intercept=3.0024545454545457, rvalue=0.8162867394895982, pvalue=0.0021763052792280256, stderr=0.1178776622210023)
r2 Kurva4 LinregressResult(slope=0.49990909090909097, intercept=3.0017272727272726, rvalue=0.816521436888503, pvalue=0.0021646023471972122, stderr=0.11781894172968549)

/home/van/anaconda3/lib/python3.8/site-packages/scipy/stats/stats.py:1603: UserWarning: kurtosistest only valid for n>=20 ... continuing anyway, n=11
  warnings.warn("kurtosistest only valid for n>=20 ... continuing "

OLS Regression Results
Dep. Variable: y R-squared: 0.667
Model: OLS Adj. R-squared: 0.629
Method: Least Squares F-statistic: 17.99
Date: Thu, 27 Aug 2020 Prob (F-statistic): 0.00217
Time: 21:29:47 Log-Likelihood: -16.841
No. Observations: 11 AIC: 37.68
Df Residuals: 9 BIC: 38.48
Df Model: 1
Covariance Type: nonrobust
coef std err t P>|t| [0.025 0.975]
const 3.0001 1.125 2.667 0.026 0.456 5.544
x 0.5001 0.118 4.241 0.002 0.233 0.767
Omnibus: 0.082 Durbin-Watson: 3.212
Prob(Omnibus): 0.960 Jarque-Bera (JB): 0.289
Skew: -0.122 Prob(JB): 0.865
Kurtosis: 2.244 Cond. No. 29.1


Warnings:
[1] Standard Errors assume that the covariance matrix of the errors is correctly specified.
OLS Regression Results
Dep. Variable: y R-squared: 0.666
Model: OLS Adj. R-squared: 0.629
Method: Least Squares F-statistic: 17.97
Date: Thu, 27 Aug 2020 Prob (F-statistic): 0.00218
Time: 21:29:47 Log-Likelihood: -16.846
No. Observations: 11 AIC: 37.69
Df Residuals: 9 BIC: 38.49
Df Model: 1
Covariance Type: nonrobust
coef std err t P>|t| [0.025 0.975]
const 3.0009 1.125 2.667 0.026 0.455 5.547
x 0.5000 0.118 4.239 0.002 0.233 0.767
Omnibus: 1.594 Durbin-Watson: 2.188
Prob(Omnibus): 0.451 Jarque-Bera (JB): 1.108
Skew: -0.567 Prob(JB): 0.575
Kurtosis: 1.936 Cond. No. 29.1


Warnings:
[1] Standard Errors assume that the covariance matrix of the errors is correctly specified.
OLS Regression Results
Dep. Variable: y R-squared: 0.666
Model: OLS Adj. R-squared: 0.629
Method: Least Squares F-statistic: 17.97
Date: Thu, 27 Aug 2020 Prob (F-statistic): 0.00218
Time: 21:29:47 Log-Likelihood: -16.838
No. Observations: 11 AIC: 37.68
Df Residuals: 9 BIC: 38.47
Df Model: 1
Covariance Type: nonrobust
coef std err t P>|t| [0.025 0.975]
const 3.0025 1.124 2.670 0.026 0.459 5.546
x 0.4997 0.118 4.239 0.002 0.233 0.766
Omnibus: 19.540 Durbin-Watson: 2.144
Prob(Omnibus): 0.000 Jarque-Bera (JB): 13.478
Skew: 2.041 Prob(JB): 0.00118
Kurtosis: 6.571 Cond. No. 29.1


Warnings:
[1] Standard Errors assume that the covariance matrix of the errors is correctly specified.
OLS Regression Results
Dep. Variable: y R-squared: 0.667
Model: OLS Adj. R-squared: 0.630
Method: Least Squares F-statistic: 18.00
Date: Thu, 27 Aug 2020 Prob (F-statistic): 0.00216
Time: 21:29:47 Log-Likelihood: -16.833
No. Observations: 11 AIC: 37.67
Df Residuals: 9 BIC: 38.46
Df Model: 1
Covariance Type: nonrobust
coef std err t P>|t| [0.025 0.975]
const 3.0017 1.124 2.671 0.026 0.459 5.544
x 0.4999 0.118 4.243 0.002 0.233 0.766
Omnibus: 0.555 Durbin-Watson: 1.662
Prob(Omnibus): 0.758 Jarque-Bera (JB): 0.524
Skew: 0.010 Prob(JB): 0.769
Kurtosis: 1.931 Cond. No. 29.1


Warnings:
[1] Standard Errors assume that the covariance matrix of the errors is correctly specified.

Validasi Analisis Regresi Linier

Omnibus / Prob (Omnibus)

  • Nilainya diharapkan mendekati nol yang menunjukkan normalitas. Prob (omnibus) melakukan tes statistik yang menunjukkan probabilitas bahwa residu terdistribusi normal. Prob (omnibus) diharapkan mempunyai nilai mendekat1 1.
  • Dalam beberapa kasus, omnibus relatif rendah dan prob (omnibus) relatif tinggi, sehingga datanya agak normal, tetapi secara keseluruhan tidak ideal. Pendekatan regresi linier mungkin akan lebih baik daripada menebak secara acak, tetapi mungkin tidak sebagus pendekatan non-linear.

Skewness

  • ukuran kesimetrisan data. Kita ingin nilai skewnwss mendekati nol, yang menunjukkan bahwa distribusi residu adalah normal. Perhatikan bahwa nilai ini seharusnya memiliki offset kecil.

Kurtosis

  • ukuran ketajaman puncak atau kelengkungan data. Puncak yang lebih tinggi menghasilkan kurtosis yang lebih besar. Kurtosis yang lebih besar dapat ditafsirkan sebagai akumulasi residu yang lebih sempit di sekitar nol, yang menyiratkan model yang lebih baik dengan beberapa sedikit outlier.

Durbin-Watson

  • Tes Homoscedasticity. Nilai yang diharapkan berada pada rentang antara 1 dan 2.

Jarque-Bera (JB) / Prob (JB)

  • seperti tes omnibus, yang menguji kemiringan dan kurtosis. Uji ini untuk mengkonfirmasi uji omnibus.

Condition Number

  • Tes ini mengukur sensitivitas output suatu fungsi terhadap inputnya. Jika kita memiliki multikolinieritas, kita dapat mengharapkan fluktuasi yang jauh lebih besar dengan perubahan kecil dalam data, jadi kita berharap untuk melihat jumlah yang relatif kecil, sedikit di bawah 30.