Câu 1

1. Sinh ngẫu nhiên 300 giá trị từ phân phối đều liên tục trong khoảng [2, 10]

set.seed(123)
x <- runif(300, min = 2, max = 10)

head(x)
## [1] 4.300620 8.306441 5.271815 9.064139 9.523738 2.364452

2. Tính giá trị phương sai, kì vọng

mean_x <- mean(x)
var_x <- var(x)

mean_x
## [1] 5.996895
var_x
## [1] 5.039841

Câu 2

1. Đọc tập dữ liệu Iris bằng thư viện Pandas

data(iris)
head(iris)
##   Sepal.Length Sepal.Width Petal.Length Petal.Width Species
## 1          5.1         3.5          1.4         0.2  setosa
## 2          4.9         3.0          1.4         0.2  setosa
## 3          4.7         3.2          1.3         0.2  setosa
## 4          4.6         3.1          1.5         0.2  setosa
## 5          5.0         3.6          1.4         0.2  setosa
## 6          5.4         3.9          1.7         0.4  setosa

2. Xác định giá trị lớn nhất và nhỏ nhất của từng đặc trưng

numeric_features <- iris[, 1:4]

min_values <- apply(numeric_features, 2, min)
max_values <- apply(numeric_features, 2, max)

min_values
## Sepal.Length  Sepal.Width Petal.Length  Petal.Width 
##          4.3          2.0          1.0          0.1
max_values
## Sepal.Length  Sepal.Width Petal.Length  Petal.Width 
##          7.9          4.4          6.9          2.5

3. Vẽ biểu đồ barplot thể hiện số lượng mẫu của mỗi loại hoa

species_count <- table(iris$Species)

barplot(
  species_count,
  col = c("skyblue", "lightgreen", "salmon"),
  main = "Số lượng mẫu của mỗi loài hoa Iris",
  xlab = "Loài hoa",
  ylab = "Số lượng"
)

4. (Tham khảo) Biểu đồ phân phối dữ liệu

hist(iris$Sepal.Length,
     main = "Histogram Sepal Length",
     xlab = "Sepal Length",
     col = "skyblue",
     breaks = 15)

5. (Tham khảo) Biểu đồ so sánh phân tán giữa các loài

boxplot(Sepal.Length ~ Species,
        data = iris,
        main = "So sánh Sepal Length giữa các loài",
        col = c("lightblue","lightgreen","salmon"))