setwd("H:/My Drive/03 WORKING/CAC DE TAI/01a TK su tro giup chuyen mon/05 Data [Help-seeking]")
dat2 <- read.csv("dat2.csv")

# KẾT QUẢ CHÍNH ####
# Bảng 3.1 Đđ nền ####
library(summarytools)
## Warning: package 'summarytools' was built under R version 4.4.3
lapply(dat2[c("gioi","ton_giao","school_year",
              "xep_loai","tai_chinh")], freq)
## Frequencies  
## dat2$gioi  
## Type: Character  
## 
##                            Freq   % Valid   % Valid Cum.   % Total   % Total Cum.
## ------------------------ ------ --------- -------------- --------- --------------
##       Không muốn trả lời      3      1.33           1.33      1.33           1.33
##                      Nam    100     44.44          45.78     44.44          45.78
##                       Nữ    122     54.22         100.00     54.22         100.00
##                     <NA>      0                               0.00         100.00
##                    Total    225    100.00         100.00    100.00         100.00
## 
## dat2$ton_giao  
## Type: Character  
## 
##                            Freq   % Valid   % Valid Cum.   % Total   % Total Cum.
## ------------------------ ------ --------- -------------- --------- --------------
##                  Cao Đài      2      0.89           0.89      0.89           0.89
##                Công giáo     21      9.33          10.22      9.33          10.22
##                 Không có    164     72.89          83.11     72.89          83.11
##       Không muốn trả lời      1      0.44          83.56      0.44          83.56
##                Phật giáo     36     16.00          99.56     16.00          99.56
##                 Tin Lành      1      0.44         100.00      0.44         100.00
##                     <NA>      0                               0.00         100.00
##                    Total    225    100.00         100.00    100.00         100.00
## 
## dat2$school_year  
## Type: Character  
## 
##                            Freq   % Valid   % Valid Cum.   % Total   % Total Cum.
## ------------------------ ------ --------- -------------- --------- --------------
##       Không muốn trả lời      1      0.44           0.44      0.44           0.44
##                    Năm 1     60     26.67          27.11     26.67          27.11
##                    Năm 2     44     19.56          46.67     19.56          46.67
##                    Năm 3     22      9.78          56.44      9.78          56.44
##                    Năm 4     21      9.33          65.78      9.33          65.78
##                    Năm 5     36     16.00          81.78     16.00          81.78
##                    Năm 6     41     18.22         100.00     18.22         100.00
##                     <NA>      0                               0.00         100.00
##                    Total    225    100.00         100.00    100.00         100.00
## 
## dat2$xep_loai  
## Type: Character  
## 
##                                 Freq   % Valid   % Valid Cum.   % Total   % Total Cum.
## ----------------------------- ------ --------- -------------- --------- --------------
##             Giỏi (8,0 - <9,0)     34     15.11          15.11     15.11          15.11
##              Khá (7,0 - <8,0)    117     52.00          67.11     52.00          67.11
##            Không muốn trả lời     28     12.44          79.56     12.44          79.56
##       Trung bình (5,0 - <7,0)     43     19.11          98.67     19.11          98.67
##          Xuất sắc (9,0 - 10đ)      2      0.89          99.56      0.89          99.56
##              Yếu (4,0 - <5,0)      1      0.44         100.00      0.44         100.00
##                          <NA>      0                               0.00         100.00
##                         Total    225    100.00         100.00    100.00         100.00
## 
## dat2$tai_chinh  
## Type: Character  
## 
##                            Freq   % Valid   % Valid Cum.   % Total   % Total Cum.
## ------------------------ ------ --------- -------------- --------- --------------
##                  Khá giả     11      4.89           4.89      4.89           4.89
##       Không muốn trả lời     12      5.33          10.22      5.33          10.22
##                    Thiếu     31     13.78          24.00     13.78          24.00
##                   Vừa đủ    171     76.00         100.00     76.00         100.00
##                     <NA>      0                               0.00         100.00
##                    Total    225    100.00         100.00    100.00         100.00
# Bảng 3.2: tỉ lệ D,A,S, tiền căn ####
lapply(dat2[c("dass_d_level_2", "dass_a_level_2", "dass_s_level_2", "sktt_tiencan", "sktt_2ws")], freq)
## Frequencies  
## dat2$dass_d_level_2  
## Type: Character  
## 
##               Freq   % Valid   % Valid Cum.   % Total   % Total Cum.
## ----------- ------ --------- -------------- --------- --------------
##          Có     78     34.67          34.67     34.67          34.67
##       Không    147     65.33         100.00     65.33         100.00
##        <NA>      0                               0.00         100.00
##       Total    225    100.00         100.00    100.00         100.00
## 
## dat2$dass_a_level_2  
## Type: Character  
## 
##               Freq   % Valid   % Valid Cum.   % Total   % Total Cum.
## ----------- ------ --------- -------------- --------- --------------
##          Có    110     48.89          48.89     48.89          48.89
##       Không    115     51.11         100.00     51.11         100.00
##        <NA>      0                               0.00         100.00
##       Total    225    100.00         100.00    100.00         100.00
## 
## dat2$dass_s_level_2  
## Type: Character  
## 
##               Freq   % Valid   % Valid Cum.   % Total   % Total Cum.
## ----------- ------ --------- -------------- --------- --------------
##          Có     77     34.22          34.22     34.22          34.22
##       Không    148     65.78         100.00     65.78         100.00
##        <NA>      0                               0.00         100.00
##       Total    225    100.00         100.00    100.00         100.00
## 
## dat2$sktt_tiencan  
## Type: Character  
## 
##               Freq   % Valid   % Valid Cum.   % Total   % Total Cum.
## ----------- ------ --------- -------------- --------- --------------
##          Có      8      3.56           3.56      3.56           3.56
##       Không    217     96.44         100.00     96.44         100.00
##        <NA>      0                               0.00         100.00
##       Total    225    100.00         100.00    100.00         100.00
## 
## dat2$sktt_2ws  
## Type: Character  
## 
##                   Freq   % Valid   % Valid Cum.   % Total   % Total Cum.
## --------------- ------ --------- -------------- --------- --------------
##       Chưa từng    150     66.67          66.67     66.67          66.67
##         Đã từng     75     33.33         100.00     33.33         100.00
##            <NA>      0                               0.00         100.00
##           Total    225    100.00         100.00    100.00         100.00
# Bảng 3.3 % chung cho 2 cái ####
for (i in c("AHSQ", "GHSQ")) {
  print(paste("Tần số của", i, "là:")); 
  print(table(dat2[[i]])) ;
  print(paste("% của", i, "là:"));
  print(round(prop.table(table(dat2[[i]]))*100,1))
}
## [1] "Tần số của AHSQ là:"
## 
##    Có AHSQ Không AHSQ 
##          1         74 
## [1] "% của AHSQ là:"
## 
##    Có AHSQ Không AHSQ 
##        1.3       98.7 
## [1] "Tần số của GHSQ là:"
## 
##    Có GHSQ Không GHSQ 
##         38        187 
## [1] "% của GHSQ là:"
## 
##    Có GHSQ Không GHSQ 
##       16.9       83.1
# Bảng 3.4: Đặc điểm GHSQ ####
## Mô tả tần số ####
lapply(dat2[c("c1_tongdai", "c2_BSTT", "c3_CGTL",
               "c4_bv", "c5_nguoithan", "c6_banbe",
               "c7_giaovien", "c8_banhoc", "c9_partner",
               "c10_banthan")], freq)
