library(ggplot2)
## Warning: package 'ggplot2' was built under R version 4.5.2
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
library(car)
## Loading required package: carData
## Warning: package 'carData' was built under R version 4.5.2
library(ppcor)
## Warning: package 'ppcor' was built under R version 4.5.2
## Loading required package: MASS
data<- read.csv("C:/Users/ASUS/OneDrive/Semester 4/Analisis Regresi/student-mat.csv")

df<- data[,c("G1","G3","G2")]

summary(df)
##        G1              G3              G2       
##  Min.   : 3.00   Min.   : 0.00   Min.   : 0.00  
##  1st Qu.: 8.00   1st Qu.: 8.00   1st Qu.: 9.00  
##  Median :11.00   Median :11.00   Median :11.00  
##  Mean   :10.91   Mean   :10.42   Mean   :10.71  
##  3rd Qu.:13.00   3rd Qu.:14.00   3rd Qu.:13.00  
##  Max.   :19.00   Max.   :20.00   Max.   :19.00
#SD
sd(df$G1)
## [1] 3.319195
sd(df$G3)
## [1] 4.581443
# Hitung korelasi Pearson
variabel_x <- df$G1
variabel_y <- df$G3
hasil_korelasi <- cor.test(variabel_x, variabel_y, method = "pearson")

korelasi_pearson <- hasil_korelasi$estimate
p_value <- hasil_korelasi$p.value

cat("Koefisien Korelasi Pearson antara Variabel X dan Variabel Y:",
    round(korelasi_pearson, 3), "\n")
## Koefisien Korelasi Pearson antara Variabel X dan Variabel Y: 0.801
# Interpretasi kekuatan korelasi
if (korelasi_pearson > 0.8) {
  interpretasi <- "Korelasi sangat kuat positif"
} else if (korelasi_pearson > 0.6) {
  interpretasi <- "Korelasi kuat positif"
} else if (korelasi_pearson > 0.4) {
  interpretasi <- "Korelasi sedang positif"
} else if (korelasi_pearson > 0.2) {
  interpretasi <- "Korelasi lemah positif"
} else if (korelasi_pearson > 0) {
  interpretasi <- "Korelasi sangat lemah positif"
} else if (korelasi_pearson < -0.8) {
  interpretasi <- "Korelasi sangat kuat negatif"
} else if (korelasi_pearson < -0.6) {
  interpretasi <- "Korelasi kuat negatif"
} else if (korelasi_pearson < -0.4) {
  interpretasi <- "Korelasi sedang negatif"
} else if (korelasi_pearson < -0.2) {
  interpretasi <- "Korelasi lemah negatif"
} else if (korelasi_pearson < 0) {
  interpretasi <- "Korelasi sangat lemah negatif"
} else {
  interpretasi <- "Tidak ada korelasi linier (atau sangat mendekati nol)"
}

cat("Interpretasi:", interpretasi, "\n")
## Interpretasi: Korelasi sangat kuat positif
# Model regresi linear
model_regresi <- lm(variabel_y ~ variabel_x)

# Scatter plot
plot(variabel_x, variabel_y,
     xlab = "Variabel X",
     ylab = "Variabel Y",
     main = "Scatterplot dengan Garis Regresi Linear",
     pch = 16)

# Garis regresi
abline(model_regresi, col = "red", lwd = 2)
grid()

slope <- coef(model_regresi)[2]
intercept <- coef(model_regresi)[1]

cat("\nPersamaan regresi:\n")
## 
## Persamaan regresi:
cat("Y =", round(intercept, 3), "+", round(slope, 3), "X\n")
## Y = -1.653 + 1.106 X
alpha <- 0.05

cat("\nKoefisien Korelasi Pearson:", round(korelasi_pearson, 3), "\n")
## 
## Koefisien Korelasi Pearson: 0.801
cat("P-value:", round(p_value, 3), "\n")
## P-value: 0
cat("Tingkat Signifikansi (alpha):", alpha, "\n")
## Tingkat Signifikansi (alpha): 0.05
if (p_value < alpha) {
  keputusan <- "Tolak Hipotesis Nol (H0)"
  interpretasi_uji <- "Ada bukti statistik yang cukup untuk menyimpulkan adanya hubungan linier yang signifikan antara G1 dan G3 dalam populasi."
} else {
  keputusan <- "Gagal Menolak Hipotesis Nol (H0)"
  interpretasi_uji <- "Tidak ada bukti statistik yang cukup untuk menyimpulkan adanya hubungan linier yang signifikan antara G1 dan G3 dalam populasi."
}

cat("\nKeputusan:", keputusan, "\n")
## 
## Keputusan: Tolak Hipotesis Nol (H0)
cat("Interpretasi Uji:", interpretasi_uji, "\n")
## Interpretasi Uji: Ada bukti statistik yang cukup untuk menyimpulkan adanya hubungan linier yang signifikan antara G1 dan G3 dalam populasi.
#Matriks Korelasi
matriks_korelasi <- cor(df)
# Heatmap 
heatmap(matriks_korelasi)

cor.test(df$G1, df$G3, method = "kendall")
## 
##  Kendall's rank correlation tau
## 
## data:  df$G1 and df$G3
## z = 20.506, p-value < 2.2e-16
## alternative hypothesis: true tau is not equal to 0
## sample estimates:
##       tau 
## 0.7463426
pcor.test(df$G1, df$G3,df$G2)
##    estimate     p.value statistic   n gp  Method
## 1 0.1365148 0.006650666  2.728398 395  1 pearson