==============================================================================

TEMPLATE JAWABAN KUIS

Komputasi Statistika, Kelas D

Prodi S1 Statistika FSAD ITS - Semester Genap 2025/2026

Kamis, 12 Maret 2026

==============================================================================

Nama : Sheren Gracia Theodora

NRP : 5003251097

Kelas : D

==============================================================================

soal 1

#bagian a
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)
  x<-sort(x)
  
  for(i in 1:n){
    if(i<=k){
      x[i] <- x[k+1]
    } else if(i>n-k){
      x[i]<-x[n-k]
    }
  }
  
  total<-0
  for(i in 1:n){
    total <- total + x[i]
  }
  
  total / n
}

#bagian b
total_x<-0
for(i in 1:length(x)){
  total_x <- total_x + x[i]
}

mean_biasa<-total_x / length(x)
mean_biasa
## [1] 81.86667
winsorized_mean(x, 0.2)
## [1] 69.73333
boxplot(x, col="lightblue", main="Boxplot Data")

hist(x,
     col    = "lightgreen",
     main   = "Histogram Data",
     xlab   = "Nilai",
     border = "black",
     breaks = 8)

Interpretasi Soal 1

Dari boxplot, terlihat jelas bahwa nilai 310 merupakan outlier yang jauh menyimpang dari sebagian besar data yang berkisar antara 12 hingga 95. Keberadaan outlier ini menyebabkan mean konvensional tertarik ke atas sehingga tidak lagi mencerminkan kondisi data secara keseluruhan.

Histogram juga memperlihatkan distribusi yang sangat tidak simetris (right-skewed), di mana sebagian besar data menumpuk di sisi kiri sementara ada satu nilai yang jauh ke kanan.

Kesimpulan: Winsorized mean lebih andal digunakan pada data yang mengandung outlier karena tidak mudah terpengaruh oleh nilai-nilai ekstrem.

soal 2

#bagian a
data <- read.csv("C:/Users/ASUS VIVOBOOK/Downloads/AR & PHYTON/data_quiz1.csv")
X<-as.matrix(data[, c("x1","x2","x3")])
w<-data$w

weighted_CR<-function(X, w){
  
  W<-diag(w)
  
  n_w<-sum(w)
  
  one<-matrix(1, nrow(X), 1)
  
  mean_w<-(t(X)%*%W%*%one)/n_w
  
  D<-X-one%*%t(mean_w)
  
  cov_w<-(t(D)%*%W%*% D) / n_w
  
  sd_w<-sqrt(diag(cov_w))
  
  V<-diag(sd_w)
  
  cor_w<-solve(V) %*% cov_w %*% solve(V)
  
  list(mean=mean_w, 
       covariance=cov_w, 
       sd=sd_w, 
       correlation=cor_w)
}
#bagian b
hasil <- weighted_CR(X, w)

hasil$mean
##        [,1]
## x1 73.88530
## x2 65.39059
## x3 17.00938
hasil$covariance
##           x1        x2        x3
## x1  38.16362 -37.75105 -27.15386
## x2 -37.75105  41.10767  29.16587
## x3 -27.15386  29.16587  21.14757
hasil$sd
##       x1       x2       x3 
## 6.177671 6.411527 4.598649
hasil$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
library(ggplot2)
library(gridExtra)

p1 <- ggplot(as.data.frame(X), aes(x1, x2)) + geom_point(col="steelblue") + theme_minimal()
p2 <- ggplot(as.data.frame(X), aes(x1, x3)) + geom_point(col="steelblue") + theme_minimal()
p3 <- ggplot(as.data.frame(X), aes(x2, x3)) + geom_point(col="steelblue") + theme_minimal()

grid.arrange(p1, p2, p3, ncol=2)

library(corrplot)
## corrplot 0.95 loaded
corrplot(hasil$correlation,
         method      = "color",
         type        = "upper",
         addCoef.col = "black",
         tl.col      = "black",
         tl.srt      = 45,
         title       = "Heatmap Korelasi Berbobot",
         mar         = c(0, 0, 1, 0))

Interpretasi Soal 2

Dari scatter plot antar pasangan variabel (x1-x2, x1-x3, x2-x3), kita bisa melihat bagaimana pola hubungan antar variabel terbentuk. Jika titik-titiknya cenderung membentuk garis, berarti ada hubungan linear antara kedua variabel tersebut.

Corrplot matriks korelasi berbobot memperjelas seberapa kuat hubungan itu: semakin dekat nilai korelasi ke ±1, semakin kuat hubungannya, dan semakin mendekati 0, semakin lemah.

Karena perhitungan ini menggunakan bobot (w), setiap observasi tidak diperlakukan sama rata seperti yang berbobot lebih besar punya pengaruh lebih besar terhadap hasil akhir.

Kesimpulan: Perhitungan berbobot menghasilkan estimasi mean, kovariansi, dan korelasi yang lebih sesuai dengan kondisi data sebenarnya.