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”
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 <- 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))
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)
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)
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
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.
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
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.
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.
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.
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.
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.
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ó:
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.
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.
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.
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.
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.
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.
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.
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ể.