1. Trang chủ
  2. » Luận Văn - Báo Cáo

Phân tích và xử lý dữ liệu bằng ngôn ngữ R

85 2K 10

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 85
Dung lượng 801 KB

Nội dung

Lời đầu tiên em xin chân thành bày tỏ lòng cảm ơn và kính trọng sâu sắc đối với thầy hướng dẫn, TS.Trần Đăng Hưng - người đã tận tình hướng dẫn giúp đỡ, động viên và tạo mọi điều kiện thuận lợi cho em trong suốt quá trình hoàn thành khóa luận tốt nghiệp. Thầy đã mở ra cho em những vấn đề khoa học rất lý thú, hướng em vào nghiên cứu các lĩnh vực hết sức thiết thực và vô cùng bổ ích, đồng thời tạo điều kiện thuận lợi cho em học tập và nghiên cứu. Em đã học hỏi được rất nhiều ở Thầy phong cách làm việc, cũng như phương pháp nghiên cứu khoa học… Em cũng xin chân thành cảm ơn GS.Nguyễn Văn Tuấn (Úc), một nhà khoa học trong lĩnh vực y học, là người Việt đầu tiên giới thiệu và viết sách về ngôn ngữ R bằng tiếng Việt cho cộng đồng nghiên cứu ở Việt Nam. Phần lớn nội dung trong cuốn khóa luận này được thu thập và kế thừa từ các bài viết của GS tại địa chỉ http://nguyenvantuan.net.Em cũng xin thể hiện sự kính trọng và lòng biết ơn đến các thầy cô trong khoa CNTT, những người đã trang bị cho em rất nhiều kiến thức chuyên ngành, cũng như sự chỉ bảo, giúp đỡ tận tình của các thầy cô đối với em trong suốt quá trình học tập. Tất cả các kiến thức mà em lĩnh hội được từ bài giảng của các thầy cô là vô cùng quý giá.Nhân đây, con xin gửi lời cảm ơn sâu sắc đến Bố, Mẹ - người đã sinh ra con và những người thân trong gia đình, cảm ơn những tình cảm và những lời động viên con trong suốt quá trình hoàn thành khóa luận này.Tôi cũng xin được cảm ơn tất cả bạn bè tôi đã luôn động viên giúp đỡ, tạo điều kiện tốt nhất cho tôi hoàn thành khóa luận này.

Trang 1

LỜI CẢM ƠN

Lời đầu tiên em xin chân thành bày tỏ lòng cảm ơn và kính trọng sâu sắc đối

với thầy hướng dẫn, TS.Trần Đăng Hưng - người đã tận tình hướng dẫn giúp đỡ,

động viên và tạo mọi điều kiện thuận lợi cho em trong suốt quá trình hoàn thànhkhóa luận tốt nghiệp Thầy đã mở ra cho em những vấn đề khoa học rất lý thú,hướng em vào nghiên cứu các lĩnh vực hết sức thiết thực và vô cùng bổ ích, đồngthời tạo điều kiện thuận lợi cho em học tập và nghiên cứu Em đã học hỏi được rấtnhiều ở Thầy phong cách làm việc, cũng như phương pháp nghiên cứu khoa học…

Em cũng xin chân thành cảm ơn GS.Nguyễn Văn Tuấn (Úc), một nhà khoa

học trong lĩnh vực y học, là người Việt đầu tiên giới thiệu và viết sách về ngôn ngữ

R bằng tiếng Việt cho cộng đồng nghiên cứu ở Việt Nam Phần lớn nội dung trongcuốn khóa luận này được thu thập và kế thừa từ các bài viết của GS tại địa chỉhttp://nguyenvantuan.net

Em cũng xin thể hiện sự kính trọng và lòng biết ơn đến các thầy cô trong khoa

CNTT, những người đã trang bị cho em rất nhiều kiến thức chuyên ngành, cũng

như sự chỉ bảo, giúp đỡ tận tình của các thầy cô đối với em trong suốt quá trình họctập Tất cả các kiến thức mà em lĩnh hội được từ bài giảng của các thầy cô là vôcùng quý giá

Nhân đây, con xin gửi lời cảm ơn sâu sắc đến Bố, Mẹ - người đã sinh ra con

và những người thân trong gia đình, cảm ơn những tình cảm và những lời động viêncon trong suốt quá trình hoàn thành khóa luận này

Tôi cũng xin được cảm ơn tất cả bạn bè tôi đã luôn động viên giúp đỡ, tạo điềukiện tốt nhất cho tôi hoàn thành khóa luận này

Hà Nội, ngày tháng năm 2011

Sinh viên

Nguyễn Thị Thiếp.

Trang 2

MỤC LỤC

MỤC LỤC 2

DANH MỤC CÁC HÌNH VẼ 4

DANH MỤC CÁC BẢNG 5

PHẦN MỞ ĐẦU 6

PHẦN MỞ ĐẦU 6

1 Lý do chọn đề tài 6

2 Tình hình nghiên cứu trong nước và thế giới 7

3 Nhiệm vụ và mục đích nghiên cứu 7

PHẦN NỘI DUNG 9

Chương 1 Giới thiệu 9

1.1 Ngôn ngữ R là gì? 9

1.2 Tại sao phải sử dụng R ? 9

1.3 Ứng dụng của R 10

1.4 Cài đặt và sử dụng R 10

1.4.1 Tải R xuống và cài đặt vào máy tính 10

1.4.2 Tải R package và cài đặt vào máy tính 11

Chương 2 : Tính toán đơn giản trên R 14

2.1 Tính toán đơn giản 14

2.2 Sử dụng R cho các phép tính ma trận 17

