CONTINUE DISTRIBUTION

#MENYIAPKAN WORKING DIRECTORY

#MEMBUAT FOLDER BARU
#getwd() #untuk melihat working directory
#setwd() #untuk mengganti working directory
#PACKAGE

library(dplyr)
library(ggplot2)
library(Rlab)
library(nortest)
library(fitdistrplus)

UNIFORM DISTRIBUTION

Distribusi uniform kontinu adalah distribusi probabilitas di mana semua nilai dalam interval tertentu memiliki peluang yang sama untuk terjadi. Ini sering digunakan ketika tidak ada preferensi untuk nilai tertentu dalam rentang yang ditentukan.

Parameter Distribusi :

  • a: Batas bawah interval

  • b: Batas atas interval

Aplikasi Distribusi uniform kontinu digunakan dalam berbagai bidang, antara lain:

  • Simulasi: Untuk menghasilkan angka acak dalam rentang tertentu.

  • Statistika: Dalam analisis data ketika tidak ada preferensi untuk nilai tertentu dalam interval.

Studi Kasus:

Pengukuran waktu tunggu pelanggan :

#Data 

set.seed(123)  # Untuk reproduksibilitas 
n <- 1000 
data_waktu_tunggu <- runif(n, min = 0, max = 30) 
#2. Menghitung Densitas, CDF, dan Quantile

densitas <- dunif(15, min = 0, max = 30)  # Densitas pada x = 15 
cdf_value <- punif(15, min = 0, max = 30)  # CDF pada q = 15 
quantile_value <- qunif(0.5, min = 0, max = 30)  # Quantile pada p = 0.5 
print(paste("Densitas pada x=15:", densitas)) 
## [1] "Densitas pada x=15: 0.0333333333333333"
print(paste("CDF pada q=15:", cdf_value)) 
## [1] "CDF pada q=15: 0.5"
print(paste("Quantile pada p=0.5:", quantile_value))
## [1] "Quantile pada p=0.5: 15"
#3. Menghitung Probabilitas antara 5 dan 25 menit

probabilitas <- punif(25, min = 0, max = 30) - punif(5, min = 0, max = 30) 
print(paste("Probabilitas antara 5 dan 25 menit:", probabilitas)) 
## [1] "Probabilitas antara 5 dan 25 menit: 0.666666666666667"
#4. Menghitung Statistik Deskriptif

mean_waktu <- mean(data_waktu_tunggu) 
sd_waktu <- sd(data_waktu_tunggu) 
min_waktu <- min(data_waktu_tunggu) 
max_waktu <- max(data_waktu_tunggu) 

print(paste("Rata-rata waktu:", mean_waktu)) 
## [1] "Rata-rata waktu: 14.9183340603299"
print(paste("Standar deviasi waktu:", sd_waktu)) 
## [1] "Standar deviasi waktu: 8.62451725527336"
print(paste("Min waktu:", min_waktu)) 
## [1] "Min waktu: 0.013960471842438"
print(paste("Max waktu:", max_waktu)) 
## [1] "Max waktu: 29.9821358383633"
# 5. Visualisasi

# Plot densitas 
ggplot(data.frame(x = data_waktu_tunggu), aes(x)) + 
  geom_density(fill = "blue", alpha = 0.5) + 
  labs(title = "Densitas Waktu Tunggu Pelanggan", x = "Waktu Tunggu (menit)",y = "Densitas")

# Histogram 
ggplot(data.frame(x = data_waktu_tunggu), aes(x)) + 
  geom_histogram(bins = 30, fill = "orange", alpha = 0.7) + 
  labs(title = "Histogram Waktu Tunggu Pelanggan", x = "Waktu Tunggu (menit)", y = "Frekuensi") 

# 6. Uji Kesesuaian Distribusi Uniform 

# Menghitung uji Chi-Square untuk kesesuaian 
observed <- table(cut(data_waktu_tunggu, breaks = seq(0, 30, by = 3))) 
expected <- rep(n / 10, 10)  # Harapan untuk uniform (10 interval) 
chisq_test <- chisq.test(observed, p = expected / sum(expected)) 

# Menghitung uji Kolomogorov Smirnov untuk kesesuaian 
ks_test_result <- ks.test(data_waktu_tunggu, "punif", min = 0, max = 30) 
print(chisq_test) 
## 
##  Chi-squared test for given probabilities
## 
## data:  observed
## X-squared = 1.92, df = 9, p-value = 0.9927
print(ks_test_result)
## 
##  Asymptotic one-sample Kolmogorov-Smirnov test
## 
## data:  data_waktu_tunggu
## D = 0.014051, p-value = 0.9891
## alternative hypothesis: two-sided

EXPONENTIAL DISTRIBUTION