## Frequencies  
## dat2$c1_tongdai  
## Type: Character  
## 
##                           Freq   % Valid   % Valid Cum.   % Total   % Total Cum.
## ----------------------- ------ --------- -------------- --------- --------------
##       1 = Không bao giờ    161     71.56          71.56     71.56          71.56
##            2 = Hiếm khi     48     21.33          92.89     21.33          92.89
##        3 = Thỉnh thoảng     14      6.22          99.11      6.22          99.11
##        4 = Thường xuyên      2      0.89         100.00      0.89         100.00
##                    <NA>      0                               0.00         100.00
##                   Total    225    100.00         100.00    100.00         100.00
## 
## dat2$c2_BSTT  
## Type: Character  
## 
##                           Freq   % Valid   % Valid Cum.   % Total   % Total Cum.
## ----------------------- ------ --------- -------------- --------- --------------
##       1 = Không bao giờ    112     49.78          49.78     49.78          49.78
##            2 = Hiếm khi     53     23.56          73.33     23.56          73.33
##        3 = Thỉnh thoảng     37     16.44          89.78     16.44          89.78
##        4 = Thường xuyên     10      4.44          94.22      4.44          94.22
##           5 = Luôn luôn     13      5.78         100.00      5.78         100.00
##                    <NA>      0                               0.00         100.00
##                   Total    225    100.00         100.00    100.00         100.00
## 
## dat2$c3_CGTL  
## Type: Character  
## 
##                           Freq   % Valid   % Valid Cum.   % Total   % Total Cum.
## ----------------------- ------ --------- -------------- --------- --------------
##       1 = Không bao giờ    101     44.89          44.89     44.89          44.89
##            2 = Hiếm khi     48     21.33          66.22     21.33          66.22
##        3 = Thỉnh thoảng     49     21.78          88.00     21.78          88.00
##        4 = Thường xuyên     16      7.11          95.11      7.11          95.11
##           5 = Luôn luôn     11      4.89         100.00      4.89         100.00
##                    <NA>      0                               0.00         100.00
##                   Total    225    100.00         100.00    100.00         100.00
## 
## dat2$c4_bv  
## Type: Character  
## 
##                           Freq   % Valid   % Valid Cum.   % Total   % Total Cum.
## ----------------------- ------ --------- -------------- --------- --------------
##       1 = Không bao giờ    102     45.33          45.33     45.33          45.33
##            2 = Hiếm khi     52     23.11          68.44     23.11          68.44
##        3 = Thỉnh thoảng     47     20.89          89.33     20.89          89.33
##        4 = Thường xuyên     16      7.11          96.44      7.11          96.44
##           5 = Luôn luôn      8      3.56         100.00      3.56         100.00
##                    <NA>      0                               0.00         100.00
##                   Total    225    100.00         100.00    100.00         100.00
## 
## dat2$c5_nguoithan  
## Type: Character  
## 
##                           Freq   % Valid   % Valid Cum.   % Total   % Total Cum.
## ----------------------- ------ --------- -------------- --------- --------------
##       1 = Không bao giờ     42     18.67          18.67     18.67          18.67
##            2 = Hiếm khi     51     22.67          41.33     22.67          41.33
##        3 = Thỉnh thoảng     68     30.22          71.56     30.22          71.56
##        4 = Thường xuyên     42     18.67          90.22     18.67          90.22
##           5 = Luôn luôn     22      9.78         100.00      9.78         100.00
##                    <NA>      0                               0.00         100.00
##                   Total    225    100.00         100.00    100.00         100.00
## 
## dat2$c6_banbe  
## Type: Character  
## 
##                           Freq   % Valid   % Valid Cum.   % Total   % Total Cum.
## ----------------------- ------ --------- -------------- --------- --------------
##       1 = Không bao giờ     84     37.33          37.33     37.33          37.33
##            2 = Hiếm khi     54     24.00          61.33     24.00          61.33
##        3 = Thỉnh thoảng     55     24.44          85.78     24.44          85.78
##        4 = Thường xuyên     24     10.67          96.44     10.67          96.44
##           5 = Luôn luôn      8      3.56         100.00      3.56         100.00
##                    <NA>      0                               0.00         100.00
##                   Total    225    100.00         100.00    100.00         100.00
## 
## dat2$c7_giaovien  
## Type: Character  
## 
##                           Freq   % Valid   % Valid Cum.   % Total   % Total Cum.
## ----------------------- ------ --------- -------------- --------- --------------
##       1 = Không bao giờ    123     54.67          54.67     54.67          54.67
##            2 = Hiếm khi     62     27.56          82.22     27.56          82.22
##        3 = Thỉnh thoảng     30     13.33          95.56     13.33          95.56
##        4 = Thường xuyên      9      4.00          99.56      4.00          99.56
##           5 = Luôn luôn      1      0.44         100.00      0.44         100.00
##                    <NA>      0                               0.00         100.00
##                   Total    225    100.00         100.00    100.00         100.00
## 
## dat2$c8_banhoc  
## Type: Character  
## 
##                           Freq   % Valid   % Valid Cum.   % Total   % Total Cum.
## ----------------------- ------ --------- -------------- --------- --------------
##       1 = Không bao giờ     65     28.89          28.89     28.89          28.89
##            2 = Hiếm khi     69     30.67          59.56     30.67          59.56
##        3 = Thỉnh thoảng     65     28.89          88.44     28.89          88.44
##        4 = Thường xuyên     24     10.67          99.11     10.67          99.11
##           5 = Luôn luôn      2      0.89         100.00      0.89         100.00
##                    <NA>      0                               0.00         100.00
##                   Total    225    100.00         100.00    100.00         100.00
## 
## dat2$c9_partner  
## Type: Character  
## 
##                           Freq   % Valid   % Valid Cum.   % Total   % Total Cum.
## ----------------------- ------ --------- -------------- --------- --------------
##       1 = Không bao giờ     68     30.22          30.22     30.22          30.22
##            2 = Hiếm khi     35     15.56          45.78     15.56          45.78
##        3 = Thỉnh thoảng     43     19.11          64.89     19.11          64.89
##        4 = Thường xuyên     60     26.67          91.56     26.67          91.56
##           5 = Luôn luôn     19      8.44         100.00      8.44         100.00
##                    <NA>      0                               0.00         100.00
##                   Total    225    100.00         100.00    100.00         100.00
## 
## dat2$c10_banthan  
## Type: Character  
## 
##                           Freq   % Valid   % Valid Cum.   % Total   % Total Cum.
## ----------------------- ------ --------- -------------- --------- --------------
##       1 = Không bao giờ     30     13.33          13.33     13.33          13.33
##            2 = Hiếm khi     25     11.11          24.44     11.11          24.44
##        3 = Thỉnh thoảng     79     35.11          59.56     35.11          59.56
##        4 = Thường xuyên     57     25.33          84.89     25.33          84.89
##           5 = Luôn luôn     34     15.11         100.00     15.11         100.00
##                    <NA>      0                               0.00         100.00
##                   Total    225    100.00         100.00    100.00         100.00
## Vẽ hình ####
# Danh sách tên biến
nguon_GHSQ <- c("c1_tongdai", "c2_BSTT", "c3_CGTL", "c4_bv", "c5_nguoithan", 
                "c6_banbe", "c7_giaovien", "c8_banhoc", "c9_partner", "c10_banthan")

