Bài tập 2

Phân công công việc

Ngọc Thịnh: ghép file dữ liệu (100%)

Khánh Huyền + Tố Nga + Thanh Thùy: xác định biến phụ thuộc, biến lõi và biến kiểm soát (100%)

Ngọc Trân: chạy mô hình (100%)

Quỳnh Như + Diễm Chi + Ngọc Thịnh: phân tích và bình luận mô hình (100%)

Đặt vấn đề

Vấn đề cần nghiên cứu là các nhân tố ảnh hưởng đến việc mua bảo hiểm y tế tự nguyện tại Việt Nam

Ghép file dữ liệu

Sau ghi ghép 2 file B26 VÀ B27 trên stata, được 1 file stata mới “Merge”

Tải dữ liệu

library(tidyverse)
── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
✔ dplyr     1.1.4     ✔ readr     2.1.5
✔ forcats   1.0.0     ✔ stringr   1.5.1
✔ ggplot2   3.5.1     ✔ tibble    3.2.1
✔ lubridate 1.9.3     ✔ tidyr     1.3.1
✔ purrr     1.0.2     
── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
✖ dplyr::filter() masks stats::filter()
✖ dplyr::lag()    masks stats::lag()
ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
Data <- haven::read_dta("C:/Users/DELL/Downloads/Merge.dta")
Data %>% variable.names()
  [1] "IDHO"          "MATINH"        "MAHUYEN"       "MAXA"         
  [5] "MADIABAN"      "TTNT"          "HOSO"          "GIOITINHCHUHO"
  [9] "DANTOCCHUHO"   "KYDIEUTRA"     "LOAIPHIEU"     "Q1B"          
 [13] "Q2A"           "Q2B"           "Q2C"           "Q2D"          
 [17] "Q2E"           "Q2F"           "Q3A"           "Q4A"          
 [21] "Q4B"           "Q4C"           "Q4D"           "Q4E"          
 [25] "TONGTHU"       "TONGCHI"       "THUNHAP"       "THUBQ"        
 [29] "TONGCHITIEU"   "TONGCHITIEUBQ" "SONHANKHAU"    "M2CT"         
 [33] "M2TN"          "M3A_C1"        "M3A_C10"       "M3A_C11"      
 [37] "M3A_C12"       "M3CT1"         "M3CT2"         "M3CT3"        
 [41] "M3CT"          "M3TN"          "M4ATN1"        "M4ATN2"       
 [45] "M4ATN3"        "M4ATN4"        "M4ATN5"        "M4ATN6"       
 [49] "M4ATN"         "M4B0_C1"       "M4B0TN"        "M4B1_C1A"     
 [53] "M4B1_C1B"      "M4B11T"        "M4B12T"        "M4B13T"       
 [57] "M4B14T"        "M4B15T"        "M4B1T2"        "M4B1T"        
 [61] "M4B1C"         "M4B2_C1A"      "M4B2_C1B"      "M4B2T2"       
 [65] "M4B21T"        "M4B22T"        "M4B21C"        "M4B22C"       
 [69] "M4B3_C1A"      "M4B3_C1B"      "M4B3T2"        "M4B3T"        
 [73] "M4B3C"         "M4B4_C1A"      "M4B4_C1B"      "M4B4T2"       
 [77] "M4B4T"         "M4B4C"         "M4B5_C1A"      "M4B5_C1B"     
 [81] "M4B5T2"        "M4B5T1"        "M4B5C"         "M4C_C1"       
 [85] "M4CTT"         "M4CT"          "M4CCT"         "M4CC"         
 [89] "M4D_01"        "M4D_02"        "M4D_03"        "M4D_04"       
 [93] "M4D_05"        "M4D_06"        "M4D_07"        "M4D_08"       
 [97] "M4D_09"        "M4D_10"        "M4D_11"        "M4D_12"       
