Konsep Weighted Least Square

Salah satu asumsi utama regresi linier adalah bahwa residu terdistribusi dengan varian yang sama di setiap tingkat variabel prediktor. Asumsi ini dikenal dengan istilah homoskedastisitas. Jika asumsi ini dilanggar, maka dikatakan terdapat heteroskedastisitas pada residu. Jika hal ini terjadi, hasil regresi menjadi tidak dapat diandalkan.

Salah satu cara untuk mengatasi masalah ini adalah dengan menggunakan weighted least square, yang memberi bobot pada observasi sedemikian rupa sehingga observasi dengan varian kesalahan kecil diberi bobot lebih karena berisi lebih banyak informasi dibandingkan dengan observasi dengan varian kesalahan lebih besar.

Misalkan terdapat model:

\[Y_{i}=\beta_{1}+\beta_{2}X_{2i}+\beta_{3}X_{3i}+u_{i}\] Dengan bentuk ragam yang tidak konstan:

\[var(u_{i})=\sigma^2z^2_{i} \] Jika dilakukan hal berikut pada galat:

\[v_{i}=\frac{u_{i}}{z_i}\] sehingga, ragam galat menjadi konstan

\[v_{i}=(\frac{u_{i}}{z_i})=\frac{1}{z^2_{i}}var(u_i)=\sigma^2\]

Bentuk tersebut adalah bentuk transformasi yang dapat diterapkan pada seluruh variabel model sebagai berikut:

\[\frac{Y_i}{z_i}=\beta_1\frac{1}{z_i}+\beta_2\frac{X_{2i}}{z_i}+\beta_3\frac{X_{3i}}{z_i}+v_i \] Metode kuadrat terkecil dapat diterapkan untuk menduga parameter model tersebut, dengan variabel respons dan prediktor yang telah ditransformasi:

\[Y^*_i=\beta_1X^*_{1i}+\beta_2X^*_{2i}+\beta_3X^*_{3i}+v_i \]

Data

Data berasal dari kaggle yang berjudul Body Fat Extended Dataset yang diukur pada 254 orang

https://www.kaggle.com/datasets/simonezappatini/body-fat-extended-dataset

Source Code

Library

library(rmarkdown)
library(knitr)
library(readxl) #Import data format excel
library(lmtest) #Brush Pagan Test

Inisiasi Data

Fungsi read_excel() digunakan untuk memuat data dari file Berat Badan dengan argumen berisikan lokasi file data tersimpan. Data tersebut disimpan dengan nama data.

Fungsi data.frame() digunakan untuk membentuk data frame dengan argumen variabel yang digunakan yaitu, x1 = age, x2 = Weight, x3 = Height, dan y = BodyFat yang sebelumnya telah terlebih dahulu dijadikan data tipe numerik. data frame disimpan dengan nama Data.

Fungsi ‘paged_table()’ digunakan untuk membentuk tabel yang memuat data

data=read_excel("C:/Kuliah/Tugas Kuliah/SEMESTER 5/Berat Badan.xlsx")
x1 = as.numeric(data$Age)
x2 = as.numeric(data$Weight)
x3 = as.numeric(data$Height)
y = as.numeric(data$BodyFat)
Data=data.frame(y,x1,x2,x3)
paged_table(as.data.frame(Data))

Regresi Linier Berganda

Fungsi lm() digunakan untuk membentuk model regresi linier berganda dengan argumen variabel respons y dan variabel prediktor x1,x2,x3 serta sumber data Data. Kemudian disimpan dengan nama model

Fungsi summary() digunakan untuk menampilkan ringkasan terkait argumen yang tertera yaitu model.

model = lm(y~x1+x2+x3, data = Data)
summary(model)

Asumsi Homoskedastisitas

Fungsi plot() digunakan untuk melihat plot atau gambaran awal residual terhadap fitted values. Berisikan argumen fitted(model) sebagai sumbu x, resid(model) sebagai sumbu y, xlab penamaan sumbu x, ylab penamaan sumbu y.

Fungsi bptest() atau uji brush pagan digunakan untuk menguji ragam residual dengan argumen model.

