HDTH R dhcn tphcmbzjsjsjsjsjnsjw ehzjnwheueudi

khoanguyen110906 0 views 77 slides Oct 04, 2025
Slide 1
Slide 1 of 77
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16
Slide 17
17
Slide 18
18
Slide 19
19
Slide 20
20
Slide 21
21
Slide 22
22
Slide 23
23
Slide 24
24
Slide 25
25
Slide 26
26
Slide 27
27
Slide 28
28
Slide 29
29
Slide 30
30
Slide 31
31
Slide 32
32
Slide 33
33
Slide 34
34
Slide 35
35
Slide 36
36
Slide 37
37
Slide 38
38
Slide 39
39
Slide 40
40
Slide 41
41
Slide 42
42
Slide 43
43
Slide 44
44
Slide 45
45
Slide 46
46
Slide 47
47
Slide 48
48
Slide 49
49
Slide 50
50
Slide 51
51
Slide 52
52
Slide 53
53
Slide 54
54
Slide 55
55
Slide 56
56
Slide 57
57
Slide 58
58
Slide 59
59
Slide 60
60
Slide 61
61
Slide 62
62
Slide 63
63
Slide 64
64
Slide 65
65
Slide 66
66
Slide 67
67
Slide 68
68
Slide 69
69
Slide 70
70
Slide 71
71
Slide 72
72
Slide 73
73
Slide 74
74
Slide 75
75
Slide 76
76
Slide 77
77

About This Presentation

kdjd


Slide Content

HƯỚNG DẪN THỰC HÀNH
NGUYÊN LÝ THỐNG KÊ KINH TẾ
VỚI PHẦN MỀM R
THS. HUỲNH PHÚ KHÁNH
HOME SERVICE ABOUT US CONTACT US
Page 01
ĐẠI HỌC CÔNG NGHIỆP TP.HCM

TỔNG QUAN VỀ R
HOME SERVICE ABOUT US CONTACT US
Page 02
1. Giới thiệu về R
2. Cài đặt R
3. Giao diện làm việc
4. Tạo thư mục làm việc
5. Lưu trữ dữ liệu

RStudio là môi trường phát triển tích hợp (IDE) cho
phép truy cập trực tiếp vào R và hỗ trợ nhiều tính
năng nâng cao. RStudio có giao diện đẹp và dễ sử
dụng hơn phần mềm R
Lưu ý: cần cài đặt R trước khi cài đặt Rstudio
R
HOME SERVICE ABOUT US CONTACT US
R là ngôn ngữ lập trình mạnh mẽ để xử lý dữ liệu và thực
hiện phân tích thống kê
R được sự hỗ trợ đông đảo bởi cộng đồng người sử dụng
Page 03
LÀ GÌ ?
RSTUDIO
LÀ GÌ ?

www.cran.r-project.org
https://posit.co/download/rstudio-desktop/
Tải R
R VÀ RSTUDIO
HOME SERVICE ABOUT US CONTACT US
Page 04
CÀI ĐẶT
Tải Rstudio

GIAO DIỆN RSTUDIO
HOME SERVICE ABOUT US CONTACT US
Page 05
CỬA SỔ R SCRIPT
Soạn thảo, chỉnh sửa, lưu trữ các câu lệnh
Hiển thị và tóm tắt ngắn gọn các đối tượng
đã được lưu trữ trong R
• Hiển thị kết quả thực thi câu lệnh
• Thông báo lỗi/cảnh báo
• Có thể nhập trực tiếp câu lệnh tại cửa sổ
này.
Mở hoặc xóa tập tin
CỬA SỔ CONSOLE
CỬA SỔ PACKAGE
CỬA SỔ PLOT
CỬA SỔ FILE
CỬA SỔ ENVIRONMENT
Hiển thị kết quả đồ thị/biểu đồ
Xem, cập nhật, cài đặt, gỡ bỏ các package
của R

PACKAGES
STUDIO
SHODWE
HOME SERVICE ABOUT US CONTACT US
install.packages(“tên gói”)
Page 06
CÀI ĐẶT VÀ LÀM VIỆC VỚI
CÀI ĐẶT PACKAGES:
CÀI ĐẶT PACKAGES:
library(tên gói)
Lưu ý: Chỉ cần cài đặt một packages một lần trong
suốt phiên làm việc

