Data Studi Kasus

Diberikan data tentang tingkat kehadiran (\(X_1\)) dan IQ (\(X_2\)) sepuluh siswa di kelas yang diperkirakan mempengaruhi nilai UAS (\(Y\)).

Y_nilai <- c(65,70,75,75,80,80,85,95,90,98)
X1_kehadiran <- c(60,70,75,80,80,90,95,95,100,100)
X2_iq <- c(110,120,115,130,110,120,120,125,110,120)
data_siswa <- data.frame(Y_nilai, X1_kehadiran, X2_iq)
colnames(data_siswa) <- c("Y", "X1", "X2")
data_siswa

Pada data ini diminta untuk:

  1. Buatlah persamaan regresi linier berganda! (hitung beta duga secara manual di R dan bandingkan dengan fungsi lm)
  2. Lakukan Uji-F! (interpretasikan hasilnya)
  3. Lakukan Uji-t! (interpretasikan hasilnya)
  4. Berapa koefisien determinasinya? Interpretasi hasil ini!
  5. Lakukan uji asumsi dan jelaskan hasilnya

1. Persamaan Regresi Linier

Secara umum, persamaan regesi linier adalah sebagai berikut. \[Y = \beta_0 + \beta_1 X + \varepsilon\] Keterangan:

  • \(Y\) : variabel dependen
  • \(X\) : variabel independen
  • \(\beta_0\) : intercept
  • \(\beta_1\) : koefisien regresi
  • \(\varepsilon\) : error

Karena pada studi kasus mempunyai lebih dari satu variabel independen, maka akan digunakan persamaan regresi linier berganda. Berikut ini persamaan umumnya. \[Y = \beta_0 + \beta_1 X_1 + \beta_2 X_2 + \varepsilon\]

Pendugaan Parameter

Dalam membuat persamaan regresi linier, maka kita perlu menentukan beta yang menjadi koefisien dari persamaan. Untuk membandingkan hasilnya, maka akan dilakukan penyelesaian secara manual dan menggunakan fungsi lm yang tersedia di R.

Menghitung beta secara manual

Karena studi kasus yang diberikan merupakan data dengan 2 variabel independen, maka bisa menggunakan matrix dengan rumus berikut. \[\hat{\boldsymbol{\beta}} = (\mathbf{X}^T \mathbf{X})^{-1} \mathbf{X}^T \mathbf{Y}\] Berikut penyelesaian menggunakan R.

# Membentuk matrix Y dan X
Y <- as.matrix(data_siswa$Y,ncol=1)
print(Y)
##       [,1]
##  [1,]   65
##  [2,]   70
##  [3,]   75
##  [4,]   75
##  [5,]   80
##  [6,]   80
##  [7,]   85
##  [8,]   95
##  [9,]   90
## [10,]   98
matrix_X <- data.frame(rep(1,times=10), data_siswa$X1, data_siswa$X2)
colnames(matrix_X) <- c("intercept", "b1", "b2")
X <- as.matrix(matrix_X)
print(X)
##       intercept  b1  b2
##  [1,]         1  60 110
##  [2,]         1  70 120
##  [3,]         1  75 115
##  [4,]         1  80 130
##  [5,]         1  80 110
##  [6,]         1  90 120
##  [7,]         1  95 120
##  [8,]         1  95 125
##  [9,]         1 100 110
## [10,]         1 100 120
# Menghitung X_transpose X dan X_transpose Y
XtX <- t(X)%*%X
XtY <- t(X)%*%Y
# Perhitungan nilai Beta
beta <- (solve(XtX))%*%(XtY)
print(beta)
##                 [,1]
## intercept 23.0544545
## b1         0.7372330
## b2        -0.0343275

Pada hasil yang diberikan menunjukkan bahwa intercept atau \(\beta_0\) bernilai 23.05445, \(\beta_1\) sebesar 0.73723, dan \(\beta_2\) sebesar -0.03432. Maka dapat dituliskan dalam persamaan regresi linear berganda sebagai berikut. \[\hat{\boldsymbol{Y}} = 23.0544545 + 0.7372330 X_1 - 0.0343275 X_2 \]

Menentukan beta dengan fungsi lm

Selain menggunakan cara manual yang memerlukan rumus dan beberapa langkah, kita bisa menentukan penduga parameter hanya dengan satu fungsi, yaitu fungsi linear model (lm) yang sudah disediakan R. Berikut penggunaannya.

