تقرير تحليلي – منصة أرقامي |
يهدف هذا التقرير إلى دراسة وتحليل متوسط الدخل الشهري المتاح ومتوسط الإنفاق الاستهلاكي الشهري للأسر في مختلف مناطق المملكة العربية السعودية، بالإضافة إلى نسبة الإنفاق إلى الدخل كمؤشر اقتصادي مهم لقياس نمط المعيشة والضغط المالي على الأسر. يهدف التحليل إلى فهم العلاقات الاقتصادية بين المتغيرات، وتحديد النموذج الإحصائي الأكثر قدرة على تفسير التباين في الدخل بين المناطق.
العمود | الوصف |
---|---|
المنطقة | اسم المنطقة الإدارية في المملكة. |
الدخل | متوسط الدخل الشهري المتاح للأسرة بالريال السعودي. |
الإنفاق | متوسط الإنفاق الاستهلاكي الشهري للأسرة بالريال السعودي. |
نسبة الإنفاق إلى الدخل | النسبة المئوية للإنفاق من إجمالي الدخل، وإذا كانت أكبر من 1 فهذا يعني أن الإنفاق يتجاوز الدخل. |
data_file <- file.choose()
raw <- read_excel(data_file)
df <- raw |>
rename(
المنطقة = any_of(c("المنطقة","region_en","region")),
الدخل = any_of(c("مجموع_الدخل","الدخل","income_total","value_income")),
الانفاق = any_of(c("مجموع الانفاق","مجموع_الانفاق","الانفاق",
"consumption_total","value_consumption")),
نسبة_الانفاق_الى_الدخل = any_of(c("نسبة_الانفاق_الى_الدخل",
"consumption_to_income_ratio","ratio"))
) |>
mutate(
الدخل = as.numeric(الدخل),
الانفاق = as.numeric(الانفاق),
نسبة_الانفاق_الى_الدخل = as.numeric(نسبة_الانفاق_الى_الدخل)
) |>
tidyr::drop_na(المنطقة, الدخل, الانفاق, نسبة_الانفاق_الى_الدخل) |>
mutate(المنطقة = forcats::fct_reorder(المنطقة, الدخل))
head(df)
المنطقة | الدخل | الانفاق | نسبة_الانفاق_الى_الدخل |
---|---|---|---|
الرياض | 14990 | 13000 | 0.8672448 |
مكة المكرمة | 10141 | 9146 | 0.9018834 |
المدينة المنورة | 9723 | 9317 | 0.9582433 |
القصيم | 10081 | 9983 | 0.9902787 |
الشرقية | 11775 | 11509 | 0.9774098 |
عسير | 11264 | 9701 | 0.8612393 |
ggplot(df, aes(fct_reorder(المنطقة, الدخل), الدخل)) +
geom_col(fill = "#2C3E50") +
coord_flip() +
labs(title = "متوسط الدخل الشهري المتاح للأسر حسب المنطقة",
x = NULL, y = "ريال") +
scale_y_continuous(labels = fmt)
تفسير
يوضح الشكل أعلاه متوسط الدخل الشهري المتاح للأسر في مختلف مناطق
المملكة العربية السعودية.
- أعلى متوسط دخل سُجل في منطقة الرياض،
متجاوزًا 15,000 ريال، مما يعكس قوة الاقتصاد المحلي وكثرة الفرص
الوظيفية.
- تلتها منطقة الحدود الشمالية والمنطقة
الشرقية، حيث يسهم قطاع الطاقة والصناعة في رفع مستويات
الدخل.
- المناطق الوسطية في الترتيب مثل
الباحة، عسير، وتبوك
سجلت دخولًا قريبة من المعدل الوطني.
- أقل متوسط دخل كان في منطقة نجران،
مما قد يعكس الفروقات الاقتصادية والتنموية بين المناطق.
تشير هذه البيانات إلى وجود تفاوت ملحوظ بين المناطق الحضرية الكبرى والمناطق الأقل كثافة سكانية، مما يستدعي النظر في سياسات تنموية موجهة لتحقيق التوازن الاقتصادي بين جميع مناطق المملكة
ggplot(df, aes(الانفاق, الدخل, label = المنطقة)) +
geom_abline(slope = 1, intercept = 0, linetype = 2, linewidth = 0.7) +
geom_point(size = 3) +
geom_text_repel(size = 3, family = "sans") +
labs(title = "مقارنة بين متوسط الدخل والإنفاق للأسر",
subtitle = "الخط المتقطع = تساوي الدخل والإنفاق",
x = "متوسط الإنفاق الشهري (ريال)",
y = "متوسط الدخل الشهري (ريال)") +
scale_x_continuous(labels = fmt) +
scale_y_continuous(labels = fmt)
تفسير
في الرسم البياني، نلاحظ وجود علاقة طردية عامة بين متوسط الدخل الشهري ومتوسط الإنفاق الشهري للأسر على مستوى المناطق، وهو ما توضحه النقاط التي تمثل كل منطقة والخط المتقطع الذي يشير إلى حالة التساوي بين الدخل والإنفاق.
df_ratio <- df |>
arrange(نسبة_الانفاق_الى_الدخل) |>
mutate(المنطقة = forcats::fct_reorder(المنطقة, نسبة_الانفاق_الى_الدخل))
ggplot(df_ratio, aes(x = نسبة_الانفاق_الى_الدخل, y = المنطقة)) +
geom_segment(aes(x = 0, xend = نسبة_الانفاق_الى_الدخل,
yend = المنطقة), linewidth = 1) +
geom_point(size = 3) +
labs(title = "نسبة الإنفاق إلى الدخل (الإنفاق ÷ الدخل)",
x = "النسبة", y = NULL) +
scale_x_continuous(labels = percent_format(accuracy = 1))
تفسير
يوضح الرسم البياني نسبة الإنفاق إلى الدخل (الإنفاق ÷ الدخل) للأسر في مناطق المملكة.
أعلى نسبة سُجلت في منطقة جازان، حيث تجاوزت 120%، ما يعني أن إنفاق الأسر فيها يفوق دخلها، وهو ما قد يشير إلى الاعتماد على قروض أو مساعدات إضافية لتغطية الاحتياجات.
نجران والباحة جاءت بعد جازان بنسبة إنفاق تقارب أو تتجاوز الدخل بقليل، مما يعكس ضغوطًا مالية على الأسر في هذه المناطق.
معظم المناطق الأخرى تراوحت نسبتها بين 80% و100%، وهو مؤشر على توازن نسبي بين الدخل والإنفاق، لكن مع هامش ادخار محدود.
أقل نسبة إنفاق إلى دخل كانت في منطقة عسير، ما يدل على وجود فائض نسبي في الدخل مقارنة بالإنفاق، وهو ما قد يتيح فرصًا أكبر للادخار أو الاستثمار.
تشير هذه النتائج إلى تفاوت ملحوظ في أنماط الإنفاق بين المناطق، وهو ما قد يتأثر بعوامل مثل تكاليف المعيشة، ومستوى الدخل، والفرص الاقتصادية المتاحة.
#تحليل نماذج الانحدار
في هذا القسم سنستخدم تحليل الانحدار الخطي لفهم طبيعة العلاقة بين متوسط الدخل الشهري المتاح للأسر ومتوسط الإنفاق الاستهلاكي، بالإضافة إلى مؤشر نسبة الإنفاق إلى الدخل على مستوى المناطق.
سنبني ثلاثة نماذج رئيسية:
النموذج الأول (M1: الدخل ~ الإنفاق)
يقيس العلاقة المباشرة بين الدخل والإنفاق، لمعرفة مدى الترابط وقوة
العلاقة الإحصائية.
النموذج الثاني (M2: الدخل ~ النسبة)
يختبر تأثير نسبة الإنفاق إلى الدخل على الدخل نفسه، مع ملاحظة أن هذا
المؤشر مشتق من الدخل والإنفاق وقد يؤدي إلى وجود ترابط متعدد
(Multicollinearity).
النموذج الثالث (M3: الدخل ~ الإنفاق
المعدّل)
نموذج تشخيصي يهدف لتقليل أثر الترابط البنيوي عن طريق تعديل متغير الإنفاق
(طرح الجزء المشتق من النسبة والدخل) قبل التحليل.
بعد تقدير النماذج، سنعرض: - جدول مؤشرات الملاءمة (مثل R² وAIC وBIC) لمقارنة جودة النماذج من الناحية الإحصائية. - جدول معاملات الانحدار مع فواصل الثقة 95% لتوضيح تأثير المتغيرات المستقلة على الدخل.
يتيح هذا التحليل تقييم أي النماذج يفسر البيانات بشكل أفضل، ويساعد في فهم العوامل الأكثر ارتباطًا بمستويات الدخل في مختلف مناطق المملكة.
df_reg <- df |>
dplyr::transmute(region = as.character(المنطقة),
income = الدخل,
cons = الانفاق,
ratio = نسبة_الانفاق_الى_الدخل)
m1 <- lm(income ~ cons, data = df_reg) # الدخل ~ الإنفاق
m2 <- lm(income ~ ratio, data = df_reg) # الدخل ~ النسبة
df_reg2 <- dplyr::mutate(df_reg, cons_adj = cons - income * ratio)
m3 <- lm(income ~ cons_adj, data = df_reg2) # الدخل ~ الإنفاق المعدّل (تشخيصي)
models <- list(
`M1: الدخل ~ الإنفاق` = m1,
`M2: الدخل ~ النسبة` = m2,
`M3: الدخل ~ الإنفاق المعدّل` = m3
)
gl_tbl <- map_df(names(models), function(nm) {
broom::glance(models[[nm]]) |>
dplyr::mutate(`النموذج` = nm)
}) |>
dplyr::select(
`النموذج`,
`R²` = r.squared,
`R² مُعدَّل` = adj.r.squared,
`Sigma` = sigma,
`AIC` = AIC,
`BIC` = BIC,
`انحراف` = deviance,
`df المتبقي` = df.residual,
`عدد الملاحظات` = nobs
) |>
dplyr::mutate(
dplyr::across(where(is.numeric), ~round(., 3))
)
knitr::kable(gl_tbl,
align = "c",
caption = " مؤشرات ملاءمة النماذج (Glance)") |>
kableExtra::kable_styling(full_width = FALSE, position = "center",
bootstrap_options = c("striped", "hover"))
النموذج | R² | R² مُعدّ | ل | Sigma |
AIC
| ||||
---|---|---|---|---|---|---|---|---|
M1: الدخل ~ الإنفاق | 0.577 | 0.538 | 1171.912 | 224.447 | 226.142 | 15107146 | 11 | 13 |
M2: الدخل ~ النسبة | 0.112 | 0.032 | 1697.012 | 234.073 | 235.768 | 31678343 | 11 | 13 |
M3: الدخل ~ الإنفاق المعدّل |
0.265
|
coef_tbl <- map_df(names(models), function(nm) {
broom::tidy(models[[nm]], conf.int = TRUE) |>
dplyr::mutate(`النموذج` = nm)
}) |>
dplyr::mutate(
المتغير = dplyr::recode(term,
`(Intercept)` = "المعترض",
cons = "الإنفاق",
ratio = "النسبة",
cons_adj = "الإنفاق المعدّل",
.default = term)
) |>
dplyr::select(
`النموذج`, المتغير,
التقدير = estimate,
`الخطأ المعياري` = std.error,
`إحصاء t` = statistic,
`قيمة p` = p.value,
`حد سفلي 95%` = conf.low,
`حد علوي 95%` = conf.high
) |>
dplyr::mutate(
dplyr::across(where(is.numeric), ~round(., 4))
)
knitr::kable(coef_tbl,
align = "c",
caption = " معاملات الانحدار مع فواصل الثقة 95% (Tidy)") |>
kableExtra::kable_styling(full_width = FALSE, position = "center",
bootstrap_options = c("striped", "hover"))
النموذج | المتغير | التقدير | الخطأ المعياري | إحصاء t | قيمة p | حد سفلي 95% | حد علوي 95% |
---|---|---|---|---|---|---|---|
M1: الدخل ~ الإنفاق | المعترض | 2.437984e+03 | 2.215729e+03 | 1.1003 | 0.2947 | -2.438803e+03 | 7.314772e+03 |
M1: الدخل ~ الإنفاق | الإنفاق | 8.170000e-01 | 2.110000e-01 | 3.8715 | 0.0026 | 3.525000e-01 | 1.281500e+00 |
M2: الدخل ~ النسبة | المعترض | 1.637194e+04 | 4.639178e+03 | 3.5291 | 0.0047 | 6.161174e+03 | 2.658270e+04 |
M2: الدخل ~ النسبة | النسبة | -5.700739e+03 | 4.828858e+03 | -1.1806 | 0.2627 | -1.632898e+04 | 4.927506e+03 |
M3: الدخل ~ الإنفاق المعدّل |
المعترض
|
الاستنتاج: هذا النموذج هو الأقوى من حيث الدقة والقوة التفسيرية.
الاستنتاج: هذا أضعف النماذج ولا يُنصح بالاعتماد عليه منفردًا.
الاستنتاج: أفضل من M2 لكن أقل دقة من M1.
par(mfrow = c(1,2))
plot(m1, which = 1)
plot(m1, which = 2)
تشخيص نموذج M1 (الدخل ~ الإنفاق): الرسم الأيسر يوضح بواقي النموذج مقابل القيم المتوقعة، والخط الأحمر (LOESS) يساعد على اكتشاف اللاتخطية. الرسم الأيمن Q–Q للبواقي لمقارنة توزعها بالتوزيع الطبيعي.
par(mfrow = c(1,1))
تفسير التشخيص - توزيع البواقي حول الصفر مقبول
إجمالًا، مع انحناء بسيط يوحي باحتمال لاتخطية خفيفة أو
تأثير نقاط متطرّفة.
- مخطط Q–Q قريب من الخط القطري، ما يدل على أن افتراض طبيعية
البواقي معقول مع بعض الانحراف عند الأطراف.
- الملاحظتان المعلَّمتان (مثل 1 و10) قد تكونان قيمًا
مؤثرة؛ يُستحسن فحصهما (باستخدام
influence.measures(m1)
أو broom::augment(m1)
لاستخراج الـ Cook’s distance).
- الخلاصة: نموذج M1 (الدخل ~ الإنفاق) مناسب وصالح
للاستخدام الوصفي، مع إمكان تحسينه بإضافة متغيّرات تفسيرية أخرى أو تجربة
تحويل بسيط إذا أردت معالجة اللاتخطية.
الخلاصة:
النموذج الأول (الدخل ~ الإنفاق) هو الأقوى والأدق، يفسر 57.7% من التباين
ويحقق أفضل ملاءمة إحصائية. النموذج الثاني ضعيف جدًا، والثالث متوسط لكنه
أقل من الأول.
التوصيات:
- دعم المناطق ذات الفجوة الكبيرة بين الدخل والإنفاق ببرامج تنمية
اقتصادية.
- إضافة متغيرات اقتصادية واجتماعية أخرى لزيادة دقة النماذج.
- تعزيز ثقافة الادخار والتخطيط المالي خصوصًا في المناطق ذات الإنفاق
المرتفع مقارنة بالدخل.
جميع الحقوق محفوظة © أرقامي 2025
لمزيد من المعلومات، تواصل معنا عبر بريدنا الإلكتروني: argamil2025@gmail.com