# Tính số lượng trả lời 4 hoặc 5 cho mỗi biến
nguon_GHSQ_yes <- sapply(dat2[nguon_GHSQ], function(x) {
  sum(x %in% c("4 = Thường xuyên", "5 = Luôn luôn"), na.rm = TRUE)
})
# Tổng số dòng hợp lệ cho mỗi biến (dùng để tính tỷ lệ %)
valid_n_GHSQ <- sapply(dat2[nguon_GHSQ], function(x) sum(!is.na(x)))

# Quy ra %
nguon_GHSQ_yes_percent <- round(nguon_GHSQ_yes / valid_n_GHSQ * 100, 1)  # làm tròn 1 chữ số thập phân

# Vẽ biểu đồ cột ngang
bar_GHSQ <- barplot(nguon_GHSQ_yes_percent,
                    horiz = TRUE,
                    las = 1, # Để nhãn biến nằm ngang
                    col = "coral",   # Màu cột
                    xlab = "Tỉ lệ tìm đến nguồn hỗ trợ (GHSQ)",
                    xlim = c(0, 50))  # ← chỉnh trục x từ 0 đến 50

# Thêm số vào cuối mỗi cột (phía bên phải)
bar_GHSQ <- text(x = nguon_GHSQ_yes_percent + 1,   # cộng thêm một chút để số không đè lên cột
     y = bar_GHSQ,                # vị trí y tương ứng với từng cột
     labels = paste0(nguon_GHSQ_yes_percent, "%"),  # hiển thị %
     cex = 0.8,                  # kích thước chữ
     adj = 0)                    # căn trái (sát bên phải của cột)

# Bảng 3.5: Đặc điểm AHSQ ####
## Mô tả tần số ####
lapply(dat2[c("b1_tongdai", "b2_BSTT", "b3_CGTL",
              "b4_bv", "b5_nguoithan", "b6_banbe",
              "b7_giaovien", "b8_banhoc", "b9_partner",
              "b10_banthan")], freq)
