Trước khi thực hiện các phân tích chi tiết, ta nên tiến hành một vài khảo sát thăm dò. Công việc này không tốn nhiều thời gian nhưng lại giúp chúng ta có nhận định tổng quát về dữ liệu. Điều này sẽ giúp việc phân tích sau này thích hợp hơn, tiết kiệm được thời gian và công sức. Ngoài ra việc thăm dò này có thể phát hiện một số điểm chưa hoàn chỉnh của dữ liệu, từ đó thực hiện một vài điều chỉnh nếu cần thiết.
Hai dạng khảo sát thăm dò thường được tiến hành là thực hiện một số bảng tóm tắt và xây dựng một vài biểu đồ. Để minh họa, chúng ta sử dụng R và bảng dữ liệu khach-hang.csv. Bảng này được biên tập lại từ Custdata.tsv của Zumel và Mount để có kích thước nhỏ gọn hơn và phù hợp hơn cho mục đích minh họa. Bảng này được chuyển vào R với tên kh.
Trước hết ta sẽ tìm hiểu qua về cấu trúc của bảng dữ liệu bằng lệnh str. Thí dụ:
> str(kh)
'data.frame': 936 obs. of 7 variables:
$ kh_id : int 2068 2073 2848 5641 6369 8322 8521 12195 14989 15917 ...
$ Gioi_Tinh: Factor w/ 2 levels "Nam","Nu": 2 2 1 1 2 2 1 1 1 2 ...
$ Thu_Nhap : int 11300 0 4500 20000 12000 180000 120000 40000 9400 24000 ...
$ TT_GD : Factor w/ 4 levels "CGD","DT","GB",..: 1 1 2 2 2 2 2 1 1 4 ...
$ BH_YT : Factor w/ 2 levels "Co","Khong": 1 1 2 2 1 1 1 1 1 1 ...
$ So_Xe : int 2 3 3 0 1 1 1 3 2 1 ...
$ Tuoi : int 49 40 22 22 31 40 39 48 44 70 ...
Ta thấy bảng dữ liệu gồm 7 biến liên quan đến 936 khách hàng. Ngoài biến kh_id dùng để định danh (identification) khách hàng, ta có 3 biến có kiểu định danh là Gioi_Tinh, TT_GD (tình trạng gia đình), và BH_YT (bảo hiểm y tế), 3 biến có kiểu số là Thu_Nhap, So_Xe và Tuoi.
Để có một nhận định chung về các biến trong bảng dữ liệu, summary là lệnh phù hợp hơn cả. Thí dụ:
> summary(kh)
kh_id Gioi_Tinh Thu_Nhap TT_GD BH_YT So_Xe
Min. : 2068 Nam:516 Min. : -8700 CGD:503 Co :799 Min. :0.000
1st Qu.: 342222 Nu :420 1st Qu.: 17000 DT :196 Khong:137 1st Qu.:1.000
Median : 704246 Median : 37000 GB : 89 Median :2.000
Mean : 697822 Mean : 55919 LT :148 Mean :1.917
3rd Qu.:1043102 3rd Qu.: 70000 3rd Qu.:2.000
Max. :1414286 Max. :615000 Max. :6.000
Tuoi
Min. : 0.00
1st Qu.:39.00
Median :50.00
Mean :51.27
3rd Qu.:63.00
Max. :93.00
Ta thấy bảng trên cung cấp một số thông tin khái quát về các biến trong dữ liệu:
Như vậy, ta thấy với lệnh summary ta đã có một số thông tin đáng kể về đối tượng khảo sát.
Để bổ sung thêm hiểu biết về đối tượng, ta vẽ một số biểu đồ từ dữ liệu. Thực ra trong một số trường hợp, lượng thông tin của biểu đồ không hơn gì bảng (thí dụ về tình trạng gia đình, một biểu đồ thanh và một bảng tóm tắt như ở trên có lượng thông tin như nhau). Nhưng biểu đồ thường cho ta một nhận định trực quan, rõ ràng hơn so với bảng, đặc biệt khi được thiết kế cẩn thận. Trong nhiều trường hợp, biểu đồ có ưu thế hơn so với bảng để trình bày dữ liệu..
Phương pháp vẽ các biều đồ thông dụng bằng R được đề cập tương đổi chi tiết tại chương "Vẽ biểu đồ bằng R". Ở đây chỉ trình bày lại một số điểm chính, một vài trường hợp chuyên biệt và lưu ý thêm về sử dụng trong khảo sát thăm dò dữ liệu.
Biểu đồ này cho ta biết hàm mật độ của một biến liên tục. Trong R ta sử dụng lệnh density phối hợp với lệnh plot để vẽ đường cong của hàm mật độ và với lệnh polygon để tô màu. Thí dụ để vẽ hàm mật độ của thu nhập, ta sử dụng đoạn lệnh sau:
thnh <- density(kh$Thu_Nhap)
plot(thnh, main = "Phân bố thu nhập của khách hàng")
polygon(thnh, col = "#abcdef")
Và thu được biểu đồ trên Hình 1.
Hình 1 Hàm mật độ của thu nhập khách hàng
Hàm mật độ cho ta thấy có một nhóm nhỏ khách hàng có thu nhập đặc biệt cao (khoảng 400.000 hay hơn). Rất có thể ta cần tách nhóm này ra để xử lý riêng. Các bảng tóm tắt không thể cho ta thấy điều này.
Thông thường, ta dùng biểu đồ xy để phát hiện mối tương quan giữa hai biến có kiểu số liên tục. Ngoài các điểm biểu diễn các cặp số, ta còn có thể đưa vào các đường thẳng hay cong thể hiện xu thế của mối tương quan. Thí dụ ta muốn xem xét mối tương quan giữa thu nhập và tuổi của khách hàng, ta có thể sử dụng lệnh scatter.smooth như sau:
scatter.smooth(kh$Tuoi, kh$Thu_Nhap, pch = 20, col = "#aaaaaa",
xlab = "Tuổi", ylab = "Thu nhập", lpars = list(lwd=2, col="red"))
Và ta có biểu đồ trên Hình 2.
Hình 2 Biểu đồ xy của tuổi và thu nhập khách hàng
Nếu ta muốn vẽ cùng một lúc nhiều biểu đồ xy của nhiều cặp biến cùng một lúc một cách thật đơn giản, ta có thể sử dụng lệnh plot với đối số là các biến muốn đưa vào biểu đồ. Thí dụ như với lệnh sau:
plot(kh[,-1], pch = 20, col = "red", cex = 0.7)
ta sẽ thu được biểu đồ trên Hình 3.
Hình 3 Ma trận các biểu đồ xy trong dữ liệu khách hàng
Bằng Hình 3, ta có thể có một cái nhìn khái quát về mối tương quan giữa các biến trong dũ liệu.
Trang web này được cập nhật lần cuối ngày 25/11/2018
Xử lý dữ liệu
Các chuyên đề
Xử lý dữ liệu
Ma trận
R