data <- data.frame(
IQ = c(110, 120, 115, 130, 110, 120, 120, 125, 110, 120),
Kehadiran = c(60, 70, 75, 80, 80, 90, 95, 95, 100, 100),
Nilai = c(65, 70, 75, 75, 80, 80, 85, 95, 90, 98)
)
data
## IQ Kehadiran Nilai
## 1 110 60 65
## 2 120 70 70
## 3 115 75 75
## 4 130 80 75
## 5 110 80 80
## 6 120 90 80
## 7 120 95 85
## 8 125 95 95
## 9 110 100 90
## 10 120 100 98
MODEL REGRESI LINIER
model <- lm(Nilai ~ IQ + Kehadiran, data = data)
summary(model)
##
## Call:
## lm(formula = Nilai ~ IQ + Kehadiran, data = data)
##
## 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
## IQ -0.03433 0.22051 -0.156 0.880686
## Kehadiran 0.73723 0.10918 6.752 0.000264 ***
## ---
## 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
X <- cbind(1, data$IQ, data$Kehadiran)
Y <- as.matrix(data$Nilai)
n<- length (Y)
beta_manual <- solve(t(X) %*% X) %*% t(X) %*% Y
beta_manual
## [,1]
## [1,] 23.0544545
## [2,] -0.0343275
## [3,] 0.7372330
beta0 <- beta_manual[1]
beta1 <- beta_manual[2]
beta2 <- beta_manual[3]
#persamaan regresinya
cat("Persamaan Regresi: Y =",
beta0, "+",
beta1, "*IQ +",
beta2, "*Kehadiran\n")
## Persamaan Regresi: Y = 23.05445 + -0.0343275 *IQ + 0.737233 *Kehadiran
#prediksi nilai Y
y_pred <- beta0 + beta1 * data$IQ + beta2 * data$Kehadiran
y_pred
## [1] 63.51241 70.54147 74.39927 77.57052 78.25707 85.28613 88.97229 88.80065
## [9] 93.00173 92.65846
y_mean <- mean(data$Nilai)
y_mean
## [1] 81.3
#hitung SST, SSR, SSE
SST <- sum((data$Nilai - y_mean)^2)
SST
## [1] 1032.1
SSE <- sum((data$Nilai - y_pred)^2)
SSE
## [1] 132.209
SSR <- sum((y_pred - y_mean)^2)
SSR
## [1] 899.891
#DB
k <- 2 # jumlah variabel bebas
df_reg <- k
df_err <- n - k - 1
df_tot <- n - 1
#mean square
MSR <- SSR/df_reg
MSE <- SSE/df_err
#Uji F
F_value <- MSR/MSE
P_value_F <- pf(F_value, df_reg, df_err, lower.tail = FALSE)
#Uji t untuk beta1
XtX_inv <- solve(t(X) %*% X)
SE_beta1 <- sqrt(MSE * XtX_inv[2,2])
SE_beta2 <- sqrt(MSE * XtX_inv[3,3])
t_beta1 <- beta1 / SE_beta1
t_beta2 <- beta2 / SE_beta2
p_beta1 <- 2 * pt(-abs(t_beta1), df_err)
p_beta2 <- 2 * pt(-abs(t_beta2), df_err)
PERBANDINGAN DENGAN LM()
coef(model)
## (Intercept) IQ Kehadiran
## 23.0544545 -0.0343275 0.7372330
Persamaan Regresinya: Nilai = 23.0544545 -0.0343275(IQ) + 0.7372330(Kehadiran)
Interpretasi: -Intercept (23.054) = Nilai UAS diperkirakan sebesar 23.054 ketika IQ dan Kehadiran = 0 -IQ (-0.034) = Setiap kenaikan 1 poin IQ, Nilai turun 0.034 -Kehadiran (0.737)= Setiap kenaikan 1% kehadiran, Nilai naik sebesar 0.737
summary(model)$fstatistic
## value numdf dendf
## 23.82303 2.00000 7.00000
Interpretasi: Karena p-value < 0.05 maka tolak H₀
artinya: IQ dan Kehadiran secara bersama sama berpengaruh signifikan terhadap Nilai UAS
summary(model)$coefficients
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 23.0544545 25.5716101 0.9015644 0.3972467061
## IQ -0.0343275 0.2205125 -0.1556715 0.8806860631
## Kehadiran 0.7372330 0.1091797 6.7524718 0.0002644133
IQ: p-value = 0.880686 > 0.05 Interpretasi: IQ tidak berpengaruh signifikan terhadap Nilai
Kehadiran: p-value = 0.000264 < 0.05 Interpretasi: Kehadiran berpengaruh signifikan terhadap Nilai Artinya:Semakin tinggi kehadiran nilai semakin tinggi.
KOEFISIEN DETERMINASI (R²)
summary(model)$r.squared
## [1] 0.8719029
Interpretasi: 87.19% variasi Nilai UAS dapat dijelaskan oleh IQ dan Kehadiran/ Sisanya 12.81% dipengaruhi faktor lain. seperti : belajar, tugas, lingkungan, dll
shapiro.test(residuals(model))
##
## Shapiro-Wilk normality test
##
## data: residuals(model)
## W = 0.95125, p-value = 0.6833
hist(residuals(model))
qqnorm(residuals(model))
qqline(residuals(model))
HISTOGRAM RESIDUAL: -Bentuk histogram cukup simetris -Tidak terlalu miring ke kiri atau kanan -Sebagian besar data berada di sekitar tengah Interpretasi:Histogram menunjukkan pola yang mendekati distribusi norma. Ini memperkuat hasil uji Shapiro-Wilk
Q-Q PLOT: -Titik-titik cenderung mengikuti garis diagonal -Ada sedikit penyimpangan di ujung Interpretasi: Residual mendekati distribusi normal, Karena sebagian besar titik berada di sekitar garis
B. HETEROSKEDASTISTITAS H₀: Tidak ada heteroskedastisitas H₁: Ada heteroskedastisitas
plot(fitted(model), residuals(model))
abline(h=0, col="red")
-Titik-titik menyebar di atas dan di bawah garis nol -Tidak membentuk pola tertentu (tidak seperti kipas, gelombang, atau pola jelas) -Penyebaran relatif acak Interpretasi: Karena titik menyebar secara acak dan tidak membentuk pola maka tidak terjadi heteroskedastisitas, dan Varians residual konstan (homoskedastisitas terpenuhi)
C. AUTOKORELASI H₀: Tidak terdapat autokorelasi pada residual H₁: Terdapat autokorelasi pada residual
library(lmtest)
## Warning: package 'lmtest' was built under R version 4.5.2
## Loading required package: zoo
## Warning: package 'zoo' was built under R version 4.5.2
##
## Attaching package: 'zoo'
## The following objects are masked from 'package:base':
##
## as.Date, as.Date.numeric
dwtest(model)
##
## Durbin-Watson test
##
## data: model
## DW = 2.594, p-value = 0.8013
## alternative hypothesis: true autocorrelation is greater than 0
Nilai DW = 2.594 yang masih berada di sekitar 2, sehingga menunjukkan tidak adanya autokorelasi yang signifikan. p-value sebesar 0.8013 > 0.05, menunjukkan bahwa tidak ada cukup bukti untuk menolak hipotesis nol, yaitu tidak adanya autokorelasi.
Karena p-value > 0.05, maka gagal menolak H₀
D. MULTIKOLINEARITAS H₀: Tidak terdapat multikolinearitas antar variabel independen H₁: Terdapat multikolinearitas
library(car)
## Warning: package 'car' was built under R version 4.5.2
## Loading required package: carData
## Warning: package 'carData' was built under R version 4.5.2
vif(model)
## IQ Kehadiran
## 1.055571 1.055571
Nilai VIF sebesar 1.055 sangat kecil dan mendekati 1, yang berarti: -Hubungan antar variabel independen sangat lemah -Tidak terjadi multikolinearitas
Karena VIF < 10 maka gagal menolak H₀ Jadi: Variabel IQ dan Kehadiran tidak saling mempengaruhi secara kuat dalam model.
Dengan demikian, model regresi yang diperoleh sudah baik dan dapat digunakan, dengan variabel Kehadiran sebagai faktor yang paling berpengaruh terhadap Nilai UAS.