# Menentukan persamaan linier dengan fungsi lm
model <- lm(Y ~ X1 + X2, data = data_siswa)
model
## 
## Call:
## lm(formula = Y ~ X1 + X2, data = data_siswa)
## 
## Coefficients:
## (Intercept)           X1           X2  
##    23.05445      0.73723     -0.03433

Menurut hasil di atas, maka dapat dituliskan persamaan regresi linearnya sebagai berikut. \[\hat{\boldsymbol{Y}} = 23.05445 + 0.73723 X_1 - 0.03433 X_2 \]

Hasil Perbandingan dan Interpretasi

Pada kedua cara yang telah dikerjakan, mendapatkan hasil yang sama koefisien untuk persamaan regresi linear berganda. Hanya tingkat ketelitian saja yang berbeda, jika dibulatkan angka pada kedua hasil bisa sama persis.

Interpretasi dari persamaan regresi linear yang melibatkan nilai UAS sebagai variabel dependen, tingkat kehadiran sebagai variabel independen pertama dan IQ sebagai variabel independen kedua yaitu sebagai berikut:

  • Konstanta 23.05445 merupakan nilai UAS saat \(X_1\) (tingkat kehadiran) dan \(X_2\) (IQ) konstan (=0)
  • Nilai UAS naik sebesar 0.73723 setiap kenaikan 1 satuan tingkat kehadiran dengan IQ konstan.
  • Nilai UAS turun sebesar 0.03433 setiap kenaikan 1 satuan IQ dengan tingkat kehadiran konstan.

2. Uji Signifikansi Simultan (Uji-F)

Uji-F digunakan untuk mengetahui apakah variabel-variabel independen memiliki pengaruh secara besama-sama atau secara simultan terhadap variabel dependen. Dimana derajat signifikansi yang digunakan adalah 0.05. Apabila nilai signifikan lebih kecil dari derajat kepercayaan maka kita menerima hipotesis alternatif yang menyatakan bahwa variabelvariabel independen secara simultan mempengaruhi variabel dependen (Sudariani & Yoedani, 2022).

Hipotesis:
\(H_0: \beta_1=\beta_2=0\)
\(H_1:\) minimal ada satu \(\beta_i=0\) dimana \(i=1,2\)

Statistik Uji

# Menentukan Y duga dan Y bar
Yduga <- X%*%beta
print(Yduga)
##           [,1]
##  [1,] 63.51241
##  [2,] 70.54147
##  [3,] 74.39927
##  [4,] 77.57052
##  [5,] 78.25707
##  [6,] 85.28613
##  [7,] 88.97229
##  [8,] 88.80065
##  [9,] 93.00173
## [10,] 92.65846
galat <- Y-Yduga
print(galat)
##             [,1]
##  [1,]  1.4875890
##  [2,] -0.5414662
##  [3,]  0.6007312
##  [4,] -2.5705215
##  [5,]  1.7429286
##  [6,] -5.2861266
##  [7,] -3.9722917
##  [8,]  6.1993458
##  [9,] -3.0017318
## [10,]  5.3415432
n <- nrow(Y)
Ybar <- rep(mean(Y),n)
print(Ybar)
##  [1] 81.3 81.3 81.3 81.3 81.3 81.3 81.3 81.3 81.3 81.3
# Jumlah kuadrat
JKT <- t(Y-Ybar)%*%(Y-Ybar)
JKR <- t(Yduga-Ybar)%*%(Yduga-Ybar)
JKG <- JKT-JKR

# Derajat bebas
dbR <- 2
dbT <- n-1
dbG <- dbT-dbR

# Kuadrat Tengah
KTR <- JKR/dbR
KTG <- JKG/dbG

# F-hitung
Fhit <- KTR/KTG
cat("F-hitung:", Fhit)
## F-hitung: 23.82303
# F-tabel
Ftab <- pf(0.05,dbR,dbG)
cat("F-tabel:", Ftab)
## F-tabel: 0.04843399
# P-value
Pvalue_F <- pf(Fhit,2,7,lower.tail=FALSE)
cat("P-value:", Pvalue_F)
## P-value: 0.0007522929
# Membuat tabel ANOVA
SK <- c("Regresi","Galat","Total")
JK <- c(JKR, JKG, JKT)
db <- c(dbR, dbG, dbT)
KT <- c(KTR, KTG, NA)
Fhitung <- c(Fhit, NA, NA)
Ftabel <- c(Ftab, NA, NA)
Pvalue <- c(Pvalue_F, NA, NA)
Anova <- data.frame(SK,JK,db,KT,Fhitung,Ftabel,Pvalue)
print(Anova)
##        SK       JK db       KT  Fhitung     Ftabel       Pvalue
## 1 Regresi  899.891  2 449.9455 23.82303 0.04843399 0.0007522929
## 2   Galat  132.209  7  18.8870       NA         NA           NA
## 3   Total 1032.100  9       NA       NA         NA           NA