2.2.1 Trích chọn phần tử từ ma trận 18

2.2.2 Tính toán với ma trận 19

2.3 Sử dụng R cho tính toán xác suất 23

2.3.1 Phép hoán vị 23

2.3.3 Biến số ngẫu nhiên và hàm phân phối 24

2.3.4 Chọn mẫu ngẫu nhiên (random sampling) 25

2.4 Biểu đồ 26

2.4.1 Số liệu cho phân tích biểu đồ 26

Trang 3

2.4.2 Biểu đồ cho một biến số rời rạc 28

2.4.3 Biểu đồ cho hai biến số rời rạc : Barplot 29

2.4.4 Biểu đồ hình tròn 31

Chương 3: Làm viêc với dữ liệu trên R 32

3.1 Cách nhập dữ liệu vào R 32

3.1.1 Cách đặt tên trong R 33

3.1.2 Cách nhập dữ liệu vào R 34

3.2 Làm việc với các bảng dữ liệu 43

3.2.1 Tách rời số liệu : subset 43

3.2.2 Trích chọn số liệu từ một data.frame 44

3.2.3 Nhập hai data thành một : merge 44

3.2.4 Biến đổi dữ liệu 46

3.2.5 Phân nhóm số liệu bằng Cut2(Hmisc) 47

Chương 4: Lập trình trên R 48

4.1 Tổng quan về ngôn ngữ R 48

4.2 Các kiểu dữ liệu sử dụng trong lập trình với R 49

4.2.1 Các kiểu dữ liệu cơ bản 49

4.2.2 Các phép toán 50

4.2.3 Các kiểu dữ liệu có cấu trúc trong R : 51

4.3 Các cấu trúc cơ bản trong ngôn ngữ lập trình R 51

4.3.1 Cấu trúc rẽ nhánh 52

4.3.2 Cấu trúc lặp 53

4.4 Xây dựng hàm trong R 54

4.5 Chương trình ví dụ 55

Chương 5: Ứng dụng R để phân tích số liệu 57

5.1 Phân tích dữ liệu có tên là Data 57

5.2 Phân tích hồi quy tuyến tính dữ liệu có tên datanam 70

KẾT LUẬN 82

TÀI LIỆU THAM KHẢO 83

Trang 5

DANH MỤC CÁC HÌNH VẼ

Hình 1: Cửa sổ làm việc của R 11

Hình 2: Cửa sổ cài đặt các package 13

Hình 3: Biểu đồ tần số giới tính thể hiện bằng cột số 28

Hình 4: Biểu đồ tần số giới tính thể hiện bằng dòng số 29

Hình 5: Tần số giới tính và nhóm tuổi thể hiện bằng cột số 30

Hình 6: Tần số giới tính và nhóm tuổi thể hiện bằng hai cột 30

Hình 7: Tần số cho 3 nhóm tuổi 31

Hình 8: Biểu đồ tần số cho 5 nhóm tuổi 31

Hình 9 : Cửa sổ nhập dữ liệu trực tiếp 36

Hình 10: Đồ thị phân phối của các hormones và chỉ số sinh hóa 62

Hình 11: Biều độ liên hệ giữa tuổi và cholestrol 72

Hình 12: Đường biểu diễn mối liên hệ giữa độ tuổi và cholesterol 78

Hình 13 : Giá trị tiên đoán và khoảng tin cậy 95% 79

Hình 14 : Biểu đồ giá trị tiên đoán và khoảng tin cậy 95% 80

Trang 6

DANH MỤC CÁC BẢNG

Bảng 1: Bảng các gói package 12

Bảng 2: Bảng dữ liệu nghiên cứu của 15 người với tên chol 27

Bảng 3: Bảng dữ liệu của 10 bệnh nhân với tên là tuấn 35

Bảng 4: Bảng dữ liệu của 15 bệnh nhân mắc bệnh huyết áp cao 37

Bảng 5: Bảng dữ liệu của bệnh nhân với tên Excel 39

Bảng 6: Bảng dữ liệu nghiên cứu 20 đối tượng có tên data 57

Bảng 7: Bảng đo lường độ cholesterol của 18 đối tượng nam 71

Trang 7

PHẦN MỞ ĐẦU

1 Lý do chọn đề tài

Phân tích và xử lý số liệu là một trong những bước quan trọng trong nghiêncứu khoa học Nhất là đối với các khoa học thực nghiệm, khi mà số lượng dữ liệuđưa ra rất nhiều và đa dạng, việc áp dụng các phương pháp phân tích số liệu sẽ giúpcác nhà nghiên cứu “hiểu” được dữ liệu Các phương pháp phân tích thường dựavào nền tảng là các mô hình toán học, nhưng việc thiết kế và diễn giải ý nghĩa của

dữ liệu mới là kết quả mà các nhà phân tích mong chờ

Trước đây, khi máy tính chưa ra đời, việc xử lý số liệu gặp nhiều khó khăn vìphải thực hiện các phép tính toán thống kê phức tạp Sự có mặt của máy tính tạonên một bước đột phá trong xử lý số liệu, nó giúp các nhà khoa học tiết kiệm đượcnhiều thời gian và tiền bạc Hơn nữa, việc sử dụng máy tính có thể dễ dàng tìm rađược các bất thường trong dữ liệu trước khi đem vào phân tích Tuy nhiên, nếukhông có phần mềm thì máy tính cũng trở thành vô dụng Vì vậy để đáp ứng nhưcầu xử lý số liệu các công ty phần mềm đã cho ra đời các sản phẩm phân tích số liệuchuyên nghiệp (như STATISTICA, SPSS, SAS,…)

