Câu 1: Sinh ngẫu nhiên 500 giá trị từ phân phối đều trên khoảng [1,7]

set.seed(123)  # Đặt seed để kết quả có thể tái lặp
data <- runif(500, min = 1, max = 7)

# Tính kỳ vọng và phương sai
mean_value <- mean(data)
variance_value <- var(data)

cat("Kỳ vọng mẫu:", mean_value, "\n")
## Kỳ vọng mẫu: 3.971702
cat("Phương sai mẫu:", variance_value, "\n")
## Phương sai mẫu: 2.91225

Histogram

hist(data, breaks = 20, col = "skyblue", border = "black", 
     main = "Histogram của mẫu", xlab = "Giá trị", ylab = "Tần suất")

## Câu 2: Đọc tập dữ liệu Iris bằng Python

#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 seaborn as sns
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)

# Chỉnh sửa tên cột để phù hợp với cú pháp Python
df.columns = [col.replace(" (cm)", "").replace(" ", "_") for col in df.columns]

# Tính hệ số tương quan
correlation = df["sepal_length"].corr(df["sepal_width"])
print(f"Hệ số tương quan giữa chiều dài và chiều rộng đài hoa: {correlation}")
## Hệ số tương quan giữa chiều dài và chiều rộng đài hoa: -0.11756978413300208
# Vẽ biểu đồ scatter
plt.figure(figsize=(8, 5))
sns.scatterplot(x=df["sepal_length"], y=df["sepal_width"])
plt.xlabel("Chiều dài đài hoa (Sepal Length)")
plt.ylabel("Chiều rộng đài hoa (Sepal Width)")
plt.title("Biểu đồ Scatter giữa chiều dài và chiều rộng đài hoa")
plt.show()