set.seed(42)

# Sinh ngẫu nhiên 500 giá trị từ phân phối chuẩn N(50, 225)
data <- rnorm(500, mean = 50, sd = sqrt(225))

# Sử dụng kiểm định Shapiro-Wilk để kiểm tra tính chuẩn
shapiro_test <- shapiro.test(data)

# In kết quả
print(shapiro_test)
## 
##  Shapiro-Wilk normality test
## 
## data:  data
## W = 0.99852, p-value = 0.9533
#1 Đọc dữ liệu Iris 
data(iris)

#2 Tính phương sai của từng đặc trưng
variances <- sapply(iris[, 1:4], var)
print(variances)
## Sepal.Length  Sepal.Width Petal.Length  Petal.Width 
##    0.6856935    0.1899794    3.1162779    0.5810063
#3 Vẽ biểu đồ scatter giữa chiều dài đài hoa và chiều rộng đài hoa

plot(iris$Sepal.Length, iris$Sepal.Width,
     xlab = "Chiều dài đài hoa (Sepal Length)",
     ylab = "Chiều rộng đài hoa (Sepal Width)",
     main = "Biểu đồ Scatter giữa Sepal Length và Sepal Width",
     pch = 16, col = "blue")

#install.packages("reticulate")
library(reticulate)
use_python("C:/Users/fpt/anaconda3/python.exe", required = TRUE)
py_config()
## python:         C:/Users/fpt/anaconda3/python.exe
## libpython:      C:/Users/fpt/anaconda3/python312.dll
## pythonhome:     C:/Users/fpt/anaconda3
## version:        3.12.4 | packaged by Anaconda, Inc. | (main, Jun 18 2024, 15:03:56) [MSC v.1929 64 bit (AMD64)]
## Architecture:   64bit
## numpy:          C:/Users/fpt/anaconda3/Lib/site-packages/numpy
## numpy_version:  1.26.4
## 
## NOTE: Python version was forced by use_python() function
library(reticulate)
py_module_available("pandas")
## [1] TRUE
py_module_available("matplotlib")
## [1] TRUE
py_module_available("sklearn")
## [1] TRUE
library(reticulate)
repl_python()
## Python 3.12.4 (C:/Users/fpt/anaconda3/python.exe)
## Reticulate 1.40.0 REPL -- A Python interpreter in R.
## Enter 'exit' or 'quit' to exit the REPL and return to R.
## exit
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.datasets import load_iris

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

# Tính phương sai của từng đặc trưng
variances = df.var()
print("Phương sai của từng đặc trưng:")
## Phương sai của từng đặc trưng:
print(variances)
## sepal length (cm)    0.685694
## sepal width (cm)     0.189979
## petal length (cm)    3.116278
## petal width (cm)     0.581006
## dtype: float64
# Vẽ biểu đồ scatter giữa chiều dài và chiều rộng đài hoa
plt.scatter(df.iloc[:, 0], df.iloc[:, 1])
plt.xlabel("Sepal Length (cm)")
plt.ylabel("Sepal Width (cm)")
plt.title("Scatter plot of Sepal Length vs Sepal Width")
plt.show()