Các phần mềm thương mại kể trên được phát triển công phu và thường rấtđắt tiền (giá cho một đại học có khi lên đến hàng trăm ngàn đô-la hàng năm), một cánhân hay thậm chí một trường đại học, một công ty cũng không có khả năng mua.Trong hoàn cảnh đó, ngôn ngữ R đã được phôi thai bởi một nhóm các nhà nghiêncứu Sự ra đời của R đã làm thay đổi tình trạng phụ thuộc vào các phần mềmthương mại, vì R hoàn toàn miễn phí Vậy R là gì? Và R làm được những gì? R cóthể thay thế được các phần mềm thương mại không? Có lập trình được trên Rkhông?

Trong khóa luận này, chúng tôi sẽ đi tìm câu trả lời cho các câu hỏi trên

Trang 8

2 Tình hình nghiên cứu trong nước và thế giới

Trên thế giới đã có rất nhiều trường đại học, các công ty đã sử dụng phầnmềm R trong giảng dạy, nghiên cứu vì đơn giản, nó giúp giảm một lượng lớn chiphí bản quyền phần mềm hằng năm, và hơn nữa, ngôn ngữ R với tính chất mở đangđược cộng đồng phát triển nhanh mạnh, có thể làm được bất cứ thứ gì (hoặc thậmchí là hơn) so với các phần mềm thương mại khác như SPSS, Matlab,

Nước ta hiện này việc sử dụng R là chưa được phổ biến, đó là vì do ở ViệtNam chúng ta lâu nay vẫn sử dụng các phần mềm crack (vi phạm bản quyền) Chođến nay chỉ có GS.Nguyễn Văn Tuấn (Úc) là người đã viết sách và quảng bá về Rcho các nhà nghiên cứu trong y học, còn các ngành khác cộng đồng các nhà khoahọc vẫn chưa “để ý” đến R Kế thừa và tiếp nối các bài viết của GS.Tuấn, chúng tôimong muốn giới thiệu cho cộng đồng một công cụ phân tích số liệu hiệu quả và đặcbiệt là hoàn toàn miễn phí

3 Nhiệm vụ và mục đích nghiên cứu

Đại đa số các đại học Tây phương và thế giới càng ngày càng chuyển sang sửdụng R cho học tập, nghiên cứu và giảng dạy Trong xu hướng đó, chúng tôi thực

hiện đề tài “ Phân tích và xử lý dữ liệu bằng ngôn ngữ R” nhằm mục đích tìm

hiểu và quảng bá ngôn ngữ R vào cộng đồng khoa học ở nước ta Nhất là các nhómnghiên cứu khoa học trong các trường đại học, nơi mà nguồn kinh phí dành chonghiên cứu không nhiều

Để đạt được mục tiêu này, chúng tôi tập trung vào 5 nội dung sau đây:

- Giới thiệu chung về ngôn ngữ R

- Các phép tính toán cơ bản trên R

- Làm việc với dữ liệu trên R

- Lập trình trên R

- Ứng dụng R để phân tích và xử lí dữ liệu

Trang 9

4 Phương pháp nghiên cứu

- Đọc và nghiên cứu các tài liệu viết về phân tích thống kê và vẽ biểu đồ

- Đọc và tìm hiểu những tài liều giới thiệu về ngôn ngữ R

- Thực hành những ứng dụng trên phần mềm R

Trang 10

PHẦN NỘI DUNG

Chương 1 Giới thiệu

1.1 Ngôn ngữ R là gì?

Nói một cách ngắn gọn, R là một phần mềm sử dụng cho phân tích thống kê

và vẽ biều đồ Thật ra về bản chất, R là ngôn ngữ đa năng, có thể sử dụng cho nhiềumục tiêu khác nhau, từ tính toán đơn giản, toán học giải trí, tính toán ma trận, đếncác phân tích thống kê phức tạp

1.2 Tại sao phải sử dụng R ?

Phân tích số liệu và biểu đồ thường được tiến hành bằng các phần mềmthông dụng như SAS, SPSS, Stata, Statistica, và S-Plus Đây là những phần mềmđược các công ty và phần mềm phát triển và giới thiệu trên thị trường khoảng bathập niên qua và đã được các trường đại học, các trung tâm nghiên cứu và các công

ty kĩ nghệ trên toàn thế giới sử dụng cho giảng dạy và nghiên cứu Nhưng vì chi phí

sử dụng các phần mềm này tương đối đắt, một số trường đại học ở các nước đangphát triển không có khả năng tài chính để sử dụng chúng một cách lâu dài Do đó,các nhà nghiên cưú thống kê trên thế giới đã hợp tác để phát triển một phần mềmmới, với chủ trương mã nguồn mở, sao cho tất cả các thành viên trong ngành thống

kê học và toán học trên thế giới có thể sử dụng một cách thống nhất và hoàn toànmiễn phí

R là ngôn ngữ lâp trình thống kê sáng lập bởi nhóm tác giả "R DevelopmentCore Team" tại đại học Auckland, do Ross Ihaka và Robert Gentleman khởi xướng

và phát triển từ ngôn ngữ lập trình thống kê S Do đặc trưng của phần mềm mãnguồn mở, R nhận được đóng góp xây dựng từ khắp các nơi trong cộng đồng khoahọc Thêm vào đó R kế thừa các ưu điểm của ngôn ngữ lập trình bậc cao nên nhanhchóng trở thành ngôn ngữ rất phổ biến trong thống kê, xử lý số liệu nói chung vàđặc biệt là tin sinh học nói riêng

Những ai làm nghiên cứu khoa học, nhất là ở các nước chưa phát triển nhưnước ta, cần phải học cách sử dụng R cho phân tích thống kê và vẽ đồ thị

