Đáp Án Bài Thực Hành Số 1 Học Phần XLSL

Bài viết chia sẻ code .qmd đáp án chi tiết cho bài thực hành số 1 học phần Xử lý số liệu.

Đáp Án Bài Thực Hành Số 1 Học Phần XLSL
Đáp Án Bài Thực Hành Số 1 Học Phần XLSL | Wiky

Môn Xử lý số liệu (XLSL) luôn là thử thách đối với nhiều bạn khi bắt đầu làm quen với ngôn ngữ lập trình R và Quarto. Để giúp các bạn ôn tập hiệu quả, mình xin chia sẻ bộ đáp án chi tiết cho Bài tập thực hành số 1.


Chi tiết đáp án bài thực hành

Lưu ý!Các đáp án và hướng dẫn thực hành được chia sẻ trong bài viết này chỉ mang tính chất tham khảo, hỗ trợ học tập và nghiên cứu. Wiky không chịu trách nhiệm về bất kỳ sai sót, cách hiểu hoặc việc sử dụng nội dung này cho mục đích khác ngoài học tập. Người đọc cần tự đánh giá, kiểm chứng và chịu trách nhiệm với kết quả khi áp dụng.

File đề thực hành:

Đề Bài Thực Hành 1.html
---
title: "Tên tiêu đề"
author: "www.wiky.io.vn"
format: html
date: today
editor: visual
---

## Bài 1. Tạo tài liệu Quarto và render

### 1. Đoạn giới thiệu

Quarto là hệ thống xuất bản mã nguồn mở thế hệ tiếp theo của R Markdown (do Posit phát triển), cho phép kết hợp liền mạch mã nguồn, kết quả phân tích và văn bản tường thuật. Quarto hỗ trợ đa ngôn ngữ (R, Python, Julia, v.v.) và xuất bản đa định dạng từ một tệp duy nhất.

Các đặc điểm nổi bật bao gồm: Tạo tài liệu, trang web, sách, bài thuyết trình, blog và tài liệu học thuật. Xuất ra hàng loạt định dạng phổ biến như PDF, HTML, MS Word, ePub, và LaTeX chỉ với một cú click. Hỗ trợ nhúng nội dung động, đồ thị tương tác và mã trực tiếp vào báo cáo.Tích hợp dễ dàng: Làm việc hoàn hảo với các IDE phổ biến như RStudio, Jupyter Lab và VS Code.

### 2. Tạo chunk R

```{r}
x <- c(1,3,5,7,9)
summary(x)
```

### 3. Viết công thức toán

Giá trị trung bình mẫu là $\bar{x} = \dfrac{1}{n}\sum_{i=1}^n x_i$.

## Bài 2. Chunk options trong Quarto

Tạo 4 chunk và giải thích ý nghĩa từng option:

### 1. Tạo chunk: `echo: true`

```{r}
#| echo: true
mean(c(2,4,6,8))
```

**Ý nghĩa:** Hiển thị đoạn mã nguồn R trong file báo cáo kết quả.

### 2. Tạo chunk: `echo: false`

```{r}
#| echo: false
mean(c(2,4,6,8))
```

**Ý nghĩa:** Ẩn đi đoạn mã nguồn R trong file báo cáo kết quả.

### 3. Tạo chunk: `eval: false`

```{r}
#| eval: false
mean(c(2,4,6,8))
```

**Ý nghĩa:** Không thực thi đoạn mã nguồn R trong file báo cáo kết quả.

### 4. Tạo chunk: `warning: false`

```{r}
#| warning: false
log(-1)
```

**Ý nghĩa:** Ẩn đi các cảnh báo của R trong file báo cáo kết quả.

## Bài 3. Công thức toán trong Quarto

Trình bày mô hình hồi quy tuyến tính đa biến: $$Y_i = \beta_0 + \beta_1 X_{i1} + \beta_2 X_{i2} + ... + \beta_p X_{ip} + \varepsilon_i.$$ Giải thích:

- $Y_i$ : Biến phụ thuộc
- $X_{ij}$ : Biến độc lập
- $\beta_j$ : Hệ số hồi quy
- $\varepsilon_i$ : Sai số