Dari perhitungan manual diatas didapatkan \(P-value=0.00075\). Perhitungan manual di atas benar apabila menunjukkan hasil yang sama dengan menggunakan fungsi lm() pada R berikut.

# Uji F menggunakan fungsi lm
model <- lm(Y_nilai ~ X1_kehadiran + X2_iq, data = data_siswa)
summary(model)
## 
## Call:
## lm(formula = Y_nilai ~ X1_kehadiran + X2_iq, data = data_siswa)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -5.2861 -2.8939  0.0296  1.6791  6.1993 
## 
## Coefficients:
##              Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  23.05445   25.57161   0.902 0.397247    
## X1_kehadiran  0.73723    0.10918   6.752 0.000264 ***
## X2_iq        -0.03433    0.22051  -0.156 0.880686    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 4.346 on 7 degrees of freedom
## Multiple R-squared:  0.8719, Adjusted R-squared:  0.8353 
## F-statistic: 23.82 on 2 and 7 DF,  p-value: 0.0007523

Keputusan
Karena \(F-hitung > F-tabel\) atau \(P-value < \alpha(0.05)\), maka tolak \(H_0\).

Kesimpulan
Pada taraf nyata 5%, dapat disimpulkan bahwa minimal ada salah satu variabel X ( tingkat kehadiran atau IQ) yang mempengaruhi variabel Y (nilai UAS).

3. Uji Signifikansi Parsial (Uji-t)

Uji-t digunakan untuk mengetahui apakah variabel-variabel independen memiliki pengaruh secara individual atau secara parsial terhadap variabel dependen. Dimana derajat signifikansi yang digunakan adalah 0,05. Apabila nilai signifikan lebih kecil dari derajat kepercayaan maka kita menerima hipotesis alternatif yang menyatakan bahwa variabel-variabel independen secara parsial mempengaruhi variabel dependen.
Hipotesis untuk uji ini adalah:

\(H_0:\beta_i=0\) (Tidak ada pengaruh dari variabel X ke-i terhadap variabel Y)
\(H_1:\beta_i\not=0\) (Terdapat pengaruh dari variabel X ke-i terhadap variabel Y)

Berikut ini implementasi menggunakan R.

Hipotesis

1. $H_0:\beta_1=0$ ; $H_1:\beta_1\not=0$\
2. $H_0:\beta_2=0$ ; $H_1:\beta_2\not=0$

Statistik Uji

# Uji t menggunakan rumus manual
k <- 3
sd <- rep(0,k)
for(i in 1:k){sd[i]=sqrt(KTG*(solve(t(X)%*%X))[i,i])}
print(sd)
## [1] 25.5716101  0.1091797  0.2205125
thit <- beta/sd
print(thit)
##                 [,1]
## intercept  0.9015644
## b1         6.7524718
## b2        -0.1556715
pvalue_t <- 2*pt(abs(thit),dbG,lower.tail=FALSE)
print(pvalue_t)
##                   [,1]
## intercept 0.3972467061
## b1        0.0002644133
## b2        0.8806860631
# Uji t menggunakan fungsi lm
model <- lm(Y_nilai ~ X1_kehadiran + X2_iq, data = data_siswa)
summary(model)
## 
## Call:
## lm(formula = Y_nilai ~ X1_kehadiran + X2_iq, data = data_siswa)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -5.2861 -2.8939  0.0296  1.6791  6.1993 
## 
## Coefficients:
##              Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  23.05445   25.57161   0.902 0.397247    
## X1_kehadiran  0.73723    0.10918   6.752 0.000264 ***
## X2_iq        -0.03433    0.22051  -0.156 0.880686    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 4.346 on 7 degrees of freedom
## Multiple R-squared:  0.8719, Adjusted R-squared:  0.8353 
## F-statistic: 23.82 on 2 and 7 DF,  p-value: 0.0007523

Keputusan

  1. Variabel \(X_1\): Karena \(p-value = 0.000264 < \alpha(0.05)\), maka tolak \(H_0\).
  2. Variabel \(X_2\): Karena \(p-value 0.998967 > \alpha(0.05)\), maka gagal tolak \(H_0\)