Trang 11

1.3 Ứng dụng của R

R được dùng chủ yếu bởi những nhà thống kê và những người sử dụng khácđòi hỏi một môi trường tính toán thống kê và phát triển phần mềm, nó cũng có thểdùng làm một công cụ tính toán ma trận tổng quát

R là phần mềm sử dụng cho phân tích thống kê và vẽ biểu đồ, nó là một phầnmềm sử dụng miễn phí Vì thế, những ai làm nghiên cứu khoa học, nhất là các nướccòn nghèo khó như nước ta, cần phải học cách sử dụng R cho phân tích thống kê và

đồ thị

1.4 Cài đặt và sử dụng R

1.4.1 Tải R xuống và cài đặt vào máy tính

Để sử dụng R, việc đầu tiên là chúng ta phải cài đặt R trong máy tính củamình Ta truy cập vào website có tên là “Comprehensive R Archive Network”(CRAN) sau đây:

http://cran.R-project.org.Tài liệu cần tải về, tùy theo phiên bản, nhưng thường có tên bắt đầu bằngmẫu tự R và số phiên bản (version) Chẳng hạn như phiên bản tôi sử dụng là 2.12.1,nên tên của tài liệu cần tải là:

R-2.12.1-win32.zipTài liệu này khoảng 37 MB, và địa chỉ cụ thể để tải là:

http://cran.r-project.org/bin/windows/base/R-2.12.1-win32.exeKhi đã tải R xuống máy tính, bước kế tiếp là cài đặt (set-up) vào máy tính Đểlàm việc này, chúng ta chỉ đơn giản nhấn chuột vào tài liệu trên và làm theo hướngdẫn cách cài đặt trên màn hình Đây là một bước rất đơn giản, chỉ cần 1 phút là việc

cài đặt R có thể hoàn tất.Sau khi hoàn tất việc cài đặt, một icon

xuất hiện trên desktop của máy tính Đến đây thì chúng ta đã sẵn sàng sử dụng R

Có thể nhấp chuột vào icon này và chúng ta sẽ có một window như sau:

Trang 12

Hình 1: Cửa sổ làm việc của R 1.4.2 Tải R package và cài đặt vào máy tính

R cung cấp cho chúng ta một “ngôn ngữ” máy tính và một số function đểlàm các phân tích căn bản và đơn giản Nếu muốn làm những phân tích phức tạphơn, chúng ta cần phải tải về máy tính một số package khác Package là một phầnmềm nhỏ được các nhà thống kê phát triển để giải quyết một vấn đề cụ thể, và cóthể chạy trong hệ thống R Chẳng hạn như để phân tích hồi qui tuyến tính, R có

function lm để sử dụng cho mục đích này, nhưng để làm các phân tích sâu hơn và

phức tạp hơn, chúng ta cần đến các package như lme4 Các package này cần phải

được tải về và cài đặt vào máy tính

Địa chỉ để tải các package vẫn là: http://cran.r-project.org, rồi bấm vào phần

“Packages” xuất hiện bên trái của mục lục trang web Một số package cần tải vềmáy tính để sử dụng cho các phân tích thống kê và vẽ đồ thị là:

Trang 13

Tên package Chức năng

Trellis Dùng để vẽ đồ thị và làm cho đồ thị đẹp hơn

Lattice Dùng để vẽ đồ thị và làm cho đồ thị đẹp hơn

Design Một số mô hình thiết kế nghiên cứu của F Harrell

Epitools Một package khác chuyên cho các phân tích dịch tễ học

SAS,

Zelig Package dùng cho các phân tích thống kê trong lĩnh vực xã

hội họcGenetics Package dùng cho phân tích số liệu di truyền học

Bảng 1: Bảng các gói package

Trang 14

Các package này có thể cài đặt trực tuyến bằng cách chọn Install packages trong phần packages của R như hình dưới đây Ngoài ra, nếu package đã được tải xuống máy tính cá nhân, việc cài đặt có thể nhanh hơn bằng cách chọn Install

package(s) from local zip file cũng trong phần packages

Hình 2: Cửa sổ cài đặt các package

Trang 15

Chương 2 : Tính toán đơn giản trên R

Một trong những lợi thế của R là có thể sử dụng như một máy tính cầm tay Thật ra, hơn thế nữa, R có thể sử dụng cho các phép tính ma trận và lập trình Trong chương này, chúng tôi giới thiệu cách tương tác trực tiếp với ngôn ngữ R như một công cụ tính toán từ đơn giản đến phức tạp.

2.1 Tính toán đơn giản

Cộng hai số hay nhiều số với nhau:

Trang 17

i i

Trong công thức trên mean(x) là số trung bình của vector x.

Tính sai số bình phương (mean square):

2 1

Trang 19

[2,] 4 5 6

[3,] 7 8 9

Ma trận vô hướng (scalar matrix) là một ma trận vuông (tức số dòng bằng

số cột), và tất cả các phần tử ngoài đường chéo là 0, và phần tử đường chéo là 1.Chúng ta có thể tạo một ma trận như thế bằng R như sau:

Trang 20

[1,] FALSE TRUE TRUE

[2,] FALSE TRUE TRUE

[3,] FALSE TRUE TRUE

Trang 22

> A <- matrix(c(3,1,4,6), nrow=2)

> Y <- matrix(c(4,2), nrow=2)

> X <- solve(A)%*%Y

Trang 23

Định thức (determinant) Làm sao chúng ta xác định một ma trận có thể đảo

nghịch hay không? Ma trận mà định thức bằng 0 là ma trận suy biến và không thểđảo nghịch Để kiểm tra định thức, dùng lệnh det():