[101] "N_M4D_12GHIRO" "M4DTN"         "M5A1CT"        "M5A1C4"       
[105] "M5A1C5"        "M5A2CT"        "M5A2C6"        "M5A2C7"       
[109] "M5A2C8"        "M5B1CT"        "M5B1C6"        "M5B1C7"       
[113] "M5B1C8"        "M5B2CT"        "M5B2C4"        "M5B2C5"       
[117] "M5B3CT"        "M6A_C7"        "M7_C1"         "M7_C2"        
[121] "M7_C3"         "M7_C4A"        "M7_C4AGHIRO"   "M7_C4B"       
[125] "M7_C4BGHIRO"   "M7_C4C"        "M7_C4CGHIRO"   "M7_C4D"       
[129] "M7_C5"         "M7_C6"         "M7_C7"         "M7_C8"        
[133] "M7_C8A"        "M7_C9"         "M7_C10"        "M7_C11"       
[137] "M7_C12"        "M7_C13"        "M7_C13GHIRO"   "M7_C13A"      
[141] "M7_C13AGHIRO"  "M7_C14"        "M7_C15"        "M7_C15GHIRO"  
[145] "M7_C16"        "M7_C16GHIRO"   "M7_C17"        "M7_C18"       
[149] "M7_C18GHIRO"   "M7_C19"        "M7_C20"        "M8_C1"        
[153] "M8_C201"       "M8_C202"       "M8_C203"       "M8_C204"      
[157] "M8_C205"       "M8_C206"       "M8_C207"       "M8_C208"      
[161] "M8_C209"       "M8_C210"       "M8_C210GHIRO"  "M8_C3"        
[165] "M8_C401"       "M8_C402"       "M8_C403"       "M8_C404"      
[169] "M8_C405"       "M8_C406"       "M8_C407"       "M8_C408"      
[173] "M8_C409"       "M8_C410"       "M8_C410GHIRO"  "M8_C5"        
[177] "M8_C601"       "M8_C602"       "M8_C603"       "M8_C604"      
[181] "M8_C605"       "M8_C605GHIRO"  "M8_C701"       "M8_C702"      
[185] "M8_C703"       "M8_C704"       "M8_C705"       "M8_C706"      
[189] "M8_C706GHIRO"  "M8_C707"       "M8_C801"       "M8_C802"      
[193] "M8_C803"       "M8_C804"       "M8_C805"       "M8_C805GHIRO" 
[197] "M8_C806"       "IDTV"          "STTTV"         "M1A_C2"       
[201] "M1A_C3"        "M1A_C4T"       "M1A_C4N"       "M1A_C5"       
[205] "M1A_C6"        "M1A_C7"        "M1A_C8"        "M1A_C9"       
[209] "M1A_C10"       "M1A_C11"       "M2_C1"         "M2_C2A"       
[213] "M2_C2B"        "M2_C3"         "M2_C4"         "M2_C5"        
[217] "M2_C6"         "M2_C7"         "M2_C7AHP"      "M2_C7ADG"     
[221] "M2_C7AHPGHIRO" "M2_C7ADGGHIRO" "M2_C7BHP"      "M2_C7BDG"     
[225] "M2_C8A"        "M2_C8B"        "M2_C8C"        "M2_C8D"       
[229] "M2_C8E"        "M2_C8F"        "M2_C8G"        "M2_C8H"       
[233] "M2_C8I"        "M2_C8K"        "M2_C9"         "M2_C10"       
[237] "M2_C11"        "M3A_C7"        "M3A_C8A"       "M3A_C8B"      
[241] "M3A_C9"        "M3B_C2"        "M3B_C3"        "M3B_C4D"      
[245] "M3B_C4M"       "M3B_C4Y"       "M3B_C5"        "M3B_C6"       
[249] "M3B_C7"        "M3B_C8"        "M3B_C8GHIRO"   "M4A_C1A"      
[253] "M4A_C1B"       "M4A_C1C"       "M4A_C2"        "M4A_C2A"      
[257] "M4A_C3MOTA"    "M4A_C3MA"      "M4A_C4"        "M4A_C5"       
[261] "M4A_C6A"       "M4A_C6B"       "M4A_C7"        "M4A_C8"       
[265] "M4A_C9MOTA"    "M4A_C9MA"      "M4A_C10"       "M4A_C11"      
[269] "M4A_C12A"      "M4A_C12B"      "M4A_C13"       "M4A_C14"      
[273] "M4A_C15"       "M4A_C16"       "M4A_C17"       "M4A_C18A"     
[277] "M4A_C18B"      "M4A_C18C"      "M4A_C18D"      "M4A_C18E"     
[281] "_merge"       