Distribusi eksponensial kontinu adalah distribusi probabilitas yang sering digunakan untuk memodelkan waktu antara kejadian dalam proses yang terjadi secara acak dan kontinu. Distribusi ini memiliki satu parameter, yaitu laju (rate) atau parameter \(\lambda\).

Parameter Distribusi:

  • \(\lambda\) : Parameter laju (rate), yang merupakan kebalikan dari rata-rata waktu antar kejadian. Nilai \(\lambda\) > 0.

Aplikasi

Distribusi eksponensial digunakan dalam berbagai bidang, antara lain:

  • Analisis Keandalan: Untuk memprediksi waktu hingga kegagalan sistem atau produk.

  • Teori Antrian: Dalam model antrian untuk memprediksi waktu tunggu.

  • Statistik: Dalam analisis data yang berkaitan dengan waktu antar kejadian.

Studi Kasus

Pengukuran waktu tunggu layanan

#Data 

set.seed(123)  # Untuk reproduksibilitas 
n <- 1000 
lambda <- 1/5  # Parameter distribusi eksponensial (rata-rata 5 menit) 
data_waktu_tunggu <- rexp(n, rate = lambda) 
# 2. Menghitung Densitas, CDF, dan Quantile 

densitas <- dexp(3, rate = lambda)  # Densitas pada x = 3 
cdf_value <- pexp(3, rate = lambda)  # CDF pada q = 3 
quantile_value <- qexp(0.5, rate = lambda)  # Quantile pada p = 0.5 

print(paste("Densitas pada x=3:", densitas)) 
## [1] "Densitas pada x=3: 0.109762327218805"
print(paste("CDF pada q=3:", cdf_value)) 
## [1] "CDF pada q=3: 0.451188363905974"
print(paste("Quantile pada p=0.5:", quantile_value))
## [1] "Quantile pada p=0.5: 3.46573590279973"
# 3. Menghitung Probabilitas antara 2 dan 6 menit 

probabilitas <- pexp(6, rate = lambda) - pexp(2, rate = lambda) 
print(paste("Probabilitas antara 2 dan 6 menit:", probabilitas))
## [1] "Probabilitas antara 2 dan 6 menit: 0.369125834123437"
# 4. Menghitung Statistik Deskriptif 

mean_waktu <- mean(data_waktu_tunggu) 
sd_waktu <- sd(data_waktu_tunggu) 
min_waktu <- min(data_waktu_tunggu) 
max_waktu <- max(data_waktu_tunggu) 

print(paste("Rata-rata waktu:", mean_waktu)) 
## [1] "Rata-rata waktu: 5.14989637073414"
print(paste("Standar deviasi waktu:", sd_waktu)) 
## [1] "Standar deviasi waktu: 5.0220217829557"
print(paste("Min waktu:", min_waktu)) 
## [1] "Min waktu: 0.00412986932303955"
print(paste("Max waktu:", max_waktu)) 
## [1] "Max waktu: 36.0550378800786"
# 5. Visualisasi 


# Plot densitas 
ggplot(data.frame(x = data_waktu_tunggu), aes(x)) + 
  geom_density(fill = "blue", alpha = 0.5) + 
  labs(title = "Densitas Waktu Tunggu", x = "Waktu Tunggu (menit)", y = "Densitas") 

# Histogram 
ggplot(data.frame(x = data_waktu_tunggu), aes(x)) + 
  geom_histogram(bins = 30, fill = "orange", alpha = 0.7) + 
  labs(title = "Histogram Waktu Tunggu", x = "Waktu Tunggu (menit)", y = "Frekuensi")

# 6. Uji Kesesuaian Distribusi Eksponensial 

# Menghitung uji Chi-Square untuk kesesuaian 
observed <- table(cut(data_waktu_tunggu, breaks = seq(0, max(data_waktu_tunggu), by = 1))) 
expected <- n * (pexp(seq(1, max(data_waktu_tunggu), by = 1), rate = lambda) -  
pexp(seq(0, max(data_waktu_tunggu) - 1, by = 1), rate = lambda)) 
chisq_test <- chisq.test(observed, p = expected / sum(expected)) 
## Warning in chisq.test(observed, p = expected/sum(expected)): Chi-squared
## approximation may be incorrect
# Menghitung uji Kolomogorov Smirnov untuk kesesuaian 
ks_test_result <- ks.test(data_waktu_tunggu, "pexp", rate = lambda) 
print(chisq_test) 
## 
##  Chi-squared test for given probabilities
## 
## data:  observed
## X-squared = 40.513, df = 35, p-value = 0.2401
print(ks_test_result)
## 
##  Asymptotic one-sample Kolmogorov-Smirnov test
## 
## data:  data_waktu_tunggu
## D = 0.032083, p-value = 0.2547
## alternative hypothesis: two-sided

GAMMA DISTRIBUTION