Trang 25

2.3.3 Biến số ngẫu nhiên và hàm phân phối.

Khi nói đến “phân phối” (hay distribution) là đề cập đến các giá trị mà biến số

có thể có Các hàm phân phối (distribution function) là hàm nhằm mô tả các biến

số đó một cách có hệ thống “Có hệ thống” ở đây có nghĩa là theo một mô hìnhtoán học cụ thể với những thông số cho trước Trong xác suất thống kê có khánhiều hàm phân phối, và ở đây chúng ta sẽ xem xét qua một số hàm quan trọng nhất

và thông dụng nhất: đó là phân phối nhị phân, phân phối Poisson, và phân phốichuẩn Trong mỗi luật phân phối, có 4 loại hàm quan trọng mà chúng ta cần biết:

- Hàm mật độ xác suất (probability density distribution);

- Hàm phân phối tích lũy (cumulative probability distribution);

- Hàm định bậc (quantile);

- Hàm mô phỏng (simulation)

R có những hàm sẵn trên có thể ứng dụng cho tính toán xác suất Tên mỗihàm được gọi bằng một tiếp đầu ngữ để chỉ loại hàm phân phối, và viết tắt tên củahàm đó Các tiếp đầu ngữ là d (chỉ distribution hay xác suất), p (chỉ cumulativeprobability, xác suất tích lũy), q (chỉ định bậc hay quantile), và r (chỉ random hay sốngẫu nhiên)

Hàm phân phối nhị phân

Ví dụ mô phỏng hàm nhị phân: Biết rằng trong một quần thể dân số cókhoảng 20% người mắc bệnh cao huyết áp; nếu chúng ta tiến hành chọn mẫu 1000lần, mỗi lần chọn 20 người trong quần thể đó một cách ngẫu nhiên, sự phân phối sốbệnh nhân cao huyết áp sẽ như thế nào?

Chúng ta có thể ứng dụng hàm rbinom (n, k, p) trong R như sau:

Trang 26

Hàm phân phối Poisson

Ví dụ về hàm mật độ Poisson Qua theo dõi nhiều tháng, người ta biết được

tỉ lệ đánh sai chính tả của một thư kí đánh máy Tính trung bình cứ khoảng 2.000chữ thì thư kí đánh sai 1 chữ Hỏi xác suất mà thư kí đánh sai chính tả 2 chữ,hơn 2 chữ là bao nhiêu?

Hàm phân phối chuẩn

Ví dụ về hàm mật độ phân phối chuẩn Chiều cao trung bình hiện nay ởphụ nữ Việt Nam là 156 cm, với độ lệch chuẩn là 4.6 cm Hãy tính xác xuất chobất cứ chiều cao nào?

Chúng ta có thể sử dụng hàm dnorm(x, mean, sd) để tính chiều cao của phụ nhữ

cao 160 em là:

> dnorm(160, mean=156, sd=4.6)

[1] 0.05942343

2.3.4 Chọn mẫu ngẫu nhiên (random sampling)

Trong xác suất và thống kê, lấy mẫu ngẫu nhiên rất quan trọng, vì nó đảm bảotính hợp lí của các phương pháp phân tích và suy luận thống kê Với R, chúng ta có

thể lấy mẫu một mẫu ngẫu nhiên bằng cách sử dụng hàm sample().

Ví dụ: Chúng ta có một quần thể gồm 40 người (mã số 1, 2, 3, …, 40) Nếuchúng ta muốn chọn 5 đối tượng quần thể đó, ai sẽ là người được chọn? Chúng ta

có thể dùng lệnh sample() để trả lời câu hỏi đó như sau:

> sample(1:40, 5)

Trang 27

[1] 6 18 13 9 24

Kết quả trên cho biết đối tượng 6, 18, 13, 9, 24 được chọn Mỗi lần ra lệnh

này, R sẽ chọn một mẫu khác, chứ không hoàn toàn giống như mẫu trên

Trên đây là lệnh để chúng ta chọn mẫu ngẫu nhiên mà không thay thế (randomsampling without replacement), tức là mỗi lần chọn mẫu, chúng ta không bỏ lại cácmẫu đã chọn vào quần thể

Nhưng nếu chúng ta muốn chọn mẫu thay thế (tức mỗi lần chọn ra một số đốitượng, chúng ta bỏ vào lại trong quần thể để chọn tiếp lần sau) Ví dụ, chúng tamuốn chọn 10 người từ một quần thể 50 người, bằng cách lấy mẫu với thay thế

(random sampling with replacement), chúng ta chỉ cần thêm tham số replace = TRUE:

tạp khác có thể thiết kế bằng các package chuyên dụng như lattice hay trellis có thể

tải từ website của R

2.4.1 Số liệu cho phân tích biểu đồ

Biểu đồ có thể chia thành 2 loại chính: biểu đồ dùng để mô tả một biến số vàbiểu đồ về mối liên hệ giữa hai hay nhiều biến số Tất nhiên, biến số có thể là liêntục hay không liên tục, cho nên, trong thực tế, chúng ta có 4 loại biểu đồ

Ta xét ví dụ: Chúng ta có dữ liệu gồm 8 cột (hay biến số): id, sex, age, bmi, hdl, ldl, tc, và tg Các số liệu này được lưu trong một text file có tên là chol.txt tại

directory E:\works\insulin Số liệu này như sau: cột 1 là mã số của bệnh nhân,

cột 2 là giới tính, cột 3 là body mass index (bmi), cột 4 là HDL cholesterol(viết tắt là hdl), kế đến là LDL cholesterol, total cholesterol (tc) vàtriglycerides (tg) Trước khi vẽ đồ thị, chúng ta bắt đầu bằng cách nhập dữ liệu nàyvào R

