Cau1

# Đặt seed để kết quả cố định (có thể tái lập lại)
set.seed(123)

data <- rnorm(n = 500, mean = 50, sd = 15)
head(data)
## [1] 41.59287 46.54734 73.38062 51.05763 51.93932 75.72597
ket_qua_kiem_dinh <- shapiro.test(data)

print(ket_qua_kiem_dinh)
## 
##  Shapiro-Wilk normality test
## 
## data:  data
## W = 0.99812, p-value = 0.8639
# Nếu p-value > 0.05 => Chấp nhận H0 (Dữ liệu tuân theo phân phối chuẩn)
# Nếu p-value < 0.05 => Bác bỏ H0 (Dữ liệu không chuẩn)

Cau 2

data(iris)
write.csv(iris, "iris.csv", row.names = FALSE)
import pandas as pd
import matplotlib.pyplot as plt

df = pd.read_csv("iris.csv")
print(df.head())
##    Sepal.Length  Sepal.Width  Petal.Length  Petal.Width Species
## 0           5.1          3.5           1.4          0.2  setosa
## 1           4.9          3.0           1.4          0.2  setosa
## 2           4.7          3.2           1.3          0.2  setosa
## 3           4.6          3.1           1.5          0.2  setosa
## 4           5.0          3.6           1.4          0.2  setosa
#Tính phương sai của từng đặc trưng
variances = df.var(numeric_only=True)
print(variances)
## Sepal.Length    0.685694
## Sepal.Width     0.189979
## Petal.Length    3.116278
## Petal.Width     0.581006
## dtype: float64
#Vẽ biểu đồ scatter
plt.figure(figsize=(8, 6))

plt.scatter(x=df['Sepal.Length'], y=df['Sepal.Width'], c='blue', alpha=0.6, label='Iris Data')

plt.title('Biểu đồ Scatter: Chiều dài vs Chiều rộng Đài hoa')
plt.xlabel('Sepal.Length')
plt.ylabel('Sepal.Width')
plt.legend()
plt.grid(True)
plt.show()