Thiết lập mô hình

  1. Biến phụ thuộc

Lọc dữ liệu từ 3 biến: M3A_C7 (Có thẻ bảo hiểm trong 12 tháng qua không), M3A_C8A (Loại thẻ thứ nhất) và M3A_C8B (Loại thẻ thứ hai). Từ đó, tạo ra biến phụ thuộc “BHYT TU NGUYEN”

  1. Biến giải thích

Biến lõi bao gồm 3 biến: M3A_C1 (có đến khám bệnh hoặc mời thầy thuốc không), M4A_C2 (Có đi làm không), M3CT (Chi tiêu dịch vụ y tế)

Biến kiểm soát gồm: M1A_C5 (Tuổi), M4ATN (Thu nhập), M1A_C2 (Giới tính), M1A-C7 (Hôn nhân), Trình độ học vấn (M2_C2A)

Đổi tên cột các biến giải thích:

health check: có đến khám bệnh hoặc mời thầy thuốc không (M3A_C1)

medical spending: chi tiêu dịch vụ y tế (M3CT)

employment: có đi làm không (M4A_C2)

age: tuổi (M1A_C5)

gender: giới tính (M1A_C2)

income: thu nhập (M4ATN)

married: hôn nhân (M1A_C7)

edu: trình độ học vấn (M2_C2A)

Data <- Data %>% rename(`health check`= M3A_C1,
                        `medical spending`= M3CT,
                        `employment`=M4A_C2,
                        `age`= M1A_C5,
                        `gender`= M1A_C2,
                        `income`= M4ATN,
                        `married`= M1A_C7,
                        `edu`= M2_C2A)

Tạo biến phụ thuộc

Thay tất cả các giá trị NA còn thiếu trong cột M3A_C8B thành 0

Data$M3A_C8B[is.na(Data$M3A_C8B)] <- 0

Đầu tiên, kiểm tra giá trị cột M3A_C7 có bằng 1 không. Sau đó, Kiểm tra 1 trong 2 cột M3A_C8A và M3A_C8B có giá trị 8 và 9 không. Từ đó, gán giá trị 1 nếu điều kiện đúng (có giá trị 8 và 9), ngược lại gán giá trị 0

Data$`BHYT TU NGUYEN` <- ifelse(Data$M3A_C7 == 1 & (Data$M3A_C8A %in% c(8, 9) | Data$M3A_C8B %in% c(8, 9)), 1, 0)

Lọc dữ liệu

Data <- Data[complete.cases(Data[, c("BHYT TU NGUYEN","health check", "medical spending", "income", "employment", "age", "married", "gender", "edu")]), ]

Xem bảng tỷ lệ của biến phụ thuộc

Data %>%
  select(`BHYT TU NGUYEN`) %>%
  table() %>%
  prop.table() %>%
  round(digits = 3)*100
BHYT TU NGUYEN
   0    1 
54.8 45.2 

Các mô hình

Khai báo biến định tính

Data %>%
  mutate(`BHYT TU NGUYEN`= as.factor(`BHYT TU NGUYEN`),
         `health check`= as.factor(`health check`),
         employment= as.factor(employment),
         age= as.factor(age),
         married= as.factor(married),
         gender= as.factor(gender),
         edu= as.factor(edu))
