Bối cảnh và vấn đề nghiên cứu

Đồ án môn học chuyên đề "Phân tích dữ liệu với R" được thực hiện bởi sinh viên Hồ Hà Giang (lớp 17IT2), dưới sự hướng dẫn của TS. Nguyễn Thanh tại Trường Đại học Công nghệ Thông tin và Truyền thông Việt - Hàn thuộc Đại học Đà Nẵng vào tháng 12 năm 2020. Đề tài thuộc lĩnh vực Công nghệ thông tin và Khoa học dữ liệu ứng dụng.

Bối cảnh thực tiễn được tác giả xác định dựa trên sự phát triển mạnh mẽ của các công trình nghiên cứu về phân tích dữ liệu trong hơn một thập kỷ qua. Trong bối cảnh khối lượng dữ liệu từ các hệ thống giao dịch, khảo sát, mạng xã hội và cảm biến ngày càng gia tăng, nhu cầu xử lý và khám phá tri thức từ dữ liệu lớn trở nên cấp thiết. Ngôn ngữ R nổi lên như một công cụ lập trình hàm và môi trường tính toán thống kê mã nguồn mở, độc lập nền tảng, có hệ sinh thái gói thư viện mở rộng phong phú và khả năng tích hợp linh hoạt với các ngôn ngữ lập trình khác như C, C++ cũng như các hệ quản trị cơ sở dữ liệu quan hệ.

Mục tiêu và nhiệm vụ nghiên cứu của đồ án bao gồm:

  1. Nghiên cứu tổng quan về môi trường lập trình R, các cấu trúc dữ liệu cơ bản, hệ thống hàm tính toán xác suất thống kê và các công cụ trực quan hóa đồ họa.
  2. Hệ thống hóa cơ sở lý thuyết của các phương pháp phân tích dữ liệu định lượng, bao gồm thống kê mô tả, phân tích hồi quy tuyến tính đơn biến và đa biến, phân tích phương sai, phân tích hồi quy logistic và tổng quan phân tích văn bản.
  3. Ứng dụng ngôn ngữ R để thực hiện quy trình tiền xử lý, trích xuất dữ liệu, kiểm định thống kê và xây dựng mô hình dự báo trên các tập dữ liệu thực nghiệm.

Đối tượng và phạm vi nghiên cứu:

  • Đối tượng nghiên cứu: Cú pháp, hàm xử lý dữ liệu, thư viện thống kê của ngôn ngữ R và các mô hình toán thống kê ứng dụng.
  • Phạm vi không gian và dữ liệu: Tập dữ liệu giao dịch thẻ tín dụng của khách hàng tại Đài Loan gồm 30.000 dòng quan sát và 25 biến số; tập dữ liệu kinh điển về hoa Iris (150 quan sát, 4 thuộc tính); tập dữ liệu khảo sát chiều cao theo tháng tuổi (18–29 tháng) và tập dữ liệu cân nặng của 6 trẻ em từ 1 đến 6 tuổi.
  • Phạm vi thời gian: Dữ liệu thẻ tín dụng được thu thập trong giai đoạn từ tháng 4 năm 2005 đến tháng 9 năm 2005; đồ án được hoàn thành vào tháng 12 năm 2020.

Cơ sở lý thuyết và phương pháp