Trang 29

15 Nu 62 25 7.75

0

Bảng 2: Bảng dữ liệu nghiên cứu của 15 người với tên chol

Trước khi vẽ đồ thì , ta bắt đầu bằng cách nhập dữ liệu vào R

> setwd("E:/works/insulin")

> cong <- read.table("chol.txt",header = TRUE)

> attach(cong)

2.4.2 Biểu đồ cho một biến số rời rạc

Biến sex trong dữ liệu trên có hai giá trị (nam và nu), tức là một biến không

liên tục Chúng ta muốn biết tần số của giới tính (bao nhiêu nam và bao nhiêu nữ)

và vẽ một biểu đồ đơn giản Để thực hiện ý định này, trước hết, chúng ta cần dùng

Có 8 nam và 7 nữ trong nghiên cứu Sau đó dùng hàm barplot để thể hiện tần

số này như sau:

> barplot(sex.freq, main = "Frequency of males and females")

or

> barplot(table(sex), main= "Frequency of males and females")

Trang 30

Hình 3: Biểu đồ tần số giới tính thể hiện bằng cột số

Thay vì thể hiện tần số nam và nữ bằng 2 cột, chúng ta có thể thể hiện bằng

hai dòng bằng thông số horiz = TRUE

> barplot(table(sex), main= "Frequency of males and females", horiz = TRUE)

Hình 4: Biểu đồ tần số giới tính thể hiện bằng dòng số 2.4.3 Biểu đồ cho hai biến số rời rạc : Barplot

Age là một biến số liên tục Chúng ta có thể chia bệnh nhân thành nhiều nhóm

dựa vào độ tuổi Hàm cut có chức năng “cắt” một biến liên tục thành nhiều nhóm

rời rạc Chẳng hạn như:

> ageg<-cut (age ,3)

> table (ageg)

Trang 31

Để biết có bao nhiêu bệnh nhân trong từng độ tuổi và từng giới tính bằng lệnh

biến này, chúng ta vẫn dùng barplot:

> barplot(age.sex, main ="Number of males and females in each group")

Hình 5: Tần số giới tính và nhóm tuổi thể hiện bằng cột số

Trang 32

Thay vì thể hiện tần số nam nữ trong một cột, chúng ta cũng có thể thể hiện

bằng 2 cột với beside=T

> barplot(age.sex, beside = T, xlad= "age group")

Hình 6: Tần số giới tính và nhóm tuổi thể hiện bằng hai cột

Trang 33

Hình 8: Biểu đồ tần số cho 5 nhóm tuổi

Trang 34

Chương 3: Làm viêc với dữ liệu trên R

Bên cạnh việc thực hiện chức năng như một công cụ tính toán, R cho phép chúng ta làm việc trên các bảng cơ sở dữ liệu như một hệ quản trị cơ sở dữ liệu thực thụ Chúng ta có thể tương tác trực tiếp với dữ liệu để thực hiện các truy vấn

và trích chọn thông tin từ một cơ sở dữ liệu.Nội dung của chương này sẽ giới thiệu cách làm việc với dữ liệu trong R.

3.1 Cách nhập dữ liệu vào R

”Văn phạm R” :R là một ngôn ngữ tương tác (interactive language), có

nghĩa là khi chúng ta ra lệnh, và nếu lệnh theo đúng “văn phạm”, R sẽ “đáp” lạibằng một kết quả Và, sự tương tác tiếp tục cho đến khi chúng ta đạt được yêu cầu

“Văn phạm” chung của R là một lệnh hay function Mà đã là hàm thì phải có thông

số, cho nên theo sau hàm là những thông số mà chúng ta phải cung cấp Cú phápchung của R là như sau:

đối tượng <- hàm(thông số 1, thông số 2, …, thông số n)

> reg <- lm(y ~ x)

Thì reg là một đối tượng (object), còn lm là một hàm, và y ~ x là thông số của

hàm Hay:

> setwd(“c:/works/stats”)

Thì setwd là một hàm, còn “c:/works/stats” là thông số của hàm.

Để biết một hàm cần có những thông số nào, chúng ta dùng lệnh args(x), (args

viết tắt chữ arguments) mà trong đó x là một hàm chúng ta cần biết

Một số kí hiệu hay dùng trong R là:

x == 5 x bằng 5

x != 5 x không bằng 5

y < x y nhỏ hơn x

x > y x lớn hơn y

Trang 35

như R chấp nhận myobject nhưng không chấp nhận my object.

> myobject <- rnorm(10)

> my object <- rnorm(10)

Error: syntax error in "my object"

Nhưng đôi khi tên myobject khó đọc, nên chúng ta có thể dùng dấu “.” Như my.object.

Một vài điều cần lưu ý khi đặt tên trong R là:

- Không nên đặt tên một biến số hay variable bằng kí hiệu “_” (underscore)như

Trang 36

my_object hay my-object.

- Không nên đặt tên một object giống như một biến số trong một dữ liệu Ví

dụ, nếu chúng ta có một data.frame (dữ liệu hay dataset) với biến số age trong đó,thì không nên có một object trùng tên age, tức là không nên viết: age <- age Tuynhiên, nếu data.frame tên là data thì chúng ta có thể đề cập đến biến số age với một

kí tự $ như sau: data$age (Tức là biến số age trong data.frame data), và trongtrường hợp đó, age <- data$age có thể chấp nhận được

3.1.2 Cách nhập dữ liệu vào R

Muốn làm phân tích dữ liệu bằng R, chúng ta phải có sẵn dữ liệu ở dạng mà R

