#Jawaban Kuiz 1 Komputasi Statistik beserta Visualisasi datanya
#Nama = Cahya Abiyu Dzikrulloh
#NRP = 5003251009
#Kelas = Statistika D
#soal 1
x <- c(12, 45, 52, 58, 61, 63, 67, 70, 72, 75, 78, 82, 88, 95, 310)
winsorized_mean <- function(x, alpha) {
n <- length(x)
k <- floor(n*alpha)
sumx = 0
for(i in 1:n){
if(i<=k){
sumx = sumx + x[k+1]
}
else if(i<(n-k)){
sumx = sumx + x[i]
}
else{
sumx = sumx + x[n-k]
}
}
return(sumx/n)
}
winsorized_mean(x, 0)
## [1] 81.86667
winsorized_mean(x, 0.2)
## [1] 69.73333
x_winsor <- winsorized_mean(x, 0.2)
x_winsor
## [1] 69.73333
#Perbandingan Boxplot
boxplot(x, x_winsor,
names=c("Data Asli","Winsorized"),
col=c("lightblue","lightgreen"),
main="Perbandingan Data Asli vs Winsorized")

#Perbandingan Histogram
par(mfrow=c(1,2))
hist(x,
main="Histogram Data Asli",
col="lightblue",
xlab="Nilai")
hist(x_winsor,
main="Histogram Winsorized",
col="lightgreen",
xlab="Nilai")

par(mfrow=c(1,1))
#Perbandingan Mean
mean_asli <- mean(x)
mean_winsor <- winsorized_mean(x, 0.2)
barplot(c(mean_asli, mean_winsor),
names.arg=c("Mean Asli","Winsorized Mean"),
col=c("blue","green"),
main="Perbandingan Mean")

#Interpretasi soal 1
# Data memiliki outlier ekstrem (310) yang membuat mean asli menjadi bias (terlalu besar). Setelah dilakukan winsorizing (α = 0.2), nilai ekstrem diganti sehingga:
# - Mean menjadi lebih stabil dan representatif
# - Distribusi data lebih simetris
# - Outlier berhasil dikurangi pengaruhnya
#Kesimpulan
#Winsorized mean lebih baik digunakan dibanding mean biasa ketika data mengandung outlier
#soal 2
data <- read.csv("D:/SEMESTER 2/Komputasi Statistik D/Quiz 1 Komstat/data_quiz1.csv")
X <- as.matrix(data[,c("x1","x2","x3")])
w <- data$w
# function
weighted_corr <- function(X,w){
n <- nrow(X)
p <- ncol(X)
# jumlah bobot
sum_w <- 0
for(i in 1:n){
sum_w <- sum_w + w[i]
}
# Weighted Mean
xbar <- rep(0,p)
for(j in 1:p){
total <- 0
for(i in 1:n){
total <- total + w[i]*X[i,j]
}
xbar[j] <- total/sum_w
}
# Matriks Deviasi
D <- matrix(0,n,p)
for(i in 1:n){
for(j in 1:p){
D[i,j] <- X[i,j] - xbar[j]
}
}
# Weighted Covariance
cov_matrix <- matrix(0,p,p)
for(j in 1:p){
for(k in 1:p){
total <- 0
for(i in 1:n){
total <- total + w[i]*D[i,j]*D[i,k]
}
cov_matrix[j,k] <- total/sum_w
}
}
# standar deviasi
std_dev <- rep(0,p)
for(j in 1:p){
std_dev[j] <- sqrt(cov_matrix[j,j])
}
# Correlation Matrix
cor_matrix <- matrix(0,p,p)
for(j in 1:p){
for(k in 1:p){
cor_matrix[j,k] <- cov_matrix[j,k]/(std_dev[j]*std_dev[k])
}
}
# output
return(list(
weighted_mean = xbar,
covariance = cov_matrix,
correlation = cor_matrix,
standar_dev = std_dev
))
}
hasil <- weighted_corr(X,w)
hasil
## $weighted_mean
## [1] 73.88530 65.39059 17.00938
##
## $covariance
## [,1] [,2] [,3]
## [1,] 38.16362 -37.75105 -27.15386
## [2,] -37.75105 41.10767 29.16587
## [3,] -27.15386 29.16587 21.14757
##
## $correlation
## [,1] [,2] [,3]
## [1,] 1.0000000 -0.9531095 -0.9558207
## [2,] -0.9531095 1.0000000 0.9891979
## [3,] -0.9558207 0.9891979 1.0000000
##
## $standar_dev
## [1] 6.177671 6.411527 4.598649
# VISUALISASI DATA
# Scatter plot antar variabel
pairs(X,
main="Scatter Plot Matrix Variabel x1, x2, x3",
col="blue",
pch=19)

# Histogram masing-masing variabel
par(mfrow=c(1,3))
hist(X[,1],
main="Histogram X1",
col="lightblue",
xlab="Nilai X1")
hist(X[,2],
main="Histogram X2",
col="lightyellow",
xlab="Nilai X2")
hist(X[,3],
main="Histogram X3",
col="lightpink",
xlab="Nilai X3")

par(mfrow=c(1,1))
# Heatmap korelasi
heatmap(hasil$correlation,
main="Diagram Korelasi",
symm=TRUE)

#Interpretasi Soal 2
#Pola hubungan yang cukup kuat (sesuaikan: positif/negatif) ditunjukkan oleh plot dispersi antara x1 dan x2. Dengan kata lain, kota atau kabupaten yang memiliki nilai x1 yang tinggi cenderung memiliki nilai x2 yang tinggi atau rendah, dan sebaliknya.
#Selain itu,Scatter plot antara x1 dan x3 menunjukkan pola hubungan yang kuat atau sedang (positif atau negatif). Hal ini menunjukkan bahwa kota atau kabupaten dengan nilai x1 tinggi cenderung memiliki nilai x3 yang sama.
#Scatter plot antara x2 dan x3 menunjukkan pola hubungan yang kuat, sedang, atau lemah. Ini berbeda dari hubungan sebelumnya. Ini berarti bahwa kabupaten atau kota dengan nilai x2 yang tinggi cenderung memiliki nilai x3 yang juga tinggi atau rendah.