# Data awal
data <- c(12, 45, 52, 58, 61, 63, 67, 70, 72, 75, 78, 82, 88, 95, 310)
# Fungsi untuk sorting
sort_function <- function(data){
sorted_data <- sort(data)
return(sorted_data)
}
# Fungsi untuk menghitung mean
mean_function <- function(data){
mean_value <- mean(data)
return(mean_value)
}
# Mengurutkan data
data <- sort_function(data)
# Fungsi Winsorization
winsor_function <- function(data, alpha){
data_sort <- sort_function(data)
n <- length(data_sort)
k <- floor(n * alpha)
winsor_data <- data_sort
# Winsorize bagian bawah
for(i in 1:k){
winsor_data[i] <- data_sort[k+1]
}
# Winsorize bagian atas
for(i in (n-k+1):n){
winsor_data[i] <- data_sort[n-k]
}
return(winsor_data)
}
# Fungsi untuk Winsorized mean
winsor_mean <- function(data, alpha){
data_winsor <- winsor_function(data, alpha)
mean_w <- mean_function(data_winsor)
return(list(
winsor_data = data_winsor,
winsor_mean = mean_w
))
}
# Hasil Winsorized dengan alpha 0.2 dan 0
result_02 <- winsor_mean(data, 0.2)
result_00 <- winsor_mean(data, 0)
# Menampilkan hasil
cat("Winsorized data alpha 0.2 :", result_02$winsor_data, "\n")
## Winsorized data alpha 0.2 : 58 58 58 58 61 63 67 70 72 75 78 82 82 82 82
cat("Winsorized mean alpha 0.2 :", result_02$winsor_mean, "\n\n")
## Winsorized mean alpha 0.2 : 69.73333
cat("Winsorized data alpha 0 :", result_00$winsor_data, "\n")
## Winsorized data alpha 0 : 12 45 52 58 61 63 67 70 72 75 78 82 88 95 310 310
cat("Winsorized mean alpha 0 :", result_00$winsor_mean, "\n")
## Winsorized mean alpha 0 : 96.125