Khung lý thuyết của đồ án dựa trên các nguyên lý thống kê ứng dụng và kỹ thuật khai phá dữ liệu:

  • Thống kê mô tả (Descriptive analytics): Sử dụng các số đo phân phối tần số (đếm, phần trăm, tần suất), các số đo xu hướng trung tâm (trung bình - Mean, trung vị - Median, yếu vị - Mode) và các số đo độ biến thiên, phân tán (khoảng biến thiên - Range, phương sai - Variance, độ lệch chuẩn - Standard Deviation, hệ số biến thiên).
  • Hồi quy tuyến tính đơn biến và đa biến (Linear Regression Analysis): Mô hình hóa mối quan hệ tuyến tính giữa biến phụ thuộc $y$ và các biến độc lập $x$ theo phương trình tổng quát: $$y_i = \alpha + \beta_1 x_{i1} + \beta_2 x_{i2} + \dots + \beta_k x_{ik} + \varepsilon_i$$ Các tham số được ước lượng bằng phương pháp bình phương bé nhất (Least Squares). Mức độ liên hệ tuyến tính được đo lường thông qua hệ số tương quan $r \in [-1, 1]$ và sai số phần dư (residual) $\varepsilon_i = y_i - y'_i$.
  • Phân tích phương sai (Variance Analysis - ANOVA một chiều): Kiểm định giả thuyết thống kê nhằm so sánh sự khác biệt giữa các giá trị trung bình của biến định lượng theo các nhóm phân loại thông qua tỷ số kiểm định $F$.
  • Mô hình hồi quy Logistic (Logistic Regression): Áp dụng cho biến kết cục nhị phân thông qua hàm liên kết logit: $$\text{logit}(p) = \log\left(\frac{p}{1-p}\right) = \alpha + \beta X$$ Tỷ số số chênh (Odds Ratio) được xác định bằng công thức $\text{Odds Ratio} = \exp(\beta)$.
  • Tổng quan phân tích văn bản (Text Analysis): Khái quát quy trình xử lý văn bản thô, dọn dẹp, mã hóa từ và thiết lập ma trận tài liệu - thuật ngữ.

Phương pháp nghiên cứu thực tế được triển khai bao gồm:

  • Phương pháp phân tích - tổng hợp tài liệu: Thu thập lý thuyết nền tảng về xác suất thống kê và tài liệu hướng dẫn lập trình R từ các nguồn chuyên khảo.
  • Phương pháp thực nghiệm tính toán trên phần mềm: Viết các đoạn mã kịch bản trong môi trường R để xử lý số liệu, tính toán ma trận, vẽ đồ thị phân tích và huấn luyện mô hình.
  • Kỹ thuật phân chia tập dữ liệu (Data Splitting): Sử dụng hàm sample.split() để phân chia tập dữ liệu 30.000 bản ghi thành tập huấn luyện (Mẫu Xây Dựng) chiếm 65% và tập kiểm thử (Mẫu Kiểm Định) chiếm 35%.

Nguồn dữ liệu và công cụ hỗ trợ:

  • Công cụ: Môi trường lập trình R tải từ mạng lưới CRAN; các gói thư viện chuyên dụng gồm Hmisc, psych, plyr, tidyr, ggplot2, caTools, cùng các gói kết nối cơ sở dữ liệu RMySQL, RPgSQL, RODBC.
  • Dữ liệu: Bộ dữ liệu thứ cấp về lịch sử thanh toán thẻ tín dụng Đài Loan và các bộ dữ liệu mẫu có sẵn trong R (iris).

Nội dung chính theo từng chương

Chương 1. Giới thiệu ngôn ngữ R

Chương 1 trình bày tổng quan về nguồn gốc, tính năng và cú pháp cơ bản của ngôn ngữ R. Tác giả phân tích các ưu điểm của R như tính độc lập nền tảng (chạy trên mọi hệ điều hành), tính năng mã nguồn mở cho phép can thiệp mã nguồn, khả năng mở rộng với hàng ngàn gói thư viện và khả năng tương tác với các hệ quản trị cơ sở dữ liệu (MySQL, PostgreSQL qua trình điều khiển ODBC).

Về mặt kỹ thuật lập trình, chương 1 hệ thống hóa các thành phần cốt lõi:

  • Cấu trúc dữ liệu và phép toán: Hỗ trợ kiểu luận lý, số nguyên, số thực, số phức, ký tự, véctơ, ma trận, danh sách và khung dữ liệu (data.frame). Các phép toán số học (+, -, *, /, %%, %/%, ^), đại số ma trận (%*%, t(), det(), diag(), eigen()) và phép toán logic.
  • Hàm thao tác dữ liệu: Các hàm khởi tạo chuỗi và véctơ như c(), seq(), rep(); hàm đọc/ghi dữ liệu như scan(), read(), write(), save(); hàm tính toán thống kê như mean(), var(), sd(), cov(), cor(), summary(), sample(), rnorm(), dnorm().
  • Hệ thống đồ họa trực quan: Phân loại thành hàm đồ họa mức cao (plot(), hist(), boxplot(), pairs(), barplot(), pie(), persp(), contour(), coplot()) và hàm đồ họa mức thấp (abline(), lines(), points(), axis(), legend(), text(), polygon(), symbols()).

