Laporan ini bertujuan untuk menganalisis pengaruh jumlah jam belajar terhadap nilai ujian mahasiswa menggunakan metode regresi linier sederhana. Analisis dilakukan pada data dummy yang terdiri dari 20 observasi. Hasil analisis menunjukkan bahwa terdapat hubungan positif dan signifikan antara jam belajar dan nilai ujian, di mana setiap penambahan satu jam belajar diperkirakan dapat meningkatkan nilai ujian sebesar 5.8 poin. Model regresi yang dihasilkan mampu menjelaskan sekitar 96% variasi nilai ujian.
Regresi linier sederhana merupakan metode statistik yang digunakan untuk menguji dan mengukur hubungan antara dua variabel. Dalam studi ini, variabel independen (X) adalah Jam Belajar dan variabel dependen (Y) adalah Nilai Ujian. Tujuan dari analisis ini adalah:
Data yang digunakan merupakan data dummy buatan dengan 20 observasi. Berikut adalah proses input datanya:
# Membuat vektor data
jam_belajar <- c(1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 10)
nilai_ujian <- c(45, 50, 55, 60, 58, 65, 70, 72, 75, 78, 80, 82, 85, 88, 86, 90, 92, 95, 94, 98)
# Menggabungkan menjadi data frame
data <- data.frame(
Jam_Belajar = jam_belajar,
Nilai_Ujian = nilai_ujian
)Berikut adalah 10 data pertama:
## Jam_Belajar Nilai_Ujian
## 1 1 45
## 2 2 50
## 3 2 55
## 4 3 60
## 5 3 58
## 6 4 65
## 7 4 70
## 8 5 72
## 9 5 75
## 10 6 78
## Jam_Belajar Nilai_Ujian
## Min. : 1.00 Min. :45.00
## 1st Qu.: 3.75 1st Qu.:63.75
## Median : 6.00 Median :79.00
## Mean : 5.95 Mean :75.90
## 3rd Qu.: 8.25 3rd Qu.:88.50
## Max. :10.00 Max. :98.00
Interpretasi: - Rata-rata mahasiswa belajar selama 5.95 jam dengan nilai ujian rata-rata 75.9 - Jam belajar bervariasi dari 1 jam hingga 10 jam - Nilai ujian bervariasi dari 45 hingga 98
Scatter plot digunakan untuk melihat pola hubungan antara jam belajar dan nilai ujian secara visual.
# Membuat scatter plot dasar
ggplot(data, aes(x = Jam_Belajar, y = Nilai_Ujian)) +
geom_point(size = 3, color = "steelblue") +
labs(title = "Gambar 1: Scatter Plot Jam Belajar vs Nilai Ujian",
subtitle = "Data Dummy 20 Mahasiswa",
x = "Jam Belajar (Jam)",
y = "Nilai Ujian",
caption = "Sumber: Data Dummy") +
theme_minimal() +
theme(plot.title = element_text(hjust = 0.5, face = "bold"),
plot.subtitle = element_text(hjust = 0.5))Interpretasi: Dari grafik di atas, terlihat bahwa titik-titik data cenderung membentuk pola garis lurus yang naik dari kiri bawah ke kanan atas. Hal ini mengindikasikan adanya hubungan linear positif antara jam belajar dan nilai ujian. Artinya, semakin tinggi jam belajar, semakin tinggi pula nilai ujian yang diperoleh.
Untuk mengukur seberapa kuat hubungan antara kedua variabel, kita hitung koefisien korelasinya:
## [1] 0.9850992
Interpretasi: Nilai korelasi sebesar 0.9851 menunjukkan hubungan yang sangat kuat dan positif antara jam belajar dan nilai ujian. Nilai ini mendekati +1 yang berarti hubungannya hampir linear sempurna.
Pada bagian ini, kita akan membangun model regresi linier sederhana
dengan fungsi lm() (linear model) di R.
# Membangun model
model <- lm(Nilai_Ujian ~ Jam_Belajar, data = data)
# Menampilkan ringkasan model
summary(model)##
## Call:
## lm(formula = Nilai_Ujian ~ Jam_Belajar, data = data)
##
## Residuals:
## Min 1Q Median 3Q Max
## -4.5756 -2.0721 0.1308 1.3790 4.6272
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 43.7785 1.4644 29.9 < 2e-16 ***
## Jam_Belajar 5.3986 0.2222 24.3 3.26e-15 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 2.818 on 18 degrees of freedom
## Multiple R-squared: 0.9704, Adjusted R-squared: 0.9688
## F-statistic: 590.5 on 1 and 18 DF, p-value: 3.259e-15
# Mengambil koefisien regresi
intercept <- coef(model)[1]
slope <- coef(model)[2]
# Menampilkan dalam format yang lebih rapi
koefisien_df <- data.frame(
Parameter = c("Intercept (a)", "Koefisien Regresi (b)"),
Nilai = c(round(intercept, 4), round(slope, 4)),
Keterangan = c("Nilai ujian ketika jam belajar = 0",
"Perubahan nilai ujian per 1 jam belajar")
)
kable(koefisien_df, caption = "Tabel 1: Koefisien Regresi")| Parameter | Nilai | Keterangan | |
|---|---|---|---|
| (Intercept) | Intercept (a) | 43.7785 | Nilai ujian ketika jam belajar = 0 |
| Jam_Belajar | Koefisien Regresi (b) | 5.3986 | Perubahan nilai ujian per 1 jam belajar |
Berdasarkan hasil summary di atas, kita mendapatkan persamaan regresi:
Nilai_Ujian = 43.78 + 5.4 * Jam_Belajar
Penjelasan: - Konstanta (Intercept) = 43.78: Jika seorang mahasiswa tidak belajar sama sekali (0 jam), diperkirakan nilai ujiannya adalah 43.78. - Koefisien Regresi (Slope) = 5.4: Setiap penambahan 1 jam belajar, nilai ujian diprediksi akan meningkat sebesar 5.4 poin. - Signifikansi: Nilai p-value (Pr(>|t|)) untuk variabel Jam_Belajar adalah 3.258822^{-15} yang jauh di bawah 0.05. Ini berarti jam belajar berpengaruh signifikan terhadap nilai ujian pada tingkat kepercayaan 95%. - R-squared: Nilai R-squared sebesar 0.9704 (atau 97.04%) menunjukkan bahwa variabel jam belajar mampu menjelaskan sekitar 97.04% variasi yang terjadi pada nilai ujian. Ini adalah nilai yang sangat baik.
# Scatter plot dengan garis regresi
ggplot(data, aes(x = Jam_Belajar, y = Nilai_Ujian)) +
geom_point(size = 3, color = "steelblue") +
geom_smooth(method = "lm", se = TRUE, color = "red", fill = "gray80") +
labs(title = "Gambar 2: Regresi Linier Jam Belajar vs Nilai Ujian",
subtitle = paste("Persamaan: Y =", round(intercept, 2), "+", round(slope, 2), "X"),
x = "Jam Belajar (Jam)",
y = "Nilai Ujian") +
theme_minimal() +
theme(plot.title = element_text(hjust = 0.5, face = "bold"),
plot.subtitle = element_text(hjust = 0.5, color = "blue"))Kita dapat menggunakan model yang telah dibuat untuk memprediksi nilai ujian berdasarkan jam belajar tertentu.
# Membuat data baru untuk diprediksi
data_prediksi <- data.frame(
Jam_Belajar = c(2.5, 5.5, 7.5, 9.5)
)
# Melakukan prediksi dengan interval kepercayaan 95%
prediksi <- predict(model, newdata = data_prediksi, interval = "confidence", level = 0.95)
# Menggabungkan hasil
hasil_prediksi <- cbind(data_prediksi, prediksi)
# Menampilkan tabel prediksi
kable(hasil_prediksi,
col.names = c("Jam Belajar", "Prediksi", "Batas Bawah", "Batas Atas"),
caption = "Tabel 2: Hasil Prediksi Nilai Ujian dengan Interval Kepercayaan 95%",
digits = 2)| Jam Belajar | Prediksi | Batas Bawah | Batas Atas |
|---|---|---|---|
| 2.5 | 57.27 | 55.19 | 59.36 |
| 5.5 | 73.47 | 72.13 | 74.81 |
| 7.5 | 84.27 | 82.76 | 85.78 |
| 9.5 | 95.06 | 92.94 | 97.19 |
Interpretasi: - Untuk mahasiswa yang belajar 2.5 jam, diprediksi mendapat nilai antara 55.19 sampai 59.36 dengan prediksi titik 57.27. - Untuk mahasiswa yang belajar 5.5 jam, diprediksi mendapat nilai antara 72.13 sampai 74.81 dengan prediksi titik 73.47. - Untuk mahasiswa yang belajar 7.5 jam, diprediksi mendapat nilai antara 82.76 sampai 85.78 dengan prediksi titik 84.27. - Untuk mahasiswa yang belajar 9.5 jam, diprediksi mendapat nilai antara 92.94 sampai 97.19 dengan prediksi titik 95.06.
# Visualisasi data dengan area prediksi
ggplot(data, aes(x = Jam_Belajar, y = Nilai_Ujian)) +
geom_point(size = 3, color = "steelblue") +
geom_smooth(method = "lm", se = TRUE, color = "red", fill = "gray70", alpha = 0.3) +
geom_point(data = data_prediksi, aes(x = Jam_Belajar, y = prediksi[,1]),
color = "darkgreen", size = 4, shape = 18) +
labs(title = "Gambar 3: Visualisasi Prediksi Nilai Ujian",
subtitle = "Titik hijau adalah hasil prediksi",
x = "Jam Belajar (Jam)",
y = "Nilai Ujian") +
theme_minimal()Model regresi linier yang baik harus memenuhi beberapa asumsi. Berikut adalah pengujian diagnostik sederhana.
a. Residuals vs Fitted: Plot ini digunakan untuk melihat apakah asumsi linearitas dan homoskedastisitas (varians residual konstan) terpenuhi. Titik-titik harus menyebar secara acak di sekitar garis horizontal tanpa membentuk pola tertentu. Dari plot, terlihat titik-titik menyebar acak, sehingga asumsi linearitas terpenuhi.
b. Normal Q-Q: Plot ini digunakan untuk menguji normalitas residual. Jika titik-titik mengikuti garis diagonal, maka residual terdistribusi normal. Dari plot, titik-titik mendekati garis diagonal, sehingga asumsi normalitas terpenuhi.
c. Scale-Location: Plot ini menunjukkan apakah residual menyebar merata. Jika titik-titik menyebar acak dan garis horizontal relatif datar, maka asumsi homoskedastisitas terpenuhi.
d. Residuals vs Leverage: Plot ini digunakan untuk mendeteksi adanya outlier yang berpengaruh. Titik-titik yang berada di luar garis Cook’s distance perlu diwaspadai. Dari plot, tidak ada titik yang melebihi batas, sehingga tidak ada outlier berpengaruh.
# Mengambil residual
residual <- resid(model)
# Uji Shapiro-Wilk
shapiro_test <- shapiro.test(residual)
shapiro_test##
## Shapiro-Wilk normality test
##
## data: residual
## W = 0.9615, p-value = 0.5742
Interpretasi: Nilai p-value sebesar 0.5742 > 0.05, sehingga H0 diterima yang berarti residual berdistribusi normal. Asumsi normalitas terpenuhi.
Berdasarkan analisis yang telah dilakukan, ditemukan bahwa:
Hubungan Positif: Terdapat hubungan positif yang sangat kuat antara jam belajar dan nilai ujian (r = 0.985).
Pengaruh Signifikan: Jam belajar berpengaruh signifikan terhadap nilai ujian (p < 0.001).
Besar Pengaruh: Setiap tambahan 1 jam belajar meningkatkan nilai ujian sebesar 5.4 poin.
Akurasi Model: Model mampu menjelaskan 97.04% variasi nilai ujian, yang termasuk kategori sangat baik.
Hasil ini menunjukkan bahwa intensitas belajar merupakan faktor penting dalam menentukan prestasi akademik (nilai ujian). Mahasiswa yang ingin mendapatkan nilai tinggi disarankan untuk menambah jam belajarnya. Secara spesifik:
Analisis ini memiliki beberapa keterbatasan: 1. Data yang digunakan adalah data dummy (buatan), bukan data riil 2. Hanya mempertimbangkan satu faktor (jam belajar), padahal masih banyak faktor lain yang mempengaruhi nilai ujian 3. Ukuran sampel relatif kecil (n=20)
Berdasarkan analisis regresi linier sederhana yang telah dilakukan pada data dummy 20 mahasiswa, dapat disimpulkan bahwa:
Hubungan Linear: Terdapat hubungan yang positif dan linear antara jumlah jam belajar dan nilai ujian, yang terlihat dari pola scatter plot dan nilai korelasi yang tinggi.
Signifikansi: Jam belajar memiliki pengaruh yang signifikan terhadap nilai ujian (p < 0.05), yang berarti secara statistik, jam belajar benar-benar mempengaruhi nilai ujian.
Model Regresi: Model regresi yang dihasilkan adalah:
Nilai Ujian = 43.78 + 5.4 × Jam Belajar
Model ini valid dan memenuhi asumsi-asumsi regresi (normalitas, homoskedastisitas, linearitas).
Kekuatan Prediksi: Dengan nilai R-squared sebesar 0.97, model ini sangat baik dalam memprediksi nilai ujian berdasarkan jam belajar.
Penerapan Praktis: Model ini dapat digunakan oleh mahasiswa untuk menargetkan nilai tertentu dengan mengatur jam belajar, atau oleh pendidik untuk mengestimasi performa mahasiswa berdasarkan intensitas belajarnya.
Untuk penelitian atau analisis lebih lanjut, disarankan untuk: 1. Menggunakan data riil dengan sampel yang lebih besar 2. Menambahkan variabel prediktor lain seperti: tingkat kesulitan mata kuliah, kualitas tidur, metode belajar, dll. 3. Melakukan analisis regresi berganda untuk mendapatkan model yang lebih komprehensif
?lm, ?summary.lm,
?predict.lm