Distribusi gamma adalah distribusi probabilitas kontinu yang sering digunakan untuk memodelkan waktu hingga kejadian dalam proses yang terjadi secara acak. Distribusi ini memiliki dua parameter: bentuk (shape) dan skala (scale). Distribusi gamma mencakup distribusi eksponensial dan distribusi chi-squared sebagai kasus khusus.

Parameter Distribusi :

  • k: Parameter bentuk (shape), yang juga dikenal sebagai derajat kebebasan

  • \(\theta\): Parameter skala (scale), yang merupakan kebalikan dari laju (\(\lambda\) \(\lambda\))

Aplikasi

Distribusi gamma digunakan dalam berbagai bidang, antara lain:

  • Pemodelan Waktu: Untuk memodelkan waktu antar kejadian dalam proses yang berlangsung.

  • Analisis Keandalan: Untuk memprediksi waktu hingga kegagalan sistem.

  • Teori Antrian: Dalam model antrian untuk memprediksi waktu tunggu.

Studi Kasus

Pengukuran waktu tunggu layanan

#Data 

set.seed(123)  # Untuk reproduksibilitas 
n <- 1000 
shape <- 2  # Parameter shape 
scale <- 3   # Parameter scale 
data_gamma <- rgamma(n, shape = shape, scale = scale) 
# 2. Menghitung Densitas, CDF, dan Quantile 

densitas <- dgamma(5, shape = shape, scale = scale)  # Densitas pada x = 5 
cdf_value <- pgamma(5, shape = shape, scale = scale)  # CDF pada q = 5 
quantile_value <- qgamma(0.95, shape = shape, scale = scale)  # Quantile pada p = 0.95

print(paste("Densitas pada x=5:", densitas)) 
## [1] "Densitas pada x=5: 0.104930890465312"
print(paste("CDF pada q=5:", cdf_value)) 
## [1] "CDF pada q=5: 0.496331725766502"
print(paste("Quantile pada p=0.95:", quantile_value))
## [1] "Quantile pada p=0.95: 14.2315935551717"
# 3. Menghitung Probabilitas antara 4 dan 6 

probabilitas <- pgamma(6, shape = shape, scale = scale) - pgamma(4, shape = shape, scale = scale) 
print(paste("Probabilitas antara 4 dan 6:", probabilitas))
## [1] "Probabilitas antara 4 dan 6: 0.209054139226858"
# 4. Menghitung Statistik Deskriptif 

mean_gamma <- mean(data_gamma) 
sd_gamma <- sd(data_gamma) 
min_gamma <- min(data_gamma) 
max_gamma <- max(data_gamma) 

print(paste("Rata-rata waktu tunggu:", mean_gamma)) 
## [1] "Rata-rata waktu tunggu: 5.63989506349896"
print(paste("Standar deviasi waktu tunggu:", sd_gamma)) 
## [1] "Standar deviasi waktu tunggu: 3.87947465718734"
print(paste("Min waktu tunggu:", min_gamma)) 
## [1] "Min waktu tunggu: 0.0427893680621522"
print(paste("Max waktu tunggu:", max_gamma))
## [1] "Max waktu tunggu: 25.5779785557011"
# 5. Visualisasi 

# Plot densitas 
ggplot(data.frame(x = data_gamma), aes(x)) + 
  geom_density(fill = "blue", alpha = 0.5) +
  labs(title = "Densitas Waktu Tunggu dalam Proses Poisson", x = "Waktu Tunggu", y = "Densitas") 

# Histogram 
ggplot(data.frame(x = data_gamma), aes(x)) + 
  geom_histogram(bins = 30, fill = "orange", alpha = 0.7) + 
  labs(title = "Histogram Waktu Tunggu dalam Proses Poisson", x = "Waktu Tunggu", y = "Frekuensi")

# 6. Uji Kesesuaian Distribusi Gamma

observed <- table(cut(data_gamma, breaks = seq(0, max(data_gamma), by = 2))) 
expected <- n * (pgamma(seq(2, max(data_gamma), by = 2), shape = shape, scale = scale) -
                   pgamma(seq(0, max(data_gamma) - 2, by = 2), shape = shape, scale = scale)) 
chisq_test <- chisq.test(observed, p = expected / sum(expected)) 
## Warning in chisq.test(observed, p = expected/sum(expected)): Chi-squared
## approximation may be incorrect
print(chisq_test) 
## 
##  Chi-squared test for given probabilities
## 
## data:  observed
## X-squared = 13.47, df = 11, p-value = 0.2637

CHI-SQUARED DISTRIBUTION

Distribusi chi-squared adalah distribusi probabilitas yang muncul secara alami dalam statistik, terutama dalam pengujian hipotesis dan analisis varians. Distribusi ini sering digunakan untuk menguji apakah ada perbedaan yang signifikan antara frekuensi yang diamati dan frekuensi yang diharapkan dalam kategori.

