TRƯỜNG ĐẠI HỌC CẦN THƠ
KHOA KHOA HỌC TỰ NHIÊN
BỘ MÔN TOÁN
LUẬN VĂN TỐT NGHIỆP ĐẠI HỌC
Chủ đề
PHÂN TÍCH SỐ LIỆU THỐNG KÊ
VỚI NGÔN NGỮ R
Giáo viên hướng dẫn
NGUYỄN THỊ HỒNG DÂN
BỘ MÔN TOÁN – Khoa KHTN
Sinh viên thực hiện
HỒNG VIỆT MINH
TOÁN ỨNG DỤNG – K38
MSSV: B1203839
Cần Thơ, tháng 12 năm 2015
PHÂN TÍCH SỐ LIỆU THỐNG KÊ VỚI NGÔN NGỮ R
LỜI CẢM ƠN
---~~~--Đề tài được nhận vào ngày 6 tháng 5 năm 2015, sau 7 tháng thực hiện với sự
tận tâm hướng dẫn của Cô Nguyễn Thị Hồng Dân, cùng với sự giúp đỡ của bạn bè
tôi đã hoàn thành luận văn này. Nhân đây tôi xin được gửi lời cảm ơn đến gia đình,
Thầy Cô và bạn bè.
Trước hết, con xin gửi lời cảm ơn đến Cha và Mẹ. Người luôn quan tâm nhắc
nhở con trong suốt quá trình đi học. Là một điểm tựa vững chắc cho con, là chốn
bình yên nhất cho con quay về mỗi khi cảm thấy mỏi mệt.
Em xin cảm ơn Cô Nguyễn Thị Hồng Dân, người đã định hướng cho em ngay
PHÂN TÍCH SỐ LIỆU THỐNG KÊ VỚI NGÔN NGỮ R
MỤC LỤC
LỜI CẢM ƠN ........................................................................................................... 2
MỤC LỤC ................................................................................................................ 3
DANH MỤC BẢNG ................................................................................................. 5
PHẦN GIỚI THIỆU .................................................................................................. 6
PHẦN NỘI DUNG ................................................................................................... 8
CHƯƠNG 1: NGÔN NGỮ R VÀ CÁC THAO TÁC CƠ BẢN................................. 8
1.1. Phần mềm R ....................................................................................................... 8
1.2. Package R ........................................................................................................... 9
1.3. Môi trường làm việc ......................................................................................... 14
1.4. Tính toán đơn giản ............................................................................................ 16
1.5. Các đối tượng cơ bản ........................................................................................ 17
1.6. Hàm .................................................................................................................. 20
1.7. Nhập dữ liệu ..................................................................................................... 22
1.8. Biên tập dữ liệu ................................................................................................ 24
1.9. Lớp của các đối tượng trong R .......................................................................... 29
CHƯƠNG 2: VẼ BIỂU ĐỒ VỚI NGÔN NGỮ R ................................................... 30
2.1. Một số thao tác cơ bản ...................................................................................... 30
2.2. Biểu đồ cho biến số rời rạc ............................................................................... 33
2.3. Biểu đồ cho biến số liên tục .............................................................................. 37
CHƯƠNG 3: PHÂN TÍCH SỐ LIỆU THỐNG KÊ VỚI NGÔN NGỮ R ................ 43
3.1. Tính toán xác suất và mô phỏng........................................................................ 43
3.2. Thống kê mô tả ................................................................................................. 46
3.3. Kiểm định giả thuyết thống kê .......................................................................... 52
3.4. Hệ số tương quan .............................................................................................. 62
3.5. Mô hình hồi qui ................................................................................................ 65
3.6. Tỷ số nguy cơ RR (risk ration), tỷ số OR (Odds ratio) ...................................... 91
3.7. Mô hình hồi qui logistic .................................................................................... 93
3.8. Phân tích sự kiện............................................................................................. 105
Bảng 1.1. Một số kí hiệu thường dùng trong R .............................................. 14
Bảng 1.2. Một số cú pháp cơ bản .................................................................. 16
Bảng 1.3. Một số hàm cơ bản ........................................................................ 17
Bảng 2.1. Tham số thông dụng khi vẽ biểu đồ ............................................... 31
Bảng 2.2. Giá trị pch thường dùng để vẽ đồ thị ............................................. 31
Bảng 2.4. Tham số thông dụng của biểu đồ cột ............................................. 34
Bảng 2.5. Tham số thông dụng của biểu đồ tròn ............................................ 36
Bảng 3.1. Một số phép toán xác suất ............................................................. 43
Bảng 3.2. Một số hàm phân phối xác suất của đại lượng ngẫu nhiên ............. 43
Bảng 3.3: Một số hàm thống kê mô tả ........................................................... 47
Bảng 3.4: Các tham số của hàm Descriptives và hàm Frequencies ................ 47
Bảng 3.4: Một số hàm thống kê cơ bản về chuỗi thời gian .......................... 132
Bảng 3.5: Ý nghĩa các tham số của hàm ur.df.............................................. 135
Bảng 3.6: Một vài tham số thông dụng của hàm HoltWinters ...................... 141
Bảng 3.7: Ý nghĩa tham số order và seas của hàm PrintAIC ........................ 147
Bảng 3.8: Các hàm làm trơn số liệu ............................................................. 157
Bảng 3.9: Các tham số của hàm fuzzy.ts1 ................................................... 160
Bảng 3.10: Các tham số của hàm fuzzy.ts2 ................................................. 169
Bảng 3.11: Các hàm sử dụng để phân tích chuỗi thời gian nhiều chiều........ 180
5
PHÂN TÍCH SỐ LIỆU THỐNG KÊ VỚI NGÔN NGỮ R
PHẦN GIỚI THIỆU
1. Lý do chọn đề tài
Kể từ khi những con số chưa ra đời, con người đã biết đến thống kê. Người
tộc trưởng thống kê số lượng người trong tộc. Con người thống kê số thú vật nuôi.
nhất.
6
PHÂN TÍCH SỐ LIỆU THỐNG KÊ VỚI NGÔN NGỮ R
3. Đối tượng và phạm vi nghiên cứu
3.1. Đối tượng nghiên cứu
Ngôn ngữ R và một số package hỗ trợ trong các phân tích chuyên sâu.
3.2. Phạm vi nghiên cứu
Các bộ số liệu được sử dụng phân tích trong luận văn được thu từ các nguồn
sau: tự thu từ thực tế, trên internet, bạn bè và các bộ số liệu từ các package của R.
4. Phương pháp nghiên cứu
Đọc sách tham khảo về R trong phân tích số liệu thống kê.
Xem hướng dẫn phân tích qua các video trên youtube.
Thực hiện phân tích trên ngôn ngữ R.
Thảo luận nhóm.
Tổng hợp, phân tích kết quả và viết báo cáo.
5. Nội dung nghiên cứu
Luận văn gồm có 3 phần: phần giới thiệu, phần nội dung và phần kết luận.
Trong đó phần nội dung gồm 3 chương:
Chương 1: NGÔN NGỮ R VÀ CÁC THAO TÁC CƠ BẢN
Chương này giới thiệu về ngôn ngữ R, các tính toán cơ bản và một số thao tác
xử lý số liệu trước khi phân tích thống kê.
Chương 2: VẼ BIỂU ĐỒ VỚI NGÔN NGỮ R
Chương này giới thiệu về các hàm cơ bản cùng một số tùy chỉnh để vẽ một
biểu đồ với ngôn ngữ R.
Chương 3: PHÂN TÍCH SỐ LIỆU THỐNG KÊ VỚI NGÔN NGỮ R
Đây là chương trọng tâm của luận văn. Chương này giới thiệu các hàm cơ bản
và các hàm phức tạp từ các package dùng để phân tích số liệu thống kê. Với nhiều
Bước 2: Bạn sẽ được yêu cầu chọn một ngôn ngữ để sử dụng trong suốt quá
trình cài đặt. Chọn English.
Bước 3: Một cửa sổ hiện ra và cho biết “R Setup Wizard” sẽ cài đặt R trên
máy tính của bạn. Nhấp vào “Next” để tiếp tục hoặc “Cancel” để thoát khỏi cài đặt.
Bước 4: Cửa sổ kế tiếp cho bạn thông tin về phần mềm R mà bạn đang cài đặt.
Nhấp “Next” một lần nữa.
Bước 5: Cửa sổ kế tiếp cho phép bạn chọn một thư mục để lưu trữ các file
chương trình của R. Mặc định nó sẽ lưu trên thư mục “C:\Program Files\R\R-3.2.0”
trên máy tính của bạn. Nhấp vào “Next” để tiếp tục, hoặc nhấp vào “Browse” để
chọn một thư mục khác (sau đó nhấp vào Next).
Bước 6: Trong cửa sổ kế tiếp, bạn có thể chọn một phiên bản (64 bit hoặc 32
bit) mà mình muốn cài đặt. Sau đó nhấp vào “Next” một lần nữa. Kế tiếp các cửa sổ
khác sẽ lần lượt hiện lên, bạn chỉ cần nhấn vào “Next” mà không cần chọn gì cả.
8
PHÂN TÍCH SỐ LIỆU THỐNG KÊ VỚI NGÔN NGỮ R
Bước 7: R sẽ được cài đặt theo đúng như những gì bạn đã chọn ở trên. Quá
trình cài đặt có thể sẽ mất vài phút. Khi hoàn thành, bạn sẽ thấy một cửa sổ
“Completing the R for Windows Setup Wizard”, nhấp vào “Finish” để kết thúc việc
cài đặt.
Sau khi hoàn tất việc cài đặt, một icon sẽ xuất hiện trên desktop của máy tính.
1.2. Package R
1.2.1. Download một package
Bạn có thể tải tất cả các package (miễn phí) về máy tính của mình từ trang chủ
của R theo 6 bước sau:
Bước 1: Vào trang: cran.r-project.org
Bước 2: Nhấp vào thẻ “Packages” nằm bên trái của mục lục trang wed.
Bước 3: Nhấp tiếp vào liên kết “Table of available packages, sorted by date of
PHÂN TÍCH SỐ LIỆU THỐNG KÊ VỚI NGÔN NGỮ R
Ấn Ctrl+f để mở
thanh tìm kiếm.
Nhập vào BMA và
ấn phím enter
Click
11
PHÂN TÍCH SỐ LIỆU THỐNG KÊ VỚI NGÔN NGỮ R
Nhấp vào để
tải Package
Tương tự chúng lần lượt tải về máy 5 package sau:
Deoptim; IDM; inline; leaps; robustbase
Vì package “BMA” liên kết với những packages ấy.
Sau khi tải về máy tính đầy đủ các package, chúng ta vào R và thao tác
như sau:
Click
12
PHÂN TÍCH SỐ LIỆU THỐNG KÊ VỚI NGÔN NGỮ R
có thể giúp chúng ta thực hiện việc này.
1.3. Môi trường làm việc
1.3.1. Văn phạm ngôn ngữ R
Văn phạm chung của R:
> lệnh (command)
> hàm (function)
R là một ngôn ngữ đối tượng (object oriented language). Điều này có nghĩa là
dữ liệu trong R được chứa trong object. Định hướng này cũng có vài ảnh hưởng đến
cách viết của R. Chẳng hạn như bạn muốn viết “x bằng 5”, bạn phải viết “x==5”
thay vì viết “x=5”.
Đối với R, “x=5” tương đương với “x a+b #Cộng giá trị của hai object a và b, và có kết quả:
[1] 9
Bảng 1.1. Một số kí hiệu thường dùng trong R
Kí hiệu
a|b
a hoặc b (OR)
!a
Không là a (NOT)
|
!
Ý nghĩa
14
PHÂN TÍCH SỐ LIỆU THỐNG KÊ VỚI NGÔN NGỮ R
Cách đặt tên trong R:
Đặt tên một đối tượng (object) hay một biến số (variable) trong R khá linh
hoạt, vì R không có nhiều giới hạn như các phần mềm khác. Tên một object phải
được viết liền nhau (tức không được viết cách rời bằng một khoảng trắng). R cũng
phân biệt chữ viết thường và chữ viết hoa.
Ví dụ:
> ab a b Ab ab+Ab
[1] 5
được chuyển sang cửa sổ Consonle và thực thi như bạn nhập trực tiếp vào.
Để mở một script file, trên thanh menu bạn chọn File/New script.
15
PHÂN TÍCH SỐ LIỆU THỐNG KÊ VỚI NGÔN NGỮ R
Ví dụ:
Soạn lệnh trong script file:
id
5/7
10%/%3
5^7
16
Kết quả
12
-2
35
16
9
0.71428
3
78125
PHÂN TÍCH SỐ LIỆU THỐNG KÊ VỚI NGÔN NGỮ R
Bảng 1.3. Một số hàm cơ bản
Hàm
pi
sin 1 ( x)
ln(x)
log10 ( x)
ex
a
a
n
sqrt(16)
8^(1/3)
4
2
1.5. Các đối tượng cơ bản
1.5.1. Vector
a) Tạo một vector
Để tạo một vector, ta có thể dùng hàm c( ) để đưa một chuỗi số (hoặc một kiểu
logic hay chuỗi ký tự) vào một object.
Ví dụ:
> a1 a1
[1] 3 5 7 8 9 5 8
b) Truy xuất các phần tử của vector
Có 3 cách thông dụng để truy xuất các phần tử của một vector.
Truy xuất bằng chỉ số phần tử:
> x x[c(1,2,3)]
[1] 11 12 43
Sử dụng ký tự “-“ để loại bỏ những phần tử ở vị trí chỉ định:
> y y[-1]
[1] "diep" "hue" "cuc"
Truy xuất có điều kiện:
[1] 1 1 1 1 1 2 2 2 2 2
Levels: 1 2
> #Cho thêm ký hiệu:
> gl(2,3,label=c("do","xanh"))
[1] do do do xanh xanh xanh
Levels: do xanh
1.5.2. Factor
Câu lệnh factor để chuyển một dữ liệu thành một yếu tố.
> #Tạo một vector gioitinh gồm 13 "nam" và 12 "nu" .
> gioitinh # Biến đổi thành một factor.
> gioitinh1 gioitinh1
[1] nam nam nam nam nam nam nam nam nam nam nam
[12] nam nam nu nu nu nu nu nu nu nu nu
[23] nu nu nu
Levels: nam nu
Đối tượng gioitinh1 là một factor với hai cấp độ là nam và nu.
18
PHÂN TÍCH SỐ LIỆU THỐNG KÊ VỚI NGÔN NGỮ R
Chú ý: Các phần tử của một factor chỉ mang tính phân loại, không có ý nghĩa
toán học dù nó là con số đi nữa. Có nghĩa là ta không thể tính toán cho nó như đối
với những con số bình thường.
1.5.3. Data frame
a) Tạo một data frame
a) Tạo một danh sách
Trong R, hàm list( ) dùng để tạo một danh sách.
Ví dụ:
> require(graphics)
> # tạo một danh sách gán vào đối tượng pts
> pts pts
$x
[1] 4 4 7 7 8 9 10 10 10 11 11 12 12
[14] 12 12 13 13 13 13 14 14 14 14 15 15 15
…
b) Truy xuất các phần của danh sách
Ta truy xuất các phần của danh sách thông qua tên của nó.
Ví dụ: Trong danh sách pts vừa tạo ở trên, ta có thể truy xuất mỗi phần x,
chúng ta dùng lệnh:
> pts$x
[1] 4 4 7 7 8 9 10 10 10 11 11 12 12
[14] 12 12 13 13 13 13 14 14 14 14 15 15 15
...
1.6. Hàm
1.6.1. Hàm có sẵn của R
Để biết một hàm cần có những tham số nào, chúng ta có thể dùng câu
lệnh args(function ).
+ if(b!=0)c("phuong trinh vo nghiem")
+ else
+ c("phuong trinh vo so nghiem")
+}
> pt(1,2) #giải pt: 1 ∗ + 2 = 0
Kết quả: X
-2
> pt(0,3) #giải pt: 0 ∗ + 3 = 0
[1] "phuong trinh vo nghiem"
> pt(0,0) #giải pt: 0 ∗ + 0 = 0
[1] "phuong trinh vo so nghiem"
b) Câu lệnh for…
Thực hiện công việc n lần (n là số lần lặp do người dùng lập trình).
Ví dụ: Xây dựng hàm tính
, x và n là hai số nguyên nhập từ bàn phím.
> mu mu(3,2)#Tính 3
Ket qua
9
c) Câu lệnh repeat…break
Công việc được lặp lại nhiều lần cho đến khi không thỏa mãn điều kiện.
Ví dụ: Xây dựng hàm tính tổng:
từ bàn phím.
+}
> gt(4)#tinh 4!
Ket qua
24
1.7. Nhập dữ liệu
1.7.1. Nhập dữ liệu từ một file text
Trước khi nhập dữ liệu vào R từ một file số liệu, ta phải cho R biết vị trí thư
mục lưu trữ file số liệu đó bằng câu lệnh setwd( ).
Ta dùng lệnh read.table( ) để nhập dữ liệu vào R từ một file text.
Ví dụ: Chúng ta có một file text với tên “vd.txt” chứa số liệu cần phân tích và
được lưu trữ trong “D:/luan_van/data”, chúng ta đưa nó vào R bằng các lệnh sau:
> setwd("D:/luan_van/data")
> dat dat
id
sex age bmi hdl ldl tc tg
1 1 Nam 57 17
5 2
4 1.1
2 2
Nu 64 18 4.38 3 3.5 2.1
…
1.7.2. Nhập dữ liệu từ Excel
Để đưa số liệu từ file Excel vào R, ta phải lưu nó dưới dạng file *.csv, dùng
hàm read.csv( ) để nhập số liệu từ file csv vào R.
Ví dụ: Chúng ta có file excel với tên “file.csv” được lưu trữ trong directory
“D:/luan_van/data”, để nhập số liệu này vào R, chúng ta dùng lệnh:
> setwd("D:/luan_van/data")
attr(,"codepage")
[1] 1252
Warning message:
In read.spss("file.sav") :
file.sav: Unrecognized record type 7, subtype 18 encountered in system file
1.7.4. Nhập dữ liệu từ internet
Khi máy tính đang được kết nối với internet, bạn có thể đưa một bộ số liệu
trực tiếp từ internet vào R bằng câu lệnh scan( ).
Ví dụ: ở địa chỉ “ có một bộ
số liệu, chúng ta đưa bộ số liệu này vào R bằng cách dùng lệnh:
> dat<-scan(" />Read 84 items
> dat
[1] 1664.81 2397.53 2840.71 3547.29 3752.96 3714.74 4349.61
[8] 3566.34 5021.82 6423.48 7600.6 19756.21 2499.81 5198.24
…
1.7.5. Sử dụng dữ liệu trong các package
Một số package có kèm theo sẵn các bộ số liệu, chúng ta có thể gọi chúng ra
để sử dụng.
Để biết thêm thông tin (nguồn, ý nghĩa các biến,…) về những bộ số liệu đi
kèm này, chúng ta dùng lệnh: ??names, với names là tên của bộ dữ liệu.
23
PHÂN TÍCH SỐ LIỆU THỐNG KÊ VỚI NGÔN NGỮ R
Ví dụ:
> library(MASS)
> abbey
[1] 5.2 6.5 6.9 7 7
> length(lung1)
[1] 30
> mean(lung1)
[1] NA
Vector lung1 có 30 phần tử, nhưng vì có 6 giá trị NA nên không thể thực hiện
tính trung bình bằng hàm mean( ) được.
> lung2 lung2
[1] 605.0 436.0 380.0 493.9 550.0 470.0 592.5 605.0 799.9 995.0
[11] 785.0 910.0 1115.0 1142.6 1465.0 1250.0 1580.0 2000.0 1474.4 1220.0
[21] 1790.0 1510.0 2735.0 2380.0
attr(,"na.action")
[1] 5 21 25 26 28 30
24
PHÂN TÍCH SỐ LIỆU THỐNG KÊ VỚI NGÔN NGỮ R
attr(,"class")
[1] "omit"
Kết quả trả về có 3 phần, phần một là các phần tử còn lại sau khi lọc bỏ các
giá trị NA. Phần hai (attr(,"na.action")) cho biết vị trí của các giá trị NA trong
vector ban đầu. Phần ba (attr(,"class")) cho biết lớp của kết quả trả về. Chúng ta
xem chiều dài và tính trung bình cho nó:
> length(lung2)
[1] 24
> mean(lung2)
[1] 1136.846
CL
16.1
18.1
19
20.1
CW
19
20.8
22.4
23.1
BD
7
7.4
7.7
8.2
b) Chiết xuất theo cột
Chiết xuất cột 1 và cột 3 của data frame crabs:
> crabs[,c(1,3)]
sp index
1 B
1
2 B
2
...
c) Chiết xuất theo hàng và cột