Lưu ý: có một sự khác biệt nhất định về định dạng đường dẫn của R và File Explorer của Windows:
R : "C:/Users/huynh/OneDrive/Pictures/cherry.png"
File Explorer: "C:\Users\huynh\OneDrive\Pictures\cherry.png"
WORKING
DIRECTORY
HOME SERVICE ABOUT US CONTACT US
getwd()
Page 07
Kết quả trả về của hàm trên là một đường dẫn cho biết nơi lưu trữ
mặc định của phần mềm Rstudio trong máy tính hiện tại
KIỂM TRA THƯ MỤC MẶC ĐỊNH CỦA R:
THIẾT LẬP THƯ MỤC LÀM VIỆC:
setwd(“đường dẫn đến thư mục lưu trữ”)

LƯU DỮ LIỆU
HOME SERVICE ABOUT US CONTACT US
•Workspaces: file chứa kết quả (định dạng file
.Rdata/.Rhistory/.R)
•Script: lưu trữ các lệnh/hàm đã thực hiện trong
phiên làm việc (định dạng .R)
Page 08

CÁC ĐỐI TƯỢNG
TRONG R
HOME SERVICE ABOUT US CONTACT US
Page 02

TOÁN TỬ TRONG R
STUDIO
SHODWE
HOME SERVICE ABOUT US CONTACT US
Page 09

TOÁN TỬ TRONG R
STUDIO
SHODWE
HOME SERVICE ABOUT US CONTACT US
Page 09

NGUYÊN TẮC THỰC HIỆN CÁC PHÉP TÍNH
Dấu ( ) Dấu căn, Mũ Nhân, chia Cộng, trừ
Theo thứ tự ưu tiên,
Lưu ý: ta chỉ có hàm sqrt() để tính căn bậc 2. Ví dụ: sqrt(4) có kết quả là 2. Các
bậc căn còn lại ta phải quy đổi thành mũ số. dấu ^ tượng trưng cho mũ số
trong R.
Có thể sử dụng hàm abs để lấy trị tuyệt đối của số

CHỈ ĐỊNH CÁC ĐỐI TƯỢNG
Để gán giá trị trong R, ta sử dụng hai ký hiệu:
• Mũi tên ngược <- hoặc
• Dấu bằng =
Ví dụ: ta muốn A mang giá trị là 5: ta sẽ nhập A <- 5, chạy dòng lệnh.
Sau đó, vào cửa sổ environment: ta sẽ thấy A: 5. Nghĩa là ta đã khởi tạo một
đối tượng tên là A và có giá trị là 5. Đối với các dạng dữ liệu khác, ta cũng làm
tương tự.

CÁC HÀM CĂN BẢN
TRONG R
Trả về kết quả khi điều kiện được thỏa mãn. Hàm IF thường được
sử dụng chung với hàm else để trả về kết quả khi không thỏa mãn
điều kiện
if(điều kiện) kết quả nếu đúng else kết quả nếu sai)
HÀM IF
if (1<2) 3 else 4
3
if (1>2) 3 else 4
4

CÁC HÀM CĂN BẢN
TRONG R
tương tự hàm IF trả về kết quả khi điều kiện được thỏa mãn. Hàm
IFELSE không cần sử dụng chung với hàm else
ifelse (điều kiện, kết quả nếu đúng, kết quả nếu sai)
HÀM IFELSE
ifelse (c(1,2,3,4,5)>2, "a" ,"b")
"b" "b" "a" "a" "a"
HÀM PRINT hiển thị kết quả của một đối tượng trong R
print ( đối tượng )
A = ifelse (c(1,2,3,4,5)>2, "a" ,"b") print (A)
"b" "b" "a" "a" "a"

CÁC HÀM CĂN BẢN
TRONG R
tính tổng một đối tượng có định dạng số hoặc đếm một đối tượng có
định dạng chuỗi/số (trường hợp so sánh)
sum (đối tượng) hoặc sum (đối tượng toán tử quan hệ giá trị so sánh)
HÀM SUM
A = ("a" "a" "b" "b" "b")
sum(A == "a")
2
A = ("a" "a" "b" "b" "b")
sum(A != "a")
3
A = (1,2,3,4,5)
sum(A)
15
A = (1,2,3,4,5)
sum(A > 2)
3

VECTOR
HOME SERVICE ABOUT US CONTACT US
Page 02

Vector
•Vector là tập hợp nhiều đối tượng có thể thuộc một hoặc
nhiều kiểu dữ liệu khác nhau (số, chuỗi, ...)
•Xét theo khía cạnh thống kê, một vector là tập hợp các dữ liệu
của một quan sát hoặc phép đo của một biến

