# Sinh 500 giá trị theo phân phối chuẩn N(50, 225)
set.seed(42)
data <- rnorm(500, mean = 50, sd = 15)

# Kiểm định Shapiro–Wilk
test <- shapiro.test(data)

print(test)
## 
##  Shapiro-Wilk normality test
## 
## data:  data
## W = 0.99852, p-value = 0.9533
# Kết luận
if (test$p.value > 0.05) {
  cat("Dữ liệu tuân theo phân phối chuẩn\n")
} else {
  cat("Dữ liệu không tuân theo phân phối chuẩn\n")
}
## Dữ liệu tuân theo phân phối chuẩn
# ===== CÂU 2 (GỘP) =====
# 1. Đọc dữ liệu Iris
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.datasets import load_iris

iris = load_iris()
df = pd.DataFrame(iris.data, columns=iris.feature_names)

print("5 dòng đầu của dữ liệu:")
## 5 dòng đầu của dữ liệu:
print(df.head())
##    sepal length (cm)  sepal width (cm)  petal length (cm)  petal width (cm)
## 0                5.1               3.5                1.4               0.2
## 1                4.9               3.0                1.4               0.2
## 2                4.7               3.2                1.3               0.2
## 3                4.6               3.1                1.5               0.2
## 4                5.0               3.6                1.4               0.2
# 2. Tính phương sai
print("\nPhương sai các đặc trưng:")
## 
## Phương sai các đặc trưng:
print(df.var())
## sepal length (cm)    0.685694
## sepal width (cm)     0.189979
## petal length (cm)    3.116278
## petal width (cm)     0.581006
## dtype: float64
# 3. Vẽ biểu đồ scatter Sepal.Length vs Sepal.Width
plt.scatter(df["sepal length (cm)"], df["sepal width (cm)"])
plt.xlabel("Sepal Length")
plt.ylabel("Sepal Width")
plt.title("Scatter plot giữa Sepal Length và Sepal Width")
plt.show()