Kesimpulan 

  1. Pada taraf nyata 5%, terbukti bahwa tingkat kehadiran (\(X_1\)) berpengaruh secara signifikan terhadap nilai UAS (\(Y\)).
  2. Pada taraf nyata 5%, terbukti bahwa IQ (\(X_2\)) tidak berpengaruh secara signifikan terhadap nilai UAS (\(Y\)).

4. Koefisien Determinasi (\(R^2\))

Koefisien determinasi menunjukkan sejauh mana kontribusi variabel bebas dalam model regresi mampu menjelaskan variasi dari variabel terikatnya. Untuk menghitungnya bisa menggunakan rumus berikut. \[R^2 = \frac{JKR}{JKT}\] Berikut implementasi menggunakan R.

# Koefisien Determinasi menggunakan rumus
Rsquare <- JKR/JKT
print(Rsquare)
##           [,1]
## [1,] 0.8719029
# Koefisien Determinasi menggunakan fungsi lm
model <- lm(Y_nilai ~ X1_kehadiran + X2_iq, data = data_siswa)
summary(model)
## 
## Call:
## lm(formula = Y_nilai ~ X1_kehadiran + X2_iq, data = data_siswa)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -5.2861 -2.8939  0.0296  1.6791  6.1993 
## 
## Coefficients:
##              Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  23.05445   25.57161   0.902 0.397247    
## X1_kehadiran  0.73723    0.10918   6.752 0.000264 ***
## X2_iq        -0.03433    0.22051  -0.156 0.880686    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 4.346 on 7 degrees of freedom
## Multiple R-squared:  0.8719, Adjusted R-squared:  0.8353 
## F-statistic: 23.82 on 2 and 7 DF,  p-value: 0.0007523

Interpretasi

Dari pengujian di atas, dapat disimpulkan bahwa tingkat kehadiran dan IQ mampu menjelaskan pengaruhnya sebesar 87.19% dalam menentukan nilai UAS, sisanya dipengaruhi oleh faktor lain.

Pada fungsi lm() diberikan Adjusted R-squared sebesar 83.53%. Adjusted R-squared ini lebih akurat untuk membandingkan model karena nilainya menyesuaikan dengan jumlah variabel dan ukuran sampel.

5. Uji Asumsi

Sebelum dilakukan multiple regresion analyze method, data tersebut terlebih dahulu dilakukan sebuah pengujian asumsi klasik. Hal ini dilakukan agar data tersebut bersifat BLUE (Best, Linear, Unbiased and Estimator).

a. Normalitas

Menurut Imam Ghozali (2009) tujuan uji normalitas adalah untuk menguji apakah dalam model regresi,variabel terikat (dependent variable) dan variabel bebas (independent variable) keduanya memiliki distribusi normal atau tidak. Model regresi yang memiliki distribusi data yang normal atau mendekati normal dikatakan model regresi yang baik.

Hipotesis
\(H_0:\) Galat berdistribusi normal
\(H_1:\) Galat tidak berdistribusi normal

Statistik Uji

sisaan <- residuals(model)
shapiro.test(sisaan)
## 
##  Shapiro-Wilk normality test
## 
## data:  sisaan
## W = 0.95125, p-value = 0.6833

Keputusan
\(P-value(0.6833) > \alpha(0.05)\), maka \(H_0\) diterima.

Kesimpulan
Pada taraf nyata 5%, dapat disimpulkam bahwa galat menyebar secara normal dan asumsi normalitas terpenuhi.

b. Heteroskedastisitas

Dalam regresi, salah satu asumsi yang harus dipenuhi adalah bahwa varian dari residual dari satu pengamatan ke pengamatan yang lain tidak memiliki pola tertentu. Pola yang tidak sama ini ditunjukkan dengan nilai yang tidak sama antar satu varian dari residual. Gejala yang tidak sama ini disebut dengan gejala heteroskedastisitas.

Hipotesis
\(H_0:\) Ragam bersifat konstan (homoskedastisitas)
\(H_1:\) Ragam tidak bersifat konstan (heteroskedastisitas)

Statistik Uji

library(lmtest)
## Loading required package: zoo
## 
## Attaching package: 'zoo'
## The following objects are masked from 'package:base':
## 
##     as.Date, as.Date.numeric
bptest(model)
## 
##  studentized Breusch-Pagan test
## 
## data:  model
## BP = 5.905, df = 2, p-value = 0.05221

Keputusan
Karena \(p-value(0.05221) > \alpha(0.05)\), maka \(H_0\) diterima.

Kesimpulan
Pada taraf nyata 5%, dapat disimpulkan bahwa ragam bersifat konstan atau homoskedastisitas (tidak memiliki gejala heteroskedastisitas).