CÁC HÀM LIÊN QUAN ĐẾN VECTOR
TRONG R
Lưu ý:
- Tên hàm/câu lệnh trong R đều viết chữ thường và
không có khoảng cách
- Các thành phần của câu lệnh được nhập trong
dấu () và phân cách bằng dấu phẩy.

CÁC HÀM LIÊN QUAN ĐẾN VECTOR
TRONG R
TẠO
VECTOR
•Sử dụng hàm c() : có thể nhập và bên trong dấu () của
hàm c các thành phần của vector hoặc một cú pháp,
hàm khác:
Ví dụ: A = c(1,2,3,4,5)

CÁC HÀM LIÊN QUAN ĐẾN VECTOR
TRONG R
TẠO DÃY SỐ
LIÊN TỤC
tạo một chuỗi giá trị với khoảng cách đều nhau:
Ví dụ: A = c( 1 : 10 ) sẽ được A = (1,2,3,4,5,6,7,8,9,10)
seq(giá trị bắt đầu, giá trị kết thúc, khoảng cách giữa các giá trị)
Ví dụ: A = seq( 2 , 10 , 2 ) sẽ được A = (2,4,6,8,10)
TẠO DÃY SỐ
CÓ KHOẢNG
CÁCH
Tạo vector từ một chuỗi giá trị với số lượng giá trị xác định trước
seq(giá trị bắt đầu, giá trị kết thúc, length.out = số lượng giá trị cần tạo)
Ví dụ: A = seq( 2 , 10 , length.out = 8)
sẽ được A = (2.000000 3.142857 4.285714 5.428571 6.571429 7.714286
8.857143 10.000000)

CÁC HÀM LIÊN QUAN ĐẾN VECTOR
TRONG R
Tạo vector từ một dãy số được lặp lại nhiều lần
rep(giá trị cần tạo, số lần lặp lại của dãy số, each = số lần lặp lại của từng giá trị)
TẠO DÃY SỐ
LẶP LẠI CÓ
TÍNH CHU KỲ
rep(3,6)
3 3 3 3 3 3
rep(c(1,2,3),3,each=2)
1 1 2 2 3 3 1 1 2 2 3 3 1 1 2 2 3 3
rep(c(1,2,3),each=2)
1 1 2 2 3 3
rep(c(1,2,3),4)
1 2 3 1 2 3 1 2 3 1 2 3

CÁC HÀM LIÊN QUAN ĐẾN VECTOR
TRONG R
Sắp xếp dãy số trong vector theo thứ tự tăng dần hoặc giảm dần
sort(vector, FALSE/TRUE) #TRUE là sắp xếp giảm dần
SẮP XẾP DÃY
SỐ
sort(c(3,1,5,7,6,2),TRUE)
7 6 5 3 2 1
XÁC ĐỊNH
ĐỘ DÀI
VECTOR
Xác định độ dài của một vector
length(vector)
length(c(3,1,5,7,6,2))
6

BẢNG DỮ LIỆU
(DATA FRAMES)
HOME SERVICE ABOUT US CONTACT US

DATA FRAMES
•Bảng dữ liệu là một đối tượng bao gồm nhiều
dòng và cột
•Trong đó, mỗi cột tương ứng với một biến, mỗi
dòng tương ứng với một quan sát (lưu ý dòng tiêu
đề cột không phải là một quan sát)

