# Membuat 3 Kurva Distribusi Normal dengan Area Isi

# Membuat rentang nilai X
x <- seq(-10, 100, length = 500)

# Kurva 1 : Mean 50, SD 10
y1 <- dnorm(x, mean = 50, sd = 10)

# Kurva 2 : Mean 60, SD 15
y2 <- dnorm(x, mean = 60, sd = 15)

# Kurva 3 : Mean 70, SD 8
y3 <- dnorm(x, mean = 70, sd = 8)

# Membuat grafik dasar
plot(x, y1,
     type = "l",
     lwd = 3,
     col = "#F7E7A9",
     ylim = c(0, max(y1,y2,y3)),
     main = "Perbandingan 3 Kurva Distribusi Normal",
     xlab = "Nilai X",
     ylab = "Densitas")

# Memberikan isi area kurva 1
polygon(c(x, rev(x)),
        c(y1, rep(0, length(y1))),
        col = "#F7E7A9",
        border = "#F7E7A9")

# Menambahkan kurva 2
lines(x, y2,
      col = "lavender",
      lwd = 3)

# Memberikan isi area kurva 2
polygon(c(x, rev(x)),
        c(y2, rep(0, length(y2))),
        col = "#D8BFD8",
        border = "lavender")

# Menambahkan kurva 3
lines(x, y3,
      col = "pink",
      lwd = 3)

# Memberikan isi area kurva 3
polygon(c(x, rev(x)),
        c(y3, rep(0, length(y3))),
        col = "#FFC0CB",
        border = "pink")

# Menggambar ulang garis kurva agar tetap terlihat jelas
lines(x, y1, col = "#F7E7A9", lwd = 3)
lines(x, y2, col = "lavender", lwd = 3)
lines(x, y3, col = "pink", lwd = 3)

# Garis rata-rata
abline(v = 50, col = "#F7E7A9", lty = 2, lwd = 2)
abline(v = 60, col = "lavender", lty = 2, lwd = 2)
abline(v = 70, col = "pink", lty = 2, lwd = 2)

# Legenda
legend("topright",
       legend = c("N(50,10)", "N(60,15)", "N(70,8)"),
       col = c("#F7E7A9","lavender","pink"),
       fill = c("#F7E7A9","#D8BFD8","#FFC0CB"),
       lwd = 3)

# ==========================================
# Simulasi 5 Kurva Distribusi Normal
# Dengan Area Isi + Legenda
# ==========================================

# Data parameter
mean <- c(0, 2, 5, 10, 1.5)
sigma <- c(1, 1, 5, 3, 0.1)

# Rentang nilai X
x <- seq(-15, 20, length = 500)

# Menghitung densitas
y1 <- dnorm(x, mean[1], sigma[1])
y2 <- dnorm(x, mean[2], sigma[2])
y3 <- dnorm(x, mean[3], sigma[3])
y4 <- dnorm(x, mean[4], sigma[4])
y5 <- dnorm(x, mean[5], sigma[5])

# Warna masing-masing kurva
warna <- c("#F7E7A9",
           "#D8BFD8",
           "#FFC0CB",
           "#A8B89A",
           "#87CEEB")

# Membuat area grafik
plot(x, y1,
     type = "n",
     ylim = c(0, max(y1,y2,y3,y4,y5)),
     main = "Simulasi Distribusi Normal",
     xlab = "Nilai X",
     ylab = "Densitas")


# ================================
# Mengisi area bawah kurva
# ================================

polygon(c(x, rev(x)),
        c(y1, rep(0,length(y1))),
        col = warna[1],
        border = warna[1])

polygon(c(x, rev(x)),
        c(y2, rep(0,length(y2))),
        col = warna[2],
        border = warna[2])

polygon(c(x, rev(x)),
        c(y3, rep(0,length(y3))),
        col = warna[3],
        border = warna[3])

polygon(c(x, rev(x)),
        c(y4, rep(0,length(y4))),
        col = warna[4],
        border = warna[4])

polygon(c(x, rev(x)),
        c(y5, rep(0,length(y5))),
        col = warna[5],
        border = warna[5])


# ================================
# Garis kurva (warna sama)
# ================================

lines(x, y1, col = warna[1], lwd = 3)
lines(x, y2, col = warna[2], lwd = 3)
lines(x, y3, col = warna[3], lwd = 3)
lines(x, y4, col = warna[4], lwd = 3)
lines(x, y5, col = warna[5], lwd = 3)


# Garis rata-rata
abline(v = mean,
       col = warna,
       lty = 2,
       lwd = 2)


# ================================
# Legenda
# ================================

legend("topright",
       legend = c(
         "Kurva 1 : μ=0 ; σ=1",
         "Kurva 2 : μ=2 ; σ=1",
         "Kurva 3 : μ=5 ; σ=5",
         "Kurva 4 : μ=10 ; σ=3",
         "Kurva 5 : μ=1.5 ; σ=0.1"
       ),
       fill = warna,
       border = warna,
       lwd = 3,
       cex = 0.8)

# ==========================================
# Distribusi t Kontinu (Student's t Distribution)
# Dengan Area Isi di Bawah Kurva
# ==========================================

# Rentang nilai X
x <- seq(-6, 6, length = 500)

# Derajat bebas (degree of freedom)
df1 <- 1
df2 <- 5
df3 <- 10
df4 <- 30


# Menghitung densitas distribusi t
y1 <- dt(x, df = df1)
y2 <- dt(x, df = df2)
y3 <- dt(x, df = df3)
y4 <- dt(x, df = df4)


# Warna kurva
warna <- c("#A8B89A",   # Butter Yellow
           "#D8BFD8",   # Lavender
           "#FFC0CB",   # Pink
           "#F7E7A9")   # Sage Green


# Membuat area grafik kosong
plot(x, y1,
     type = "n",
     ylim = c(0, max(y1,y2,y3,y4)),
     main = "Perbandingan Distribusi t Kontinu",
     xlab = "Nilai t",
     ylab = "Densitas")


# ==========================================
# Mengisi area bawah kurva
# ==========================================

polygon(c(x, rev(x)),
        c(y1, rep(0,length(y1))),
        col = warna[1],
        border = warna[1])

polygon(c(x, rev(x)),
        c(y2, rep(0,length(y2))),
        col = warna[2],
        border = warna[2])

polygon(c(x, rev(x)),
        c(y3, rep(0,length(y3))),
        col = warna[3],
        border = warna[3])

polygon(c(x, rev(x)),
        c(y4, rep(0,length(y4))),
        col = warna[4],
        border = warna[4])


# ==========================================
# Garis kurva
# ==========================================

lines(x, y1, col = warna[1], lwd = 3)
lines(x, y2, col = warna[2], lwd = 3)
lines(x, y3, col = warna[3], lwd = 3)
lines(x, y4, col = warna[4], lwd = 3)


# Garis tengah (t = 0)
abline(v = 0, col = "black", lty = 2, lwd = 2)


# ==========================================
# Legenda
# ==========================================

legend("topright",
       legend = c(
         "t(df=1)",
         "t(df=5)",
         "t(df=10)",
         "t(df=30)"
       ),
       fill = warna,
       border = warna,
       lwd = 3,
       cex = 0.8)