Parameter Distribusi

  • k: Derajat kebebasan, yang biasanya merupakan jumlah variabel acak yang bebas yang terlibat dalam pengujian

Aplikasi

Distribusi chi-squared digunakan dalam berbagai bidang, antara lain:

  • Pengujian Hipotesis: Untuk menguji kesesuaian model dan perbedaan antar kategori.

  • Analisis Varians (ANOVA): Untuk menentukan apakah ada perbedaan yang signifikan antara rata-rata beberapa kelompok.

  • Statistik: Dalam berbagai analisis dan pengujian data.

Studi Kasus

Pengukuran Varians Suatu Populasi

# 1. Menghasilkan Data 

set.seed(123)  # Untuk reproduksibilitas 
n <- 1000 
df <- 5  # Derajat kebebasan 
data_varians <- rchisq(n, df)
# 2. Menghitung Densitas, CDF, dan Quantile 

densitas <- dchisq(10, df)  # Densitas pada x = 10 
cdf_value <- pchisq(10, df)  # CDF pada q = 10 
quantile_value <- qchisq(0.95, df)  # Quantile pada p = 0.95 

print(paste("Densitas pada x=10:", densitas)) 
## [1] "Densitas pada x=10: 0.0283345553417345"
print(paste("CDF pada q=10:", cdf_value)) 
## [1] "CDF pada q=10: 0.924764753853488"
print(paste("Quantile pada p=0.95:", quantile_value))
## [1] "Quantile pada p=0.95: 11.0704976935164"
# 3. Menghitung Probabilitas antara 5 dan 15 

probabilitas <- pchisq(15, df) - pchisq(5, df) 
print(paste("Probabilitas antara 5 dan 15:", probabilitas))
## [1] "Probabilitas antara 5 dan 15: 0.405517849079722"
# 4. Menghitung Statistik Deskriptif 

mean_varians <- mean(data_varians) 
sd_varians <- sd(data_varians) 
min_varians <- min(data_varians) 
max_varians <- max(data_varians) 

print(paste("Rata-rata varians:", mean_varians)) 
## [1] "Rata-rata varians: 4.79389985708151"
print(paste("Standar deviasi varians:", sd_varians)) 
## [1] "Standar deviasi varians: 2.89858456667638"
print(paste("Min varians:", min_varians)) 
## [1] "Min varians: 0.18206957178864"
print(paste("Max varians:", max_varians)) 
## [1] "Max varians: 19.3367239466972"
# 5. Visualisasi 

# Plot densitas 
ggplot(data.frame(x = data_varians), aes(x)) + 
  geom_density(fill = "blue", alpha = 0.5) + 
  labs(title = "Densitas Varians Suatu Populasi", x = "Varians", y = "Densitas") 

# Histogram 
ggplot(data.frame(x = data_varians), aes(x)) + 
  geom_histogram(bins = 30, fill = "orange", alpha = 0.7) + 
  labs(title = "Histogram Varians Suatu Populasi", x = "Varians", y = "Frekuensi")

# 6. Uji Kesesuaian Distribusi Chi-Squared 

observed <- table(cut(data_varians, breaks = seq(0, max(data_varians), by = 2))) 
expected <- n * (pchisq(seq(2, max(data_varians), by = 2), df) - pchisq(seq(0, max(data_varians) - 2, by = 2), df)) 
chisq_test <- chisq.test(observed, p = expected / sum(expected)) 
## Warning in chisq.test(observed, p = expected/sum(expected)): Chi-squared
## approximation may be incorrect
print(chisq_test) 
## 
##  Chi-squared test for given probabilities
## 
## data:  observed
## X-squared = 10.024, df = 8, p-value = 0.2633

NORMAL DISTRIBUTION

Distribusi normal, juga dikenal sebagai distribusi Gaussian, adalah distribusi probabilitas kontinu yang paling umum digunakan dalam statistik. Distribusi ini memiliki bentuk lonceng yang simetris dan ditentukan oleh dua parameter: rata-rata (mean) dan deviasi standar (standard deviation).

Aplikasi

Distribusi normal digunakan dalam berbagai bidang, antara lain:

  • Statistik: Sebagai model untuk banyak fenomena alami dan sosial.

  • Pengujian Hipotesis: Untuk menguji rata-rata populasi.

  • Analisis Data: Sebagai asumsi dasar dalam banyak teknik analisis multivariat.

Studi Kasus

Tinggi Badan Mahasiswa

# 1. Menghasilkan Data 

set.seed(789)  # Untuk reproduksibilitas 
n <- 1000 
mean_height <- 170  # Rata-rata tinggi badan 
sd_height <- 10     # Standar deviasi 
data_height <- rnorm(n, mean_height, sd_height) 
# 2. Menghitung Densitas, CDF, dan Quantile 