# A tibble: 26,060 × 282
   IDHO      MATINH MAHUYEN MAXA  MADIABAN  TTNT HOSO  GIOITINHCHUHO DANTOCCHUHO
   <chr>     <chr>  <chr>   <chr> <chr>    <dbl> <chr>         <dbl>       <dbl>
 1 00001037… 1      1       1     37           1 8                 1           1
 2 00001037… 1      1       1     37           1 15                1           1
 3 00004004… 1      1       4     4            1 3                 1           1
 4 00004004… 1      1       4     4            1 7                 1           1
 5 00004004… 1      1       4     4            1 12                2           1
 6 00006008… 1      1       6     8            1 8                 2           1
 7 00006008… 1      1       6     8            1 13                2           1
 8 00008007… 1      1       8     7            1 12                1           1
 9 00008007… 1      1       8     7            1 13                1           1
10 00008007… 1      1       8     7            1 14                1           1
# ℹ 26,050 more rows
# ℹ 273 more variables: KYDIEUTRA <dbl>, LOAIPHIEU <dbl>, Q1B <dbl>, Q2A <dbl>,
#   Q2B <dbl>, Q2C <dbl>, Q2D <dbl>, Q2E <dbl>, Q2F <dbl>, Q3A <dbl>,
#   Q4A <dbl>, Q4B <dbl>, Q4C <dbl>, Q4D <dbl>, Q4E <dbl>, TONGTHU <dbl>,
#   TONGCHI <dbl>, THUNHAP <dbl>, THUBQ <dbl>, TONGCHITIEU <dbl>,
#   TONGCHITIEUBQ <dbl>, SONHANKHAU <dbl>, M2CT <dbl>, M2TN <dbl>,
#   `health check` <fct>, M3A_C10 <dbl>, M3A_C11 <dbl>, M3A_C12 <dbl>, …

Xây dựng mô hình 0: mô hình với các biến lõi, mô hình 1: thêm vào các biến kiểm soát

1.Mô hình 0

logit0 <- glm(`BHYT TU NGUYEN` ~ `employment` + `health check` + `medical spending`, family = binomial(link = "logit"), data = Data)
probit0<- glm(`BHYT TU NGUYEN`~ `employment` + `health check` + `medical spending`, family=binomial(link="probit"), data = Data)
  1. Mô hình 1
logit1<- glm(`BHYT TU NGUYEN`~  `employment` + `health check` + `medical spending` + `gender` + `income` + `age` + `married` + `edu`, family=binomial(link="logit"), data = Data)
probit1<- glm(`BHYT TU NGUYEN`~ `employment` + `health check` + `medical spending` + `gender` + `income` + `age` + `married` + `edu`, family=binomial(link="probit"), data = Data)
Warning: glm.fit: algorithm did not converge

Mô hình probit1 lỗi nên ta loại

So sánh 3 mô hình còn lại

models <- list(logit0, logit1, probit0)
modelsummary::modelsummary(models, 
                           statistic = c('{statistic} {stars}'))
(1) (2) (3)
(Intercept) -0.858 0.477 -0.530
-15.288 *** 5.625 *** -15.233 ***
employment 0.687 0.538 0.430
24.218 *** 17.818 *** 24.320 ***
health check -0.146 -0.165 -0.094
-5.604 *** -6.177 *** -5.844 ***
medical spending 0.000 0.000 0.000
2.843 ** 4.694 *** 2.307 *
gender 0.099
3.771 ***
income 0.000
-10.691 ***
age -0.010
-11.851 ***
married -0.195
-7.655 ***
edu -0.149
-19.066 ***
Num.Obs. 26060 26060 26060
AIC 35240.1 34207.0 35241.8
BIC 35272.8 34280.5 35274.5
Log.Lik. -17616.046 -17094.477 -17616.924
F 214.338 190.075 215.441
RMSE 0.49 0.48 0.49

Ta chọn mô hình logit1, vì có AIC, BIC và RMSE thấp nhất trong 3 mô hình

Ước lượng mô hình

summary(logit1)

Call:
glm(formula = `BHYT TU NGUYEN` ~ employment + `health check` + 
    `medical spending` + gender + income + age + married + edu, 
    family = binomial(link = "logit"), data = Data)

Coefficients:
                     Estimate Std. Error z value Pr(>|z|)    