## Frequencies  
## dat2$b1_tongdai  
## Type: Character  
## 
##               Freq   % Valid   % Valid Cum.   % Total   % Total Cum.
## ----------- ------ --------- -------------- --------- --------------
##       Không     75    100.00         100.00     33.33          33.33
##        <NA>    150                              66.67         100.00
##       Total    225    100.00         100.00    100.00         100.00
## 
## dat2$b2_BSTT  
## Type: Character  
## 
##               Freq   % Valid   % Valid Cum.   % Total   % Total Cum.
## ----------- ------ --------- -------------- --------- --------------
##          Có      1      1.33           1.33      0.44           0.44
##       Không     74     98.67         100.00     32.89          33.33
##        <NA>    150                              66.67         100.00
##       Total    225    100.00         100.00    100.00         100.00
## 
## dat2$b3_CGTL  
## Type: Character  
## 
##               Freq   % Valid   % Valid Cum.   % Total   % Total Cum.
## ----------- ------ --------- -------------- --------- --------------
##       Không     75    100.00         100.00     33.33          33.33
##        <NA>    150                              66.67         100.00
##       Total    225    100.00         100.00    100.00         100.00
## 
## dat2$b4_bv  
## Type: Character  
## 
##               Freq   % Valid   % Valid Cum.   % Total   % Total Cum.
## ----------- ------ --------- -------------- --------- --------------
##          Có      1      1.33           1.33      0.44           0.44
##       Không     74     98.67         100.00     32.89          33.33
##        <NA>    150                              66.67         100.00
##       Total    225    100.00         100.00    100.00         100.00
## 
## dat2$b5_nguoithan  
## Type: Character  
## 
##               Freq   % Valid   % Valid Cum.   % Total   % Total Cum.
## ----------- ------ --------- -------------- --------- --------------
##          Có     19     25.33          25.33      8.44           8.44
##       Không     56     74.67         100.00     24.89          33.33
##        <NA>    150                              66.67         100.00
##       Total    225    100.00         100.00    100.00         100.00
## 
## dat2$b6_banbe  
## Type: Character  
## 
##               Freq   % Valid   % Valid Cum.   % Total   % Total Cum.
## ----------- ------ --------- -------------- --------- --------------
##          Có     18     24.00          24.00      8.00           8.00
##       Không     57     76.00         100.00     25.33          33.33
##        <NA>    150                              66.67         100.00
##       Total    225    100.00         100.00    100.00         100.00
## 
## dat2$b7_giaovien  
## Type: Character  
## 
##               Freq   % Valid   % Valid Cum.   % Total   % Total Cum.
## ----------- ------ --------- -------------- --------- --------------
##          Có      1      1.33           1.33      0.44           0.44
##       Không     74     98.67         100.00     32.89          33.33
##        <NA>    150                              66.67         100.00
##       Total    225    100.00         100.00    100.00         100.00
## 
## dat2$b8_banhoc  
## Type: Character  
## 
##               Freq   % Valid   % Valid Cum.   % Total   % Total Cum.
## ----------- ------ --------- -------------- --------- --------------
##          Có     19     25.33          25.33      8.44           8.44
##       Không     56     74.67         100.00     24.89          33.33
##        <NA>    150                              66.67         100.00
##       Total    225    100.00         100.00    100.00         100.00
## 
## dat2$b9_partner  
## Type: Character  
## 
##               Freq   % Valid   % Valid Cum.   % Total   % Total Cum.
## ----------- ------ --------- -------------- --------- --------------
##          Có     21     28.00          28.00      9.33           9.33
##       Không     54     72.00         100.00     24.00          33.33
##        <NA>    150                              66.67         100.00
##       Total    225    100.00         100.00    100.00         100.00
## 
## dat2$b10_banthan  
## Type: Character  
## 
##               Freq   % Valid   % Valid Cum.   % Total   % Total Cum.
## ----------- ------ --------- -------------- --------- --------------
##          Có     27     36.00          36.00     12.00          12.00
##       Không     48     64.00         100.00     21.33          33.33
##        <NA>    150                              66.67         100.00
##       Total    225    100.00         100.00    100.00         100.00
## Vẽ hình ####
# Danh sách tên biến
nguon_AHSQ <- c("b1_tongdai", "b2_BSTT", "b3_CGTL", "b4_bv", "b5_nguoithan", 
                "b6_banbe", "b7_giaovien", "b8_banhoc", "b9_partner", "b10_banthan")

# Tính số lượng "Yes" cho mỗi biến
nguon_AHSQ_yes <- sapply(dat2[nguon_AHSQ],
                         function(x)
                           sum(x == "Có", na.rm = TRUE))
# Quy ra %
valid_n_AHSQ <- as.data.frame(table(dat2$sktt_2ws))[2,2]
nguon_AHSQ_yes_percent <- round(nguon_AHSQ_yes / valid_n_AHSQ * 100, 1)  # làm tròn 1 chữ số thập phân

# Vẽ biểu đồ cột ngang
bar_AHSQ <- barplot(nguon_AHSQ_yes_percent,
                    horiz = TRUE,
                    las = 1, # Để nhãn biến nằm ngang
                    col = "steelblue",   # Màu cột
                    xlab = "Số người tìm đến nguồn hỗ trợ (AHSQ)",
                    xlim = c(0, 50))  # ← chỉnh trục x từ 0 đến 50
# Thêm số vào cuối mỗi cột (phía bên phải)
bar_AHSQ <- text(x = nguon_AHSQ_yes_percent + 1,   # cộng thêm một chút để số không đè lên cột
                 y = bar_AHSQ,                # vị trí y tương ứng với từng cột
                 labels = paste0(nguon_AHSQ_yes_percent, "%"),  # hiển thị % 
                 cex = 0.8,                  # kích thước chữ
                 adj = 0)                    # căn trái (sát bên phải của cột)

# Bảng 3.6: rào cản GHSQ ####
barrier_choices <- c("Sợ bị kì thị", 
                     "Sợ thông tin cá nhân không được bảo mật", 
                     "Khó khăn trong việc nhận diện các triệu chứng của các vấn đề sức khoẻ tâm thần",
                     "Không tin tưởng vào chuyên gia", 
                     "Cảm thấy bản thân tự giải quyết được", 
                     "Lo ngại về việc sắp xếp lịch trình", 
                     "Lo ngại về chi phí dịch vụ",
                     "Other")

barrier_names <- c("barrier1_kithi", "barrier2_baomat", "barrier3_nhandien", "barrier4_tintuong",
                   "barrier5_tugiaiquyet", "barrier6_xeplich", "barrier7_chiphi", "barrier8_khac")

