Phân tích bảng đơn, bảng đôi ( 2 by 2 table), Test Khi bình phương (Chi square test) trong R
Basic R - Phân tích bảng đơn, bảng đôi 2x2 trong R
Khuongcb
1. Chúng ta sẽ sử dụng bộ số liệu shapiro
làm ví dụ, bộ số liệu này bao gồm một số biến số
MI
Nhồi máu cơ tim, OC
Sử dụng thuốc tránh thai, SMOKE
Hút thuốc, AGEGROUP
Nhóm tuổi, AGEMID
Tuổi
shapiro
## # A tibble: 1,976 × 5
## MI OC SMOKE AGEGROUP AGEMID
## <dbl+lbl> <dbl+lbl> <dbl+lbl> <dbl> <dbl+lbl>
## 1 0 [No] 0 [No] 0 [None] 1 27 [25-29]
## 2 0 [No] 0 [No] 0 [None] 5 47 [45-49]
## 3 0 [No] 0 [No] 0 [None] 3 37 [35-39]
## 4 0 [No] 0 [No] 0 [None] 2 32 [30-34]
## 5 0 [No] 1 [Yes] 0 [None] 4 42 [40-44]
## 6 0 [No] 0 [No] 0 [None] 3 37 [35-39]
## 7 0 [No] 0 [No] 0 [None] 1 27 [25-29]
## 8 0 [No] 0 [No] 0 [None] 2 32 [30-34]
## 9 1 [Yes] 0 [No] 0 [None] 5 47 [45-49]
## 10 0 [No] 0 [No] 0 [None] 2 32 [30-34]
## # … with 1,966 more rows
2. Phân tích bảng đơn
Có nhiều cách để thực hiện, một cách khá gần gũi và giao diện
giống với một số phần mềm khác thì chúng ta có thể sử dụng package summarytools
Đầu tiên chúng ta load package này để sử dụng
library(summarytools)
Để phân tích mô tả đối với biến định tính thường chúng ta sẽ sử dụng bảng đơn. Chúng ta phân tích mô tả đối với biến MI
như sau:
attach(shapiro)
freq(MI)
## Frequencies
## MI
## Label: Myocardial infarction
## Type: Numeric
##
## Freq % Valid % Valid Cum. % Total % Total Cum.
## ----------- ------ --------- -------------- --------- --------------
## 0 1742 88.16 88.16 88.16 88.16
## 1 234 11.84 100.00 11.84 100.00
## <NA> 0 0.00 100.00
## Total 1976 100.00 100.00 100.00 100.00
3. Phân tích bảng đôi 2x2
Chúng ta muốn kiểm định giả thuyết về mối liên quan giữa việc sử dụng thuốc tránh thai (biến OC
) và nhồi máu cơ tim MI
ở đối tượng nghiên cứu.
Thường chúng ta sẽ phân tích và sử dụng Test Khi bình phương, hoặc một số test khác trong một số trường hợp đặc biệt
Chúng ta có thể thực hiện bằng lệnh CrossTable
như sau:
library(gmodels) #Package gmodels được sử dụng, nếu chưa cài đặt thìcần cài đặt trước với lệnh install.packages('gmodels')
attach(shapiro)
CrossTable(OC, MI, prop.r = TRUE,prop.c = FALSE, prop.t = FALSE,prop.chisq = FALSE, chisq = TRUE, fisher = TRUE)
##
##
## Cell Contents
## |-------------------------|
## | N |
## | N / Row Total |
## |-------------------------|
##
##
## Total Observations in Table: 1976
##
##
## | MI
## OC | 0 | 1 | Row Total |
## -------------|-----------|-----------|-----------|
## 0 | 1607 | 205 | 1812 |
## | 0.887 | 0.113 | 0.917 |
## -------------|-----------|-----------|-----------|
## 1 | 135 | 29 | 164 |
## | 0.823 | 0.177 | 0.083 |
## -------------|-----------|-----------|-----------|
## Column Total | 1742 | 234 | 1976 |
## -------------|-----------|-----------|-----------|
##
##
## Statistics for All Table Factors
##
##
## Pearson's Chi-squared test
## ------------------------------------------------------------
## Chi^2 = 5.844271 d.f. = 1 p = 0.01562785
##
## Pearson's Chi-squared test with Yates' continuity correction
## ------------------------------------------------------------
## Chi^2 = 5.250078 d.f. = 1 p = 0.02194579
##
##
## Fisher's Exact Test for Count Data
## ------------------------------------------------------------
## Sample estimate odds ratio: 1.683414
##
## Alternative hypothesis: true odds ratio is not equal to 1
## p = 0.02228029
## 95% confidence interval: 1.058305 2.605598
##
## Alternative hypothesis: true odds ratio is less than 1
## p = 0.9923676
## 95% confidence interval: 0 2.443704
##
## Alternative hypothesis: true odds ratio is greater than 1
## p = 0.01395443
## 95% confidence interval: 1.139463 Inf
##
##
##
Nhận xét
Đăng nhận xét