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:
Secara umum, persamaan regesi linier adalah sebagai berikut. \[Y = \beta_0 + \beta_1 X + \varepsilon\] Keterangan:
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\]
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.
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 \]
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 \]
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:
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).
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
Kesimpulan
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.
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).
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.
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).
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.
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.
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).