for (i in barrier_names) {
  print(paste("Tần số của", i, "là:")); 
  print(table(dat2[[i]])) ;
  print(paste("% của", i, "là:"));
  print(round(prop.table(table(dat2[[i]]))*100,1))
}
## [1] "Tần số của barrier1_kithi là:"
## 
##   0   1 
## 178  47 
## [1] "% của barrier1_kithi là:"
## 
##    0    1 
## 79.1 20.9 
## [1] "Tần số của barrier2_baomat là:"
## 
##   0   1 
## 146  79 
## [1] "% của barrier2_baomat là:"
## 
##    0    1 
## 64.9 35.1 
## [1] "Tần số của barrier3_nhandien là:"
## 
##   0   1 
## 118 107 
## [1] "% của barrier3_nhandien là:"
## 
##    0    1 
## 52.4 47.6 
## [1] "Tần số của barrier4_tintuong là:"
## 
##   0   1 
## 209  16 
## [1] "% của barrier4_tintuong là:"
## 
##    0    1 
## 92.9  7.1 
## [1] "Tần số của barrier5_tugiaiquyet là:"
## 
##   0   1 
##  51 174 
## [1] "% của barrier5_tugiaiquyet là:"
## 
##    0    1 
## 22.7 77.3 
## [1] "Tần số của barrier6_xeplich là:"
## 
##   0   1 
## 150  75 
## [1] "% của barrier6_xeplich là:"
## 
##    0    1 
## 66.7 33.3 
## [1] "Tần số của barrier7_chiphi là:"
## 
##   0   1 
##  99 126 
## [1] "% của barrier7_chiphi là:"
## 
##  0  1 
## 44 56 
## [1] "Tần số của barrier8_khac là:"
## 
##   0 
## 225 
## [1] "% của barrier8_khac là:"
## 
##   0 
## 100
dat2$barrier_num <- dat2$barrier1_kithi + dat2$barrier2_baomat +
  dat2$barrier3_nhandien + dat2$barrier4_tintuong +
  dat2$barrier5_tugiaiquyet + dat2$barrier6_xeplich +
  dat2$barrier7_chiphi + dat2$barrier8_khac

table(dat2$barrier_num)
## 
##  0  1  2  3  4  5  6  7 
##  4 35 49 76 46 12  2  1
## Vẽ hình ####
# Danh sách tên biến: barrier_names (có rồi)
# Tính số lượng "Yes" cho mỗi biến
barrier_names_yes <- sapply(dat2[barrier_names], function(x) {
  sum(x == 1, na.rm = TRUE)
})

# Quy ra %
valid_n_barrier_names_yes <- dim(dat2)[1]
barrier_names_yes_percent <- round(barrier_names_yes / valid_n_barrier_names_yes* 100, 1)  # làm tròn 1 chữ số thập phân

# Vẽ biểu đồ cột ngang
bar_barrier <- barplot(barrier_names_yes_percent,
                    horiz = TRUE,
                    las = 1, # Để nhãn biến nằm ngang
                    col = "pink",   # Màu cột
                    xlab = "Tỉ lệ gặp rào cản",
                    xlim = c(0, 100))  # ← chỉnh trục x từ 0 đến 50
# Thêm số vào cuối mỗi cột (phía bên phải)
bar_barrier <- text(x = barrier_names_yes_percent + 1,   # cộng thêm một chút để số không đè lên cột
                 y = bar_barrier,                # vị trí y tương ứng với từng cột
                 labels = paste0(barrier_names_yes_percent, "%"),  # hiển thị % 
                 cex = 0.8,                  # kích thước chữ
                 adj = 0)                    # căn trái (sát bên phải của cột)

# Bảng 3.7: MLQ yếu tố cá nhân vs GHSQ ####
## GHSQ với giới, (Nam > Nữ) #### 
# Lọc dữ liệu
dat_filtered_gioi <- subset(dat2, gioi %in% c("Nam", "Nữ"))

gmodels::CrossTable(dat_filtered_gioi$gioi, dat_filtered_gioi$GHSQ,
                     prop.r = T, prop.c = F,
                     prop.t = F, prop.chisq = F,
                     expected = T, chisq = T, fisher = T)
## 
##  
##    Cell Contents
## |-------------------------|
## |                       N |
## |              Expected N |
## |           N / Row Total |
## |-------------------------|
## 
##  
## Total Observations in Table:  222 
## 
##  
##                        | dat_filtered_gioi$GHSQ 
## dat_filtered_gioi$gioi |    Có GHSQ | Không GHSQ |  Row Total | 
## -----------------------|------------|------------|------------|
##                    Nam |         26 |         74 |        100 | 
##                        |     17.117 |     82.883 |            | 
##                        |      0.260 |      0.740 |      0.450 | 
## -----------------------|------------|------------|------------|
##                     Nữ |         12 |        110 |        122 | 
##                        |     20.883 |    101.117 |            | 
##                        |      0.098 |      0.902 |      0.550 | 
## -----------------------|------------|------------|------------|
##           Column Total |         38 |        184 |        222 | 
## -----------------------|------------|------------|------------|
## 
##  
## Statistics for All Table Factors
## 
## 
## Pearson's Chi-squared test 
## ------------------------------------------------------------
## Chi^2 =  10.12058     d.f. =  1     p =  0.001466226 
## 
## Pearson's Chi-squared test with Yates' continuity correction 
## ------------------------------------------------------------
## Chi^2 =  9.013313     d.f. =  1     p =  0.002680201 
## 
##  
## Fisher's Exact Test for Count Data
## ------------------------------------------------------------
## Sample estimate odds ratio:  3.203458 
## 
## Alternative hypothesis: true odds ratio is not equal to 1
## p =  0.002080027 
## 95% confidence interval:  1.45295 7.436325 
## 
## Alternative hypothesis: true odds ratio is less than 1
## p =  0.9996293 
## 95% confidence interval:  0 6.529057 
## 
## Alternative hypothesis: true odds ratio is greater than 1
## p =  0.001315264 
## 95% confidence interval:  1.626772 Inf 
## 
## 
## 
## GHSQ với tôn giáo, (Không) #### 
# Tạo biến mới gộp nhóm
dat2$ton_giao_nhom <- ifelse(dat2$ton_giao %in% c("Không có"), 
                             "Không", 
                             "Có")
gmodels::CrossTable(dat2$ton_giao_nhom, dat2$GHSQ,
                    prop.r = T, prop.c = F,
                    prop.t = F, prop.chisq = F,
                    expected = T, chisq = T, fisher = T)