Viết thêm dạng ma trận: $$Y = X\beta  + \varepsilon.$$

## Bài 4. Bảng và hình với dữ liệu thực

### 1. Tải bộ dữ liệu `women`

Tải bộ dữ liệu `women` từ package **datasets**.

```{r}
data(women)
```

### 2. Tính chỉ số BMI và in kết quả

Theo chuẩn, ta đổi `height` từ inch sang mét (1 inch = 0.0254 mét) và `weight` từ pound sang kg (1 pound = 0.453592 kg) trước khi tính.

```{r}
women$height_m <- women$height*0.0254
women$weight_kg <- women$weight*0.453592

women$BMI <- round(women$weight_kg/(women$height_m^2),3)

print(women[,c("height","weight","BMI")])
```

### 3. Vẽ biểu đồ Histogram của `height`

```{r}
#| fig-align: center

hist(women$height, 
  main="Biểu đồ Histogram phân phối chiều cao", 
  xlab="Chiều cao (inch)",ylab="Tần số",col="lightblue",border="black")
```

### 4. Nhận xét kết quả

- **Về kết quả tính BMI:** Các chỉ số BMI tính được dao động trong khoảng từ 22.1 đến gần 23.0. Dựa theo tiêu chuẩn y tế, toàn bộ dữ liệu này đều nằm trong nhóm BMI bình thường,cho thấy thể trạng khỏe mạnh.
- **Về biểu đồ Histogram:** Biểu đồ cho thấy sự phân bố chiều cao từ 58 đến 72 inch có dạng phân phối đồng đều và tần số ở các cột gần như bằng nha cho thấy  mức cân nặng trung bình tương ứng với từng mức chiều cao tăng dần từng inch một.

## Bài 5. Thống kê mô tả

Tính toán các đại lượng thống kê cho biến `weight` từ bộ dữ liệu `women` và in kết quả thành 1 bảng.

```{r}
w_mean <- round(mean(women$weight),3)
w_median <- round(median(women$weight),3)
w_var <- round(var(women$weight),3)
w_sd <- round(sd(women$weight),3)
w_min <- round(min(women$weight),3)
w_max <- round(max(women$weight),3)

table <- data.frame(
  Dai_luong=c("Mean","Median","Variance","Standard Deviation","Min","Max"),
  Gia_tri=c(w_mean,w_median,w_var,w_sd,w_min,w_max))

knitr::kable(table,
  col.names=c("Đại lượng Thống kê", "Giá trị"),
  caption="Bảng thống kê mô tả cho biến Weight (Pound)")
```

## Bài 6. Phân loại dữ liệu

### 1. Tải dữ liệu `iris` từ package **datasets**

```{r}
data(iris)
```

### 2. Tạo nhóm chiều dài cánh hoa

```{r}
iris$PetalGroup <- cut(
  iris$Petal.Length,
  breaks = c(0, 2, 5, 8),
  labels = c("Short", "Medium", "Long")
)
```

### 3. Tạo bảng tần số:

```{r}
table(iris$PetalGroup)
```

### 4. Hiển thị bảng:

```{r}
knitr::kable(as.data.frame(table(iris$PetalGroup)), 
  col.names=c("Nhóm chiều dài","Tần số"),caption="Bảng tần số phân loại chiều dài cánh hoa")
```

## Bài 7. Vẽ biểu đồ với ggplot2

### 1. Tải package `ggplot2` và dữ liệu `iris`

```{r}
#| warning: false
#| message: false

data(iris)
library(ggplot2)
```

### 2. Vẽ scatter plot:

Biểu đồ thể hiện mối quan hệ giữa chiều dài đài hoa (`Sepal.Length`) và chiều dài cánh hoa (`Petal.Length`), được phân loại màu sắc theo loài (`Species`).

```{r}
#| fig-align: center

ggplot(
  iris,
  aes(
    x = Sepal.Length,
    y = Petal.Length,
    color = Species
  )
) + 
  geom_point() + 
  theme_minimal()
```

### 3. Nhận xét về mối liên hệ giữa các biến:

