Phân tích mô tả và so sánh
• Mô tả biến liên tục (continuous variables)
• Mô tả biến phân nhóm (categorical variables)
• So sánh hai nhóm: biến liên tục
• So sánh hai nhóm: biến phân nhómMô tả biến liên tục
• Biểu đồ phân bố, biểu đồ hộp
• Phân bố chuẩn: trung bình, độ lệch chuẩn
• Phân bố lệch so với phân bố chuẩn: trung vị, bách phân vị
25%, 75%Mô tả biến phân nhóm
• Biểu đồ bar
• Tỉ lệ, độ lệch chuẩn, khoảng tin cậy 95%
• Phân bố lệch so với phân bố chuẩn: trung vị, bách phân vị
25%, 75%Mô tả bằng biểu đồBiểu đồ phổ biến
• Biểu đồ phân bố (hist)
• Biểu đồ hộp (boxplot)
• Biểu đồ tương quan (plot)
• Biểu đồ tương quan đa biến (pairs.panels; package
psych)
25 trang |
Chia sẻ: thanhle95 | Lượt xem: 620 | Lượt tải: 1
Bạn đang xem trước 20 trang tài liệu Bài giảng Phân tích dữ liệu và ứng dụng - Bài 5: Phân tích mô tả t-test, Ki bình phương, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Tuan V. Nguyen
Garvan Institute of Medical Research
Professor, UNSW School of Public Health and Community Medicine
Professor of Predictive Medicine, University of Technology Sydney
Adj. Professor of Epidemiology and Biostatistics,
School of Medicine Sydney, University of Notre Dame Australia
Phân tích dữ liệu và ứng dụng | Đại học Dược Hà Nội | 12/6 to 17/6/2019 © Tuan V. Nguyen
Dữ liệu thực tế
Nghiên cứu tiểu đường (n = 3165 nam và nữ)
> db = read.csv("~/Dropbox/_Conferences and Workshops/Dai hoc Duoc 6-
2019/Datasets/Diabetes data.csv")
> head(db)
id age gender height weight waist hip sysbp diabp active hypertension
1 1 76 Female 163 53 90 93 160 90 0 1
2 1 40 Female 149 51 74 94 100 60 0 0
3 1 51 Female 151 55 91 100 120 80 0 0
4 1 43 Female 158 62 78 96 120 80 1 0
5 2 72 Female 148 47 91 95 130 60 1 0
6 2 44 Male 155 48 69 86 120 80 0 0
bmi whr diabetes
1 19.95 0.97 IFG
2 22.97 0.79 Normal
3 24.12 0.91 Normal
4 24.84 0.81 Normal
5 21.46 0.96 IFG
6 19.98 0.80 Normal
> sim(db)
Phân tích mô tả và so sánh
• Mô tả biến liên tục (continuous variables)
• Mô tả biến phân nhóm (categorical variables)
• So sánh hai nhóm: biến liên tục
• So sánh hai nhóm: biến phân nhóm
Mô tả biến liên tục
• Biểu đồ phân bố, biểu đồ hộp
• Phân bố chuẩn: trung bình, độ lệch chuẩn
• Phân bố lệch so với phân bố chuẩn: trung vị, bách phân vị
25%, 75%
Mô tả biến phân nhóm
• Biểu đồ bar
• Tỉ lệ, độ lệch chuẩn, khoảng tin cậy 95%
• Phân bố lệch so với phân bố chuẩn: trung vị, bách phân vị
25%, 75%
Mô tả bằng biểu đồ
Biểu đồ phổ biến
• Biểu đồ phân bố (hist)
• Biểu đồ hộp (boxplot)
• Biểu đồ tương quan (plot)
• Biểu đồ tương quan đa biến (pairs.panels; package
psych)
Phân bố whr (tỉ số eo – mông)
hist(db$whr, breaks=20, col="blue", border="white")
Histogram of db$whr
db$whr
Fr
eq
ue
nc
y
0.6 0.8 1.0 1.2 1.4
0
20
0
40
0
60
0
80
0
Phân bố whr theo nhóm diabetes
boxplot(db$whr ~ db$diabetes, col="blue", border="red")
IFG Normal Yes
0.
6
0.
8
1.
0
1.
2
Phân bố whr theo nhóm diabetes (sắp xếp lại)
db$diabetes = factor(db$diabetes, levels=c("Normal", "IFG", "Yes"))
boxplot(db$whr ~ db$diabetes, col="blue", border="red")
Normal IFG Yes
0.
6
0.
8
1.
0
1.
2
Tương quan giữa whr và bmi
plot(db$whr ~ db$bmi, pch=16, col="blue")
abline(lm(db$whr ~ db$bmi), col="red")
15 20 25 30 35 40 45
0.
6
0.
8
1.
0
1.
2
db$bmi
db
$w
hr
Tương quan đa biến
library(psych)
# Chọn biến số từ db
vars = db[,c("age", "weight", "bmi", "waist", "hip", "whr")]
pairs.panels(vars)
age
40 60 80
-0.13 -0.05
60 80 100 120
0.19 -0.03
0.6 0.8 1.0 1.2
30
60
90
0.32
40
80
weight
0.84 0.74 0.74 0.38
bmi
0.71 0.72
15
30
45
0.37
60
90
12
0
waist
0.74 0.76
hip
60
10
00.13
30 50 70 90
0.
6
1.
0
15 25 35 45 60 80 100
whr
Tương quan đa biến
library(corrplot)
# tính hệ số tương quan
corr = cor(na.omit(vars))
corrplot(corr, method="circle")
-1
-0.8
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
0.8
1
ag
e
w
ei
gh
t
bm
i
w
ai
st
hi
p
w
hr
age
weight
bmi
waist
hip
whr
Package "DescTools"
Hàm R cho phân tích mô tả
• Package "DescTools" và "table1"
• Hàm chính: Desc
Desc(var ~ group, options)
• Hàm chính: table1
Desc(~var1 + var2 + var3 ~ group)
Mô tả biến waist (biến liên tục)
db = read.csv("~/Dropbox/_Conferences and Workshops/Dai hoc
Duoc 6-2019/Datasets/Diabetes data.csv")
Desc(db$waist)
> library(DescTools)
> Desc(db$waist)
----------------------------------------------------
db$waist (numeric)
length n NAs unique 0s mean meanCI
3'165 3'154 11 76 0 81.98 81.62
99.7% 0.3% 0.0% 82.35
.05 .10 .25 median .75 .90 .95
65.00 69.00 74.00 82.00 89.00 95.00 99.00
range sd vcoef mad IQR skew kurt
66.00 10.43 0.13 11.86 15.00 0.20 -0.08
lowest : 54.0 (2), 55.0, 56.0 (2), 57.0 (4), 58.0 (3)
highest: 116.0, 117.0, 118.0 (2), 119.0 (2), 120.0 (2)
0.000
0.005
0.010
0.015
0.020
0.025
0.030
0.035
50 60 70 80 90 100 110 120
.00
.25
.50
.75
1.00
db$waist (numeric)
Mô tả biến diabetes (biến phân nhóm)
Desc(db$diabetes)
> Desc(db$diabetes)
----------------------------------------------
db$diabetes (factor)
length n NAs unique levels dupes
3'165 3'165 0 3 3 y
100.0% 0.0%
level freq perc cumfreq cumperc
1 Normal 2'680 84.7% 2'680 84.7%
2 IFG 243 7.7% 2'923 92.4%
3 Yes 242 7.6% 3'165 100.0%
Yes
IFG
Normal
frequency
0 1000 2000 3000
percent
0.0 0.2 0.4 0.6 0.8 1.0
db$diabetes (factor)
Phân tích so sánh: biến liên tục (t-test)
> Desc(db$waist ~ db$gender)
db$waist ~ db$gender
Summary:
n pairs: 3'165, valid: 3'154 (99.7%),
missings: 11 (0.3%), groups: 2
Female Male
mean 80.105 86.017
median 79.000 87.000
sd 10.226 9.697
IQR 14.000 13.000
n 2'152 1'002
np 68.231% 31.769%
NAs 9 2
0s 0 0
Kruskal-Wallis rank sum test:
Kruskal-Wallis chi-squared = 240.82,
df = 1, p-value < 2.2e-16
> t.test(db$waist ~ db$gender)
Welch Two Sample t-test
data: db$waist by db$gender
t = -15.666, df = 2050.2, p-value <
2.2e-16
alternative hypothesis: true difference
in means is not equal to 0
95 percent confidence interval:
-6.652544 -5.172280
sample estimates:
mean in group Female mean in group
Male
80.10455
86.01697
Biến phân tích: Liên tục (waist)
Biến so sánh: Phân nhóm (gender)
Phương pháp: Kiểm định t (t-test)
Phân tích mô tả và so sánh: biến liên tục
> Desc(db$waist ~ db$diabetes)
--------------------------------------------------
db$waist ~ db$diabetes
Summary:
n pairs: 3'165, valid: 3'154 (99.7%), missings: 11
(0.3%), groups: 3
IFG Normal Yes
mean 84.936 81.557 83.743
median 85.000 81.000 83.000
sd 10.620 10.435 9.510
IQR 15.000 15.000 12.000
n 242 2'671 241
np 7.673% 84.686% 7.641%
NAs 1 9 1
0s 0 0 0
Kruskal-Wallis rank sum test:
Kruskal-Wallis chi-squared = 27.71, df = 2, p-
value = 9.614e-07
IFG Normal Yes
60
70
80
90
11
0
n=242 n=2671 n=241
81
.5
82
.5
83
.5
84
.5
IFG
Normal
Yes
x$g
means
db$waist ~ db$diabetes
Phân tích mô tả và so sánh: biến phân nhóm
> Desc(db$diabetes ~ db$gender)
--------------------------------------------------
db$diabetes ~ db$gender
Summary:
n: 3'165, rows: 3, columns: 2
Pearson's Chi-squared test:
X-squared = 9.1224, df = 2, p-value = 0.01045
db$gender
Female Male Sum
db$diabetes
IFG freq 157 86 243
perc 5.0% 2.7% 7.7%
p.row 64.6% 35.4% .
p.col 7.3% 8.6% .
Normal freq 1'857 823 2'680
perc 58.7% 26.0% 84.7%
p.row 69.3% 30.7% .
p.col 85.9% 82.0% .
Yes freq 147 95 242
perc 4.6% 3.0% 7.6%
p.row 60.7% 39.3% .
p.col 6.8% 9.5% .
Sum freq 2'161 1'004 3'165
perc 68.3% 31.7% 100.0%
p.row . . .
p.col . . .
Biến phân tích: Phân nhóm (diabetes)
Biến so sánh: Phân nhóm (gender)
Phương pháp: Kiểm định Ki bình phương
(Chi squared test)
Package "table1"
Package "table1"
• Có thể mô tả nhiều biến cùng một lúc
• Mô tả theo nhóm
• Hàm chính
table1(~var1 + var2 + var3 | group)
• Ví dụ
library(table1)
table1(~age + height + weight + waist + diabetes | gender,
data=db)
Phân tích mô tả
• Biểu đồ
– histogram, boxplot, scatterplot
• Chỉ số thống kê
– biến liên tục: trung bình, độ lệch chuẩn
– biến phân nhóm: tỉ lệ, độ lệch chuẩn
• So sánh giữa >2 nhóm
– biến liên tục: t-test (2 nhóm), Kruskal-Wallis (>2 nhóm)
– biến phân nhóm: Ki bình phương
Phân tích mô tả: R packages
• Biểu đồ
– hist, boxplot, plot, pairs.panels
• Chỉ số thống kê
– biến liên tục: Desc, table1
– biến phân nhóm: Desc, table1
• So sánh giữa >2 nhóm
– biến liên tục: Desc, t.test
– biến phân nhóm: Desc