x <- c(12, 45, 52, 58, 61, 63, 67, 70, 72, 75, 78, 82, 88, 95, 310)
winsorized_mean <- function(x, alpha) {
# TULIS KODE ANDA DI SINI
n <- length(x)
k <- floor(n * alpha)
xsort <- sort(x)
y <- xsort
for (i in 1 : n){
if (i <= k){
y[i] <- x[k+1]
}else if (i <= n-k){
y[i] <- x[i]
}else {
y[i] <- x[n-k]
}
}
total <- 0
for ( i in 1 :n){
total = total + y[i]
}
ratarata = total/n
return (ratarata)
}
## [1] 81.86667
winsorized_mean(x , 0.2)
## [1] 69.73333
ord_mean <- winsorized_mean(x,0)
win_mean <- winsorized_mean(x, 0.2)
boxplot(x,
horizontal = TRUE,
main = "Perbandingan Mean pada Data dengan Outlier",
xlab = "Nilai Produksi Harian",
col = "lightblue",
pch = 16)
points(ord_mean, 1, col = "red", pch = 16, cex = 2)
points(win_mean, 1, col = "darkgreen", pch = 16, cex = 2)
Analisis dan Interpretasi : Berdasarkan Grafik di atas, terlihat satu titik berada di nilai 310, yaitu outlier. Titik ini berada di luar garis batas yang membuatnya menjadi outlier. Lalu Visualisasi ini menunjukkan bahwa Winsorized mean memberikan gambaran yang lebih akurat mengenai performa rata rata mesin sebenarnya.
df <- read.csv("C:/Quiz 1 Komstat/data_quiz1.csv")
X <- as.matrix(df[, c("x1", "x2", "x3")])
w <- df$w
df
## kota x1 x2 x3 w
## 1 Kab. Pacitan 86 55 10.2 14.34
## 2 Kab. Ponorogo 78 64 15.8 14.19
## 3 Kab. Trenggalek 83 58 11.5 12.49
## 4 Kab. Tulungagung 75 68 17.3 11.45
## 5 Kab. Blitar 80 60 13.6 17.45
## 6 Kab. Kediri 74 66 16.8 15.24
## 7 Kab. Malang 66 74 23.5 34.73
## 8 Kab. Lumajang 77 62 14.7 17.97
## 9 Kab. Jember 69 72 21.2 33.13
## 10 Kab. Banyuwangi 73 67 19.4 35.93
## 11 Kab. Bondowoso 79 59 12.8 15.55
## 12 Kab. Situbondo 81 57 11.3 16.54
## 13 Kab. Probolinggo 72 65 16.1 17.25
## 14 Kab. Pasuruan 67 73 22.3 14.93
## 15 Kab. Sidoarjo 58 80 28.5 7.24
## 16 Kab. Mojokerto 68 70 19.8 9.85
## 17 Kab. Jombang 71 67 18.4 11.10
## 18 Kab. Nganjuk 76 63 15.2 12.89
## 19 Kab. Madiun 79 61 13.9 11.14
## 20 Kab. Magetan 82 56 10.8 7.06
## 21 Kab. Ngawi 77 62 14.5 13.96
## 22 Kab. Bojonegoro 75 65 16.0 23.13
## 23 Kab. Tuban 74 66 16.5 19.74
## 24 Kab. Lamongan 73 68 18.1 17.53
## 25 Kab. Gresik 61 78 26.3 12.56
## 26 Kab. Bangkalan 70 63 15.3 13.01
## 27 Kab. Sampang 76 58 12.5 12.28
## 28 Kab. Pamekasan 74 64 15.0 7.95
## 29 Kab. Sumenep 82 55 10.0 20.84
## 30 Kota Kediri 63 75 25.8 0.67
## 31 Kota Blitar 65 72 24.2 0.33
## 32 Kota Malang 57 82 30.1 1.11
## 33 Kota Probolinggo 64 74 24.5 0.55
## 34 Kota Pasuruan 62 77 27.0 0.39
## 35 Kota Mojokerto 60 79 28.8 0.20
## 36 Kota Madiun 61 78 27.5 0.36
## 37 Kota Surabaya 54 85 32.5 3.36
## 38 Kota Batu 84 60 11.8 1.94
weighted_corr <- function(X, w) {
n <- nrow(X)
n_w <- 0
for ( i in 1:length(w)){
n_w <- n_w + w[i]
}
W <- diag(w)
satu <- matrix(1,nrow = n,ncol =1)
x_bar_w <- (t(X) %*% W %*% satu) / n_w
D <- X-satu %*% t(x_bar_w)
S_w <- (t(D) %*% W %*% D)/ n_w
s_w <- sqrt(diag(S_w))
V <- diag(s_w)
R_w <- solve(V) %*% S_w %*% solve(V)
return(list(
W = W,
x_bar_w = x_bar_w,
S_w = S_w,
s_w = s_w,
R_w = R_w
))
}
library (ggplot2)
p1 <- ggplot(df, aes(x = reorder(kota, -x1), y = x1)) +
geom_bar(stat = "identity", fill = "skyblue") +
theme_minimal() +
theme(axis.text.x = element_text(angle = 90, vjust = 0.5, hjust=1)) +
labs(title = "Visualisasi Variabel x1", x = "Kota", y = "x1")
print (p1)
Analisis dan Interpretasi : Wilayah seperti Kab. Pacitan (86), Kab. Trenggalek (83), dan Kab. Situbondo (81) menempati posisi teratas. Sebaliknya, wilayah metropolitan seperti Kota Surabaya (50) dan Kab. Sidoarjo (58) berada di posisi terbawah. Ini mengindikasikan bahwa x1 mungkin merepresentasikan variabel yang lebih tinggi di daerah non-industri atau pedesaan.
p2 <- ggplot(df, aes(x = reorder(kota, -x2), y = x2)) +
geom_bar(stat = "identity", fill = "tomato1") +
theme_minimal() +
theme(axis.text.x = element_text(angle = 90, vjust = 0.5, hjust=1)) +
labs(title = "Visualisasi Variabel x2", x = "Kota", y = "x2")
print (p2)
Analisis dan Interpretasi : Adanya hubungan negatif (korelasi terbalik) antara x1 dan x2 , Kota Surabaya (82) dan Kab. Sidoarjo (80) yang sebelumnya rendah di x1, justru menjadi yang tertinggi di sini. Sementara itu, Kab. Pacitan (55) berada di posisi paling rendah.
p3 <- ggplot(df, aes(x = reorder(kota, -x3), y = x3)) +
geom_bar(stat = "identity", fill = "lightgreen") +
theme_minimal() +
theme(axis.text.x = element_text(angle = 90, vjust = 0.5, hjust=1)) +
labs(title = "Visualisasi Variabel x3", x = "Kota", y = "x3")
print (p3)
Analisis dan Interpretasi :Adanya hubungan positif yang kuat antara x2 dan x3, karena pada grafik x2 dan x3 terlihat mirip, dimana kota kota besar mendominasi ,Kota Surabaya (30.5) dan Kab. Sidoarjo (28.5).
hasil <- weighted_corr(X,w)
dim(X)
## [1] 38 3
hasil$S_w
## 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$s_w
## x1 x2 x3
## 6.177671 6.411527 4.598649
hasil$R_w
## [,1] [,2] [,3]
## [1,] 1.0000000 -0.9531095 -0.9558207
## [2,] -0.9531095 1.0000000 0.9891979
## [3,] -0.9558207 0.9891979 1.0000000