(Intercept)         4.768e-01  8.477e-02   5.625 1.85e-08 ***
employment          5.380e-01  3.020e-02  17.818  < 2e-16 ***
`health check`     -1.652e-01  2.674e-02  -6.177 6.54e-10 ***
`medical spending`  4.825e-06  1.028e-06   4.694 2.68e-06 ***
gender              9.871e-02  2.618e-02   3.771 0.000163 ***
income             -1.206e-06  1.128e-07 -10.691  < 2e-16 ***
age                -1.040e-02  8.776e-04 -11.851  < 2e-16 ***
married            -1.953e-01  2.551e-02  -7.655 1.93e-14 ***
edu                -1.486e-01  7.796e-03 -19.066  < 2e-16 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

(Dispersion parameter for binomial family taken to be 1)

    Null deviance: 35890  on 26059  degrees of freedom
Residual deviance: 34189  on 26051  degrees of freedom
AIC: 34207

Number of Fisher Scoring iterations: 4

Ta thấy, tất cả các biến trong mô hình đều có ý nghĩa thống kê (p < 0.001). Trong đó:

  1. Employment (β = 0.5380, p < 2e-16): Có tác động dương đến khả năng tham gia BHYT tự nguyện.

  2. Health Check (β = -0.1652, p = 6.54e-10): Có tác động âm đến khả năng tham gia BHYT tự nguyện.

  3. Medical Spending (β = 4.825e-06, p = 2.68e-06): Có tác động dương đến khả năng tham gia BHYT tự nguyện.

  4. Gender (β = 0.09871, p = 0.000163): Có tác động dương đến khả năng tham gia BHYT tự nguyện.

  5. Income (β = -1.206e-06, p < 2e-16): Có tác động âm đến khả năng tham gia BHYT tự nguyện.

  6. Age (β = -0.01040, p < 2e-16): Có tác động âm đến khả năng tham gia BHYT tự nguyện.

  7. Married (β = -0.1953, p = 1.93e-14): Có tác động âm đến khả năng tham gia BHYT tự nguyện.

  8. Edu (β = -0.1486, p < 2e-16): Có tác động âm đến khả năng tham gia BHYT tự nguyện.

Chỉ số OR

cbind(Estimate=round(coef(logit1),3),
OR=round(exp(coef(logit1)),3))
                   Estimate    OR
(Intercept)           0.477 1.611
employment            0.538 1.713
`health check`       -0.165 0.848
`medical spending`    0.000 1.000
gender                0.099 1.104
income                0.000 1.000
age                  -0.010 0.990
married              -0.195 0.823
edu                  -0.149 0.862
  1. Employment (OR = 1.713): Người không đi làm có khả năng tham gia BHYT tự nguyện cao hơn 71.3% so với người có đi làm trong điều kiện các biến khác không đổi. Người đi làm có thể đã được bao phủ bởi bảo hiểm y tế bắt buộc hoặc bảo hiểm từ công ty, nên ít có nhu cầu tham gia BHYT tự nguyện hơn.

  2. Health Check (OR = 0.848): Người không đi khám sức khỏe có khả năng tham gia BHYT tự nguyện thấp hơn 15.2% so với người có đi khám sức khỏe trong điều kiện các biến khác không đổi. Người đi khám sức khỏe có thể có ý thức cao hơn về việc chăm sóc sức khỏe và phòng ngừa rủi ro, do đó họ cũng có xu hướng tham gia BHYT tự nguyện nhiều hơn

  3. Medical Spending (OR = 1.000): Chi tiêu y tế có ảnh hưởng rất nhỏ, gần như không đáng kể đến việc tham gia BHYT tự nguyện trong điều kiện các biến khác không đổi. Điều này có thể do các chi phí y tế đã được bao gồm trong các hình thức bảo hiểm khác hoặc được chi trả bởi nhà nước.

  4. Gender (OR = 1.104): Phụ nữ có khả năng tham gia BHYT tự nguyện cao hơn nam giới 10.4% trong điều kiện các biến khác không đổi.Phụ nữ có thể quan tâm đến sức khỏe và phòng ngừa rủi ro nhiều hơn, hoặc có thể có những đặc điểm về công việc và vai trò gia đình khiến họ có xu hướng tham gia BHYT tự nguyện nhiều hơn.

  5. Income (OR=1.000): Thu nhập không ảnh hưởng đến khả năng tham gia BHYT tự nguyện trong điều kiện các biến khác không đổi.

  6. Age (OR=0.99): Mỗi năm tuổi tăng lên, khả năng tham gia BHYT tự nguyện giảm đi 1% trong điều kiện các biến khác không đổi. Điều này có thể do người trẻ tuổi hơn có xu hướng quan tâm đến bảo hiểm nhiều hơn, hoặc người lớn tuổi đã có các hình thức bảo hiểm khác.

  7. Married (OR=0.823): Người đã kết hôn có khả năng tham gia BHYT tự nguyện thấp hơn 17.7% so với người độc thân trong điều kiện các biến khác không đổi. Điều này có thể do các cặp vợ chồng đã có bảo hiểm từ công việc hoặc các nguồn khác.

  8. Edu (OR=0.862): Mỗi cấp độ giáo dục tăng lên, khả năng tham gia BHYT tự nguyện giảm 13.8% trong điều kiện các biến khác không đổi. Người có trình độ học vấn cao hơn có thể đã có bảo hiểm từ công việc hoặc có khả năng tài chính tốt hơn để tự chi trả chi phí y tế.