## 
##  
##    Cell Contents
## |-------------------------|
## |                       N |
## |              Expected N |
## |           N / Row Total |
## |-------------------------|
## 
##  
## Total Observations in Table:  225 
## 
##  
##                    | dat2$GHSQ 
## dat2$ton_giao_nhom |    Có GHSQ | Không GHSQ |  Row Total | 
## -------------------|------------|------------|------------|
##                 Có |          9 |         52 |         61 | 
##                    |     10.302 |     50.698 |            | 
##                    |      0.148 |      0.852 |      0.271 | 
## -------------------|------------|------------|------------|
##              Không |         29 |        135 |        164 | 
##                    |     27.698 |    136.302 |            | 
##                    |      0.177 |      0.823 |      0.729 | 
## -------------------|------------|------------|------------|
##       Column Total |         38 |        187 |        225 | 
## -------------------|------------|------------|------------|
## 
##  
## Statistics for All Table Factors
## 
## 
## Pearson's Chi-squared test 
## ------------------------------------------------------------
## Chi^2 =  0.2717183     d.f. =  1     p =  0.6021815 
## 
## Pearson's Chi-squared test with Yates' continuity correction 
## ------------------------------------------------------------
## Chi^2 =  0.1031188     d.f. =  1     p =  0.7481185 
## 
##  
## Fisher's Exact Test for Count Data
## ------------------------------------------------------------
## Sample estimate odds ratio:  0.8064207 
## 
## Alternative hypothesis: true odds ratio is not equal to 1
## p =  0.6918242 
## 95% confidence interval:  0.3138559 1.900426 
## 
## Alternative hypothesis: true odds ratio is less than 1
## p =  0.38136 
## 95% confidence interval:  0 1.686146 
## 
## Alternative hypothesis: true odds ratio is greater than 1
## p =  0.7613457 
## 95% confidence interval:  0.3638497 Inf 
## 
## 
## 
## GHSQ với school_year, (Không) #### 
dat_filtered_school_year <- subset(dat2, school_year != "Không muốn trả lời")
gmodels::CrossTable(dat_filtered_school_year$school_year, dat_filtered_school_year$GHSQ,
                    prop.r = T, prop.c = F,
                    prop.t = F, prop.chisq = F,
                    expected = T, chisq = T, fisher = T)
## Warning in chisq.test(t, correct = FALSE, ...): Chi-squared approximation may
## be incorrect
## 
##  
##    Cell Contents
## |-------------------------|
## |                       N |
## |              Expected N |
## |           N / Row Total |
## |-------------------------|
## 
##  
## Total Observations in Table:  224 
## 
##  
##                                      | dat_filtered_school_year$GHSQ 
## dat_filtered_school_year$school_year |    Có GHSQ | Không GHSQ |  Row Total | 
## -------------------------------------|------------|------------|------------|
##                                Năm 1 |          7 |         53 |         60 | 
##                                      |     10.179 |     49.821 |            | 
##                                      |      0.117 |      0.883 |      0.268 | 
## -------------------------------------|------------|------------|------------|
##                                Năm 2 |         10 |         34 |         44 | 
##                                      |      7.464 |     36.536 |            | 
##                                      |      0.227 |      0.773 |      0.196 | 
## -------------------------------------|------------|------------|------------|
##                                Năm 3 |          2 |         20 |         22 | 
##                                      |      3.732 |     18.268 |            | 
##                                      |      0.091 |      0.909 |      0.098 | 
## -------------------------------------|------------|------------|------------|
##                                Năm 4 |          1 |         20 |         21 | 
##                                      |      3.562 |     17.438 |            | 
##                                      |      0.048 |      0.952 |      0.094 | 
## -------------------------------------|------------|------------|------------|
##                                Năm 5 |          9 |         27 |         36 | 
##                                      |      6.107 |     29.893 |            | 
##                                      |      0.250 |      0.750 |      0.161 | 
## -------------------------------------|------------|------------|------------|
##                                Năm 6 |          9 |         32 |         41 | 
##                                      |      6.955 |     34.045 |            | 
##                                      |      0.220 |      0.780 |      0.183 | 
## -------------------------------------|------------|------------|------------|
##                         Column Total |         38 |        186 |        224 | 
## -------------------------------------|------------|------------|------------|
## 
##  
## Statistics for All Table Factors
## 
## 
## Pearson's Chi-squared test 
## ------------------------------------------------------------
## Chi^2 =  7.794831     d.f. =  5     p =  0.1679113 
## 
## 
##  
## Fisher's Exact Test for Count Data
## ------------------------------------------------------------
## Alternative hypothesis: two.sided
## p =  0.1737961 
## 
## 
## GHSQ với xếp_loại, (Không) #### 
dat_filtered_xep_loai <- subset(dat2, xep_loai != "Không muốn trả lời")
gmodels::CrossTable(dat_filtered_xep_loai$xep_loai, dat_filtered_xep_loai$GHSQ,
                    prop.r = T, prop.c = F,
                    prop.t = F, prop.chisq = F,
                    expected = T, chisq = T, fisher = T)
## Warning in chisq.test(t, correct = FALSE, ...): Chi-squared approximation may
## be incorrect
## 
##  
##    Cell Contents
## |-------------------------|
## |                       N |
## |              Expected N |
## |           N / Row Total |
## |-------------------------|
## 
##  
## Total Observations in Table:  197 
## 
##  
##                                | dat_filtered_xep_loai$GHSQ 
## dat_filtered_xep_loai$xep_loai |    Có GHSQ | Không GHSQ |  Row Total | 
## -------------------------------|------------|------------|------------|
##              Giỏi (8,0 - <9,0) |          6 |         28 |         34 | 
##                                |      6.386 |     27.614 |            | 
##                                |      0.176 |      0.824 |      0.173 | 
## -------------------------------|------------|------------|------------|
##               Khá (7,0 - <8,0) |         28 |         89 |        117 | 
##                                |     21.975 |     95.025 |            | 
##                                |      0.239 |      0.761 |      0.594 | 
## -------------------------------|------------|------------|------------|
##        Trung bình (5,0 - <7,0) |          3 |         40 |         43 | 
##                                |      8.076 |     34.924 |            | 
##                                |      0.070 |      0.930 |      0.218 | 
## -------------------------------|------------|------------|------------|
##           Xuất sắc (9,0 - 10đ) |          0 |          2 |          2 | 
##                                |      0.376 |      1.624 |            | 
##                                |      0.000 |      1.000 |      0.010 | 
## -------------------------------|------------|------------|------------|
##               Yếu (4,0 - <5,0) |          0 |          1 |          1 | 
##                                |      0.188 |      0.812 |            | 
##                                |      0.000 |      1.000 |      0.005 | 
## -------------------------------|------------|------------|------------|
##                   Column Total |         37 |        160 |        197 | 
## -------------------------------|------------|------------|------------|
## 
##  
## Statistics for All Table Factors
## 
## 
## Pearson's Chi-squared test 
## ------------------------------------------------------------
## Chi^2 =  6.684994     d.f. =  4     p =  0.1535011 
## 
## 
##  
## Fisher's Exact Test for Count Data
## ------------------------------------------------------------
## Alternative hypothesis: two.sided
## p =  0.1261532 
## 
## 
## GHSQ với tài chính, (Không) #### 
dat_filtered_tai_chinh <- subset(dat2, tai_chinh != "Không muốn trả lời")
gmodels::CrossTable(dat_filtered_tai_chinh$tai_chinh, dat_filtered_tai_chinh$GHSQ,
                    prop.r = T, prop.c = F,
                    prop.t = F, prop.chisq = F,
                    expected = T, chisq = T, fisher = T)
