#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)
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
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:
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
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
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
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
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
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
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
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
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