Đánh giá ảnh hưởng biên

mfx::logitmfx(`BHYT TU NGUYEN`~  `employment` + `health check` + `medical spending` + `gender` + `income` + `age` + `married` + `edu`, data = Data)
Call:
mfx::logitmfx(formula = `BHYT TU NGUYEN` ~ employment + `health check` + 
    `medical spending` + gender + income + age + married + edu, 
    data = Data)

Marginal Effects:
                         dF/dx   Std. Err.        z     P>|z|    
employment          1.3348e-01  7.4404e-03  17.9407 < 2.2e-16 ***
`health check`     -4.0856e-02  6.6093e-03  -6.1816 6.345e-10 ***
`medical spending`  1.1936e-06  2.5432e-07   4.6934 2.688e-06 ***
gender              2.4413e-02  6.4709e-03   3.7728 0.0001614 ***
income             -2.9829e-07  2.7888e-08 -10.6958 < 2.2e-16 ***
age                -2.5733e-03  2.1717e-04 -11.8495 < 2.2e-16 ***
married            -4.8309e-02  6.3102e-03  -7.6556 1.924e-14 ***
edu                -3.6773e-02  1.9266e-03 -19.0867 < 2.2e-16 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

dF/dx is for discrete change for the following variables:

[1] "employment"     "`health check`" "gender"        

Theo bảng ảnh hưởng biên, ta có:

  1. Employment(1.3348e-01): Xác suất mua BHYT tự nguyện của người không đi làm cao hơn 13.35% so với người có việc làm, khi giữ tất cả các yếu tố khác không đổi.

  2. Health check(-4.0856e-02): Xác suất mua BHYT tự nguyện của người có đi khám sức khỏe cao hơn 4.09% so với người không đi khám, khi giữ tất cả các yếu tố khác không đổi.

  3. Medical spending (1.1936e-06): Khi chi tiêu y tế tăng thêm 1 đơn vị, xác suất mua BHYT tự nguyện tăng lên 0.00012%, giữ các yếu tố khác không đổi.

  4. Gender (2.4413e-02): xác suất mua BHYT tự nguyện của phụ nữ cao hơn nam giới 2.44%, khi giữ tất cả các yếu tố khác không đổi.

  5. Income (-2.9829e-07): Khi thu nhập tăng thêm 1 đơn vị, xác suất mua BHYT tự nguyện giảm 0.00003%, giữ các yếu tố khác không đổi.

  6. Age (-2.5733e-03): Khi tuổi tăng thêm 1 năm, xác suất mua BHYT tự nguyện giảm 0.26%, giữ các yếu tố khác không đổi.

  7. Married(-4.8309e-02): Người đã kết hôn có xác suất mua BHYT tự nguyện thấp hơn người chưa kết hôn 4.83%, giữ các yếu tố khác không đổi.

  8. Edu(-3.6773e-02): Khi trình độ học vấn tăng thêm 1 bậc, xác suất mua BHYT tự nguyện giảm 3.68%, giữ các yếu tố khác không đổi.

