# -------------------------------------------
# KORELASI
# -------------------------------------------

# MEMBACA DATA
data_mahasiswa <- read.csv2("C:/Users/user/OneDrive/Documents/BELAJAR!/SMS 4/ANALISIS REGRESI/Folder Baru/data_belajar_statistik_dwi.csv")

# STRUKTUR
str(data_mahasiswa)
## 'data.frame':    20 obs. of  2 variables:
##  $ Waktu_Belajar: int  4 6 7 8 9 10 11 12 13 5 ...
##  $ Nilai_Ujian  : int  58 65 70 72 74 76 79 83 85 62 ...
# RENAME KOLOM
colnames(data_mahasiswa) <- c("jam_belajar", "nilai_ujian")

# BUAT MASTIKAN NUMERIC
data_mahasiswa$jam_belajar <- as.numeric(data_mahasiswa$jam_belajar)
data_mahasiswa$nilai_ujian <- as.numeric(data_mahasiswa$nilai_ujian)

# STATISTI DESKRIPTIF
summary(data_mahasiswa)
##   jam_belajar     nilai_ujian   
##  Min.   : 3.00   Min.   :55.00  
##  1st Qu.: 6.75   1st Qu.:69.25  
##  Median : 9.50   Median :75.50  
##  Mean   : 9.60   Mean   :75.55  
##  3rd Qu.:12.25   3rd Qu.:83.50  
##  Max.   :16.00   Max.   :92.00
# STANDAR DEVIASI (SD)
sd(data_mahasiswa$jam_belajar)
## [1] 3.761299
sd(data_mahasiswa$nilai_ujian)
## [1] 10.56546
# -------------------------------------------
# UJI KORELASI SPEARMAN (Data Tidak Normal)
# -------------------------------------------

hasil_spearman <- cor.test(data_mahasiswa$jam_belajar,
                           data_mahasiswa$nilai_ujian,
                           method = "spearman")
## Warning in cor.test.default(data_mahasiswa$jam_belajar,
## data_mahasiswa$nilai_ujian, : Cannot compute exact p-value with ties
print(hasil_spearman)
## 
##  Spearman's rank correlation rho
## 
## data:  data_mahasiswa$jam_belajar and data_mahasiswa$nilai_ujian
## S = 3.0034, p-value < 2.2e-16
## alternative hypothesis: true rho is not equal to 0
## sample estimates:
##       rho 
## 0.9977418
# -------------------------------------------
# SCATTER PLOT (Base R)
# -------------------------------------------

plot(data_mahasiswa$jam_belajar,
     data_mahasiswa$nilai_ujian,
     main = "Scatter Plot Jam Belajar vs Nilai Ujian",
     xlab = "Jam Belajar",
     ylab = "Nilai Ujian",
     pch = 19)

abline(lm(nilai_ujian ~ jam_belajar, data=data_mahasiswa),
       lwd = 2)

# -------------------------------------------
# VISUALISASI DENGAN ggplot2
# -------------------------------------------

library(ggplot2)
## Warning: package 'ggplot2' was built under R version 4.5.2
ggplot(data_mahasiswa,
       aes(x = jam_belajar, y = nilai_ujian)) +
  geom_point(size = 3) +
  geom_smooth(method = "lm", se = TRUE) +
  labs(title = "Hubungan Jam Belajar dan Nilai Ujian",
       x = "Jam Belajar",
       y = "Nilai Ujian") +
  theme_minimal()
## `geom_smooth()` using formula = 'y ~ x'

# -------------------------------------------
# MATRlKS KORELASI DAN HEATMAP
# -------------------------------------------

matriks_korelasi <- cor(data_mahasiswa)

print(matriks_korelasi)
##             jam_belajar nilai_ujian
## jam_belajar    1.000000    0.993832
## nilai_ujian    0.993832    1.000000
heatmap(matriks_korelasi)