## Warning in chisq.test(t, correct = FALSE, ...): Chi-squared approximation may
## be incorrect
## 
##  
##    Cell Contents
## |-------------------------|
## |                       N |
## |              Expected N |
## |           N / Row Total |
## |-------------------------|
## 
##  
## Total Observations in Table:  213 
## 
##  
##                                  | dat_filtered_tai_chinh$GHSQ 
## dat_filtered_tai_chinh$tai_chinh |    Có GHSQ | Không GHSQ |  Row Total | 
## ---------------------------------|------------|------------|------------|
##                          Khá giả |          1 |         10 |         11 | 
##                                  |      1.962 |      9.038 |            | 
##                                  |      0.091 |      0.909 |      0.052 | 
## ---------------------------------|------------|------------|------------|
##                            Thiếu |          5 |         26 |         31 | 
##                                  |      5.531 |     25.469 |            | 
##                                  |      0.161 |      0.839 |      0.146 | 
## ---------------------------------|------------|------------|------------|
##                           Vừa đủ |         32 |        139 |        171 | 
##                                  |     30.507 |    140.493 |            | 
##                                  |      0.187 |      0.813 |      0.803 | 
## ---------------------------------|------------|------------|------------|
##                     Column Total |         38 |        175 |        213 | 
## ---------------------------------|------------|------------|------------|
## 
##  
## Statistics for All Table Factors
## 
## 
## Pearson's Chi-squared test 
## ------------------------------------------------------------
## Chi^2 =  0.7253724     d.f. =  2     p =  0.6958048 
## 
## 
##  
## Fisher's Exact Test for Count Data
## ------------------------------------------------------------
## Alternative hypothesis: two.sided
## p =  0.8806699 
## 
## 
# Bảng 3.8: MLQ tt SKTT vs GHSQ ####
## GHSQ với d_2, (Không > Có) #### 
gmodels::CrossTable(dat2$dass_d_level_2, dat2$GHSQ,
                    prop.r = T, prop.c = F,
                    prop.t = F, prop.chisq = F,
                    expected = T, chisq = T, fisher = T)
## 
##  
##    Cell Contents
## |-------------------------|
## |                       N |
## |              Expected N |
## |           N / Row Total |
## |-------------------------|
## 
##  
## Total Observations in Table:  225 
## 
##  
##                     | dat2$GHSQ 
## dat2$dass_d_level_2 |    Có GHSQ | Không GHSQ |  Row Total | 
## --------------------|------------|------------|------------|
##                  Có |          7 |         71 |         78 | 
##                     |     13.173 |     64.827 |            | 
##                     |      0.090 |      0.910 |      0.347 | 
## --------------------|------------|------------|------------|
##               Không |         31 |        116 |        147 | 
##                     |     24.827 |    122.173 |            | 
##                     |      0.211 |      0.789 |      0.653 | 
## --------------------|------------|------------|------------|
##        Column Total |         38 |        187 |        225 | 
## --------------------|------------|------------|------------|
## 
##  
## Statistics for All Table Factors
## 
## 
## Pearson's Chi-squared test 
## ------------------------------------------------------------
## Chi^2 =  5.327824     d.f. =  1     p =  0.02098757 
## 
## Pearson's Chi-squared test with Yates' continuity correction 
## ------------------------------------------------------------
## Chi^2 =  4.499736     d.f. =  1     p =  0.03390009 
## 
##  
## Fisher's Exact Test for Count Data
## ------------------------------------------------------------
## Sample estimate odds ratio:  0.3703861 
## 
## Alternative hypothesis: true odds ratio is not equal to 1
## p =  0.02440763 
## 95% confidence interval:  0.1305817 0.9166194 
## 
## Alternative hypothesis: true odds ratio is less than 1
## p =  0.01442138 
## 95% confidence interval:  0 0.810658 
## 
## Alternative hypothesis: true odds ratio is greater than 1
## p =  0.9953182 
## 95% confidence interval:  0.1542944 Inf 
## 
## 
## 
## GHSQ với a_2, (Không) #### 
gmodels::CrossTable(dat2$dass_a_level_2, dat2$GHSQ,
                    prop.r = T, prop.c = F,
                    prop.t = F, prop.chisq = F,
                    expected = T, chisq = T, fisher = T)