Tác giả thực nghiệm trực quan hóa trên tập dữ liệu hoa iris (150 quan sát, 4 thuộc tính) bằng biểu đồ tổ chức đồ (histogram), biểu đồ hộp (boxplot) cho thuộc tính Petal Length, ma trận tán xạ 2 chiều (pairs()) phân loại 3 lớp hoa theo màu sắc, và kỹ thuật chia màn hình hiển thị thành lưới 2x2 bằng lệnh par(mfrow = c(2, 2)). Chương này cũng minh họa bài toán hồi quy tuyến tính đơn về chiều cao theo tháng tuổi của trẻ (18–29 tháng), xác định hệ số chặn $\alpha = 64.635$ bằng hàm lm(), vẽ đường hồi quy bằng hàm abline() và dự báo chiều cao tại 23.5 tháng tuổi là 79.05 cm thông qua hàm predict().

Chương 2. Phân tích dữ liệu

Chương 2 tập trung vào cơ sở lý thuyết của các phương pháp phân tích số liệu định lượng và mô hình toán thống kê. Tác giả trình bày chi tiết bản chất của 5 phương pháp phân tích chính:

  1. Phân tích mô tả: Làm rõ vai trò tóm tắt tập dữ liệu trong quá khứ mà không đưa ra dự đoán tương lai, phân tích các chỉ số tần số, xu hướng trung tâm và độ biến thiên.
  2. Phân tích hồi quy tuyến tính: Giải thích nguyên lý xác định sự phụ thuộc giữa biến độc lập và biến phụ thuộc, bản chất hệ số tương quan $r$ trong phạm vi từ -1 đến 1 và ý nghĩa của hệ số biến thiên trong việc so sánh độ phân tán.
  3. Phân tích phương sai (ANOVA): Khái quát phương pháp kiểm định sự khác biệt giữa các số trung bình nhằm xem xét ảnh hưởng của yếu tố nguyên nhân đến yếu tố kết quả định lượng.
  4. Phân tích hậu cần (Logistic): Mô tả cấu trúc mô hình đối với biến kết quả nhị phân và các biến dự báo độc lập.
  5. Phân tích văn bản: Trình bày quy trình khai phá mẫu từ dữ liệu văn bản thô phục vụ trí tuệ doanh nghiệp (Business Intelligence).

