تقرير تحليلي – منصة أرقامي |
تُعد تغطية النفقات الصحية الأساسية من أهم ركائز الحماية الاجتماعية، فهي الضمان الذي يخفف الأعباء المالية عن الأفراد ويعزز جودة الحياة. في المملكة العربية السعودية، تتنوع قنوات التغطية بين البرامج الحكومية والتأمين الصحي الخاص، إضافةً إلى بعض المساهمات من الجمعيات الخيرية، بينما يلجأ جزء من السكان إلى الدفع المباشر.
يهدف هذا التقرير إلى تقديم قراءة تحليلية شاملة لهذه التغطية من ثلاث زوايا رئيسية: حسب الجنس للكشف عن الفوارق بين الذكور والإناث، حسب المناطق الإدارية لرصد التباينات الجغرافية، وحسب الفئات العمرية لتوضيح الاختلاف عبر مراحل العمر. ويجمع التقرير بين الوصف الإحصائي والفروق النسبية، مع تفسير مبسط تحت كل جدول ورسم، بما يسهل على صانع القرار استيعاب الأنماط ودلالاتها العملية في صياغة السياسات الصحية والاجتماعية.
كيف يتوزع الاعتماد على التغطية الحكومية والتأمين الصحي الخاص والدعم الخيري والدفع المباشر حسب الجنس؟
ما الاختلافات الإقليمية بين المناطق الإدارية؟ وأين تبرز الفجوة بين الحكومي والخاص؟
كيف تتغير أنماط التغطية عبر الفئات العمرية؟ وما الذي يوحي به ذلك للسياسات؟
ما التوصيات العملية لخفض العبء المالي وتحسين عدالة الوصول؟
coverage_gender <- tribble(
~نوع_التغطية, ~ذكر, ~أنثى, ~الإجمالي,
"التغطية الحكومية", 41.7, 63.1, 49.1,
"تأمين صحي خاص", 48.7, 27.1, 41.3,
"جمعيات خيرية", 0.9, 0.7, 0.8,
"دفع نقدًا/بطاقة", 8.7, 9.1, 8.8
)
kable(coverage_gender, caption = "نسب التغطية حسب الجنس (%)")
نوع_التغطية | ذكر | أنثى | الإجمالي |
---|---|---|---|
التغطية الحكومية | 41.7 | 63.1 | 49.1 |
تأمين صحي خاص | 48.7 | 27.1 | 41.3 |
جمعيات خيرية | 0.9 | 0.7 | 0.8 |
دفع نقدًا/بطاقة | 8.7 | 9.1 | 8.8 |
تفسير: الإناث أعلى في التغطية الحكومية، والذكور أعلى في التأمين الخاص، بينما الدعم الخيري والدفع المباشر نسبهما منخفضة لدى الطرفين.
الفروق بين الجنسين
gaps_gender <- coverage_gender %>%
transmute(
نوع_التغطية,
ذكر,
أنثى,
الفارق_لصالح_الإناث = round(أنثى - ذكر, 1)
)
kable(gaps_gender, caption = "الفروق بين الجنسين (إناث − ذكور) بالنقاط المئوية")
نوع_التغطية | ذكر | أنثى | الفارق_لصالح_الإناث |
---|---|---|---|
التغطية الحكومية | 41.7 | 63.1 | 21.4 |
تأمين صحي خاص | 48.7 | 27.1 | -21.6 |
جمعيات خيرية | 0.9 | 0.7 | -0.2 |
دفع نقدًا/بطاقة | 8.7 | 9.1 | 0.4 |
تفسير:
فارق +21.4 نقطة لصالح الإناث في الحكومية.
فارق −21.6 نقطة لصالح الذكور في الخاص.
الفروق الأخرى صغيرة.
توزيع الأنواع حسب الجنس (أعمدة مجمّعة)
coverage_gender %>%
pivot_longer(cols = c(ذكر, أنثى),
names_to = "الجنس", values_to = "النسبة") %>%
ggplot(aes(x = نوع_التغطية, y = النسبة/100, fill = الجنس)) +
geom_col(position = position_dodge(width = 0.72), width = 0.65) +
scale_y_continuous(labels = percent_format()) +
labs(x = "نوع التغطية", y = "النسبة", fill = "الجنس") +
theme_minimal()
تفسير: تفوق الإناث في الحكومية والذكور في الخاص يظهر بوضوح؛ القناتان الأخريان هامشيتان.
مخطط Lollipop للفروق (إناث − ذكور)
gaps_gender %>%
ggplot(aes(x = الفارق_لصالح_الإناث,
y = fct_reorder(نوع_التغطية, الفارق_لصالح_الإناث))) +
geom_segment(aes(x = 0, xend = الفارق_لصالح_الإناث, yend = نوع_التغطية)) +
geom_point(size = 3) +
geom_vline(xintercept = 0, linetype = "dashed") +
labs(x = "الفارق (إناث − ذكور) نقطة مئوية", y = "نوع التغطية") +
theme_minimal()
تفسير: قيم موجبة = لصالح الإناث (الحكومية)، سالبة = لصالح الذكور (الخاص).
regions_raw <- tribble(
~region, ~gov, ~private, ~charity, ~oop, ~total,
"الرياض", 39.0, 51.8, 0.6, 8.6, 100.0,
"مكة المكرمة", 48.9, 39.3, 0.9, 10.9, 100.0,
"المدينة المنورة", 50.7, 31.4, 1.1, 16.8, 100.0,
"القصيم", 57.3, 29.8, 0.2, 12.6, 100.0,
"المنطقة الشرقية", 39.3, 55.9, 0.6, 4.2, 100.0,
"عسير", 67.1, 23.9, 2.4, 6.5, 100.0,
"تبوك", 64.4, 28.8, 1.1, 5.8, 100.0,
"حائل", 74.7, 18.3, 0.4, 6.6, 100.0,
"الحدود الشمالية", 67.2, 27.3, 0.0, 5.5, 100.0,
"جازان", 71.0, 17.0, 1.0, 11.0, 100.0,
"نجران", 67.9, 25.6, 1.1, 5.5, 100.0,
"الباحة", 76.9, 18.6, 0.9, 3.6, 100.0,
"الجوف", 70.1, 23.9, 1.8, 4.2, 100.0,
"الإجمالي", 49.1, 41.3, 0.8, 8.8, 100.0
)
kable(regions_raw, caption = "نسب التغطية حسب المنطقة الإدارية (%)")
region | gov | private | charity | oop | total |
---|---|---|---|---|---|
الرياض | 39.0 | 51.8 | 0.6 | 8.6 | 100 |
مكة المكرمة | 48.9 | 39.3 | 0.9 | 10.9 | 100 |
المدينة المنورة | 50.7 | 31.4 | 1.1 | 16.8 | 100 |
القصيم | 57.3 | 29.8 | 0.2 | 12.6 | 100 |
المنطقة الشرقية | 39.3 | 55.9 | 0.6 | 4.2 | 100 |
عسير | 67.1 | 23.9 | 2.4 | 6.5 | 100 |
تبوك | 64.4 | 28.8 | 1.1 | 5.8 | 100 |
حائل | 74.7 | 18.3 | 0.4 | 6.6 | 100 |
الحدود الشمالية | 67.2 | 27.3 | 0.0 | 5.5 | 100 |
جازان | 71.0 | 17.0 | 1.0 | 11.0 | 100 |
نجران | 67.9 | 25.6 | 1.1 | 5.5 | 100 |
الباحة | 76.9 | 18.6 | 0.9 | 3.6 | 100 |
الجوف | 70.1 | 23.9 | 1.8 | 4.2 | 100 |
الإجمالي | 49.1 | 41.3 | 0.8 | 8.8 | 100 |
تفسير: الميول للـخاص أعلى في الرياض والشرقية، بينما الحكومي يتصدر في المناطق الداخلية/الجنوبية (الباحة، حائل، جازان…).
تركيب التغطية داخل كل منطقة (100% Stacked)
regions_long <- regions_raw %>%
filter(region != "الإجمالي") %>%
pivot_longer(cols = c("gov", "private", "charity", "oop"),
names_to = "نوع", values_to = "النسبة")
regions_long %>%
mutate(نوع = recode(نوع,
"gov" = "التغطية الحكومية",
"private" = "تأمين خاص",
"charity" = "خيرية",
"oop" = "دفع مباشر")) %>%
ggplot(aes(x = fct_reorder(region,
ifelse(نوع == "التغطية الحكومية", النسبة, NA),
.fun = max, na.rm = TRUE),
y = النسبة/100, fill = نوع)) +
geom_col(position = "fill") +
coord_flip() +
scale_y_continuous(labels = scales::percent_format()) +
labs(x = "المنطقة", y = "النسبة (100%)", fill = "نوع التغطية") +
theme_minimal()
تفسير: المخطط يوضح المزج داخل كل منطقة: تظهر الشرقية والرياض بميل واضح للخاص، مقابل الباحة وحائل بميل واضح للحكومي.
فجوة (الحكومي − الخاص) بالنقاط المئوية
gap_regions <- regions_raw %>%
filter(region != "الإجمالي") %>%
mutate(gap = round(gov - private, 1))
kable(gap_regions %>% arrange(desc(gap)) %>% select(region, gap),
caption = "فجوة (الحكومي − الخاص) — موجبة لصالح الحكومي")
region | gap |
---|---|
الباحة | 58.3 |
حائل | 56.4 |
جازان | 54.0 |
الجوف | 46.2 |
عسير | 43.2 |
نجران | 42.3 |
الحدود الشمالية | 39.9 |
تبوك | 35.6 |
القصيم | 27.5 |
المدينة المنورة | 19.3 |
مكة المكرمة | 9.6 |
الرياض | -12.8 |
المنطقة الشرقية | -16.6 |
تفسير: قيم موجبة كبيرة (مثل الباحة، حائل) تعني اعتمادًا أكبر على الحكومي؛ القيم الصغيرة/السالبة (مثل الشرقية، الرياض) تعكس ميلًا أكبر للـخاص.
Lollipop لفجوة (الحكومي − الخاص)
gap_regions %>%
ggplot(aes(x = gap, y = fct_reorder(region, gap))) +
geom_segment(aes(x = 0, xend = gap, yend = region)) +
geom_point(size = 3) +
geom_vline(xintercept = 0, linetype = "dashed") +
labs(x = "الفجوة (الحكومي − الخاص) نقطة", y = "المنطقة الإدارية") +
theme_minimal()
تفسير: الجهة اليمنى للصفر = مناطـق يغلب فيها الحكومي؛ الجهة اليسرى/القريبة للصفر = مناطق يغلب فيها الخاص.
age_raw <- tribble(
~age_group, ~gov, ~private, ~charity, ~oop, ~total,
"15-19", 74.3, 17.2, 0.6, 7.9, 100.0,
"20-24", 52.6, 37.7, 1.3, 8.5, 100.0,
"25-29", 45.6, 45.0, 0.8, 8.6, 100.0,
"30-34", 40.4, 48.8, 0.9, 9.9, 100.0,
"35-39", 41.3, 48.6, 0.9, 9.1, 100.0,
"40-44", 42.1, 48.2, 0.7, 9.0, 100.0,
"45-49", 46.5, 43.1, 0.7, 9.7, 100.0,
"50-54", 50.6, 40.3, 0.6, 8.5, 100.0,
"55-59", 55.7, 36.7, 0.5, 7.1, 100.0,
"60-64", 58.9, 30.8, 2.1, 8.2, 100.0,
"65-69", 66.4, 24.9, 0.2, 8.5, 100.0,
"70-74", 73.8, 19.0, 0.3, 7.0, 100.0,
"75-79", 77.0, 13.8, 0.5, 8.7, 100.0,
"80+", 84.7, 10.1, 1.5, 3.7, 100.0
)
kable(age_raw, caption = "نسب التغطية حسب الفئات العمرية (%)")
age_group | gov | private | charity | oop | total |
---|---|---|---|---|---|
15-19 | 74.3 | 17.2 | 0.6 | 7.9 | 100 |
20-24 | 52.6 | 37.7 | 1.3 | 8.5 | 100 |
25-29 | 45.6 | 45.0 | 0.8 | 8.6 | 100 |
30-34 | 40.4 | 48.8 | 0.9 | 9.9 | 100 |
35-39 | 41.3 | 48.6 | 0.9 | 9.1 | 100 |
40-44 | 42.1 | 48.2 | 0.7 | 9.0 | 100 |
45-49 | 46.5 | 43.1 | 0.7 | 9.7 | 100 |
50-54 | 50.6 | 40.3 | 0.6 | 8.5 | 100 |
55-59 | 55.7 | 36.7 | 0.5 | 7.1 | 100 |
60-64 | 58.9 | 30.8 | 2.1 | 8.2 | 100 |
65-69 | 66.4 | 24.9 | 0.2 | 8.5 | 100 |
70-74 | 73.8 | 19.0 | 0.3 | 7.0 | 100 |
75-79 | 77.0 | 13.8 | 0.5 | 8.7 | 100 |
80+ | 84.7 | 10.1 | 1.5 | 3.7 | 100 |
تفسير: ميل واضح إلى الحكومي مع التقدم في العمر؛ الذروة في 80+ (84.7%). التأمين الخاص يبلغ ذروته تقريبًا في 30–39 (~48%) ثم يهبط تدريجيًا.
تركيب التغطية داخل الفئة العمرية (100% Stacked)
age_long <- age_raw %>%
pivot_longer(cols = c(gov, private, charity, oop),
names_to = "نوع", values_to = "النسبة") %>%
mutate(نوع = recode(نوع,
gov = "التغطية الحكومية",
private = "تأمين خاص",
charity = "خيرية",
oop = "دفع مباشر"))
age_long %>%
ggplot(aes(x = age_group, y = النسبة/100, fill = نوع)) +
geom_col(position = "fill") +
scale_y_continuous(labels = percent_format()) +
labs(x = "الفئة العمرية", y = "النسبة (100%)", fill = "نوع التغطية") +
theme_minimal()
تفسير: ازدياد وزن الحكومية مع العمر مقابل انخفاض الخاص بعد الأربعين؛ الدفع المباشر والخيري منخفضان عمومًا.
مؤشر فجوة العمر (الحكومي − الخاص)
gap_age <- age_raw %>%
transmute(age_group, gap = round(gov - private, 1))
kable(gap_age, caption = "فجوة (الحكومي − الخاص) حسب الفئة العمرية (نقطة)")
age_group | gap |
---|---|
15-19 | 57.1 |
20-24 | 14.9 |
25-29 | 0.6 |
30-34 | -8.4 |
35-39 | -7.3 |
40-44 | -6.1 |
45-49 | 3.4 |
50-54 | 10.3 |
55-59 | 19.0 |
60-64 | 28.1 |
65-69 | 41.5 |
70-74 | 54.8 |
75-79 | 63.2 |
80+ | 74.6 |
تفسير: الفجوة تتحول من صغيرة/سلبية نسبيًا في منتصف العشرينات والثلاثينات إلى موجبة كبيرة بدءًا من الخمسينات، وتبلغ أقصاها عند 80+.
Lollipop لفجوة العمر
gap_age %>%
ggplot(aes(x = gap, y = fct_reorder(age_group, gap))) +
geom_segment(aes(x = 0, xend = gap, yend = age_group)) +
geom_point(size = 3) +
geom_vline(xintercept = 0, linetype = "dashed") +
labs(x = "الفجوة (الحكومي − الخاص) نقطة", y = "الفئة العمرية") +
theme_minimal()
تفسير: القيم الأكبر يمين الصفر تعني اعتمادًا متزايدًا على الحكومي لدى كبار السن، وهو منسجم مع البُعد الاجتماعي/الاستحقاقي للتغطية.
الخلاصة والتوصيات حسب الجنس: إناث ↔︎ حكومي أعلى، ذكور ↔︎ خاص أعلى.
حسب المناطق: حضرية كبرى (الرياض/الشرقية) ↔︎ خاص؛ داخلية/جنوبية (الباحة/حائل/جازان) ↔︎ حكومي.
حسب العمر: حكومي يرتفع مع العمر؛ خاص يبلغ الذروة في 30–39 ثم ينخفض.
توصيات عملية:
تقليل الدفع المباشر في المناطق ذات المعدلات الأعلى (المدينة المنورة، القصيم) عبر توسيع التغطيات أو دعم المشاركة.
تحفيز الخاص في بعض المناطق ذات الاعتماد العالي على الحكومي مع ضمان الجودة والوصول.
سياسات عمرية حسّاسة: حماية كبار السن من أي عبء دفع مباشر، وفهم دوافع ارتفاع الخاص في منتصف العمر (طبيعة التوظيف والاشتراكات).
توسيع التحليل لاحقًا بمتغيرات الدخل، القطاع الوظيفي، المنطقة التفصيلية لاختبار الأسباب السببية للفجوات.
يهدف هذا التقرير إلى تحليل أنماط تغطية النفقات الصحية الأساسية بين
السكان البالغين (15 سنة فأكبر) في المملكة العربية السعودية.
يركز التحليل على مصادر التغطية المختلفة (التغطية الحكومية، التأمين الصحي
الخاص، الجمعيات الخيرية، والدفع المباشر نقدًا أو بالبطاقة)، مع دراسة
الفروق حسب الجنس والفئات العمرية
والمناطق الإدارية.
تكمن أهمية هذه الدراسة في أنها توضح الاختلافات في آليات الحصول على
الرعاية الصحية بين الفئات السكانية، مما يساعد صناع القرار على تحديد
الفجوات في النظام الصحي وتعزيز العدالة في الوصول إلى الخدمات.
كما يشتمل التقرير على تحليلات متقدمة مثل التجميع
(K-means) والإسقاط متعدد الأبعاد (MDS)
والخرائط الحرارية وتحليل الاتجاه عبر
العمر، وذلك لفهم العلاقات والأنماط العميقة بين الفئات.
if (exists("regions_raw")) {
بيانات_المناطق <- regions_raw %>%
dplyr::filter(region != "الإجمالي") %>%
dplyr::transmute(
المنطقة = region,
حكومي = gov, خاص = private, خيري = charity, دفع_مباشر = oop
)
} else {
# نسخة ذاتية الاكتفاء (استبدلها إن لزم):
بيانات_المناطق <- tibble::tribble(
~المنطقة, ~حكومي, ~خاص, ~خيري, ~دفع_مباشر,
"الرياض",39.0,51.8,0.6,8.6,
"مكة المكرمة",48.9,39.3,0.9,10.9,
"المدينة المنورة",50.7,31.4,1.1,16.8,
"القصيم",57.3,29.8,0.2,12.6,
"المنطقة الشرقية",39.3,55.9,0.6,4.2,
"عسير",67.1,23.9,2.4,6.5,
"تبوك",64.4,28.8,1.1,5.8,
"حائل",74.7,18.3,0.4,6.6,
"الحدود الشمالية",67.2,27.3,0.0,5.5,
"جازان",71.0,17.0,1.0,11.0,
"نجران",67.9,25.6,1.1,5.5,
"الباحة",76.9,18.6,0.9,3.6,
"الجوف",70.1,23.9,1.8,4.2
)
}
if (exists("age_raw")) {
بيانات_العمر <- age_raw %>%
dplyr::transmute(
الفئة_العمرية = age_group, حكومي = gov, خاص = private, خيري = charity, دفع_مباشر = oop
)
} else {
بيانات_العمر <- tibble::tribble(
~الفئة_العمرية,~حكومي,~خاص,~خيري,~دفع_مباشر,
"15-19",74.3,17.2,0.6,7.9,
"20-24",52.6,37.7,1.3,8.5,
"25-29",45.6,45.0,0.8,8.6,
"30-34",40.4,48.8,0.9,9.9,
"35-39",41.3,48.6,0.9,9.1,
"40-44",42.1,48.2,0.7,9.0,
"45-49",46.5,43.1,0.7,9.7,
"50-54",50.6,40.3,0.6,8.5,
"55-59",55.7,36.7,0.5,7.1,
"60-64",58.9,30.8,2.1,8.2,
"65-69",66.4,24.9,0.2,8.5,
"70-74",73.8,19.0,0.3,7.0,
"75-79",77.0,13.8,0.5,8.7,
"80+",84.7,10.1,1.5,3.7
)
}
تفسير: حوّلنا الأسماء إلى عربية وجعلنا الجداول جاهزة للتحليل. كل صف يعبر عن تركيب تغطية من أربع قنوات.
مصفوفة_المناطق <- بيانات_المناطق %>%
dplyr::select(حكومي, خاص, خيري, دفع_مباشر) %>%
scale() %>% as.matrix()
مجموعة_WSS <- sapply(2:6, function(k) {
set.seed(123); kmeans(مصفوفة_المناطق, centers = k, nstart = 25)$tot.withinss
})
plot(2:6, مجموعة_WSS, type = "b", pch = 19,
xlab = "عدد العناقيد (k)", ylab = "مجموع التباين داخل العناقيد (WSS)",
main = "منحنى الكوع لاختيار k")
تفسير: نبحث عن النقطة التي يبدأ عندها الانخفاض يتباطأ (الكوع). غالبًا ستقترح k=3 أو نحوها.
set.seed(123)
عدد_العناقيد <- 3
عنقدة <- kmeans(مصفوفة_المناطق, centers = عدد_العناقيد, nstart = 25)
# إلحاق النتائج
نتائج_المناطق <- dplyr::bind_cols(بيانات_المناطق, عنقود = factor(عنقدة$cluster))
knitr::kable(نتائج_المناطق, caption = "المناطق مع رقم العنقود")
المنطقة | حكومي | خاص | خيري | دفع_مباشر | عنقود |
---|---|---|---|---|---|
الرياض | 39.0 | 51.8 | 0.6 | 8.6 | 1 |
مكة المكرمة | 48.9 | 39.3 | 0.9 | 10.9 | 2 |
المدينة المنورة | 50.7 | 31.4 | 1.1 | 16.8 | 2 |
القصيم | 57.3 | 29.8 | 0.2 | 12.6 | 2 |
المنطقة الشرقية | 39.3 | 55.9 | 0.6 | 4.2 | 1 |
عسير | 67.1 | 23.9 | 2.4 | 6.5 | 3 |
تبوك | 64.4 | 28.8 | 1.1 | 5.8 | 3 |
حائل | 74.7 | 18.3 | 0.4 | 6.6 | 3 |
الحدود الشمالية | 67.2 | 27.3 | 0.0 | 5.5 | 3 |
جازان | 71.0 | 17.0 | 1.0 | 11.0 | 3 |
نجران | 67.9 | 25.6 | 1.1 | 5.5 | 3 |
الباحة | 76.9 | 18.6 | 0.9 | 3.6 | 3 |
الجوف | 70.1 | 23.9 | 1.8 | 4.2 | 3 |
factoextra::fviz_cluster(عنقدة, data = مصفوفة_المناطق,
geom = "point", ellipse.type = "convex",
main = "K-means للمناطق (بناءً على نسب التغطية)")
تفسير: تجميع 3 عناقيد عادةً يُظهر:
عنقود حكومي مرتفع (مثل الباحة/حائل/جازان…).
عنقود خاص مرتفع (الشرقية/الرياض).
عنقود متوازن/وسطي لباقي المناطق.
مسافة <- dist(مصفوفة_المناطق) # مسافات إقليدية بعد التطبيع
إسقاط_MDS <- cmdscale(مسافة, k = 2) # إسقاط إلى بعدين
بيانات_MDS <- data.frame(إسقاط_MDS) %>%
dplyr::rename(البعد1 = X1, البعد2 = X2) %>%
dplyr::mutate(المنطقة = بيانات_المناطق$المنطقة,
العنقود = نتائج_المناطق$عنقود)
ggplot(بيانات_MDS, aes(البعد1, البعد2, color = العنقود, label = المنطقة)) +
geom_point(size = 4) +
ggrepel::geom_text_repel(size = 3, show.legend = FALSE) +
labs(title = "MDS: تمثيل ثنائي الأبعاد لتشابه المناطق") +
theme_minimal()
تفسير: تقارب النقاط يعني تشابهاً في تركيب التغطية. ستجد المدن ذات الخاص الأعلى متقاربة، وكذلك مناطق الحكومي الأعلى.
مصفوفة_مرتبة <- بيانات_المناطق %>% dplyr::select(حكومي, خاص, خيري, دفع_مباشر) %>% as.matrix()
rownames(مصفوفة_مرتبة) <- بيانات_المناطق$المنطقة
pheatmap::pheatmap(t(scale(مصفوفة_مرتبة)),
main = "Heatmap: تركيب التغطية (مُطبّع)",
cluster_rows = FALSE, cluster_cols = TRUE,
angle_col = 0)
تفسير: تُظهر الاختلافات النسبية بعد التطبيع: أعمدة متشابهة تعني مناطق متقاربة نمطياً.
تحويل_إلى_منتصف <- function(x) {
if (grepl("\\+$", x)) return(as.numeric(gsub("\\+", "", x)) + 2.5) # تقريب بسيط لـ 80+
حدود <- strsplit(x, "-")[[1]]
mean(as.numeric(حدود))
}
بيانات_العمر2 <- بيانات_العمر %>%
dplyr::mutate(منتصف_العمر = sapply(الفئة_العمرية, تحويل_إلى_منتصف)) %>%
dplyr::arrange(منتصف_العمر)
knitr::kable(بيانات_العمر2, caption = "الفئات العمرية بعد إضافة (منتصف العمر)")
الفئة_العمرية | حكومي | خاص | خيري | دفع_مباشر | منتصف_العمر |
---|---|---|---|---|---|
15-19 | 74.3 | 17.2 | 0.6 | 7.9 | 17.0 |
20-24 | 52.6 | 37.7 | 1.3 | 8.5 | 22.0 |
25-29 | 45.6 | 45.0 | 0.8 | 8.6 | 27.0 |
30-34 | 40.4 | 48.8 | 0.9 | 9.9 | 32.0 |
35-39 | 41.3 | 48.6 | 0.9 | 9.1 | 37.0 |
40-44 | 42.1 | 48.2 | 0.7 | 9.0 | 42.0 |
45-49 | 46.5 | 43.1 | 0.7 | 9.7 | 47.0 |
50-54 | 50.6 | 40.3 | 0.6 | 8.5 | 52.0 |
55-59 | 55.7 | 36.7 | 0.5 | 7.1 | 57.0 |
60-64 | 58.9 | 30.8 | 2.1 | 8.2 | 62.0 |
65-69 | 66.4 | 24.9 | 0.2 | 8.5 | 67.0 |
70-74 | 73.8 | 19.0 | 0.3 | 7.0 | 72.0 |
75-79 | 77.0 | 13.8 | 0.5 | 8.7 | 77.0 |
80+ | 84.7 | 10.1 | 1.5 | 3.7 | 82.5 |
تفسير: حوّلنا الفئات إلى قيمة عددية تقريبية تمكّننا من رسم اتجاهات سلسة عبر العمر.
بيانات_العمر_طويل <- بيانات_العمر2 %>%
tidyr::pivot_longer(cols = c(حكومي, خاص, خيري, دفع_مباشر),
names_to = "القناة", values_to = "النسبة")
ggplot(بيانات_العمر_طويل,
aes(x = منتصف_العمر, y = النسبة, group = القناة)) +
geom_line() + geom_point() +
scale_x_continuous(breaks = بيانات_العمر2$منتصف_العمر,
labels = بيانات_العمر2$الفئة_العمرية) +
scale_y_continuous(labels = scales::percent_format(scale = 1)) +
labs(x = "الفئة العمرية", y = "النسبة (%)", title = "اتجاهات التغطية حسب العمر", color = "القناة") +
theme_minimal()
تفسير:
حكومي يرتفع مع العمر (أعلى لدى 80+).
خاص يبلغ الذروة في 30–39 ثم ينخفض تدريجيًا.
الدفع المباشر يتراوح ~7–10% وينخفض لدى كبار السن.
الخيري منخفض جدًا.
ملخص_الاتجاه <- بيانات_العمر2 %>%
dplyr::summarise(
ارتباط_حكومي = cor(منتصف_العمر, حكومي, method = "spearman"),
ارتباط_خاص = cor(منتصف_العمر, خاص, method = "spearman"),
ارتباط_خيري = cor(منتصف_العمر, خيري, method = "spearman"),
ارتباط_دفع = cor(منتصف_العمر, دفع_مباشر, method = "spearman")
)
knitr::kable(ملخص_الاتجاه, digits = 3, caption = "ارتباط سبيرمان بين العمر وكل قناة")
ارتباط_حكومي | ارتباط_خاص | ارتباط_خيري | ارتباط_دفع |
---|---|---|---|
0.591 | -0.591 | -0.269 | -0.404 |
تفسير: قيمة موجبة كبيرة لـ حكومي تؤكّد الميل التصاعدي مع العمر، وقيمة سالبة لـ خاص تؤكّد الانخفاض بعد منتصف العمر.
الإناث أكثر اعتمادًا على التغطية الحكومية (63%) مقارنة بالذكور (42%).
الذكور أعلى بكثير في التأمين الصحي الخاص (49% مقابل 27% للإناث).
الدفع المباشر والجمعيات الخيرية نسبتها متقاربة جدًا بين الجنسين.
📌 الخلاصة: النمط يعكس احتمال ارتباط الإناث أكثر بالبرامج الحكومية (مثل التأمين الحكومي أو دعم الأسرة)، بينما الذكور لديهم حضور أكبر في سوق العمل بالقطاع الخاص وبالتالي تغطية التأمين التجاري.
أعلى اعتماد على الحكومي: الباحة (77%)، حائل (75%)، جازان (71%).
أعلى اعتماد على التأمين الخاص: المنطقة الشرقية (56%)، الرياض (52%).
الدفع المباشر مرتفع نسبيًا في المدينة المنورة (17%) ومكة (11%).
📌 الخلاصة: هناك فجوة واضحة بين المناطق الكبرى (الرياض، الشرقية) حيث يغلب التأمين الخاص بحكم كثافة القطاع الخاص، والمناطق الأخرى حيث يغلب الحكومي.
الفئة الأصغر (15–19 سنة): 74% حكومي، 17% خاص → الاعتماد الأكبر على الحكومي.
منتصف العمر (30–44 سنة): يتقارب الحكومي والخاص (حوالي 41–49% لكل منهما).
الفئات الأكبر (65 سنة فأكثر): تعود الهيمنة للحكومي بوضوح (أكثر من 70% للفئات 70+).
📌 الخلاصة: هناك مسار عمري واضح: الحكومي مرتفع في المراحل المبكرة والمتأخرة من العمر، بينما الخاص يبرز في منتصف العمر (سن العمل والإنتاجية).
خفض الفجوة بين الجنسين: تحسين وصول الذكور إلى برامج التغطية الحكومية أو توفير منتجات تأمينية مناسبة للإناث.
معالجة التباينات الإقليمية: توسيع شبكات التأمين الخاص في المناطق التي يغلب فيها الحكومي، وضمان تغطية حكومية كافية في المدن الكبرى لتقليل الدفع المباشر.
العدالة العمرية: ربط سياسات التغطية بمراحل الحياة، بحيث تدعم الشباب في بداية مسارهم، وتؤمّن للمتقاعدين خيارات تقلل الاعتماد على الدفع من الجيب.
تخفيف العبء المالي: العمل على تقليص نسبة الدفع المباشر، خصوصًا في المناطق ذات النسب الأعلى، عبر برامج دعم أو تعاقدات مع مقدمي الخدمات.
جميع الحقوق محفوظة © أرقامي 2025
لمزيد من المعلومات، تواصل معنا عبر بريدنا الإلكتروني: argamil2025@gmail.com