Academia.eduAcademia.edu
THỐNG KÊ MÁY TÍNH ỨNG DỤNG NGÔN NGỮ TRONG PHÂN TÍCH DỮ LIỆU Biên soạn: Phạm Thị Thu Thúy thuthuy@ntu.edu.vn QUY ĐỊNH MÔN HỌC • Lý thuyết: 30 tiết • Thực hành: 15 tiết • Đánh giá: 50% kiểm tra + 50% thi kết thúc môn (trên máy) – 50% kiểm tra:  Chuyên cần  Bài tập trên lớp (điểm cộng, trừ)  Điểm bài tập nhóm  Điểm kiểm tra thực hành Tài liệu tham khảo 1. Nguyễn Văn Tuấn, Phân tích số liệu và biểu đồ bằng R 2. Peter Dalgaard, Statistics and Computing Nội dung chính Hướng dẫn cài đặt và vận hành R Xử lý số liệu bằng R Phân tích thống kê mô tả bằng R Phân tích hồi quy bằng R Phân tích dãy số thời gian bằng R Nội dung 1. GIỚI THIỆU R  Tại sao sử dụng R  Tổng quan R  Workspace  Đọc và lưu dữ liệu trong R Tại sao R  Mã nguồn mở  Hoàn toàn miễn phí  Chạy trên nền Windows, MacOS  Nhiều phương pháp phân tích không có trong các phần mền khác  Vẽ biểu đồ tuyệt vời Lưu ý!  Thuật ngữ/ngôn ngữ khó hiểu  Dùng câu lệnh tương tác  Nhiêu ký hiệu  Cần quen với ngôn ngữ lập trình R làm được gì?  R là công cụ phân tích thống kê  Cho phép thực hiện tất cả các mô hình phân tích  Mô phỏng  Vẽ đồ thị và biểu đồ rất đẹp  Lập trình cho phương pháp mới Tải phần mềm R • Truy cập http://cran.r-project/ • R for Windows screen, chọn “base” • Download R • Run, chọn OK sau đó chọn FINISH • Biểu tượng R sẽ xuất hiện trên desktop • Bắt đầu sử dụng R Làm việc với R  Object: Đối tượng - tên cho mỗi đối tượng (case sensitive) - gán giá trị cho đối tượng sử dụng assignment operator (<- hoặc =) Ví dụ: >tuoi=25 >Tuoi<-25 Note: tuoi và Tuoi là 2 đối tượng khác nhau Làm việc với R  Object: Đối tượng # tạo object sử dụng hàm concatenation (nối số liệu) >x = c(1:10) # gọi các giá trị của object >x >x[(x>8)|(x<5)] kết quả? Làm việc với R  Object: Cách đặt tên Đối tượng # tạo object y bao gồm 10 giá trị normal >y = rnorm(10) # tạo myobject bao gồm 20 giá trị nornal >myobject<- rnorm(20) >my.object<-rnorm(20) >my object<-rnorm(20) Không được Làm việc với R Làm việc với R  Object: Đối tượng # tạo object y bao gồm 10 giá trị normal Hoặc >y = rnorm(10, mean=0, sd=1) >y=rnorm(10,0,1) Làm việc với R Làm việc với R  Workspace: Môi trường làm việc # tạo thư mục chứa dữ liệu > setwd(“D:/thongke”) Note: + thongke phải được tạo trước ở D: + R làm việc với / (không phải \) # xem thư mục làm việc > getwd() Làm việc với R  Workspace: Môi trường làm việc # chuyển thư mục làm việc >setwd(“C:/mydocument”) # lưu trữ lệnh >savehistory(file=“myfile”) # mở lệnh đã lưu trữ >loadhistory(file=“myfile”) Làm việc với R  Packages: Gói công cụ - R cấu trúc theo packages - Mỗi phương pháp phân tích được thiết kế trong một package - Tải package về để sử dụng trong R - Để xem các packages sẳn có > library() Làm việc với R Làm việc với R  Packages: Gói công cụ # cài đặt package mới >install.packages(c(“moments”) > library() # cài đặt nhiều packages >install.packages(c(“car”,“ggplot2”)) Làm việc với R Đọc và lưu dữ liệu trong R  Ghi xuất các dữ liệu dưới dạng file.rda # tạo hai vector cột x, y >x=c(1,3,1,3,5) >y=c(2,5,6,7,8) # sử dụng data.frame để nhập hai vector x, y vào object tên là mydat >mydat=data.frame(x,y) Đọc và lưu dữ liệu trong R Đọc và lưu dữ liệu trong R  Ghi xuất các dữ liệu dưới dạng file.rda # lưu mydat dưới dạng R file với tên mydatfile.rda >save(mydat,file=“mydatfile.rda") Đọc và lưu dữ liệu trong R  Nhập số liệu trực tiếp trong R # mở cửa sổ nhập liệu bằng lệnh edit(data.frame()) >nhaplieu=edit(data.frame()) # lưu nhaplieu dưới dạng R file với tên mynhaplieu.rda >save(nhaplieu,file=“mynhaplieu.rda") Đọc và lưu dữ liệu trong R  Đọc dữ liệu vào R  Trực tiếp từ R  Từ text, excel, SPSS, Stata  Từ mạng  Lưu ý: kiểm tra thư mục đang làm việc Đọc và lưu dữ liệu trong R  Đọc dữ liệu từ R (file.rda) # gọi tên file (tìm file mynhaplieu.rda) >filename=file.choose() # đọc dữ liệu dưới dạng R bằng lệnh load >dat= load(“mynhaplieu.rda”) # xem dữ liệu >head(dat) Đọc và lưu dữ liệu trong R  Đọc dữ liệu vào R từ text (ASCII file) # lấy tên file >filename=file.choose() # đọc dữ liệu dùng lệnh read.table() >dat1= read.table(“home price.txt, header=T) # xem dữ liệu >head(dat1) Đọc và lưu dữ liệu trong R  Đọc dữ liệu vào R từ Excel (.csv) # lấy tên file >filename=file.choose() # đọc dữ liệu dùng lệnh lệnh read.csv() >dat2= read.csv(“income.csv”,header=T) # xem dữ liệu >head(dat2) Đọc và lưu dữ liệu trong R  Đọc dữ liệu vào R từ Excel (.xls) sử dụng package “gdata” # lấy tên file >filename=file.choose() # đọc dữ liệu dùng lệnh lệnh read.xls() >dat3= read.xls(“myfile.xls”, sheet=1, header=T) # xem dữ liệu Đọc và lưu dữ liệu trong R Đọc và lưu dữ liệu trong R  Đọc dữ liệu vào R từ SPSS # lấy tên file >filename=file.choose() # đọc dữ liệu lệnh read.sav() >dat4= read.sav(“myspss.sav”) # xem dữ liệu >head(dat4) Đọc và lưu dữ liệu trong R  Đọc dữ liệu vào R từ Stata # lấy tên file >filename=file.choose() # đọc dữ liệu sử dụng lệnh read.dta() >dat5= read.dta(“mystata”) # xem dữ liệu >head(dat) Đọc và lưu dữ liệu trong R Đọc và lưu dữ liệu trong R  Đọc dữ liệu vào R từ website # đọc dữ liệu từ trang http://statistics.vn >dat6=read.csv("http://statistics.vn/data/E xampleData.csv", header=T) > head(dat) Đọc và lưu dữ liệu trong R  Làm việc với object sau khi đọc vào R # gọi object dùng lệnh attach() >attach(dat6) # dùng attach() để gọi các objects trước đây Biên tập số liệu  Tạo biến mới # gọi object dùng lệnh attach() >attach(dat6) # dùng attach() để gọi các objects trước đây Biên tập số liệu  Tạo biến mới  Làm việc với một phần dữ liệu  Kết nối dữ liệu Biên tập số liệu  Một số hàm cơ bản Hàm Mô tả Hàm + Cộng < Trừ > * Nhân <= / Chia >= ^ Lũy thừa == != Not equal to !x x|y x OR y x&y Mô tả Nhỏ hơn Lớn hơn Nhỏ hơn/bằng Lớn hơn/bằng Exactly equal to Not x x AND y Biên tập số liệu  Tạo biến mới bằng câu lệnh # gọi object từ file mydatafile.rda >mydat=load(mydatafile.rda) # xem tiêu đề dữ liệu >head(mydat) # làm việc với số liệu >attach(mydat) Biên tập số liệu  Tạo biến mới bằng câu lệnh # Tạo biến mới và kết nối với một dataframe sử dụng dấu $ >mydat$sum = mydat$x +mydat$y # Tạo biến mới z=x*y trong mydat >mydat$z = mydat$x * mydat$y Đọc và lưu dữ liệu trong R Biên tập số liệu  Tạo biến mới bằng câu lệnh # Tạo biến mới id và gender >id = c(1:5) > gender = c("male", "female", "male", "female", "male") # Tạo biến mới sex với 1=male, 2=female >mydat=data.frame(id,gender) >mydat$sex[gender==“male”]<-1 >mydat$sex[gender==“female”]<-2 Đọc và lưu dữ liệu trong R Biên tập số liệu  Tạo biến mới bằng câu lệnh # Tạo biến mới là group nếu id=1,2,3 là group A id=4,5 là group B >mydat$group[id>=“1” & id<=“3”]<-“A” >mydat$group[id>=“4” & id<=“5”]<-“B” >head(mydat) Biên tập số liệu Biên tập số liệu  Làm việc với một phần dữ liệu # data frame là một matrix (dòng và cột) >id=c(1:10) >name=c(“A”,“B”,“C”,“D”,“E”,“F”,“G”,“H”,“I”,“J”) >x=c(12, 15, 67, 32, 26, 86, 11, 16, 25, 37) >dat=data.frame(id, name, x) # dat có bao nhiêu dòng và cột? >dat Biên tập số liệu Biên tập số liệu  Làm việc với một phần dữ liệu # Liệt kê dòng và cột của dữ liệu >dat[,1]  liệt kê cột 1 >dat[,1:2]  liệt kê cột 1 >dat[2,]  liệt kê dòng 2 >dat[3:8,1]  liệt kê >dat[1:5,2:3]  liệt kê Biên tập số liệu Biên tập số liệu  Làm việc với một phần dữ liệu # làm việc trong nhóm id<=5 >dat1=subset(dat, id<=5) # làm việc với nhóm theo điều kiện id<=8 và x <30 >dat2=subset(dat, id<=8 & x<30) # sắp xếp thứ tự theo biến x >new.dat=dat[order(x), ]  thấp đến cao Biên tập số liệu Biên tập số liệu  Kết nối dữ liệu # kết nối dữ liệu sử dụng lệnh merge trong package reshape >install.packages(“reshape”) >dat=merge(dat1, dat2, by=“id”) >dat=merge(dat1, dat2, by=“id”, all.x=T, all.y=T) >dat Biên tập số liệu Biên tập số liệu Biên tập số liệu  Chuyển dữ liệu từ dạng cột sang dòng # dụng lệnh metl trong package reshape >id=c(1:4) >sex=c(“M” “F” “F” “M”) >group=c(1,1,2,2) >income1=c(15,16,21,31) >income2=c(17,15,23,35) >income3=c(19,20,19,33) >dat=data.frame(id,sex,group,income1,income2,income3) >dat Biên tập số liệu  Chuyển dữ liệu từ dạng cột sang dòng # dụng lệnh metl trong package reshape >require(reshape2) >dat1=melt(dat, id=c(“id”, “sex”, “group”), income.vars=c(“income1”, “income2”, “income3”)) >dat1 Biên tập số liệu Biên tập số liệu Biên tập số liệu  Chuyển dữ liệu từ dạng dòng sang cột # dụng lệnh cast trong package reshape >dat2=cast(dat1, id=c(id, sex, group ~ variable) >dat2 Biên tập số liệu Tóm lược  Đối tượng/Object  Môi trường làm việc/Workspace  Gói công cụ/Packages  Đọc và lưu dữ liệu  Đọc từ text file  Đọc từ excel file  Đọc từ spss file  Đọc từ stata file  Đọc từ web