có thể hiểu được để xử lí Dữ liệu mà R hiểu được phải là dữ liệu trong mộtdata.frame Có nhiều cách để nhập số liệu vào một data.frame trong R, từ nhập trựctiếp đến nhập từ các nguồn khác nhau Sau đây là những cách thông dụng nhất:

Trang 37

Chúng ta có thể sử dụng function có tên c như sau:

> age <- c(50,62, 60,40,48,47,57,70,48,67)

> insulin <- c(16.5,10.8,32.3,19.3,14.2,11.3,15.5,15.8,16.2,11.2)

Lệnh thứ nhất cho R biết rằng chúng ta muốn tạo ra một cột dữ liệu có tên là age, và lệnh thứ hai là tạo ra một cột khác có tên là insulin

Age và insulin là hai đối tượng riêng lẻ Bây giờ chúng ta cần phải nhập hai

đối tượng này thành một data.frame để R có thể xử lí sau này Để làm việc nàychúng ta cần đến function data.frame:

> tuan <- data.frame(age, insulin)

Trong lệnh này, chúng ta muốn cho R biết rằng nhập hai cột (hay hai đối

tượng) age và insulin vào một đối tượng có tên là tuan Đến đây thì chúng ta đã có

một đối tượng hoàn chỉnh để tiến hành phân tích thống kê Để kiểm tra xem trong

tuan có gì, chúng ta chỉ cần đơn giản gõ:

Trang 38

Nếu chúng ta muốn lưu lại các số liệu này trong một file theo dạng R, chúng ta

cần dùng lệnh save Ví dụ như chúng ta muốn lưu số liệu trong directory có tên là

“E:\works\insulin”, chúng ta cần gõ như sau:

> setwd("E:/works/insulin")

> save(tuan,file="tuan.rda")

Lệnh đầu tiên (setwd – chữ wd có nghĩa là working directory) cho R biết rằng

chúng ta muốn lưu các số liệu trong directory có tên là “c:\works\insulin Lưu ý

rằng thông thường Windows dùng các sượt trái “\”, nhưng trong R chúng ta dùngcác sượt phải “/”

Lệnh thứ hai save cho R biết rằng các số liệu trong đối tượng tuan sẽ lưu trong file có tên là “tuan.rda” Sau khi gõ xong hai lệnh trên, một file có tên tuan.rda

sẽ có mặt trong directory đó

Nhập số liệu trực tiếp : edit (data.frame())

Ví dụ 1 (tiếp tục): chúng ta có thể nhập số liệu về độ tuổi và insulin cho 10bệnh nhân bằng một function rất có ích, đó là: edit(data.frame()) Với function này,

R sẽ cung cấp cho chúng ta một window mới với một dãy cột và dòng giống nhưExcel, và chúng ta có thể nhập số liệu trong bảng đó Ví dụ:

> ins <- edit(data.frame())

Chúng ta sẽ có một cửa sổ như sau:

Hình 9 : Cửa sổ nhập dữ liệu trực tiếp

Trang 39

Nhập số liệu cho từng cột Sau khi xong, bấm nút chéo X ở góc phải của

spreadsheet, chúng ta sẽ có một data.frame tên ins với hai biến số age và insulin.

Nhập dữ liệu từ một text file : read table

Ví dụ 2: Chúng ta thu thập số liệu về độ tuổi và cholesterol từ một nghiên cứu

ở 15 bệnh nhân mắc bệnh cao huyết áp Các số liệu này được lưu trong một text file

có tên là chol.txt tại directory E:\works\insulin Số liệu này như sau: cột 1 là mã sốcủa bệnh nhân, cột 2 là giới tính, cột 3 là body mass index (bmi), cột 4 làHDL cholesterol (viết tắt là hdl), kế đến là LDL cholesterol, total cholesterol(tc) và triglycerides (tg)

Trang 40

Chúng ta muốn nhập các dữ liệu này vào R để tiện việc phân tích sau này Chúng ta

sẽ sử dụng lệnh read.table như sau:

