library(AER)
library(DT)
library(dplyr)
library(DescTools)
library(epitools)
library(scales)
library(ggplot2)
data("NMES1988")
t <- NMES1988
Mục đích: Dùng biến hospital và insurance để nghiên cứu sự tương tác hoặc mối quan hệ giữa việc sử dụng dịch vụ y tế (đo bằng số lần nhập viện) và tình trạng bảo hiểm y tế của người dân vào năm 1988.
Phân tích: Có thể phân tích xem những người có bảo hiểm có xu hướng sử dụng dịch vụ y tế (nhập viện) như thế nào so với những người không có bảo hiểm.
# Bảng tần số của hospital và insurance:
t$hospital1 <- cut(t$hospital, breaks = c(-0.5,2.5,9), labels = c("it","nhieu"))
table(t$hospital1, t$insurance)
##
## no yes
## it 964 3352
## nhieu 21 69
# Tỉ lệ phần trăm của bảng tần số:
round((table(t$hospital1,t$insurance)/sum(table(t$hospital,t$insurance)))*100, 2)
##
## no yes
## it 21.88 76.08
## nhieu 0.48 1.57
# Bảng tần số với tổng cộng:
addmargins(table(t$hospital1,t$insurance))
##
## no yes Sum
## it 964 3352 4316
## nhieu 21 69 90
## Sum 985 3421 4406
# Trực quan hóa dữ liệu
t %>% ggplot(aes(x = hospital1, y = after_stat(count), fill = insurance)) +
geom_bar(position = "dodge", color = "black") +
geom_text(aes(label = after_stat(count)), stat = 'count', color = 'black', vjust = -0.25, position = position_dodge(width = 0.9)) +
theme_classic() +
labs(x = "Tần suất nhập viện",
y = "Số lượng",
title = "Tần suất nhập viện với bảo hiểm Medicaid") +
scale_fill_manual(values = c("no" = "lightblue", "yes" = "lightgreen"))
Nhận xét:
Nhận xét về sự phân tích mối quan hệ giữa biến sở hữu bảo hiểm tư nhân (insurance) và số lần nhập viện (hospital) Phân bố số lần nhập viện theo tình trạng bảo hiểm:
Nhóm ít lần nhập viện (“it”):
Có 964 người không có bảo hiểm y tế tư nhân, chiếm 21.88% tổng số người trong tập dữ liệu.
Có 3352 người có bảo hiểm y tế tư nhân, chiếm 76.08% tổng số người trong tập dữ liệu.
Nhóm nhiều lần nhập viện (“nhieu”):
Tổng cộng có 985 người không có bảo hiểm y tế tư nhân, chiếm 22.35% tổng số người trong tập dữ liệu.
Tổng cộng có 3421 người có bảo hiểm y tế tư nhân, chiếm 77.65% tổng số người trong tập dữ liệu.
\(\to\) Kết luận:
Bảo hiểm y tế tư nhân và số lần nhập viện:
Tỷ lệ người có bảo hiểm y tế tư nhân nhập viện nhiều lần (nhóm “nhieu”) là 69 người, trong khi tỷ lệ người không có bảo hiểm tư nhân nhập viện nhiều lần là 21 người.
Điều này cho thấy rằng những người có bảo hiểm y tế tư nhân có xu hướng sử dụng dịch vụ y tế nhiều hơn so với những người không có bảo hiểm.
Sự chênh lệch rõ ràng:
Số lượng người có bảo hiểm y tế tư nhân nhiều hơn hẳn so với số người không có bảo hiểm, chiếm gần 78% tổng số mẫu.
Chênh lệch này có thể phản ánh một phần sự phổ biến của bảo hiểm y tế tư nhân vào năm 1988, hoặc có thể liên quan đến các yếu tố kinh tế-xã hội khác chưa được phân tích ở đây.
# Tính chỉ số liên quan đến rủi ro (Relative Risk và Risk Ratio)
th2 <- table(t$hospital1,t$insurance)
RelRisk(th2)
## [1] 0.9572355
riskratio(th2, rev = 'b')
## $data
##
## yes no Total
## nhieu 69 21 90
## it 3352 964 4316
## Total 3421 985 4406
##
## $measure
## risk ratio with 95% C.I.
## estimate lower upper
## nhieu 1.0000000 NA NA
## it 0.9572355 0.655533 1.397794
##
## $p.value
## two-sided
## midp.exact fisher.exact chi.square
## nhieu NA NA NA
## it 0.8073139 0.7989323 0.8220732
##
## $correction
## [1] FALSE
##
## attr(,"method")
## [1] "Unconditional MLE & normal approximation (Wald) CI"
epitab(th2, method = 'riskratio',rev = 'b')
## $tab
##
## yes p0 no p1 riskratio lower upper p.value
## nhieu 69 0.7666667 21 0.2333333 1.0000000 NA NA NA
## it 3352 0.7766450 964 0.2233550 0.9572355 0.655533 1.397794 0.7989323
##
## $measure
## [1] "wald"
##
## $conf.level
## [1] 0.95
##
## $pvalue
## [1] "fisher.exact"
Nhận xét:
Risk Ratio (RR):
RR gần với 1 (0.9572355), cho thấy xác suát nhập viện nhiều lần ở nhóm có BHTN gần như tương đương với nhóm không có BHTN.
RR < 1 ngụ ý rằng nhóm có BHTN có xu hướng nhập viện nhiều lần thấp hơn một chút so với nhóm không có BHTN, nhưng sự khác biệt rất nhỏ.
Khoảng tin cậy 95% [0.879832, 1.107563] bao gồm 1, điều này cho thấy sự khác biệt không có ý nghĩa thống kê.
P-value:
P-value = 0.7989323 >> 0.05, điều này có nghĩa là không có bằng chứng thống kê đủ mạnh để kết luận rằng có sự khác biệt đáng kể giữa hai nhóm.
Kết luận:
Không có sự khác biệt đáng kể về tỷ lệ nhập viện nhiều lần giữa nhóm có BHTN và nhóm không có BHTN.
Việc có BHTN không làm tăng hoặc giảm đáng kể khả năng nhập viện nhiều lần trong mẫu nghiên cứu này.
Kết quả này gợi ý rằng các yếu tố khác (như tình trạng sức khỏe, tuổi tác, v.v.) có thể quan trọng hơn trong việc quyết định tần suất nhập viện, so với việc có hay không có BHTN.
OddsRatio(th2)
## [1] 0.9449369
oddsratio(th2)
## $data
##
## no yes Total
## it 964 3352 4316
## nhieu 21 69 90
## Total 985 3421 4406
##
## $measure
## odds ratio with 95% C.I.
## estimate lower upper
## it 1.0000000 NA NA
## nhieu 0.9399099 0.5835463 1.579581
##
## $p.value
## two-sided
## midp.exact fisher.exact chi.square
## it NA NA NA
## nhieu 0.8073139 0.7989323 0.8220732
##
## $correction
## [1] FALSE
##
## attr(,"method")
## [1] "median-unbiased estimate & mid-p exact CI"
epitab(th2, method = 'oddsratio')
## $tab
##
## no p0 yes p1 oddsratio lower upper p.value
## it 964 0.9786802 3352 0.97983046 1.0000000 NA NA NA
## nhieu 21 0.0213198 69 0.02016954 0.9449369 0.5767605 1.54814 0.7989323
##
## $measure
## [1] "wald"
##
## $conf.level
## [1] 0.95
##
## $pvalue
## [1] "fisher.exact"
epitab(th2, method = 'oddsratio', rev = 'c' )
## $tab
##
## yes p0 no p1 oddsratio lower upper p.value
## it 3352 0.97983046 964 0.9786802 1.000000 NA NA NA
## nhieu 69 0.02016954 21 0.0213198 1.058272 0.6459366 1.733822 0.7989323
##
## $measure
## [1] "wald"
##
## $conf.level
## [1] 0.95
##
## $pvalue
## [1] "fisher.exact"
Nhận xét
Odds Ratio
Kết quả Odds Ratio của nhóm nhiều lần nhập viện so với nhóm ít lần nhập viện là 0.9449369 điều này có nghĩa là người sở hữu bảo hiểm với số lần nhập viện nhiều chỉ bằng 0.9449369 so với odd người có sở hữu bảo hiểm nhưng có số lần nhập viện ít.
Tin cậy:
Chỉ số OR cho nhóm nhiều lần nhập viện là 0.9449369, với khoảng tin cậy 95% từ 0.5767605 đến 1.54814. Điều này có nghĩa là khả năng nhập viện nhiều lần giữa những người có và không có bảo hiểm tư nhân không khác biệt lớn.
Khoảng tin cậy 95% của OR bao gồm giá trị 1, cho thấy không có sự khác biệt thống kê có ý nghĩa về khả năng nhập viện nhiều lần giữa hai nhóm.
P-value:
P-value lớn hơn 0.05 cho thấy không có sự khác biệt thống kê có ý nghĩa về khả năng nhập viện nhiều lần giữa nhóm có và không có bảo hiểm tư nhân.
t$chronic1 <- cut(t$chronic, breaks = c(-0.5,1.5,9), labels = c("1benh","nhieubenh"))
table(t$chronic1)
##
## 1benh nhieubenh
## 2523 1883
round((table(t$chronic1,t$insurance)/sum(table(t$chronic1,t$insurance)))*100, 2)
##
## no yes
## 1benh 12.32 44.94
## nhieubenh 10.03 32.71
# Trực quan hóa dữ liệu
t %>% ggplot(aes(x = chronic1, y = after_stat(count), fill = insurance)) +
geom_bar(position = "dodge", color = "black") +
geom_text(aes(label = after_stat(count)), stat = 'count', color = 'black', vjust = -0.25, position = position_dodge(width = 0.9)) +
theme_classic() +
labs(x = "Số bệnh mãn tính",
y = "Số lượng",
title = "Số bệnh mãn tính với bảo hiểm Medicaid") +
scale_fill_manual(values = c("no" = "lightblue", "yes" = "lightgreen"))
Nhận xét:
Nhóm không mắc bệnh mãn tính:
Có bảo hiểm: 800 người (78.0% của nhóm này) Không có bảo hiểm: 225 người (22.0% của nhóm này)
Nhóm mắc bệnh mãn tính:
Có bảo hiểm: 2621 người (77.5% của nhóm này) Không có bảo hiểm: 760 người (22.5% của nhóm này)
Phần lớn người dân (76.7%) mắc ít nhất một bệnh mãn tính. Tỷ lệ người có bảo hiểm tư nhân cao hơn đáng kể so với người không có bảo hiểm (77.6% so với 22.4%). Tỷ lệ người có bảo hiểm trong nhóm không mắc bệnh mãn tính (78.0%) hơi cao hơn một chút so với nhóm mắc bệnh mãn tính (77.5%), nhưng sự khác biệt không đáng kể.
Nhóm có bảo hiểm y tế tư nhân chiếm tỷ lệ cao hơn đáng kể so với nhóm không có bảo hiểm trong cả hai nhóm 1benh và nhieubenh.
Đặc biệt, tỷ lệ người có bảo hiểm y tế tư nhân trong nhóm 1benh cao gấp khoảng 3.65 lần so với nhóm không có bảo hiểm (44.94% so với 12.32%).
Kết quả này gợi ý rằng những người có bảo hiểm y tế tư nhân có xu hướng có nhiều bệnh mãn tính hơn so với những người không có bảo hiểm. Điều này có thể do những người có bảo hiểm dễ dàng tiếp cận các dịch vụ y tế hơn và do đó có thể phát hiện nhiều bệnh hơn.
th3 <- table(t$chronic1,t$insurance)
RelRisk(th3)
## [1] 0.9168761
riskratio(th3, rev = 'b')
## $data
##
## yes no Total
## nhieubenh 1441 442 1883
## 1benh 1980 543 2523
## Total 3421 985 4406
##
## $measure
## risk ratio with 95% C.I.
## estimate lower upper
## nhieubenh 1.0000000 NA NA
## 1benh 0.9168761 0.8209854 1.023967
##
## $p.value
## two-sided
## midp.exact fisher.exact chi.square
## nhieubenh NA NA NA
## 1benh 0.1246373 0.1249618 0.1240892
##
## $correction
## [1] FALSE
##
## attr(,"method")
## [1] "Unconditional MLE & normal approximation (Wald) CI"
epitab(th3, method = 'riskratio',rev = 'c')
## $tab
##
## yes p0 no p1 riskratio lower upper p.value
## 1benh 1980 0.7847800 543 0.2152200 1.00000 NA NA NA
## nhieubenh 1441 0.7652682 442 0.2347318 1.09066 0.9765943 1.218048 0.1249618
##
## $measure
## [1] "wald"
##
## $conf.level
## [1] 0.95
##
## $pvalue
## [1] "fisher.exact"
Nhận xét:
Nguy cơ tương đối cho những người có một bệnh mãn tính so với những người có nhiều bệnh mãn tính là 0.9168761.
Kết quả bao gồm tỷ lệ nguy cơ với khoảng tin cậy 95%:
Điều này cho thấy rằng những người có một bệnh mãn tính có khả năng có bảo hiểm bằng 0.9168761 lần so với những người có nhiều bệnh mãn tính.
Khoảng tin cậy từ 0.8209854 đến 1.023967 cho thấy kết quả không có ý nghĩa thống kê (vì nó bao gồm giá trị 1).
Giá trị p trên 0.05, cho thấy không có sự khác biệt có ý nghĩa thống kê trong tình trạng bảo hiểm giữa những người có một bệnh mãn tính và những người có nhiều bệnh mãn tính.
OddsRatio(th3)
## [1] 0.8940799
oddsratio(th3)
## $data
##
## no yes Total
## 1benh 543 1980 2523
## nhieubenh 442 1441 1883
## Total 985 3421 4406
##
## $measure
## odds ratio with 95% C.I.
## estimate lower upper
## 1benh 1.0000000 NA NA
## nhieubenh 0.8940687 0.7752368 1.031464
##
## $p.value
## two-sided
## midp.exact fisher.exact chi.square
## 1benh NA NA NA
## nhieubenh 0.1246373 0.1249618 0.1240892
##
## $correction
## [1] FALSE
##
## attr(,"method")
## [1] "median-unbiased estimate & mid-p exact CI"
Kết quả Odd Ratio của những người không có bảo hiểm medicaid so với người không có bảo hiểm medicaid khoảng 0.8940799. Điều này có nghĩa là odd của những người không sở hữu bảo hiểm tư nhân và không có bảo hiểm medicaid thấp hơn 0.8940799 lần so với odd người sở hữu bảo hiểm Medicaid.
epitab(th3, method = 'oddsratio')
## $tab
##
## no p0 yes p1 oddsratio lower upper p.value
## 1benh 543 0.551269 1980 0.5787781 1.0000000 NA NA NA
## nhieubenh 442 0.448731 1441 0.4212219 0.8940799 0.7751575 1.031247 0.1249618
##
## $measure
## [1] "wald"
##
## $conf.level
## [1] 0.95
##
## $pvalue
## [1] "fisher.exact"
epitab(th3, method = 'oddsratio', rev = 'c' )
## $tab
##
## yes p0 no p1 oddsratio lower upper p.value
## 1benh 1980 0.5787781 543 0.551269 1.000000 NA NA NA
## nhieubenh 1441 0.4212219 442 0.448731 1.118468 0.9696997 1.29006 0.1249618
##
## $measure
## [1] "wald"
##
## $conf.level
## [1] 0.95
##
## $pvalue
## [1] "fisher.exact"
Nhận xét:
Kết quả Odd Ratio của những người ít bệnh mãn tính (0-2 bệnh mãn tính trong người) có bảo hiểm medicaid so với người không có bảo hiểm medicaid khoảng 1.118468 điều này có nghĩa là odd của những người sở hữu bảo hiểm tư nhân,không có bảo hiểm medicaid cao hơn 1.118468 lần so với odd người sở hữu bảo hiểm Medicaid.
Giá trị p là 0.1249618, lớn hơn 0.05 cho thấy không có sự khác biệt giữa odd có bảo hiểm medicaid và không có bảo hiểm medicaid trong trường hợp có hay không có mắc bệnh mãn tính