DATA FRAMES
Hàm khởi tạo DATAFRAME
data.frame(vector 1, vector 2, vector 3, ... , vector n)
Hoặc sử dụng chức năng nhập liệu trên giao diện bảng
edit(data.frame())
Để chỉnh sửa dữ liệu trong DATAFRAME
Giả sử đã có Dataframe tên A
A = edit(data.frame(A))
Lưu ý: sau khi nhập xong dữ liệu bằng Dataframe cần phải đóng chế độ nhập liệu
dạng bảng của hàm thì đối tượng bảng mới được lưu trữ.
Không được nhập: A = edit(data.frame()) khi A đã có
dữ liệu vì sẽ xóa hết dữ liệu đã nhập trong A
(Phải gán tên cho dataframe khi khởi tạo ví dụ: A = data.frame(A,B)
Ví dụ: A = edit(data.frame())

DATA FRAMES
Tên bảng[vị trí dòng, vị trí cột]
Lọc ô dữ liệu trong bảng
Lấy một cột (biến) dữ liệu trong bảng
Tên bảng$Tên cột
Lấy dữ liệu một số dòng từ một cột (biến) dữ liệu trong bảng
Tên bảng$Tên cột[ vị trí dòng ]
Lọc các dòng dữ liệu theo điều kiện
Tên bảng[Tên cột == Điều kiện lọc , ]

DATA FRAMES
bảng_mới <- cbind(bảng_cũ, tên_cột_mới = vector_cột)
Thêm cột (biến) vào bảng dữ liệu
Thêm dòng (quan sát) vào bảng dữ liệu
bảng_mới <- rbind(bảng_cũ, dòng_mới)
Hoặc bảng_cũ$tên_cột_mới <- vector_cột
Lưu ý: cột mới là một vector
Lưu ý: dòng mới là một vector chứ các phần tử tương ứng với bảng dữ liệu. Nghĩa là có
cùng số lượng biến và thứ tự.

DATA FRAMES
bảng_mới <- rbind.data.frame(bảng 1, bảng 2)
ghép 2 bảng dữ liệu theo cột
Cách thể hiện bảng dữ liệu
View(bảng 1)
Sử dụng hàm View() để hiện bảng, bảng sẽ được
hiện ở một cửa sổ riêng biệt.
Sử dụng hàm print() để hiện bảng, bảng sẽ được hiện trong cửa sổ console
Print(bảng 1)
Gọi trực tiếp bằng tên của bảng, bảng sẽ được hiện trong cửa sổ console
Hàm View cần viết hoa chữ V đầu

MATRIX
Matrix (ma trận) là một đối tượng dữ liệu hai chiều, bao gồm các
phần tử cùng kiểu (thường là số hoặc ký tự), được sắp xếp theo
hàng và cột.
Matrix thường bị nhầm lẫn với bảng thông thường

MATRIX
Hàm khởi tạo Matrix
Kết quả hiển thị

MATRIX
Chuyển đổi từ Data Frames sang Matrix
Chuyển đổi từ Matrix sang Data Frames

MATRIX

THỐNG KÊ MÔ TẢ
HOME SERVICE ABOUT US CONTACT US

NHẬP KHẨU DỮ LIỆU TỪ TỆP
LẤY DỮ LIỆU TỪ CSV
# Đọc file CSV vào một dataframe
data_csv <- read.csv("path/to/your_file.csv", header = TRUE)
# Hiển thị 6 dòng đầu tiên của dữ liệu
head(data_csv)
# Cài đặt thư viện readxl nếu chưa có
# install.packages("readxl")
# Gọi thư viện readxl
library(readxl)
# Đọc file Excel vào một dataframe
data_excel <- read_excel("path/to/your_file.xlsx", sheet = 1)
LẤY DỮ LIỆU TỪ EXCEL

ĐỘ TẬP TRUNG, ĐỘ PHÂN TÁN, VỊ TRÍ
TÍNH TRUNG BÌNH
tapply(biến,điều kiện lọc,chỉ tiêu thống kê)

mean(biến)
TÍNH TRUNG VỊ
median(biến)
SỐ NHỎ NHẤT
SỐ LỚN NHẤT
max(biến)
min(biến)
TÍNH TRUNG BÌNH CÓ ĐIỀU KIỆN
mean(biến[Điều kiện lọc])
TỨ PHÂN VỊ
quantile(biến, phân vị)
CHỈ SỐ THỐNG KÊ MÔ TẢ CĂN BẢN
summary(biến)
summary(dataframe) (dùng cho tất cả biến)
CHỌN BỘ DỮ LIỆU ĐỂ DÙNG
attach(dataset)

THỐNG KÊ MÔ TẢ
TÍNH PHƯƠNG SAI
table(biến)/ nrow(dataframe)
var(biến)
TÍNH ĐỘ LỆCH CHUẨN
sd(biến)
SỐ NHỎ NHẤT
ĐỘ BIẾN THIÊN
IQR(biến)
min(biến)
LẬP BẢNG TẦN SỐ CỦA 1 BIẾN
table(biến)
TÍNH TẦN SUẤT CHO BẢNG TẦN SỐ
nrow(dataframe)
TỔNG SỐ LƯỢNG DÒNG CỦA BẢNG
round(biến, độ dài phần thập phân còn lại)
HÀM LÀM TRÒN SỐ

THỐNG KÊ MÔ TẢ (ĐỌC THÊM)
TÌM MODE BẰNG HÀM TỰ TẠO
SỬ DỤNG HÀM TIMMODE NHƯ CÁC HÀM KHÁC
TimMode(biến)
TimMode <- function(bien) {
DanhSach <- table(bien) # Tạo bảng tần số
MaxTanSo <- max(DanhSach) # Tìm tần số lớn nhất
GiaTriMode <- names(DanhSach)[DanhSach == MaxTanSo] # Lấy giá trị có tần suất
cao nhất
return(GiaTriMode) # Giữ nguyên kiểu dữ liệu
}

THỐNG KÊ MÔ TẢ (ĐỌC THÊM)
SỬ DỤNG HÀM CUT() ĐỂ PHÂN TỔ CÓ KHOẢNG CÁCH ĐỀU:
ta có: data <- c(1, 2, 5, 7, 10, 12, 15, 18, 20, 25)
# Chia dữ liệu thành 5 tổ
bins <- cut(data, breaks = 5)
# Đếm số phần tử trong mỗi tổ
table(bins)

THỐNG KÊ MÔ TẢ (ĐỌC THÊM)
SỬ DỤNG HÀM CUT() ĐỂ PHÂN TỔ CÓ KHOẢNG CÁCH KHÔNG ĐỀU:
ta có: data <- c(1, 2, 5, 7, 10, 12, 15, 18, 20, 25)
# Chia dữ liệu thành các tổ (0,3] (3,8] (8,15] (15,25]
bins <- cut(data, breaks = c(0,3,8,15,25))
# Đếm số phần tử trong mỗi tổ
table(bins)

ta có: data <- c(1, 2, 5, 7, 10, 12, 15, 18, 20, 25)
# Chia dữ liệu thành các tổ (0,3] (3,8] (8,15] (15,25], thêm nhãn vào tổ
bins <- cut(data, breaks = c(0, 3, 8, 15, 25),
labels = c("Tổ 1: (0-3]", "Tổ 2: (3-8]", "Tổ 3: (8-15]", "Tổ 4: (15-25]"))
# Đếm số phần tử trong mỗi tổ
table(bins)
THỐNG KÊ MÔ TẢ (ĐỌC THÊM)
SỬ DỤNG HÀM CUT() ĐỂ PHÂN TỔ CÓ KHOẢNG CÁCH KHÔNG ĐỀU:

THỐNG KÊ MÔ TẢ
THÔNG QUA BIỂU ĐỒ
HOME SERVICE ABOUT US CONTACT US

THỐNG KÊ MÔ TẢ - BIỂU ĐỒ
CÁC THÀNH PHẦN THƯỜNG ĐƯỢC SỬ DỤNG KHI VẼ BIỂU ĐỒ TRÊN R
type: dạng đồ thị (điểm, đường)
main: tiêu đề của đồ thị
xlab: tiêu đề trục hoành
ylab: tiêu đề trục tung
col: màu sắc đồ thị
pch: chọn kiểu hiển thị các điểm dữ liệu
cex: kích thước của điểm dữ liệu
lty: kiểu đường đồ thị
lwd: độ dày của đường đồ thị

THỐNG KÊ MÔ TẢ - BIỂU ĐỒ
CÁC DẠNG CỦA BIỂU ĐỒ - TYPE
p : point
l : line
b : both point and line
s : stair step
h : histogram
n : no plot

THỐNG KÊ MÔ TẢ - BIỂU ĐỒ
HÌNH DẠNG ĐƯỜNG ĐỒ THỊ - LTY (LINE TYPE)
0 : no line
1 : solid (default)
2 : dashed
3 : dotted
4 : dotdash
5 : longdash
6 : twodash

THỐNG KÊ MÔ TẢ - BIỂU ĐỒ
BIỂU ĐỒ TRÒN
CÁC BƯỚC THỰC HIỆN VẼ BIỂU ĐỒ TRÒN
pie(dữ liệu, labels = , main = , col = )
Lưu ý: cần lập bảng tần số trước khi vẽ biểu đồ
> pie (table(mtcars$cyl),
+ labels=c(“V4”, “V6”, “V8”),
+ col=c(“white”, “gray”, “black”,
+ main=”Performanccars by cylinders”)

THỐNG KÊ MÔ TẢ - BIỂU ĐỒ
BIỂU ĐỒ THANH
barplot(dữ liệu, main = , legend.text =, args.legend = list(x = ‘ ‘),
hoziz = T/F, col = )
> barplot(table(mtscars$am, mtcars$cyl),
+ legend.text = c(‘auto’, ‘manual’),
+ args.legend = list(x = ‘right‘),
+ beside = T,
+ hoziz = T,
+ col = c(‘blue’, ‘green’) )
CÁC BƯỚC THỰC HIỆN VẼ BIỂU ĐỒ THANH

THỐNG KÊ MÔ TẢ - BIỂU ĐỒ
BIỂU ĐỒ PHÂN BỐ - HISTOGRAM
Sử dụng cho 1 biến định lượng liên tục
hist(dữ liệu, xlab = , breaks = , probability = T )
CÁC BƯỚC THỰC HIỆN VẼ BIỂU ĐỒ PHÂN BỐ
Vẽ đường đồ thị phân bố
lines(density(dữ liệu), lwd = , lty = )

THỐNG KÊ MÔ TẢ - BIỂU ĐỒ
BIỂU ĐỒ HỘP
boxplot(biến)

THỐNG KÊ MÔ TẢ - BIỂU ĐỒ
BIỂU ĐỒ PHÂN TÁN/BIỂU ĐỒ TƯƠNG QUAN 2 BIẾN
CÁC BƯỚC THỰC HIỆN VẼ BIỂU ĐỒ
Cách 1: Dùng hàm scatterplot trong package car
scatterplot(y ~ x, smooth = T/F, pch = ,
col = regLine = list(method = lm, col = ), xlab = , ylab = , main = )
Cách 2: Dùng hàm plot kết hợp abline
Vẽ đường đồ thị phân tán (điểm)
plot(x,y, xlab = , ylab = , main = )
Vẽ đường đồ thị biểu diễn tương quan 2 điểm
abline(lm(y ~ x), lưd = , col = )

PHÂN PHỐI
XÁC SUẤT
CỦA BIẾN
NGẪU NHIÊN

PHÂN PHỐI XÁC SUẤT CỦA BIẾN NGẪU NHIÊN
Tính xác suất có đúng k lần thành công
dbinom(k, không gian mẫu, xác suất thành công)
Tính xác suất có nhiều nhất k lần thành công
pbinom(k, không gian mẫu, xác suất thành công)
Tính giá trị ngược lại của pbinom (số lần thành công tối thiểu để có
tỉ lệ x khả năng xảy ra)
qbinom(x, không gian mẫu, xác suất thành công)
Tính số lần thành công ngẫu nhiên
rbinom(số lần thử, không gian mẫu, xác suất thành công)
PHÂN PHỐI NHỊ THỨC

PHÂN PHỐI XÁC SUẤT CỦA BIẾN NGẪU NHIÊN
PHÂN PHỐI CHUẨN
Tính giá trị của hàm mật độ xác suất tại X
dnorm(X, mean, sd)
Tính xác suất tích lũy
pnorm(X, mean, sd)
Tính ngược lại từ xác suất tích lũy
qnorm(X, mean, sd)
Sinh X giá trị ngẫu nhiên từ phân phối chuẩn
rnorm(X, mean, sd)

PHÂN PHỐI XÁC SUẤT CỦA BIẾN NGẪU NHIÊN
PHÂN PHỐI CHUẨN TẮC
Tính giá trị của hàm mật độ xác suất tại X
dnorm(X, mean, sd)
Tính xác suất tích lũy
pnorm(X, mean, sd)
Tính ngược lại từ xác suất tích lũy
qnorm(X, mean, sd)
Sinh X giá trị ngẫu nhiên từ phân phối chuẩn
rnorm(X, mean, sd)
*Lưu ý: sử dụng các hàm giống PPC nhưng khi thực hiện PPCT thì mean = 0
và sd = 1, hoặc bỏ qua hai tham số này vì đó là giá trị mặc định trong các hàm
của R cho phân phối này.

 

Phân phối Hàm xác
suất (PMF/PDF)
Hàm tích lũy (CDF) Hàm giá trị ngược
Hàm tạo mẫu ngẫu
nhiên
Nhị thức

dbinom(k, n, p)

pbinom(k, n, p)

qbinom(p, n, p)

rbinom(n, size, p)

Chuẩn

dnorm(x, μ, σ)

pnorm(x, μ, σ)

qnorm(p, μ, σ)

rnorm(n, μ, σ)

PHÂN PHỐI XÁC SUẤT CỦA BIẾN NGẪU NHIÊN

PHÂN PHỐI XÁC SUẤT CỦA BIẾN NGẪU NHIÊN

PHÂN PHỐI XÁC SUẤT CỦA BIẾN NGẪU NHIÊN
QUY TẮC THỰC NGHIỆM
Để kiểm tra quy tắc thực nghiệm, sử dụng hàm mean() và sd() để tính
giá trị trung bình và độ lệch chuẩn, sau đó kiểm tra phần trăm các giá trị
rơi vào khoảng 1, 2 và 3 độ lệch chuẩn (??????).
ĐỊNH LÝ CHEBYSHEV
Tương tự như cách tính quy tắc thực nghiệm, nhưng với các khoảng
rộng hơn và tỷ lệ thấp hơn.
Định lý Chebyshev áp dụng cho mọi phân phối và đảm bảo rằng ít
nhất giá trị nằm trong khoảng ?????? ± ????????????.

XÁC ĐỊNH PHÂN PHỐI CHUẨN
CÁCH XÁC ĐỊNH PHÂN PHỐI CHUẨN
Kiểm định Shapiro-Wilk chỉ nên áp dụng cho n <= 50 .
shapiro.test(data)
Kiểm định Shapiro-Wilk
• Mục đích: Kiểm tra xem dữ liệu có tuân theo phân phối chuẩn không.
• Giả thuyết:
• H_0 : Dữ liệu tuân theo phân phối chuẩn.
• H_1 : Dữ liệu không tuân theo phân phối chuẩn.
• Quy tắc:
• Nếu p-value < 0.05, bác bỏ H_0 → Dữ liệu không có phân phối chuẩn.
• Nếu p-value ≥ 0.05, không bác bỏ H_0 → Dữ liệu có thể có phân phối chuẩn.

XÁC ĐỊNH PHÂN PHỐI CHUẨN
CÁCH XÁC ĐỊNH PHÂN PHỐI CHUẨN
ks.test(data, "pnorm", mean = mean(data), sd = sd(data))
Kiểm định Kolmogorov-Smirnov
• Mục đích: Kiểm tra xem dữ liệu có tuân theo phân phối chuẩn không.
• Giả thuyết:
• H_0 : Dữ liệu tuân theo phân phối mong đợi.
• H_1 : Dữ liệu không tuân theo phân phối mong đợi.
• Quy tắc:
• Nếu p-value < 0.05, bác bỏ H_0 → Dữ liệu không có phân phối mong đợi.
• Nếu p-value ≥ 0.05, không bác bỏ H_0 → Dữ liệu có thể có phân phối mong
đợi.

XÁC ĐỊNH PHÂN PHỐI CHUẨN
CÁCH XÁC ĐỊNH PHÂN PHỐI CHUẨN
library(nortest)
ad.test(data)
Nếu p-value < 0.05 → Bác bỏ H_0 → Dữ liệu không tuân theo phân phối giả
định.
• Nếu p-value ≥ 0.05 → Không bác bỏ H_0 → Không có bằng chứng dữ liệu
khác biệt so với phân phối giả định.
Hoặc dựa vào giá trị A^2 :
• A^2 < 0.50 → Phân phối phù hợp rất tốt.
• 0.50 <= A^2 < 1.00 → Phân phối phù hợp khá tốt.
• 1.00 <= A^2 < 1.50 → Phân phối phù hợp trung bình.
• A^2 >= 1.50 → Phân phối không phù hợp.

ƯỚC LƯỢNG
THAM SỐ
TỔNG THỂ

Cách 1: tính theo công thức lý thuyết
ƯỚC LƯỢNG THAM SỐ TỔNG THỂ
ƯỚC LƯỢNG KHOẢNG TRUNG BÌNH TỔNG THỂ
Biết độ lệch chuẩn tổng thể:
Không biết độ lệch chuẩn tổng thể:

ƯỚC LƯỢNG THAM SỐ TỔNG THỂ
ƯỚC LƯỢNG KHOẢNG TRUNG BÌNH TỔNG THỂ
Cách 2: dùng câu lệnh “thiết kế” sẵn
Nếu biết độ lệch chuẩn tổng thể
z.test(dữ liệu, sigma.x = , conf.level = )$conf.int
Nếu không biết độ lệch chuẩn tổng thể
t.test(dữ liệu, conf.level = )$conf.int
Trong đó:
sigma.x : độ lệch chuẩn tổng thể
conf.level : độ tin cậy

ƯỚC LƯỢNG THAM SỐ TỔNG THỂ
ƯỚC LƯỢNG TỈ LỆ TỔNG THỂ
Cách 1:
Cách 2:
prop.test(số quan sát có đặc tính A, cỡ mẫu, conf.level = )$conf.int

n: Kích thước mẫu
s2: Phương sai mẫu
alpha: Mức ý nghĩa
df <- n - 1: Bậc tự do
# Tính các giá trị tới hạn của phân phối
chi bình phương
chi2_lower <- qchisq(1 - alpha/2, df) # Giá trị chi bình phương bên phải
chi2_upper <- qchisq(alpha/2, df) # Giá trị chi bình phương bên trái
Sử dụng thư viện (Package): EnvStats
ƯỚC LƯỢNG THAM SỐ TỔNG THỂ
ƯỚC LƯỢNG PHƯƠNG SAI TỔNG THỂ
varTest(mẫu, conf.level = )$conf.int
Cách 2:
Cách 1:
# Tính khoảng tin cậy cho phương sai
lower_bound <- (df * s2) / chi2_lower
upper_bound <- (df * s2) / chi2_upper
# Hiển thị kết quả
print(c(lower_bound, upper_bound))

ƯỚC LƯỢNG THAM SỐ TỔNG THỂ
UỚC LƯỢNG CỠ MẪU
Ước lượng cỡ mẫu cho trung bình (ULTB)
power.t.test(delta = <sai số>,
sd = <độ lệch chuẩn>,
sig.level = 1 - <mức tin cậy>,
power = <độ mạnh kiểm định>,
type = "one.sample")
# Ví dụ:
power.t.test(delta = 1, sd = 5, sig.level = 0.05, power = 0.8, type =
"one.sample")

ƯỚC LƯỢNG THAM SỐ TỔNG THỂ
UỚC LƯỢNG CỠ MẪU
Ước lượng cỡ mẫu cho tỷ lệ (ULTL)
power.prop.test(p = <tỷ lệ>,
sig.level = 1 - <mức tin cậy>,
power = <độ mạnh kiểm định>)
# Ví dụ:
power.prop.test(p = 0.5, sig.level = 0.05, power = 0.8)

ƯỚC LƯỢNG THAM SỐ TỔNG THỂ
UỚC LƯỢNG CỠ MẪU
Ước lượng cỡ mẫu cho phương sai (ULPS)
power.anova.test(groups = 1,
within.var = <phương sai>,
sig.level = 1 - <mức tin cậy>,
power = <độ mạnh kiểm định>)
# Ví dụ:
power.anova.test(groups = 1, within.var = 25, sig.level = 0.05, power = 0.8)

KIỂM ĐỊNH
GIẢ THUYẾT

KIỂM ĐỊNH GIẢ THUYẾT
KIỂM ĐỊNH GIẢ THUYẾT VỀ TRUNG BÌNH TỔNG THỂ
Nếu biết độ lệch chuẩn tổng thể
z.test(dữ liệu mẫu, sigma.x = , mu = , alternative conf.level = )
Trong đó:
mu : giá trị trung bình tổng thể cần kiểm
alternative : loại kiểm định (2 phía: ‘two.sided’, bên phải:
‘greater’, bên trái: ‘less’)
Nếu không biết độ lệch chuẩn tổng thể
t.test(dữ liệu mẫu, mu = , alternative conf.level = )
packages("BSDA") # Cài đặt nếu chưa có

KIỂM ĐỊNH GIẢ THUYẾT
KIỂM ĐỊNH GIẢ THUYẾT VỀ TỈ LỆ TỔNG THỂ
prop.test(số quan sát có đặc tính A trong mẫu,
cỡ mẫu,
p = ,
alternative = ,
conf.level = )
Trong đó:
p : tỷ lệ tổng thể cần kiểm định

KIỂM ĐỊNH GIẢ THUYẾT
KIỂM ĐỊNH GIẢ THUYẾT VỀ PHƯƠNG SAI TỔNG THỂ
packages("EnvStats") # Cài đặt nếu chưa có
varTest(data, sigma.squared = , alternative = "two.sided", conf.level = 0.95)

KIỂM ĐỊNH GIẢ THUYẾT HAI TỔNG THỂ
KIỂM ĐỊNH GIẢ THUYẾT VỀ TRUNG BÌNH
t.test(x, y, var.equal = FALSE, alternative = "two.sided")
z.test(x, y, sigma.x = sigma1, sigma.y = sigma2, alternative = "two.sided")
packages("BSDA") # Cài đặt nếu chưa có

KIỂM ĐỊNH GIẢ THUYẾT HAI TỔNG THỂ
SO SÁNH HAI TỔNG THỂ KHÔNG CHUẨN
wilcox.test(x, y, alternative = "two.sided", conf.level = )
Kiểm định Wilcoxon (Mann-Whitney U test)

KIỂM ĐỊNH GIẢ THUYẾT HAI TỔNG THỂ
KIỂM ĐỊNH GIẢ THUYẾT VỀ TỈ LỆ TỔNG THỂ
prop.test(c(x1, x2), c(n1, n2), alternative = "two.sided", conf.level = )

KIỂM ĐỊNH GIẢ THUYẾT HAI TỔNG THỂ
KIỂM ĐỊNH GIẢ THUYẾT VỀ PHƯƠNG SAI TỔNG THỂ
var.test(x, y, alternative = "two.sided", conf.level = )