densitas <- dnorm(180, mean_height, sd_height)  # Densitas pada x = 180 cm 
cdf_value <- pnorm(180, mean_height, sd_height)  # CDF pada q = 180 cm 
quantile_value <- qnorm(0.95, mean_height, sd_height)  # Quantile pada p = 0.95 

print(paste("Densitas pada x=180:", densitas)) 
## [1] "Densitas pada x=180: 0.0241970724519143"
print(paste("CDF pada q=180:", cdf_value)) 
## [1] "CDF pada q=180: 0.841344746068543"
print(paste("Quantile pada p=0.95:", quantile_value)) 
## [1] "Quantile pada p=0.95: 186.448536269515"
# 3. Menghitung Probabilitas antara 160 dan 180 

probabilitas <- pnorm(180, mean_height, sd_height) - pnorm(160, mean_height, sd_height) 
print(paste("Probabilitas antara 160 dan 180:", probabilitas))
## [1] "Probabilitas antara 160 dan 180: 0.682689492137086"
# 4. Menghitung Statistik Deskriptif 

mean_data <- mean(data_height) 
sd_data <- sd(data_height) 
min_data <- min(data_height) 
max_data <- max(data_height) 

print(paste("Rata-rata tinggi badan:", mean_data)) 
## [1] "Rata-rata tinggi badan: 169.900304662325"
print(paste("Standar deviasi tinggi badan:", sd_data)) 
## [1] "Standar deviasi tinggi badan: 10.0298171385226"
print(paste("Min tinggi badan:", min_data)) 
## [1] "Min tinggi badan: 138.384675413146"
print(paste("Max tinggi badan:", max_data)) 
## [1] "Max tinggi badan: 200.519730679923"
# 5. Visualisasi 

# Plot densitas 
ggplot(data.frame(x = data_height), aes(x)) + 
  geom_density(fill = "blue", alpha = 0.5) + 
  labs(title = "Densitas Tinggi Badan Mahasiswa", x = "Tinggi Badan (cm)", y = "Densitas") 

# Histogram 
ggplot(data.frame(x = data_height), aes(x)) + 
  geom_histogram(bins = 30, fill = "orange", alpha = 0.7) + 
  labs(title = "Histogram Tinggi Badan Mahasiswa", x = "Tinggi Badan (cm)", y = "Frekuensi") 

# 6. Uji Kesesuaian Distribusi Normal 

shapiro_test <- shapiro.test(data_height)  # Uji Shapiro-Wilk 

# Melakukan Anderson-Darling Test 
ad_test_result <- ad.test(data_height) 
print(shapiro_test) 
## 
##  Shapiro-Wilk normality test
## 
## data:  data_height
## W = 0.99781, p-value = 0.2114
print(ad_test_result)
## 
##  Anderson-Darling normality test
## 
## data:  data_height
## A = 0.57267, p-value = 0.137

F DISTRIBUTION

Distribusi F adalah distribusi probabilitas yang digunakan dalam analisis varians (ANOVA) dan pengujian hipotesis untuk membandingkan dua varians dari populasi yang berbeda. Distribusi ini terdiri dari dua set derajat kebebasan: satu untuk pembilang dan satu untuk penyebut.

Aplikasi

Distribusi F sering digunakan dalam:

  • Analisis Varians (ANOVA): Untuk menguji perbedaan rata-rata antara lebih dari dua kelompok.

  • Regresi: Untuk membandingkan model regresi dan menentukan apakah model yang lebih kompleks memberikan peningkatan yang signifikan dalam penjelasan varians.

  • Uji Hipotesis: Dalam pengujian hipotesis yang melibatkan varians populasi.

Studi Kasus

Perbandingan 2 varians

# 1. Menghasilkan Data 

set.seed(123)  # Untuk reproduksibilitas 
n1 <- 30  # Ukuran sampel grup 1 
n2 <- 30  # Ukuran sampel grup 2 
df1 <- n1 - 1  # Derajat kebebasan grup 1 
df2 <- n2 - 1  # Derajat kebebasan grup 2 

# Menghasilkan data dari distribusi normal 
data_grup1 <- rnorm(n1, mean = 50, sd = 10) 
data_grup2 <- rnorm(n2, mean = 60, sd = 15) 
# 2. Menghitung Varians 

var_grup1 <- var(data_grup1) 
var_grup2 <- var(data_grup2) 
print(paste("Varians Grup 1:", var_grup1)) 
## [1] "Varians Grup 1: 96.2421245137586"
print(paste("Varians Grup 2:", var_grup2)) 
## [1] "Varians Grup 2: 156.923691500419"
# 3. Menghitung Nilai F 