> setwd(“E:/works/insulin")

> chol<-read.table("chol.txt",header= TRUE)

Lệnh thứ nhất chúng ta muốn đảm bảo R truy nhập đúng directory mà số liệuđang được lưu giữ Lệnh thứ hai yêu cầu R nhập số liệu từ file có tên là “chol.txt”(trong directory E:\works\insulin) và cho vào đối tượng chol Trong lệnh này,header=TRUE có nghĩa là yêu cầu R đọc dòng đầu tiên trong file đó như là tên củatừng cột dữ liệu

Chúng ta có thể kiểm tra xem R đã đọc hết các dữ liệu hay chưa bằng cách ralệnh:

[1] "id" "sex" "age" "bmi" "hdl" "ldl" "tc" "tg"

Bây giờ chúng ta có thể lưu dữ liệu dưới dạng R để xử lí sau này bằng cách ralệnh:

> save(chol, file="chol.rda")

Nhập số liệu từ Excel: read.csv

Bước 1: Dùng lệnh “Save as” trong Excel và lưu số liệu dưới dạng “csv”; Bước 2: Dùng R lệnh read.csv để nhập dữ liệu dạng csv.

Ví dụ 3: Một dữ liệu gồm các cột sau đây đang được lưu trong Excel, và chúng tamuốn chuyển vào R để phân tích Dữ liệu này có tên là excel.xls

Ngày đăng: 16/02/2014, 09:47

HÌNH ẢNH LIÊN QUAN

Hình 1: Cửa sổ làm việc củ aR 1.4.2 Tải R package và cài đặt vào máy tính - Phân tích và xử lý dữ liệu bằng ngôn ngữ R
Hình 1 Cửa sổ làm việc củ aR 1.4.2 Tải R package và cài đặt vào máy tính (Trang 10)
Misc Một số phương pháp mơ hình dữ liệu của F. Harrell DesignMột số mơ hình thiết kế nghiên cứu của F - Phân tích và xử lý dữ liệu bằng ngôn ngữ R
isc Một số phương pháp mơ hình dữ liệu của F. Harrell DesignMột số mơ hình thiết kế nghiên cứu của F (Trang 11)
Hình 2: Cửa sổ cài đặt các package - Phân tích và xử lý dữ liệu bằng ngôn ngữ R
Hình 2 Cửa sổ cài đặt các package (Trang 12)
Bảng 2: Bảng dữ liệu nghiên cứu của 15 người với tên chol - Phân tích và xử lý dữ liệu bằng ngôn ngữ R
Bảng 2 Bảng dữ liệu nghiên cứu của 15 người với tên chol (Trang 27)
Hình 4: Biểu đồ tần số giới tính thể hiện bằng dịng số 2.4.3 Biểu đồ cho hai biến số rời rạc : Barplot - Phân tích và xử lý dữ liệu bằng ngôn ngữ R
Hình 4 Biểu đồ tần số giới tính thể hiện bằng dịng số 2.4.3 Biểu đồ cho hai biến số rời rạc : Barplot (Trang 28)
Hình 3: Biểu đồ tần số giới tính thể hiện bằng cột số - Phân tích và xử lý dữ liệu bằng ngôn ngữ R
Hình 3 Biểu đồ tần số giới tính thể hiện bằng cột số (Trang 28)
Hình 5: Tần số giới tính và nhóm tuổi thể hiện bằng cột số - Phân tích và xử lý dữ liệu bằng ngôn ngữ R
Hình 5 Tần số giới tính và nhóm tuổi thể hiện bằng cột số (Trang 29)
Hình 6: Tần số giới tính và nhóm tuổi thể hiện bằng hai cột 2.4.4 Biểu đồ hình trịn - Phân tích và xử lý dữ liệu bằng ngôn ngữ R
Hình 6 Tần số giới tính và nhóm tuổi thể hiện bằng hai cột 2.4.4 Biểu đồ hình trịn (Trang 30)
Tần số một biến rời rạc cũng có thể thể hiện bằng biểu đồ hình trịn. Ví dụ sau đây vẽ biểu đồ tần số của độ tuổi - Phân tích và xử lý dữ liệu bằng ngôn ngữ R
n số một biến rời rạc cũng có thể thể hiện bằng biểu đồ hình trịn. Ví dụ sau đây vẽ biểu đồ tần số của độ tuổi (Trang 30)
Hình 8: Biểu đồ tần số cho 5 nhóm tuổi - Phân tích và xử lý dữ liệu bằng ngôn ngữ R
Hình 8 Biểu đồ tần số cho 5 nhóm tuổi (Trang 31)
Bảng 3: Bảng dữ liệu của 10 bệnh nhân với tên là tuấn - Phân tích và xử lý dữ liệu bằng ngôn ngữ R
Bảng 3 Bảng dữ liệu của 10 bệnh nhân với tên là tuấn (Trang 34)
Hình 9: Cửa sổ nhập dữ liệu trực tiếp - Phân tích và xử lý dữ liệu bằng ngôn ngữ R
Hình 9 Cửa sổ nhập dữ liệu trực tiếp (Trang 36)
Bảng 4: Bảng dữ liệu của 15 bệnh nhân mắc bệnh huyết áp cao - Phân tích và xử lý dữ liệu bằng ngôn ngữ R
Bảng 4 Bảng dữ liệu của 15 bệnh nhân mắc bệnh huyết áp cao (Trang 37)
Bảng 5: Bảng dữ liệu của bệnh nhân với tên Excel - Phân tích và xử lý dữ liệu bằng ngôn ngữ R
Bảng 5 Bảng dữ liệu của bệnh nhân với tên Excel (Trang 39)
Bảng 6: Bảng dữ liệu nghiên cứu 20 đối tượng có tên data - Phân tích và xử lý dữ liệu bằng ngôn ngữ R
Bảng 6 Bảng dữ liệu nghiên cứu 20 đối tượng có tên data (Trang 57)
Hình 10: Đồ thị phân phối của các hormones và chỉ số sinh hóa Thống kê mơ tả theo từng nhóm - Phân tích và xử lý dữ liệu bằng ngôn ngữ R
Hình 10 Đồ thị phân phối của các hormones và chỉ số sinh hóa Thống kê mơ tả theo từng nhóm (Trang 62)
Bảng 7: Bảng đo lường độ cholesterol của 18 đối tượng nam - Phân tích và xử lý dữ liệu bằng ngôn ngữ R
Bảng 7 Bảng đo lường độ cholesterol của 18 đối tượng nam (Trang 71)
Hình 11: Biều độ liên hệ giữa tuổi và cholestrol - Phân tích và xử lý dữ liệu bằng ngôn ngữ R
Hình 11 Biều độ liên hệ giữa tuổi và cholestrol (Trang 72)
Mơ hình tiên đốn - Phân tích và xử lý dữ liệu bằng ngôn ngữ R
h ình tiên đốn (Trang 78)
Hình 1 3: Giá trị tiên đoán và khoảng tin cậy 95% - Phân tích và xử lý dữ liệu bằng ngôn ngữ R
Hình 1 3: Giá trị tiên đoán và khoảng tin cậy 95% (Trang 79)
Mơ hình tuyến tính đa biến - Phân tích và xử lý dữ liệu bằng ngôn ngữ R
h ình tuyến tính đa biến (Trang 80)

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w