Xem xét khả năng dự báo của mô hình

library(caret)
Loading required package: lattice

Attaching package: 'caret'
The following object is masked from 'package:purrr':

    lift
predictions <- predict(logit1, newdata = Data, type = "response")
predicted_classes <- ifelse(predictions > 0.5, 1, 0)
conf_matrix <- confusionMatrix(factor(predicted_classes), factor(Data$`BHYT TU NGUYEN`))
print(conf_matrix)
Confusion Matrix and Statistics

          Reference
Prediction     0     1
         0 10920  7300
         1  3352  4488
                                          
               Accuracy : 0.5913          
                 95% CI : (0.5853, 0.5972)
    No Information Rate : 0.5477          
    P-Value [Acc > NIR] : < 2.2e-16       
                                          
                  Kappa : 0.1502          
                                          
 Mcnemar's Test P-Value : < 2.2e-16       
                                          
            Sensitivity : 0.7651          
            Specificity : 0.3807          
         Pos Pred Value : 0.5993          
         Neg Pred Value : 0.5724          
             Prevalence : 0.5477          
         Detection Rate : 0.4190          
   Detection Prevalence : 0.6992          
      Balanced Accuracy : 0.5729          
                                          
       'Positive' Class : 0               
                                          

Ta thấy: 10920: Số trường hợp mà mô hình dự đoán class 0 (không tham gia bảo hiểm) và thực tế cũng là class 0 (dự đoán đúng).

7300: Số trường hợp mô hình dự đoán class 0 (không tham gia bảo hiểm) nhưng thực tế là class 1 (dự đoán sai).

3352: Số trường hợp mô hình dự đoán class 1 (có tham gia bảo hiểm) nhưng thực tế là class 0 (dự đoán sai).

4488: Số trường hợp mô hình dự đoán class 1 (có tham gia bảo hiểm) và thực tế cũng là class 1 (dự đoán đúng).

Mô hình dự đoán đúng trong 59.13% trường hợp, cao hơn một chút so với tỷ lệ không mua BHYT tự nguyện (54.8%).

Khoảng tin cậy 95%: (0.5853, 0.5972), cho thấy độ chính xác khá ổn định.

Sensitivity cho class 0: 0.7651 (76.51%) Trong tất cả những người thực tế không tham gia bảo hiểm (class 0), mô hình dự đoán đúng 76.51% trường hợp.

Specificity cho class 1: 0.3807 (38.07%) trong tất cả những người thực tế có tham gia bảo hiểm (class 1), mô hình chỉ dự đoán đúng 38.07%.

Positive Predictive Value cho class 0: 0.5993 (59.93%) Khi mô hình dự đoán một người không tham gia BHYT tự nguyện, nó đúng 59.93% trường hợp.

Negative Predictive Value cho class 1: 0.5724 (57.24%) Khi mô hình dự đoán một người tham gia BHYT tự nguyện, nó đúng 57.24% trường hợp.

=> Qua đây, ta thấy được mô hình này có khả năng dự đoán tốt hơn so với việc đoán ngẫu nhiên. Trong đó, vệc làm có ảnh hưởng mạnh nhất, với người không đi làm có khả năng tham gia BHYT tự nguyện cao hơn đáng kể. Các yếu tố như tình trạng hôn nhân, trình độ học vấn, và tuổi tác có tác động tiêu cực đến việc tham gia BHYT tự nguyện. Giới tính và việc khám sức khỏe định kỳ cũng có ảnh hưởng, nhưng ít mạnh hơn. Thu nhập và chi tiêu y tế có ảnh hưởng rất nhỏ hoặc không đáng kể.