f_value <- var_grup1 / var_grup2 
print(paste("Nilai F:", f_value)) 
## [1] "Nilai F: 0.613305254251566"
# 4. Menghitung Densitas, CDF, dan Quantile 
densitas <- df(f_value, df1, df2)  # Densitas pada nilai F yang dihitung
cdf_value <- pf(f_value, df1, df2)  # CDF untuk nilai F yang dihitung 
quantile_value <- qf(0.95, df1, df2)  # Quantile pada p = 0.95 

print(paste("Densitas pada nilai F:", densitas)) 
## [1] "Densitas pada nilai F: 0.736310714019993"
print(paste("CDF pada nilai F:", cdf_value)) 
## [1] "CDF pada nilai F: 0.0970183690661797"
print(paste("Quantile pada p=0.95:", quantile_value))
## [1] "Quantile pada p=0.95: 1.86081143547608"
# 5. Menghitung Probabilitas 

probabilitas <- pf(3, df1, df2)  # Probabilitas nilai F kurang dari 3 
print(paste("Probabilitas nilai F kurang dari 3:", probabilitas)) 
## [1] "Probabilitas nilai F kurang dari 3: 0.997909680742523"
# 6. Visualisasi 
 
# Plot distribusi F 
x <- seq(0, 5, length.out = 100) 
y <- df(x, df1, df2) 
data_plot <- data.frame(x = x, y = y) 
ggplot(data_plot, aes(x, y)) + geom_line(color = "blue") +
  labs(title = "Distribusi F", x = "Nilai F", y = "Densitas") 

# 7. Uji Kesesuaian Distribusi F 

f_test <- var.test(data_grup1, data_grup2)  # Uji F untuk perbandingan varians 
print(f_test) 
## 
##  F test to compare two variances
## 
## data:  data_grup1 and data_grup2
## F = 0.61331, num df = 29, denom df = 29, p-value = 0.194
## alternative hypothesis: true ratio of variances is not equal to 1
## 95 percent confidence interval:
##  0.2919117 1.2885518
## sample estimates:
## ratio of variances 
##          0.6133053

T-STUDENT DISTRIBUTION

Distribusi t-Student adalah distribusi probabilitas yang digunakan dalam statistik untuk mengestimasi parameter populasi ketika ukuran sampel kecil dan varians populasi tidak diketahui. Distribusi ini mirip dengan distribusi normal tetapi lebih lebar, dan memiliki bentuk yang bergantung pada derajat kebebasan (degrees of freedom).

Aplikasi

Distribusi t-Student sering digunakan dalam:

  • Pengujian Hipotesis: Untuk menguji rata-rata populasi ketika ukuran sampel kecil.

  • Interval Kepercayaan: Untuk menghitung interval kepercayaan untuk rata-rata populasi.

  • Analisis Varians: Dalam situasi di mana asumsi normalitas tidak terpenuhi.

Stusi Kasus

Pembangkitan data sebaran t

# 1. Menghasilkan Data 

set.seed(123)  # Untuk reproduksibilitas 
n <- 1000 
df <- 10  # Derajat kebebasan 
num_groups <- 30  # Jumlah kelompok 
group_size <- n / num_groups  # Ukuran setiap kelompok

# Menghasilkan kelompok data 
data_groups <- replicate(num_groups, rt(group_size, df)) 
data_normal <- rowMeans(data_groups) * 10 + 70  # Menghitung rata-rata dari setiap kelompok
# 2. Menghitung Densitas, CDF, dan Quantile 

densitas <- dt(80, df)  # Densitas pada x = 80 
cdf_value <- pt(80, df)  # CDF pada q = 80 
quantile_value <- qt(0.95, df)  # Quantile pada p = 0.95 

print(paste("Densitas pada x=80:", densitas)) 
## [1] "Densitas pada x=80: 1.42020627150945e-16"
print(paste("CDF pada q=80:", cdf_value)) 
## [1] "CDF pada q=80: 0.999999999999999"
print(paste("Quantile pada p=0.95:", quantile_value)) 
## [1] "Quantile pada p=0.95: 1.81246112281168"
# 3. Menghitung Probabilitas antara 65 dan 85 

probabilitas <- pt(85, df) - pt(65, df) 
print(paste("Probabilitas antara 65 dan 85:", probabilitas)) 
## [1] "Probabilitas antara 65 dan 85: 8.43769498715119e-15"
# 4. Menghitung Statistik Deskriptif 

mean_data <- mean(data_normal) 
sd_data <- sd(data_normal) 
min_data <- min(data_normal) 
max_data <- max(data_normal) 