## 
##  
##    Cell Contents
## |-------------------------|
## |                       N |
## |              Expected N |
## |           N / Row Total |
## |-------------------------|
## 
##  
## Total Observations in Table:  225 
## 
##  
##                     | dat2$GHSQ 
## dat2$dass_a_level_2 |    Có GHSQ | Không GHSQ |  Row Total | 
## --------------------|------------|------------|------------|
##                  Có |         18 |         92 |        110 | 
##                     |     18.578 |     91.422 |            | 
##                     |      0.164 |      0.836 |      0.489 | 
## --------------------|------------|------------|------------|
##               Không |         20 |         95 |        115 | 
##                     |     19.422 |     95.578 |            | 
##                     |      0.174 |      0.826 |      0.511 | 
## --------------------|------------|------------|------------|
##        Column Total |         38 |        187 |        225 | 
## --------------------|------------|------------|------------|
## 
##  
## Statistics for All Table Factors
## 
## 
## Pearson's Chi-squared test 
## ------------------------------------------------------------
## Chi^2 =  0.04230128     d.f. =  1     p =  0.8370465 
## 
## Pearson's Chi-squared test with Yates' continuity correction 
## ------------------------------------------------------------
## Chi^2 =  0.0007665542     d.f. =  1     p =  0.977912 
## 
##  
## Fisher's Exact Test for Count Data
## ------------------------------------------------------------
## Sample estimate odds ratio:  0.9296718 
## 
## Alternative hypothesis: true odds ratio is not equal to 1
## p =  0.8605536 
## 95% confidence interval:  0.4332086 1.983051 
## 
## Alternative hypothesis: true odds ratio is less than 1
## p =  0.4893262 
## 95% confidence interval:  0 1.772187 
## 
## Alternative hypothesis: true odds ratio is greater than 1
## p =  0.6489076 
## 95% confidence interval:  0.4857049 Inf 
## 
## 
## 
## GHSQ với s_2, (Không) #### 
gmodels::CrossTable(dat2$dass_s_level_2, dat2$GHSQ,
                    prop.r = T, prop.c = F,
                    prop.t = F, prop.chisq = F,
                    expected = T, chisq = T, fisher = T)
## 
##  
##    Cell Contents
## |-------------------------|
## |                       N |
## |              Expected N |
## |           N / Row Total |
## |-------------------------|
## 
##  
## Total Observations in Table:  225 
## 
##  
##                     | dat2$GHSQ 
## dat2$dass_s_level_2 |    Có GHSQ | Không GHSQ |  Row Total | 
## --------------------|------------|------------|------------|
##                  Có |         11 |         66 |         77 | 
##                     |     13.004 |     63.996 |            | 
##                     |      0.143 |      0.857 |      0.342 | 
## --------------------|------------|------------|------------|
##               Không |         27 |        121 |        148 | 
##                     |     24.996 |    123.004 |            | 
##                     |      0.182 |      0.818 |      0.658 | 
## --------------------|------------|------------|------------|
##        Column Total |         38 |        187 |        225 | 
## --------------------|------------|------------|------------|
## 
##  
## Statistics for All Table Factors
## 
## 
## Pearson's Chi-squared test 
## ------------------------------------------------------------
## Chi^2 =  0.5651425     d.f. =  1     p =  0.4521956 
## 
## Pearson's Chi-squared test with Yates' continuity correction 
## ------------------------------------------------------------
## Chi^2 =  0.3183627     d.f. =  1     p =  0.5725932 
## 
##  
## Fisher's Exact Test for Count Data
## ------------------------------------------------------------
## Sample estimate odds ratio:  0.7478529 
## 
## Alternative hypothesis: true odds ratio is not equal to 1
## p =  0.5742227 
## 95% confidence interval:  0.3138929 1.678076 
## 
## Alternative hypothesis: true odds ratio is less than 1
## p =  0.2896587 
## 95% confidence interval:  0 1.49604 
## 
## Alternative hypothesis: true odds ratio is greater than 1
## p =  0.8257469 
## 95% confidence interval:  0.3591206 Inf 
## 
## 
## 
## GHSQ với sktt_2ws, (Chưa từng > Đã từng) #### 
gmodels::CrossTable(dat2$sktt_2ws, dat2$GHSQ,
                    prop.r = T, prop.c = F,
                    prop.t = F, prop.chisq = F,
                    expected = T, chisq = T, fisher = T)
## 
##  
##    Cell Contents
## |-------------------------|
## |                       N |
## |              Expected N |
## |           N / Row Total |
## |-------------------------|
## 
##  
## Total Observations in Table:  225 
## 
##  
##               | dat2$GHSQ 
## dat2$sktt_2ws |    Có GHSQ | Không GHSQ |  Row Total | 
## --------------|------------|------------|------------|
##     Chưa từng |         32 |        118 |        150 | 
##               |     25.333 |    124.667 |            | 
##               |      0.213 |      0.787 |      0.667 | 
## --------------|------------|------------|------------|
##       Đã từng |          6 |         69 |         75 | 
##               |     12.667 |     62.333 |            | 
##               |      0.080 |      0.920 |      0.333 | 
## --------------|------------|------------|------------|
##  Column Total |         38 |        187 |        225 | 
## --------------|------------|------------|------------|
## 
##  
## Statistics for All Table Factors
## 
## 
## Pearson's Chi-squared test 
## ------------------------------------------------------------
## Chi^2 =  6.332677     d.f. =  1     p =  0.01185333 
## 
## Pearson's Chi-squared test with Yates' continuity correction 
## ------------------------------------------------------------
## Chi^2 =  5.418396     d.f. =  1     p =  0.01992565 
## 
##  
## Fisher's Exact Test for Count Data
## ------------------------------------------------------------
## Sample estimate odds ratio:  3.104979 
## 
## Alternative hypothesis: true odds ratio is not equal to 1
## p =  0.0135017 
## 95% confidence interval:  1.19929 9.546723 
## 
## Alternative hypothesis: true odds ratio is less than 1
## p =  0.9977969 
## 95% confidence interval:  0 7.962894 
## 
## Alternative hypothesis: true odds ratio is greater than 1
## p =  0.007761101 
## 95% confidence interval:  1.361268 Inf 
## 
## 
## 
### trong nhóm có VĐSKTT_2ws ####

# Bảng 3.9: MLQ rào cản vs GHSQ ####


# Bảng 3.10: MLQ yếu tố cá nhân vs AHSQ ####

# Bảng 3.11: MLQ tt SKTT vs AHSQ ####

# Bảng 3.12: MLQ rào cản vs AHSQ ####