1. Tạo Dữ liệu Mẫu

set.seed(42)
data <- matrix(rnorm(200), ncol=2)
data <- rbind(data, c(5, 5))  # Thêm một điểm ngoại lai

2. Tính Khoảng cách Euclidean và Xác định Ngưỡng

# Tính khoảng cách Euclidean
distances <- dist(data)

# Chuyển đổi khoảng cách thành ma trận
dist_matrix <- as.matrix(distances)

# Tính khoảng cách trung bình cho mỗi điểm
mean_distances <- apply(dist_matrix, 1, mean)

# Tính giá trị trung bình và độ lệch chuẩn của khoảng cách trung bình
mean_value <- mean(mean_distances)
sd_value <- sd(mean_distances)

# Xác định ngưỡng (ví dụ: 3 độ lệch chuẩn)
threshold <- mean_value + 3 * sd_value

# Xác định các điểm ngoại lai
outliers <- which(mean_distances > threshold)

3. Vẽ Hình Minh họa

# Vẽ biểu đồ phân tán và đánh dấu các điểm ngoại lai
plot(data, main = "Detection of Outliers using Euclidean Distance", xlab = "X1", ylab = "X2")
points(data[outliers, ], col = "red", pch = 19)

# Vẽ vòng tròn biểu thị ngưỡng
symbols(data[outliers, 1], data[outliers, 2], circles = rep(threshold, length(outliers)), inches = 0.1, add = TRUE, fg = "blue")