print(paste("Rata-rata skor ujian:", mean_data)) 
## [1] "Rata-rata skor ujian: 69.7728414989263"
print(paste("Standar deviasi skor ujian:", sd_data)) 
## [1] "Standar deviasi skor ujian: 2.2272296416626"
print(paste("Min skor ujian:", min_data)) 
## [1] "Min skor ujian: 65.9335707992882"
print(paste("Max skor ujian:", max_data)) 
## [1] "Max skor ujian: 75.8071946224219"
# 5. Visualisasi 

# Plot densitas 
ggplot(data.frame(x = data_normal), aes(x)) + 
  geom_density(fill = "blue", alpha = 0.5) + 
  labs(title = "Densitas Skor Ujian Mahasiswa (Normal)", x = "Skor Ujian", y = "Densitas") 

# Histogram 
ggplot(data.frame(x = data_normal), aes(x)) + 
  geom_histogram(bins = 30, fill = "orange", alpha = 0.7) + 
  labs(title = "Histogram Skor Ujian Mahasiswa (Normal)", x = "Skor Ujian", y = "Frekuensi")

# 6. Uji Kesesuaian Distribusi t-Student

shapiro_test <- shapiro.test(data_normal)  # Uji Shapiro-Wilk 
ks_test <- ks.test(data_normal, "pnorm", mean(data_normal), sd(data_normal))  # Uji Kolmogorov-Smirnov 

print(shapiro_test) 
## 
##  Shapiro-Wilk normality test
## 
## data:  data_normal
## W = 0.96478, p-value = 0.3508
print(ks_test)
## 
##  Exact one-sample Kolmogorov-Smirnov test
## 
## data:  data_normal
## D = 0.12142, p-value = 0.6706
## alternative hypothesis: two-sided

WEIBULL DISTRIBUTION

Distribusi Weibull adalah salah satu distribusi yang sering digunakan dalam analisis keandalan dan umur produk.

Aplikasi

Distribusi Weibull digunakan dalam berbagai bidang, antara lain:

  • Analisis Keandalan: Untuk memprediksi umur produk dan menentukan waktu kegagalan.

  • Pengujian Kualitas: Dalam pengujian umur dan ketahanan produk.

  • Statistik: Untuk model distribusi data yang tidak normal.

Studi Kasus

# 1. Menghasilkan Data 

set.seed(321)  # Untuk reproduksibilitas 
n <- 1000  # Ukuran sampel 
shape <- 1.5  # Parameter bentuk 
scale <- 100  # Parameter skala 
data_umur <- rweibull(n, shape, scale)  # Generating data from Weibull distribution
# 2. Menghitung Statistik Deskriptif 

mean_data <- mean(data_umur) 
sd_data <- sd(data_umur) 
min_data <- min(data_umur) 
max_data <- max(data_umur) 

print(paste("Rata-rata umur produk:", mean_data)) 
## [1] "Rata-rata umur produk: 87.5195178820912"
print(paste("Standar deviasi umur produk:", sd_data)) 
## [1] "Standar deviasi umur produk: 59.5359039872851"
print(paste("Min umur produk:", min_data)) 
## [1] "Min umur produk: 0.513262037241633"
print(paste("Max umur produk:", max_data)) 
## [1] "Max umur produk: 432.712688828533"
# 3. Menghitung Densitas, CDF, dan Quantile 

densitas <- dweibull(120, shape, scale)  # Densitas pada x = 120 
cdf_value <- pweibull(120, shape, scale)  # CDF pada q = 120 
quantile_value <- qweibull(0.95, shape, scale)  # Quantile pada p = 0.95 
print(paste("Densitas pada x=120:", densitas)) 
## [1] "Densitas pada x=120: 0.00441353890962564"
print(paste("CDF pada q=120:", cdf_value)) 
## [1] "CDF pada q=120: 0.731400575641254"
print(paste("Quantile pada p=0.95:", quantile_value))
## [1] "Quantile pada p=0.95: 207.811063753456"
# 4. Menghitung Probabilitas 

probabilitas <- pweibull(150, shape, scale)  # Probabilitas umur produk kurang dari 150 
print(paste("Probabilitas umur produk kurang dari 150:", probabilitas))
## [1] "Probabilitas umur produk kurang dari 150: 0.840724091509979"
# 5. Visualisasi 
 
# Plot densitas 
x <- seq(0, 300, length.out = 100) 
y <- dweibull(x, shape, scale) 
data_plot <- data.frame(x = x, y = y) 

ggplot(data_plot, aes(x, y)) + 
  geom_line(color = "blue") + 
  labs(title = "Distribusi Weibull", x = "Umur Produk", y = "Densitas") 

# Histogram 
ggplot(data.frame(x = data_umur), aes(x)) + 
  geom_histogram(bins = 30, fill = "orange", alpha = 0.7) + 
  labs(title = "Histogram Umur Produk", x = "Umur Produk", y = "Frekuensi") 

# 6. Uji Kesesuaian Distribusi Weibull 
 