Dựa vào biểu đồ phân tán, ta có nhận xét sau:

- **Tổng thể:** Có mối tương quan thuận giữa chiều dài đài hoa và chiều dài cánh hoa. Khi chiều dài đài hoa tăng thì chiều dài cánh hoa cũng có xu hướng tăng theo.
- **Sự phân cụm theo loài:**
  - **Loài *Setosa*:** Tạo thành một cụm tách biệt hoàn toàn so với hai loài còn lại. Loài này đặc trưng bởi chiều dài cánh hoa rất ngắn và chiều dài đài hoa cũng tương đối ngắn.
  - **Loài *Versicolor*:** Nằm ở vị trí trung gian, có kích thước đài hoa và cánh hoa ở mức trung bình.
  - **Loài *Virginica*:** Là loài có kích thước lớn nhất, với cả chiều dài đài hoa và cánh hoa đều vượt trội hơn so với hai loài kia.
- **Kết luận:** Biến `Petal.Length` kết hợp với `Sepal.Length` là những đặc trưng để phân loại các loài hoa Iris, đặc biệt là tách biệt hoàn toàn được loài *Setosa* ra khỏi *Versicolor* và *Virginica*.

## Bài 8. Hồi quy tuyến tính

### 1. Tải dữ liệu `mtcars` từ package **datasets**

```{r}
data(mtcars)
```

### 2. Xây dựng mô hình hồi quy tuyến tính

Phương trình mô hình hồi quy có dạng: $mpg_i = \beta_0 + \beta_1 hp_i + \epsilon_i$

```{r}
fit <- lm(mpg ~ hp, data = mtcars)
summary(fit)
```

### 3. Vẽ đường hồi quy:

```{r}
#| fig-align: center

plot(mtcars$hp, mtcars$mpg,
  main="Mối quan hệ giữa Mã lực và Tiêu hao nhiên liệu",
  xlab="Mã lực (hp)",ylab="Số dặm trên một gallon (mpg)",pch=16,col="blue")

abline(fit,col="red",lwd=2)
```

### 4. Nhận xét:

Dựa vào bảng kết quả `summary(fit)` và biểu đồ, ta nhận xét như sau:

- **Dấu hệ số:** Hệ số góc của biến `hp` mang dấu âm và trên biểu đồ, đường hồi quy đi xuống từ trái qua phải. Điều này thể hiện mối quan hệ nghịch biến giữa mã lực và số dặm đi được trên một gallon nhiên liệu.
- **Ý nghĩa hệ số hồi quy:**
  - Hệ số $\beta_1 = -0.0682$: trung bình cứ tăng thêm 1 đơn vị mã lực, thì quãng đường xe đi được trên 1 gallon nhiên liệu sẽ giảm đi khoảng 0.0682 dặm.
  - Hệ số chặn $\beta_0 = 30.0988$: nếu một chiếc xe có mã lực bằng 0 thì nó đi được khoảng 30.1 dặm/gallon.
- **Mức độ phù hợp của mô hình:**
  - **R-squared (**$R^2$): bằng 0.6024. Điều này có nghĩa là sự thay đổi của mã lực giải thích được khoảng 60.24% sự biến thiên của biến tiêu hao nhiên liệu.
  - **p-value:** Cả p-value của hệ số biến `hp` và p-value của toàn mô hình đều rất nhỏ ($1.788 \times 10^{-7}$), nhỏ hơn nhiều so với mức ý nghĩa 0.05.
  - **Kết luận:** Do đó, ta có đủ bằng chứng để kết luận mô hình hồi quy này có ý nghĩa thống kê.

Lời kết

Hy vọng bài viết này giúp ích cho lộ trình học tập của bạn. Nếu thấy hữu ích, đừng ngần ngại chia sẻ bài viết này cho các bạn cùng lớp nhé! Mọi câu hỏi góp ý xin vui lòng để lại phía dưới phần bình luận. Chúc các bạn làm bài thực hành thật tốt!

Copyright (c):
www.wiky.io.vn

About the author

Ng P Nhật Huy
Chia sẻ là đam mê

Đăng nhận xét