c. Autokorelasi

Uji autokorelasi dilakukan untuk mengetahui apakah ada korelasi natara kesalahan pengganggu pada periode t dengan kesalahan pada periode t sebelumnya pada model regresi linier yang dipergunakan. Jika terjadi korelasi, maka dinamakan ada problem autokorelasi. Dalam model regresi yang baik adalah tidak terjadi autokorelasi (Nisfiannoor, M., 2009).

Hipotesis
\(H_0:\) Tidak terjadi autokorelasi (nonautokorelasi)
\(H_1:\) Terjadi autokorelasi (autokorelasi)

Statistik Uji

dwtest(model)
## 
##  Durbin-Watson test
## 
## data:  model
## DW = 2.594, p-value = 0.8013
## alternative hypothesis: true autocorrelation is greater than 0

Keputusan
Karena \(p-value(0.8013)>\alpha(0.05)\) maka \(H_0\) diterima.

Kesimpulan
Pada taraf nyata 5%, dapat disimpulkan bahwa model regresi tidak terjadi autokorelasi atau memenuhi asumsi nonautokorelasi.

d. Multikolinieritas

Uji multikoliniearitas untuk menyatakan bahwa variabel independen harus terbebas dari gejala multikolinearitas dengan kata lain gejala dengan korelasi yang signifikan antar variabel independen. Gejala ini ditunjukkan dengan korelasi yang signifikan antar variabel independen. Jika terjadi gejala multikolinearitas, salah satu langkah untuk memperbaiki model adalah dengan menghilangkan variabel dari model regresi (Nugraha, B., 2022).

Dalam menentukan hipotesis yang diambil dalam uji multikolinearitas, diantaranya:
- Jika nilai VIF > nilai 10, maka kesimpulan yang diambil terjadi multikolinearitas.
- Jika nilai VIF < nilai 10, maka kesimpulan yang diambil tidak terjadi multikolinearitas.

Statistik Uji

library(car)
## Warning: package 'car' was built under R version 4.5.1
## Loading required package: carData
## Warning: package 'carData' was built under R version 4.5.1
vif(model)
## X1_kehadiran        X2_iq 
##     1.055571     1.055571

Keputusan
Karena nilai VIF = 1.055571 < 10, maka tidak terjadi multikolinieritas.

Kesimpulan
Dari pengujian di atas, dapat disimpulkan bahwa pada model regresi yang kita punya tidak terdapat multikolinieritas, yang berarti antara variabel tingkat kehadiran (\(X_1\)) dengan IQ (\(X_2\)) tidak terdapat pengaruh satu sama lain.

Kesimpulan Akhir

Berdasarkan seluruh hasil analisis yang telah dilakukan, diperoleh beberapa kesimpulan utama sebagai berikut:

1. Persamaan Model

Model regresi linier berganda yang diperoleh adalah: \[\hat{\boldsymbol{Y}} = 23.0544545 + 0.7372330 X_1 - 0.0343275 X_2 \] yang menunjukkan bahwa kehadiran berpengaruh positif terhadap nilai, sedangkan IQ memiliki pengaruh negatif yang sangat kecil.

2. Uji Simultan (Uji-F)

Hasil uji F menunjukkan bahwa model regresi secara keseluruhan signifikan (\(p-value < 0.05\)). Artinya, secara bersama-sama variabel kehadiran dan IQ berpengaruh terhadap nilai UAS.

3. Uji Parsial (Uji-t)

  • Variabel kehadiran (\(X_1\)) berpengaruh signifikan terhadap nilai UAS.

  • Variabel IQ (\(X_2\)) tidak berpengaruh signifikan terhadap nilai UAS.

Sehingga, secara individu hanya tingkat kehadiran yang berperan penting dalam model.

4. Koefisien Determinasi

  • \(R^2=0.8719\) menunjukkan bahwa 87.19% variasi nilai dapat dijelaskan oleh model.

  • \(Adjusted\) \(R^2=0.8353\) menunjukkan bahwa setelah penyesuaian, model masih mampu menjelaskan 83.53% variasi nilai.

Ini menandakan model memiliki kemampuan penjelasan yang baik.

5. Uji Asumsi

Seluruh asumsi regresi telah terpenuhi, dimana:

  • Residual berdistribusi normal

  • Tidak terjadi heteroskedastisitas

  • Tidak terjadi autokorelasi

  • Tidak terdapat multikolinieritas

Sehingga model memenuhi kriteria BLUE (Best Linear Unbiased Estimator).