library(lmtest)
plot(fitted(model), resid(model), xlab = "Fitted Values", ylab = "Residuals")
bptest(model)

Weighted Least Square

Membentuk pembobot yang disimpan dengan nama wt.

Fungsi lm() digunakan untuk regresi linier berganda dengan argumen tambahan weight = wt maka menjadi regresi terboboti atau WLS yang disimpan dengan nama wls_model

Fungsi summary() digunakan untuk ringkasan dari argumen wls_model

Fungsi bptest() untuk menguji kembali setelah model terboboti dengan argumen wls_model

wt = 1/lm(abs(model$residuals)~model$fitted.values)$fitted.values^2

wls_model = lm(y~x1+x2+x3, data = Data, weights = wt)

summary(wls_model)

bptest(wls_model)

Hasil dan Pembahasan

Regresi Linier Berganda


Call:
lm(formula = y ~ x1 + x2 + x3, data = Data)

Residuals:
     Min       1Q   Median       3Q      Max 
-19.3370  -4.4324   0.0009   3.7564  15.7825 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept) 17.88134    7.45553   2.398   0.0172 *  
x1           0.16972    0.02954   5.746 2.67e-08 ***
x2           0.43743    0.02893  15.118  < 2e-16 ***
x3          -0.23481    0.04196  -5.596 5.80e-08 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 5.805 on 248 degrees of freedom
Multiple R-squared:  0.5246,    Adjusted R-squared:  0.5189 
F-statistic: 91.24 on 3 and 248 DF,  p-value: < 2.2e-16

Berdasarkan output di atas terbentuk model: \[Y_i=17.88134+0.16972X_1+0.43743X_2-0.23481\] Interpretasi:

\(\beta_1=17.88134\), artinya apabila variabel lain konstan maka lemak tubuh akan naik sebesar 17.88134 satuan

\(\beta_2=0.16972\), artinya apabila umur naik satu satuan, maka lemak tubuh akan naik sebesar 0.16972 satuan dengan variabel lain konstan.

\(\beta_3=0.43743\), artinya apabila berat badan naik satu satuan, maka lemak tubuh akan naik sebesar 0.43743 satuan dengan variabel lain konstan

\(\beta_4=-0.23481\), artinya apabila tinggi badan naik satu satuan, maka lemak tubuh akan turun sebesar 0.23481 satuan dengan variabel lain konstan

Asumsi Homoskedastisitas

Berdasarkan plot di atas, terlihat bahwa residual cenderung mengumpul dan tidak menyebar acak. Hal ini dapat mengindikasikan adanya masalah heteroskedastisitas.

Untuk memastikannya digunakan uji brush pagan:


    studentized Breusch-Pagan test

data:  model
BP = 37.987, df = 3, p-value = 2.845e-08

Hipotesis:

\(H_0:\) Ragam residual sama

\(H_1:\) Ragam residual berbeda

Keputusan:

p value \((2.845 \times 10^{-8}) < \alpha (0.05)\), maka \(H_0\) ditolak

Kesimpulan:

Ragam residual berbeda dengan kata lain asumsi homoskedastisitas terlanggar.

Weighted Least Square


Call:
lm(formula = y ~ x1 + x2 + x3, data = Data, weights = wt)

Weighted Residuals:
    Min      1Q  Median      3Q     Max 
-3.4377 -0.8742  0.0183  0.8418  2.8721 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept) 26.12861    8.50274   3.073  0.00236 ** 
x1           0.15749    0.02933   5.370 1.81e-07 ***
x2           0.48214    0.03137  15.369  < 2e-16 ***
x3          -0.29826    0.04949  -6.027 6.01e-09 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 1.232 on 248 degrees of freedom
Multiple R-squared:  0.5312,    Adjusted R-squared:  0.5255 
F-statistic: 93.66 on 3 and 248 DF,  p-value: < 2.2e-16

Output di atas merupakan hasil dari Weighted Least Square (WLS) untuk menghilangkan masalah heteroskedastisitas.