Chương 2 cũng đi sâu vào chi tiết các mô hình phân tích:

  • Mô hình hồi quy tuyến tính đơn giản: Minh họa qua mẫu số liệu thực nghiệm gồm 6 trẻ từ 1 đến 6 tuổi. Tác giả phân tích hiện tượng sai lệch tại các điểm quan sát $y_1, y_2$ so với đường hồi quy, qua đó làm rõ khái niệm sai số phần dư (residual $\varepsilon_i = y_i - y'_i$) và mối liên hệ đạt mức 97%.
  • Mô hình hồi quy tuyến tính đa biến: Mở rộng phương trình với nhiều biến độc lập $x_1, x_2, \dots, x_k$ và các hệ số hồi quy riêng phần $\beta_j$.
  • Mô hình hồi quy Logistic: Trình bày công thức logit, log odds và cách tính tỉ số số chênh (Odds Ratio = $\exp(\beta)$).

Chương 3. Phân tích dữ liệu

Chương 3 là phần thực nghiệm ứng dụng ngôn ngữ R trên bộ dữ liệu thanh toán thẻ tín dụng tại Đài Loan (giai đoạn tháng 4/2005 – tháng 9/2005) gồm 30.000 dòng quan sát và 25 biến số. Tác giả ghi nhận dữ liệu ban đầu đã sạch và tiến hành các bước phân tích cụ thể:

Tên biến số Ý nghĩa và thang đo
ID Mã định danh khách hàng
LIMIT_BAL Hạn mức tín dụng cá nhân và gia đình (Đài tệ)
SEX Giới tính (1 = Nam, 2 = Nữ)
EDUCATION Trình độ học vấn (1 = Sau đại học, 2 = Đại học, 3 = Trung học, 4 = Khác, 5 = Chưa biết, 6 = Chưa biết)
MARRIAGE Tình trạng hôn nhân (1 = Đã kết hôn, 2 = Độc thân, 3 = Khác)
AGE Tuổi của khách hàng (năm)
PAY_0 đến PAY_6 Tình trạng thanh toán từ tháng 4 đến tháng 9/2005 (-1 = Đúng hạn, 1–8 = Trễ 1–8 tháng, 9 = Trễ từ 9 tháng)
BILL_AMT1 đến BILL_AMT6 Số tiền trên sao kê hóa đơn từ tháng 4 đến tháng 9/2005 (Đài tệ)
PAY_AMT1 đến PAY_AMT6 Số tiền đã thanh toán trong các kỳ trước từ tháng 4 đến tháng 9/2005 (Đài tệ)
default.payment.next.month Tình trạng thanh toán mặc định kỳ tiếp theo (1 = Có, 0 = Không)

Các nội dung thực nghiệm được triển khai theo trình tự:

  • Thống kê mô tả và trực quan hóa theo nhóm: Sử dụng hàm summary() và gói thư viện Hmisc để tóm tắt các tham số phân phối; chia màn hình thành 6 ô (par(mfrow = c(2, 3))) để vẽ histogram cho các biến PAY_AMT; sử dụng gói psych với hàm describeBy để phân tích mô tả tách biệt theo hai nhóm giới tính SEX.
  • Phân tích hồi quy và kiểm định ngoại lai: Khảo sát tương quan pay ~ age trên tập mẫu ngẫu nhiên gồm 6 cá nhân; sử dụng gói plyr vẽ biểu đồ boxplot cho hai biến SEX và PAY_AMT1 nhằm phát hiện các giá trị ngoại lai (outliers).
  • Phân tích phương sai (ANOVA một chiều): Kiểm tra giả định phân phối chuẩn của biến EDUCATION qua biểu đồ histogram, sau đó thực hiện kiểm định ANOVA với công thức aov(EDUCATION ~ SEX, data = df). Kết quả kiểm định trích xuất các thông số gồm bậc tự do (Df = 1), tổng bình phương (Sum Sq), trung bình bình phương (Mean Sq), giá trị kiểm định $F$ và mức ý nghĩa $Pr(>F)$.
  • Trích xuất và định hình lại cấu trúc dữ liệu: Thực hiện trích xuất dữ liệu con bằng chỉ số dòng/cột (df[1:20, 1:10], df[1:20, c("LIMIT_BAL", "EDUCATION")]); chuyển đổi dữ liệu từ dạng dọc sang dạng ngang bằng hàm spread() từ gói tidyr; tách dữ liệu theo giới tính thành hai tập con nam và nu bằng hàm subset(df, SEX == "1") và subset(df, SEX == "2"); chiết xuất 3 biến số (ID, SEX, EDUCATION) và lấy 10 dòng đầu tiên.
  • Trực quan hóa đa dạng: Vẽ biểu đồ cột (barplot()) cho biến AGE, biểu đồ thanh kết hợp AGE và EDUCATION bằng gói ggplot2 với geom_bar(stat = "identity"), cùng biểu đồ đường thể hiện quan hệ giữa tuổi và số tiền hóa đơn.
  • Quy trình xây dựng mô hình hồi quy Logistic:
    1. Sử dụng gói caTools, thiết lập set.seed(1000) và phân chia tập dữ liệu bằng hàm sample.split(df$EDUCATION, SplitRatio = 0.65).
    2. Hình thành hai mẫu: Mẫu Xây Dựng (mauXayDung) gồm 19.500 quan sát (65%) và Mẫu Kiểm Định (mauKiemDinh) gồm 10.500 quan sát (35%).
    3. Huấn luyện mô hình logistic bằng hàm glm() với biến phụ thuộc EDUCATION và các biến độc lập gồm SEX, AGE, BILL_AMT1, BILL_AMT2, BILL_AMT3, PAY_AMT2, PAY_AMT3, PAY_AMT4, PAY_2, PAY_3, PAY_4 trên tập mauXayDung với tham số family = binomial.
    4. Dự báo xác suất trên tập dữ liệu bằng hàm predict(model, type = "response").
    5. Đánh giá phân phối xác suất dự báo và thiết lập ma trận nhầm lẫn ở ngưỡng phân loại (threshold) 0.5.

Kết quả và đóng góp

Đồ án đã tổng hợp các kết quả thực nghiệm và rút ra các kết luận cụ thể có trong văn bản:

Nội dung thực nghiệm Phương pháp / Công cụ Dữ liệu / Tham số áp dụng Kết quả ghi nhận trong văn bản
Hồi quy chiều cao trẻ em Hàm lm(), predict() Dữ liệu chiều cao trẻ 18–29 tháng Hệ số chặn $\alpha = 64.635$, dự đoán chiều cao tại 23.5 tháng tuổi là 79.05 cm
Hồi quy tuyến tính đơn Phương pháp bình phương bé nhất Mẫu 6 trẻ em từ 1–6 tuổi Mức độ liên hệ giữa $x$ và $y$ đạt 97%, phần dư $\varepsilon_i$ xuất hiện tại $y_1, y_2$
Phân tích phương sai Hàm aov(), ANOVA 1 chiều Biến EDUCATION ~ SEX Bậc tự do Df = 1, trích xuất đầy đủ bảng Sum Sq, Mean Sq, $F$ value, $Pr(>F)$
Phân chia tập dữ liệu Gói caTools, sample.split 30.000 bản ghi thẻ tín dụng Mẫu Xây Dựng: 19.500 quan sát (65%), Mẫu Kiểm Định: 10.500 quan sát (35%)
Mô hình Logistic Hàm glm(family = binomial) Tập mauXayDung (11 biến độc lập) Ước lượng hệ số ảnh hưởng, dự báo xác suất và lập ma trận nhầm lẫn tại ngưỡng 0.5

Đóng góp của tác giả đối với đề tài:

  • Hệ thống hóa đầy đủ cú pháp, các toán tử và hàm thống kê then chốt của ngôn ngữ R, tạo tài liệu hướng dẫn từng bước từ thao tác dữ liệu cơ bản đến các kỹ thuật trực quan hóa nâng cao.
  • Trình bày quy trình phân tích dữ liệu toàn diện trên một bộ dữ liệu quy mô lớn (30.000 bản ghi), kết hợp giữa việc trích xuất, biến đổi cấu trúc bảng với các kỹ thuật kiểm định giả thuyết thống kê (ANOVA) và mô hình hóa dự báo (Logistic Regression).
  • Tác giả đề xuất việc khai thác các gói thư viện chuyên dụng như caTools, ggplot2, psych, plyr, tidyr và Hmisc để tối ưu hóa hiệu năng phân tích số liệu trên máy tính cá nhân.

Hạn chế và hướng nghiên cứu tiếp

Hạn chế của đồ án được chỉ ra từ chính văn bản và phạm vi nghiên cứu:

  • Tác giả tự đánh giá tài liệu tham khảo còn hạn chế, kinh nghiệm thực tiễn chưa sâu sắc dẫn đến một số thiếu sót trong quá trình thực hiện.
  • Công đoạn tiền xử lý dữ liệu chưa được thực hiện sâu do giả định ban đầu cho rằng bộ dữ liệu 30.000 dòng đã sạch hoàn toàn, chưa đề cập chi tiết đến kỹ thuật xử lý các giá trị khuyết (missing values) hay chuẩn hóa biến số quy mô lớn.
  • Trong phần thực nghiệm mô hình Logistic ở Chương 3, việc sử dụng biến EDUCATION (biến định danh nhiều hơn 2 nhóm) làm biến phụ thuộc cho hàm phân phối nhị phân (family = binomial) và sự xuất hiện của tên biến RainTomorrow trong lệnh lập ma trận nhầm lẫn ở cuối chương cho thấy sự thiếu nhất quán trong bước xử lý mã nguồn cuối cùng.

Hướng nghiên cứu tiếp:

  • Nghiên cứu sâu hơn về các gói phân tích nâng cao trong R để giải quyết các bài toán phân loại đa lớp (multinomial logistic regression) hoặc các thuật toán học máy phức tạp hơn.
  • Ứng dụng quy trình phân tích vào nhiều bộ dữ liệu thực tế đa dạng khác thuộc các lĩnh vực kinh tế, tài chính và y tế.

Giá trị tham khảo

Tài liệu đồ án mang lại giá trị tham khảo cụ thể cho các nhóm đối tượng:

  • Sinh viên ngành Công nghệ thông tin, Khoa học dữ liệu và Thống kê: Cung cấp tài liệu tra cứu có hệ thống về cú pháp lệnh, thao tác ma trận, đại số tuyến tính và các hàm phân phối xác suất trong môi trường R.
  • Người nghiên cứu phân tích dữ liệu thực nghiệm: Cung cấp quy trình từng bước về chia tách dữ liệu huấn luyện/kiểm định (train/test), vẽ biểu đồ phân phối đa biến (ggplot2, par(mfrow)), kiểm tra phân phối chuẩn và kiểm định ANOVA một chiều trên R.
  • Nội dung đáng tham khảo nhất: Bảng danh mục 25 biến số tài chính tín dụng trong Chương 3 và các đoạn mã mẫu thực hiện trích xuất dữ liệu bằng tidyr, subset và huấn luyện mô hình dự báo với gói caTools.

Câu hỏi thường gặp

1. Bộ dữ liệu thực nghiệm chính trong đồ án có quy mô và nguồn gốc như thế nào?
Bộ dữ liệu gồm 30.000 dòng quan sát và 25 biến số, ghi nhận thông tin về các khoản thanh toán mặc định, nhân khẩu học, hạn mức tín dụng, lịch sử thanh toán và sao kê hóa đơn của khách hàng sử dụng thẻ tín dụng tại Đài Loan từ tháng 4 năm 2005 đến tháng 9 năm 2005.

2. Tập dữ liệu 30.000 dòng được phân chia tỷ lệ bao nhiêu để xây dựng mô hình Logistic?
Dữ liệu được phân chia theo tỷ lệ 65:35 bằng gói caTools (với set.seed(1000)), tạo ra Mẫu Xây Dựng (mauXayDung) gồm 19.500 quan sát (65%) và Mẫu Kiểm Định (mauKiemDinh) gồm 10.500 quan sát (35%).

3. Phân tích phương sai (ANOVA một chiều) được tác giả thực hiện trên những biến số nào?
Phân tích phương sai được thực hiện để kiểm tra sự khác biệt về trình độ học vấn theo giới tính bằng câu lệnh one.way <- aov(EDUCATION ~ SEX, data = df).

4. Kết quả tham số thu được trong bài toán hồi quy chiều cao trẻ em ở Chương 1 là bao nhiêu?
Phương trình hồi quy tuyến tính đơn giữa chiều cao và tháng tuổi của trẻ (18–29 tháng) cho giá trị hệ số chặn $\alpha = 64.635$, cho phép dự báo chiều cao của trẻ tại 23.5 tháng tuổi là 79.05 cm.

5. Những gói thư viện mở rộng (packages) nào của R được sử dụng trong chương thực nghiệm?
Các gói thư viện được sử dụng gồm Hmisc (thống kê mô tả), psych (mô tả theo nhóm), plyr (xử lý dữ liệu và boxplot), tidyr (chuyển đổi cấu trúc ngang), ggplot2 (vẽ biểu đồ cột nâng cao), và caTools (phân chia mẫu dữ liệu).


Kết luận

Đồ án môn học "Phân tích dữ liệu với R" của sinh viên Hồ Hà Giang đã hệ thống hóa toàn diện các kiến thức nền tảng về ngôn ngữ lập trình R, các phép toán thống kê và kỹ thuật trực quan hóa dữ liệu. Tác giả đã triển khai thực nghiệm quy trình phân tích từ thống kê mô tả, kiểm định ANOVA đến xây dựng mô hình hồi quy logistic trên tập dữ liệu thẻ tín dụng quy mô 30.000 bản ghi. Mặc dù còn một số hạn chế về mặt tiền xử lý và tính nhất quán ở bước đánh giá mô hình cuối cùng, công trình vẫn là một tài liệu học tập và tham khảo thực hành hữu ích cho sinh viên tiếp cận phân tích dữ liệu định lượng trên môi trường R.