Nội dung được trích từ sách Khai thác dữ liệu với R
Để cài đặt R với phiên bản mới nhất bạn đọc thực hiện các bước sau:
Tập tin dữ liệu sau đây được sử dụng kèm theo sách Khai thác dữ liệu với R
Môi trường R
Ngôn ngữ R sử dụng dấu “<-” hoặc “=” hoặc “->” để gán dữ liệu cho biến hoặc đối tượng
## [1] 3
Khai báo đối tượng dạng vector. Trong đó, hàm c(concatenate), được sử dụng để gán vector cho đối tượng
## [1] 2 3 4 5 6 7 8
Khai báo đối tượng dạng bảng. Trong đó, hàm data.frame, được sử dụng để gán bảng cho đối tượng
## A B
## 1 1 2
## 2 3 3
## 3 4 5
Bạn đọc có thể tạo ra một hàm riêng bằng cách sử dụng những phép toán và hàm đã có bằng hàm function
## x y
## 1 1 2
## 2 3 3
## 3 4 5
Bạn cũng có thể nhập dữ liệu từ nhiều nguồn khác nhau: (.txt), (.csv), (.xlsx), (.sav), (.rda)
Trong trường hợp dữ liệu được lưu bằng phần mềm Excel có định dạng là .xls hay .xlsx, bạn đọc nên chuyển định dạng trên thành định dạng .csv (Comma delimited) như sau:
Bạn đọc nhập tập dữ liệu có định dạng .csv vào R bằng cách sử dụng hàm read.csv.
#Thiết lập đường link chứa tập tin .csv mong muốn
setwd("C:/Tap tin thuc hanh R/Muc 2-Doi tuong va ham")
#Gán tập dữ liệu cho data.csv
data.csv <- read.csv("excelfile.csv", header = TRUE)
data.csv## A B C
## 1 1 32 43
## 2 2 3 5
## 3 3 34 32
## 4 4 3 32
Điểm mạnh tuyệt đối của R là khả năng trực quan hóa dữ liệu. Trong đó, một số các biểu đồ thông dụng:
Biểu đồ thanh (bar chart)
#Thiết lập đường link chứa tập tin .csv mong muốn
setwd("C:/Tap tin thuc hanh R/Muc 5-Bieu do")
#Gán tập dữ liệu cho data.csv
plot.data <- read.csv("graphicsData.csv", header = TRUE)
head(plot.data) #hiển thị một số dòng dữ liệu trong tập dữ liệu## machines date output.1 output.2 output.3 defects OEE fuel failureMinutes
## 1 ma.1 1980 854 1052 926 17 0.95 63.20 109.11
## 2 ma.2 1981 801 992 925 10 0.68 77.47 114.48
## 3 ma.3 1982 421 473 436 7 0.63 69.64 66.06
## 4 ma.4 1983 1056 1177 1190 16 0.87 83.69 202.87
## 5 ma.5 1984 1132 1099 1040 14 0.91 75.72 322.65
## 6 ma.6 1985 1057 1088 1026 13 0.45 46.02 182.74
## useStatus maintenance men
## 1 Operate Nu.4 6
## 2 Operate Nu.4 6
## 3 Stop Nu.1 4
## 4 Operate Nu.1 6
## 5 Stop Nu.2 8
## 6 Stop Nu.1 6
Biểu đồ thanh (bar chart)
#Sử dụng tập dữ liệu plot.data
attach(plot.data)
#Tóm tắt cột useStatus theo bảng tần số
barData.1 <- table(useStatus)
#Vector màu tương ứng cho các phân loại của biến useStatus
colorRange.1 <-topo.colors(length(unique( useStatus)))
#Vẽ biểu đồ thanh ngang
barplot(barData.1, horiz = TRUE, density = 10, col = colorRange.1)
#Gán nhãn
title(main = "Horizontal bar", xlab = "Status", ylab = "Frequency")Biểu đồ thanh (bar chart)
Biểu đồ tròn (pie chart)
Biểu đồ tròn (pie chart)
Biểu đồ hộp (box plot)
#Sử dụng tập dữ liệu plot.data (hướng dẫn trang 113)
attach(plot.data)
#Tạo ra khung biểu đồ với 1 hàng và 2 cột
par(mfrow = c(1,2))
#Biểu đồ hộp ngang (horizontal box plot)
boxplot(fuel ~ useStatus, xlab = "Status", ylab = "Fuel")
#Gán nhãn
title(main = "Horizontal Box plot")
#Vector màu tương ứng cho các phân loại của biến men
colorBox <- rainbow(length(unique(men)))
boxplot(defects ~ men, horizontal = TRUE, col = colorBox,
xlab ="Defects", ylab = "Group of Men")
#Gán nhãn
title(main = "Vertical Box plot")
#Gán chú thích
legend("topleft", legend = unique(men), fill = colorBox)Biểu đồ hộp (box plot)
Biểu đồ hộp (box plots)
Biểu đồ Sunbrust
R tồn tại để thực hiện các bài toán thống kê ứng dụng. Một số nội dung cơ bản bao gồm:
Mục đính là mô tả, tóm tắt và hiểu được khuynh hướng tập trung và phân tán của tập dữ liệu. Ví dụ như:
#Thiết lập đường link chứa tập tin .csv mong muốn
setwd("C:/Tap tin thuc hanh R/Muc 3-Cac ham thong ke co ban")
#Gán tập dữ liệu cho data.csv
data <-read.csv("descriptiveStatistics.csv", header = TRUE)
#Kích hoạt tập dữ liệu
attach(data)
#Cấu trúc của tập dữ liệu
str(data)## 'data.frame': 50 obs. of 3 variables:
## $ Course : chr "Lean" "Lean" "Lean" "Lean" ...
## $ Score : int 8 6 9 7 10 8 7 5 7 7 ...
## $ Countryside: chr "HCM" "HaNoi" "NamDinh" "Hue" ...
Bảng tóm tắt các đại lượng thống kê mô tả cho biến Score của tập dữ liệu “data”:
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 5.00 5.25 7.00 7.30 8.75 10.00
Mục đính là kểm định giả thuyết có hay không sự khác biệt một cách có ý nghĩa của tham số tổng thế: trung bình, phương sai, tỷ lệ….
Vi dụ: Người quản lý nhân sự muốn kiểm định có hay không mối liên hệ giữa kết quả học tập và mức độ hiệu quả trong việc hoàn thành các nhiệm vụ được giao. Có 3 mức độ để phân loại kết quả học tập “excellence”, “good” và “pass” đánh giá hiệu quả làm việc theo 4 mức độ “A.plus”, “A”, “B”, “C”. Dữ liệu được thu thập bằng cách khảo sát 98 nhân viên.
## A.plus A B C
## excellence 20 10 15 19
## good 8 17 20 10
## pass 7 20 15 30
#Nhập dữ liệu vào R
A.plus <- c(20, 8, 7)
A <- c(10, 17, 20)
B <- c(15, 20, 15)
C <- c(19, 10, 30)
#Tạo bảng dữ liệu
test.chisq <- data.frame(A.plus, A, B, C)
#Đặt tên cho các hàng của bảng dữ liệu
row.names(test.chisq) <- c("excellence","good","pass")
test.chisq ## A.plus A B C
## excellence 20 10 15 19
## good 8 17 20 10
## pass 7 20 15 30
##
## Pearson's Chi-squared test
##
## data: test.chisq
## X-squared = 21.213, df = 6, p-value = 0.00168
Phân tích hồi quy là tìm hiểu mối liên hệ (dự báo) giữa một biến phụ thuộc (response variable) với một hoặc nhiều biến độc lập (independent variable) hay còn gọi là biến giải thích (explanatory variable).
#Thiết lập thư mục
setwd("C:/Tap tin thuc hanh R/Muc 8-Hoi quy tuyen tinh")
#Gán tập dữ liệu cho đối tượng
reg.data <- read.csv("linearRegression.csv", header = TRUE)
#Kích hoạt tập dữ liệu
attach(reg.data)
#Cấu trúc của tập dữ liệu
str(reg.data)## 'data.frame': 20 obs. of 3 variables:
## $ response: num 77.3 75.3 96.4 87.7 58.5 94.5 103 64 77.3 83.7 ...
## $ indepenA: num 7.8 4.3 8.8 5.1 2.6 6.6 8.4 3.2 3.7 5.3 ...
## $ indepenB: int 6 7 20 8 2 12 18 5 10 8 ...
Phương trình hồi quy:
response = 55.7410 + 2.1624 × indepenA + 1.5685 × indepenB
##
## Call:
## lm(formula = response ~ indepenA + indepenB)
##
## Residuals:
## Min 1Q Median 3Q Max
## -9.7396 -2.2012 0.3163 2.6905 8.3830
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 55.7410 3.6630 15.217 2.46e-11 ***
## indepenA 2.1624 0.7213 2.998 0.00809 **
## indepenB 1.5685 0.2268 6.916 2.50e-06 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 4.763 on 17 degrees of freedom
## Multiple R-squared: 0.8699, Adjusted R-squared: 0.8546
## F-statistic: 56.82 on 2 and 17 DF, p-value: 2.967e-08
Có quá nhiều các ứng dụng trong R, ví dụ như: Phương pháp Six Sigma, Khai thác văn bản, Machine learning, vv…
Tuy nhiên, biết về R căn bản là nền tảng quan trong để tìm hiểu thêm những ứng dụng chuyên sâu hơn.