Untuk memastikannya kembali, berikut hasil brush pagan test dari WLS


    studentized Breusch-Pagan test

data:  wls_model
BP = 3.6803, df = 3, p-value = 0.2981

Hipotesis:

\(H_0:\) Ragam residual sama

\(H_1:\) Ragam residual berbeda

Keputusan:

p value \((0.2981) > \alpha (0.05)\), maka \(H_0\) diterima

Kesimpulan:

Ragam residual sama dengan kata lain asumsi homoskedastisitas terpenuhi.

Model Akhir


Call:
lm(formula = y ~ x1 + x2 + x3, data = Data, weights = wt)

Weighted Residuals:
    Min      1Q  Median      3Q     Max 
-3.4377 -0.8742  0.0183  0.8418  2.8721 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept) 26.12861    8.50274   3.073  0.00236 ** 
x1           0.15749    0.02933   5.370 1.81e-07 ***
x2           0.48214    0.03137  15.369  < 2e-16 ***
x3          -0.29826    0.04949  -6.027 6.01e-09 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 1.232 on 248 degrees of freedom
Multiple R-squared:  0.5312,    Adjusted R-squared:  0.5255 
F-statistic: 93.66 on 3 and 248 DF,  p-value: < 2.2e-16

Interpretasi:

\(\beta_1=26.12861\), artinya apabila variabel lain konstan maka lemak tubuh akan naik sebesar 26.12961 satuan

\(\beta_2=0.15749\), artinya apabila umur naik satu satuan, maka lemak tubuh akan naik sebesar 0.15749 satuan dengan variabel lain konstan.

\(\beta_3=0.48214\), artinya apabila berat badan naik satu satuan, maka lemak tubuh akan naik sebesar 0.48214 satuan dengan variabel lain konstan

\(\beta_4=-0.29826\), artinya apabila tinggi badan naik satu satuan, maka lemak tubuh akan turun sebesar 0.29826 satuan dengan variabel lain konstan

Uji Simultan

Hipotesis:

\(H_0:\beta_1=\beta_2=\beta_3=\beta_4=0\)

\(H_1:\) setidaknyaada salah satu i dimana \(\beta_i\neq0\)

Keputusan:

p value \((2.67 \times 10^{-16})< \alpha (0.05)\), maka \(H_0\) ditolak

Kesimpulan:

Dengan taraf nyata 5% dapat disimpulkan secara simultan bahwa umur, berat badan, dan tinggi badan berpengaruh signifikan terhadap lemak tubuh.

Uji Parsial

Hipotesis:

\(H_0:\beta_2=0\)

\(H_1:\beta_2\neq 0\)

Keputusan:

p value \((1.81 \times 10^{-7})< \alpha (0.05)\), maka \(H_0\) ditolak

Kesimpulan: Dengan taraf nyata 5% dapat disimpulkan secara parsial bahwa umur berpengaruh signifikan terhadap lemak tubuh

Hipotesis:

\(H_0:\beta_3=0\)

\(H_1:\beta_3\neq 0\)

Keputusan:

p value \((2 \times 10^{-16})< \alpha (0.05)\), maka \(H_0\) ditolak

Kesimpulan:

Dengan taraf nyata 5% dapat disimpulkan secara parsial bahwa berat badan berpengaruh signifikan terhadap lemak tubuh

Hipotesis:

\(H_0:\beta_4=0\)

\(H_1:\beta_4\neq 0\)

Keputusan:

p value \((6.01 \times 10^{-9})< \alpha (0.05)\), maka \(H_0\) ditolak

Kesimpulan:

Dengan taraf nyata 5% dapat disimpulkan secara parsial bahwa tinggi badan berpengaruh signifikan terhadap lemak tubuh

Penutup

Kesimpulan

Masalah heteroskedastisitas dapat diatasi salah satunya dengan weighted least square (WLS) yaitu dengan memberi bobot pada variabel dalam hal ini Age, Weight, Height, dan BodyFat.

Hasil WLS didapatkan secara simultan maupun parsial bahwa umur, berat badan, dan tinggi badan berpengaruh signifikan terhadap lemak tubuh