# Fit Weibull distribution 
fit <- fitdist(data_umur, "weibull") 

# Menggunakan ks.test 
ks_test <- ks.test(data_umur, "pweibull", shape = fit$estimate[1], scale = fit$estimate[2]) 

print(ks_test) 
## 
##  Asymptotic one-sample Kolmogorov-Smirnov test
## 
## data:  data_umur
## D = 0.02355, p-value = 0.6361
## alternative hypothesis: two-sided

BETA DISTRIBUTION

Distribusi Beta adalah distribusi probabilitas kontinu yang digunakan untuk memodelkan variabel acak yang terikat dalam interval [0, 1]. Distribusi ini sangat fleksibel dan sering digunakan dalam statistik bayesian, analisis risiko, dan pemodelan proporsi.

Aplikasi

Distribusi Beta sering digunakan dalam:

  • Statistik Bayesian: Sebagai prior untuk proporsi dan parameter lain.

  • Analisis Risiko: Untuk memodelkan variabel acak yang terikat dalam interval [0, 1].

  • Pemodelan Proporsi: Dalam berbagai penelitian seperti survei dan eksperimen.

Studi Kasus

Keberhasilan produk dalam uji coba

# 1. Menghasilkan Data 

set.seed(456)  # Untuk reproduksibilitas 
n <- 1000 
alpha <- 3  # Parameter alpha 
beta <- 7   # Parameter beta 
data_beta2 <- rbeta(n, shape1 = alpha, shape2 = beta) 
# 2. Menghitung Densitas, CDF, dan Quantile 

densitas2 <- dbeta(0.5, shape1 = alpha, shape2 = beta)  # Densitas pada x = 0.5 
cdf_value2 <- pbeta(0.5, shape1 = alpha, shape2 = beta)  # CDF pada q = 0.5 
quantile_value2 <- qbeta(0.95, shape1 = alpha, shape2 = beta)  # Quantile pada p = 0.95 

print(paste("Densitas pada x=0.5:", densitas2)) 
## [1] "Densitas pada x=0.5: 0.984375000000001"
print(paste("CDF pada q=0.5:", cdf_value2)) 
## [1] "CDF pada q=0.5: 0.91015625"
print(paste("Quantile pada p=0.95:", quantile_value2)) 
## [1] "Quantile pada p=0.95: 0.54964164950661"
# 3. Menghitung Probabilitas antara 0.4 dan 0.8

probabilitas2 <- pbeta(0.8, shape1 = alpha, shape2 = beta) - pbeta(0.4, shape1 = alpha, 
shape2 = beta) 
print(paste("Probabilitas antara 0.4 dan 0.8:", probabilitas2))
## [1] "Probabilitas antara 0.4 dan 0.8: 0.231473152"
# 4. Menghitung Statistik Deskriptif 

mean_beta2 <- mean(data_beta2) 
sd_beta2 <- sd(data_beta2) 
min_beta2 <- min(data_beta2) 
max_beta2 <- max(data_beta2) 

print(paste("Rata-rata proporsi:", mean_beta2)) 
## [1] "Rata-rata proporsi: 0.308227552266598"
print(paste("Standar deviasi proporsi:", sd_beta2)) 
## [1] "Standar deviasi proporsi: 0.138465639787242"
print(paste("Min proporsi:", min_beta2)) 
## [1] "Min proporsi: 0.0164308152791403"
print(paste("Max proporsi:", max_beta2))
## [1] "Max proporsi: 0.747439808742126"
# 5. Visualisasi 

# Plot densitas 
ggplot(data.frame(x = data_beta2), aes(x)) + 
  geom_density(fill = "blue", alpha = 0.5) + 
  labs(title = "Densitas Keberhasilan Produk", x = "Proporsi", y = "Densitas") 

# Histogram 
ggplot(data.frame(x = data_beta2), aes(x)) + 
  geom_histogram(bins = 30, fill = "orange", alpha = 0.7) +
  labs(title = "Histogram Keberhasilan Produk", x = "Proporsi", y = "Frekuensi") 

# 6. Uji Kesesuaian Distribusi Beta 

observed2 <- table(cut(data_beta2, breaks = seq(0, 1, by = 0.1))) 
expected2 <- n * (pbeta(seq(0.1, 1, by = 0.1), shape1 = alpha, shape2 = beta) -  pbeta(seq(0, 0.9, by = 0.1), shape1 = alpha, shape2 = beta)) 

chisq_test2 <- chisq.test(observed2, p = expected2 /sum(expected2)) 
## Warning in chisq.test(observed2, p = expected2/sum(expected2)): Chi-squared
## approximation may be incorrect
print(chisq_test2) 
## 
##  Chi-squared test for given probabilities
## 
## data:  observed2
## X-squared = 8.3873, df = 9, p-value = 0.4956