شعار أرقامي

تقرير تحليلي – منصة أرقامي

1 📊 المقدمة

يواصل الاقتصاد السعودي أداءه القوي خلال عام 2025 مدفوعًا بنمو حقيقي في مختلف القطاعات.
فقد بلغ الناتج المحلي الإجمالي الحقيقي في الربع الثاني من 2025 نحو 1.2 تريليون ريال سعودي (⃁)، ما يعكس استمرار توسّع النشاط الاقتصادي وتنوّع مصادر الدخل الوطني.

وفي أغسطس 2025، سجّل معدل التضخم العام نسبة 2.3% وفقًا للرقم القياسي لأسعار المستهلك، مع بقاء فئة التأمين والخدمات المالية عند أعلى معدلاتها بنسبة 8.1%، ما يعكس تباينًا بين المجموعات السلعية رغم استقرار الأسعار الكلية.

على صعيد التجارة الخارجية، بلغت قيمة الصادرات السلعية في يوليو 2025 حوالي 102.4 مليار ريال بارتفاع قدره 10.9% عن الشهر السابق، في حين بلغت الواردات 75.5 مليار ريال بزيادة 3.7%، ليُسجّل الميزان التجاري فائضًا بنحو 26.9 مليار ريال سعودي.

وفي سوق العمل، وصلت نسبة المشتغلين إلى 67.1% من إجمالي السكان خلال الربع الثاني، حيث بلغت مشاركة السعوديات في القطاع الخاص 34.5% مقابل 37.1% لغير السعوديات، بينما بلغت مشاركة الذكور السعوديين 64.0%، والذكور غير السعوديين 93.9%.
كما سجّل معدل البطالة الكلي 3.2%، فيما بلغت بطالة السعوديات 11.3%، وبطالة الذكور السعوديين 4.3%.

أما القطاع الصناعي فقد واصل زخمه الإيجابي، إذ ارتفع الرقم القياسي للإنتاج الصناعي في أغسطس 2025 بنسبة 7.1% مقارنة بالشهر نفسه من العام السابق، مدعومًا بتحسن إنتاج الصناعات التحويلية والطاقة.

وبنهاية عام 2024، بلغ عدد سكان المملكة 35.3 مليون نسمة، منهم 37.9% إناث و62.1% ذكور، مما يعكس قاعدة سكانية شابة تدعم استدامة النمو الاقتصادي في الأعوام المقبلة.

تعكس هذه المؤشرات مجتمعة قوة الأساس الاقتصادي للمملكة واستمرار تحسّن بيئة الإنتاج والاستهلاك والتوظيف ضمن مسار رؤية السعودية 2030.

2 🧩 الفرق بين أنواع الناتج المحلي الإجمالي

2.1 الناتج المحلي الإجمالي الحقيقي (Real GDP)

  • يقيس كمية الإنتاج الفعلية بعد إزالة أثر التضخم (أسعار ثابتة).
  • أفضل مقياس لمتابعة النمو الاقتصادي الحقيقي عبر الزمن.

2.2 الناتج المحلي الإجمالي الاسمي (Nominal GDP)

  • يُقاس بالأسعار الجارية (الحالية) ويتأثر بـ التضخم.
  • يوضح الحجم المالي للاقتصاد لكنه لا يميّز بين ارتفاع الأسعار وزيادة الإنتاج.

2.3 الناتج المحلي الإجمالي المعدل موسمياً (Seasonally Adjusted GDP)

  • تُزال منه التقلبات الموسمية (رمضان، مواسم الحج/السياحة، مواسم الزراعة).
  • مفيد للمقارنات القصيرة الأجل (ربعية/شهرية) لاستخلاص الاتجاه الحقيقي.
النوع الأسعار المستخدمة الهدف متى نستخدمه
الحقيقي أسعار ثابتة (بدون تضخم) قياس النمو الحقيقي المقارنات السنوية والطويلة
الاسمي أسعار جارية (تشمل التضخم) قياس الحجم المالي الكلي تقدير القيم السوقية والإيرادات
المعدّل موسمياً أسعار جارية مع إزالة التكرارات الموسمية مقارنة الفصول ورؤية الاتجاه التحليل الربعي/الشهري

قاعدة ذهبية: عند مقارنة سنوات متتالية لاستخلاص النمو الحقيقي استخدم الناتج الحقيقي؛ وعند مقارنة الفصول القصيرة استخدم المعدّل موسمياً؛ بينما يعطيك الاسمي صورة الحجم المالي بالأسعار الجارية.

3 🔍 قراءة البيانات

file <- "تطور-معدل-نمو-الناتج-المحلي-الإجمالي-الحقيقي-والناتج-المحلي-الإجمالي-الاسمي-والناتج-المحلي-الإجمالي-الحقيقي-المعدل-موسميا--السنوي.xlsx"
df <- read_excel(file)
head(df)
السنة الفئة القيمة معدل النمو
2010 الاسمي 1.980778e+12 0.00000
2010 الحقيقي 2.768662e+12 0.00000
2010 المعدل موسميًا 2.768661e+12 0.00000
2011 الاسمي 2.552478e+12 28.86240
2011 الحقيقي 3.094224e+12 11.75882
2011 المعدل موسميًا 3.094225e+12 11.75890
stopifnot(all(c("السنة", "الفئة", "القيمة") %in% names(df)))

3.1 تنسيق القيم إلى “تريليون”

to_trillion <- function(x) x / 1e12
df <- df %>% mutate(القيمة_تريليون = to_trillion(القيمة))

4 📈 الاتجاهات العامة (خطّي + نقاط) — صياغة طويلة صحيحة

تم اعتماد صياغة long format لكي تعمل geom_point و geom_line على نفس متغير y بدون أخطاء.

df_long <- df %>% 
  select(السنة, الفئة, القيمة_تريليون)

ggplot(df_long, aes(x = السنة, y = القيمة_تريليون, color = الفئة, group = الفئة)) +
  geom_line(size = 1.2) +
  geom_point(size = 2) +
  labs(title = "تطور الناتج المحلي الإجمالي في السعودية (تريليون ريال)",
       x = "السنة", y = "القيمة (تريليون ريال)", color = "النوع") +
  scale_x_continuous(breaks = scales::pretty_breaks()) +
  theme_minimal() +
  theme(text = element_text(size = 12), legend.position = "top")

تفسير مختصر: الاتجاه العام تصاعدي مع تذبذبات دورية؛ تقلّ الفجوة بين الحقيقي والاسمي في السنوات الأخيرة بما يعكس استقراراً نسبياً في التضخم.

5 💹 ملخص معدلات النمو

إذا كان عمود معدل النمو موجوداً سيُحسب الملخص مباشرةً؛ وإلا ستحسب نسب التغير سنوياً لكل فئة.

if ("معدل النمو" %in% names(df)) {
  growth_summary <- df %>%
    group_by(الفئة) %>%
    summarise(
      `متوسط النمو %` = mean(`معدل النمو`, na.rm=TRUE),
      `أعلى نمو %` = max(`معدل النمو`, na.rm=TRUE),
      `أدنى نمو %` = min(`معدل النمو`, na.rm=TRUE)
    )
} else {
  growth_summary <- df %>%
    arrange(الفئة, السنة) %>%
    group_by(الفئة) %>%
    mutate(`معدل النمو` = (القيمة/lag(القيمة) - 1) * 100) %>%
    summarise(
      `متوسط النمو %` = mean(`معدل النمو`, na.rm=TRUE),
      `أعلى نمو %` = max(`معدل النمو`, na.rm=TRUE),
      `أدنى نمو %` = min(`معدل النمو`, na.rm=TRUE)
    )
}
knitr::kable(growth_summary, digits = 2, caption = "ملخص معدلات النمو حسب نوع الناتج المحلي")
ملخص معدلات النمو حسب نوع الناتج المحلي
الفئة متوسط النمو % أعلى نمو % أدنى نمو %
الاسمي 6.63 28.86 -13.61
الحقيقي 3.61 12.00 -3.80
المعدل موسميًا 3.61 12.00 -3.80

6 🧩 مقارنة آخر سنة متاحة

last_year <- df %>% filter(السنة == max(السنة)) %>% 
  mutate(`القيمة (تريليون ريال)` = round(القيمة_تريليون, 2)) %>%
  select(الفئة, `القيمة (تريليون ريال)`) %>%
  arrange(match(الفئة, c("الحقيقي","الاسمي","المعدل موسميًا")))

knitr::kable(last_year, digits=2,
             caption = paste0("قيم الناتج المحلي في سنة ", max(df$السنة)))
قيم الناتج المحلي في سنة 2024
الفئة القيمة (تريليون ريال)
الحقيقي 4.66
الاسمي 4.65
المعدل موسميًا 4.66

7 📦 ملحق: فحص التناسق والجودة

any_negative <- any(df$القيمة < 0, na.rm = TRUE)
cats <- sort(unique(df$الفئة))
data.frame(
  مؤشر = c("قيم سالبة موجودة؟", "عدد السنوات"),
  نتيجة = c(ifelse(any_negative, "نعم", "لا"), length(unique(df$السنة)))
) %>% knitr::kable(caption = "اختبارات جودة سريعة")
اختبارات جودة سريعة
مؤشر نتيجة
قيم سالبة موجودة؟ لا
عدد السنوات 15

8 📌 الملخص البصري 2025 (لقطة سريعة)

يوضح هذا القسم مؤشرات مختارة للأشهر/الفترات الأحدث المتاحة لعام 2025:

kpis <- data.frame(
  المؤشر = c("الناتج المحلي الحقيقي (الربع 2/2025)",
             "التضخم العام (أغسطس 2025)",
             "الفائض التجاري (يوليو 2025)",
             "الإنتاج الصناعي (أغسطس 2025)"),
  القيمة = c("1.2 تريليون ريال", "2.3%", "26.9 مليار ريال", "+7.1% على أساس سنوي")
)
knitr::kable(kpis, caption = "ملخص بصري لمؤشرات مختارة لعام 2025")
ملخص بصري لمؤشرات مختارة لعام 2025
المؤشر القيمة
الناتج المحلي الحقيقي (الربع 2/2025) 1.2 تريليون ريال
التضخم العام (أغسطس 2025) 2.3%
الفائض التجاري (يوليو 2025) 26.9 مليار ريال
الإنتاج الصناعي (أغسطس 2025) +7.1% على أساس سنوي

9 🧭 تحليل الناتج المحلي الإجمالي الحقيقي حسب النشاط الاقتصادي (سنوي)

file_act <- "تطور-الناتج-المحلي-الإجمالي-الحقيقي-حسب-النشاط-الاقتصادي--السنوي.xlsx"
act <- readxl::read_excel(file_act)

# تحضير المتغيرات المشتقة
act <- act %>%
  mutate(القيمة_مليار = القيمة / 1e9)

head(act)
السنة النشاط الاقتصادي القيمة معدل النمو القيمة_مليار
2010 الزراعة والغابات وصيد الأسماك 7.2149e+10 0.000000 72.149
2011 الزراعة والغابات وصيد الأسماك 7.6111e+10 5.491414 76.111
2012 الزراعة والغابات وصيد الأسماك 7.8852e+10 3.601319 78.852
2013 الزراعة والغابات وصيد الأسماك 8.1961e+10 3.942830 81.961
2014 الزراعة والغابات وصيد الأسماك 8.6456e+10 5.484316 86.456
2015 الزراعة والغابات وصيد الأسماك 9.1144e+10 5.422411 91.144

9.1 🔝 أكبر الأنشطة حجمًا في أحدث سنة

latest_year_act <- max(act$السنة, na.rm = TRUE)
top_latest <- act %>%
  filter(السنة == latest_year_act) %>%
  arrange(desc(القيمة_مليار)) %>%
  mutate(النشاط_الاقتصادي = forcats::fct_reorder(`النشاط الاقتصادي`, القيمة_مليار)) %>%
  head(10)

ggplot(top_latest, aes(x = النشاط_الاقتصادي, y = القيمة_مليار)) +
  geom_col() +
  coord_flip() +
  labs(title = paste0("أكبر 10 أنشطة اقتصاديًا في ", latest_year_act, " (مليار ريال)"),
       x = "", y = "القيمة (مليار ريال)") +
  theme_minimal()

9.2 📈 أفضل/أضعف الأنشطة نموًا (سنة أخيرة)

top_growth_yoy <- act %>%
  filter(السنة == latest_year_act) %>%
  arrange(desc(`معدل النمو`)) %>%
  select(`النشاط الاقتصادي`, `معدل النمو`) %>%
  head(10)

bottom_growth_yoy <- act %>%
  filter(السنة == latest_year_act) %>%
  arrange(`معدل النمو`) %>%
  select(`النشاط الاقتصادي`, `معدل النمو`) %>%
  head(10)

knitr::kable(top_growth_yoy, digits = 2, caption = paste0("أعلى 10 أنشطة نموًا في ", latest_year_act, " (%)"))
أعلى 10 أنشطة نموًا في 2024 (%)
النشاط الاقتصادي معدل النمو
تجارة الجملة والتجزئة والمطاعم والفنادق 7.17
الكهرباء والغاز والمياه 5.41
الخدمات المجتمعية والاجتماعية والشخصية 5.29
الزراعة والغابات وصيد الأسماك 5.06
المالية والتأمين والعقارات وخدمات الأعمال 4.97
النقل والتخزين والاتصالات 4.90
البناء 4.79
التصنيع 3.68
صافي الضرائب على المنتجات 3.22
خدمات حكومية 2.33
knitr::kable(bottom_growth_yoy, digits = 2, caption = paste0("أضعف 10 أنشطة نموًا في ", latest_year_act, " (%)"))
أضعف 10 أنشطة نموًا في 2024 (%)
النشاط الاقتصادي معدل النمو
التعدين واستغلال المحاجر -6.21
خدمات حكومية 2.33
صافي الضرائب على المنتجات 3.22
التصنيع 3.68
البناء 4.79
النقل والتخزين والاتصالات 4.90
المالية والتأمين والعقارات وخدمات الأعمال 4.97
الزراعة والغابات وصيد الأسماك 5.06
الخدمات المجتمعية والاجتماعية والشخصية 5.29
الكهرباء والغاز والمياه 5.41

9.3 🧮 النمو التراكمي (CAGR) عبر كامل الفترة

cagr_tbl <- act %>%
  arrange(`النشاط الاقتصادي`, السنة) %>%
  group_by(`النشاط الاقتصادي`) %>%
  summarise(
    أول_سنة = first(السنة),
    آخر_سنة = last(السنة),
    أول_قيمة = first(القيمة),
    آخر_قيمة = last(القيمة),
    سنوات = آخر_سنة - أول_سنة,
    CAGR_نسبة = ifelse(سنوات > 0 & أول_قيمة > 0, ((آخر_قيمة/أول_قيمة)^(1/سنوات)-1)*100, NA_real_)
  ) %>%
  arrange(desc(CAGR_نسبة))

knitr::kable(head(cagr_tbl, 10), digits = 2, caption = "أعلى 10 أنشطة من حيث CAGR طوال الفترة (%)")
أعلى 10 أنشطة من حيث CAGR طوال الفترة (%)
النشاط الاقتصادي أول_سنة آخر_سنة أول_قيمة آخر_قيمة سنوات CAGR_نسبة
الخدمات المجتمعية والاجتماعية والشخصية 2010 2024 4.55780e+10 1.71557e+11 14 9.93
البناء 2010 2024 1.47831e+11 3.54462e+11 14 6.45
تجارة الجملة والتجزئة والمطاعم والفنادق 2010 2024 2.28702e+11 5.37594e+11 14 6.30
النقل والتخزين والاتصالات 2010 2024 1.19977e+11 2.62502e+11 14 5.75
التصنيع 2010 2024 3.75552e+11 7.52889e+11 14 5.09
المالية والتأمين والعقارات وخدمات الأعمال 2010 2024 2.77175e+11 5.33882e+11 14 4.79
الكهرباء والغاز والمياه 2010 2024 3.52030e+10 6.72660e+10 14 4.73
الزراعة والغابات وصيد الأسماك 2010 2024 7.21490e+10 1.17988e+11 14 3.58
صافي الضرائب على المنتجات 2010 2024 1.52032e+11 2.44423e+11 14 3.45
خدمات حكومية 2010 2024 4.39704e+11 6.36289e+11 14 2.67

9.4 🔬 اتجاهات مختارة (قيميًا) لأكبر الأنشطة

top6_names <- top_latest$`النشاط الاقتصادي`[1:6]

act_top6 <- act %>% filter(`النشاط الاقتصادي` %in% top6_names)

ggplot(act_top6, aes(x = السنة, y = القيمة_مليار)) +
  geom_line() + geom_point() +
  facet_wrap(~ `النشاط الاقتصادي`, scales = "free_y") +
  labs(title = "اتجاهات القيمة الاسمية لأكبر 6 أنشطة (مليار ريال)",
       x = "السنة", y = "القيمة (مليار ريال)") +
  theme_minimal()

9.5 🗺️ خريطة حرارة للنمو السنوي حسب النشاط

growth_mat <- act %>%
  select(السنة, `النشاط الاقتصادي`, `معدل النمو`) %>%
  tidyr::pivot_wider(names_from = السنة, values_from = `معدل النمو`)

# ترتيب الأنشطة بحسب متوسط النمو
ggplot(act, aes(x = factor(السنة), y = `النشاط الاقتصادي`, fill = `معدل النمو`)) +
  geom_tile(color = "white") +
  scale_fill_gradient2(
    low = "#e53935",      # أحمر = انخفاض النمو
    mid = "#fff176",      # أصفر = نمو معتدل
    high = "#43a047",     # أخضر = نمو مرتفع
    midpoint = 0,
    name = "نمو %"
  ) +
  labs(title = "خريطة حرارة: معدل النمو السنوي الحقيقي حسب النشاط الاقتصادي",
       x = "السنة", y = "النشاط الاقتصادي") +
  theme_minimal() +
  theme(
    axis.text.x = element_text(angle = 90, vjust = 0.5, hjust = 1),
    legend.position = "top"
  )

قراءة مختصرة للنتائج:
- تُظهر قائمة أكبر 10 أنشطة أين يتركز الحجم الاقتصادي الحقيقي في أحدث سنة.
- تفصل جداول أعلى/أضعف نمو سنوي الأنشطة الدافعة/الكابحة للنمو في المدى القصير.
- يوضح CAGR الأنشطة الرائدة هيكليًا عبر كامل الفترة، بعيدًا عن التقلبات المؤقتة.
- تُبرز خريطة الحرارة سنوات الذروة/التباطؤ لكل نشاط بشكل بصري سريع.

10 🔵 التحليل العنقودي K-Means

يهدف هذا التحليل إلى تجميع الأنشطة الاقتصادية المتشابهة من حيث متوسط القيمة الاسمية ومتوسط معدل النمو إلى مجموعات متجانسة.

suppressPackageStartupMessages({
  library(cluster)
  library(factoextra)
  library(dplyr)
})

# تجهيز بيانات الكتلة: متوسطات حسب النشاط
kdata <- act %>%
  group_by(`النشاط الاقتصادي`) %>%
  summarise(
    متوسط_القيمة = mean(`القيمة`, na.rm = TRUE),
    متوسط_النمو  = mean(`معدل النمو`, na.rm = TRUE)
  ) %>%
  na.omit()

# التحقق من كفاية الصفوف
if (nrow(kdata) >= 3) {
  # توحيد المقاييس
  X <- scale(kdata[, c("متوسط_القيمة", "متوسط_النمو")])
  rownames(X) <- kdata$`النشاط الاقتصادي`
  
  set.seed(123)
  km <- kmeans(X, centers = 3, nstart = 25)
  kdata$المجموعة <- factor(km$cluster)
  
  # رسم المجموعات
  p_km <- fviz_cluster(km, data = X, geom = "point",
                       main = "تحليل K-Means لتجميع الأنشطة الاقتصادية") +
    theme_minimal()
  print(p_km)
  
  head(kdata)
} else {
  cat("⚠️ البيانات غير كافية لإجراء K-Means (نحتاج 3 أنشطة على الأقل بعد إزالة القيم المفقودة).")
}
النشاط الاقتصادي متوسط_القيمة متوسط_النمو المجموعة
البناء 2.312234e+11 6.384480 3
التصنيع 5.701362e+11 4.873603 3
التعدين واستغلال المحاجر 1.039520e+12 1.008190 1
الخدمات المجتمعية والاجتماعية والشخصية 1.013573e+11 9.320366 2
الزراعة والغابات وصيد الأسماك 9.555593e+10 3.349561 3
الكهرباء والغاز والمياه 5.223540e+10 4.507110 3

التفسير:
- كل مجموعة تمثل سلوكًا اقتصاديًا متقاربًا بين الأنشطة من حيث الحجم (القيمة) والنمو.
- يفيد التجميع في تحديد القطاعات القائدة (قيمة/نمو أعلى)، المتوسطة، والأقل أداءً لصياغة سياسات أو أولويات استثمار.


11 🔷 التحليل بالإحداثيات المتعددة (MDS)

يُستخدم MDS لتقليل الأبعاد وعرض تشابه الأنشطة الاقتصادية على خريطة ثنائية الأبعاد لسهولة الفهم.

suppressPackageStartupMessages(library(ggplot2))

if (exists("X") && nrow(as.matrix(X)) >= 3) {
  # مصفوفة المسافات على البيانات الموحّدة
  dist_mat <- dist(X)
  mds <- cmdscale(dist_mat, k = 2)
  
  mds_df <- as.data.frame(mds)
  colnames(mds_df) <- c("البعد_1", "البعد_2")
  mds_df$`النشاط الاقتصادي` <- rownames(X)
  if (exists("kdata") && "المجموعة" %in% names(kdata)) {
    mds_df <- merge(mds_df, kdata[, c("النشاط الاقتصادي","المجموعة")], by = "النشاط الاقتصادي", all.x = TRUE)
  }
  
  ggplot(mds_df, aes(x = البعد_1, y = البعد_2, color = المجموعة)) +
    geom_point(size = 3) +
    geom_text(aes(label = `النشاط الاقتصادي`), hjust = 0, vjust = 0, size = 3) +
    labs(title = "خريطة MDS لتشابه الأنشطة الاقتصادية",
         x = "البعد 1", y = "البعد 2", color = "المجموعة") +
    theme_minimal()
} else {
  cat("⚠️ لم يتم حساب X (مصفوفة السمات الموّحدة) أو عدد الصفوف أقل من 3 لإجراء MDS.")
}

التحليل:
- النقاط المتقاربة تعني تشابهًا أكبر في الخصائص الاقتصادية.
- تم تلوين النقاط حسب المجموعة الناتجة من K-Means لسهولة الربط.
- الأنشطة البعيدة على الأطراف تمثل سلوكًا مغايرًا (إما نمو مرتفع جدًا أو حجم مختلف بوضوح).

12 🧭 الخلاصة والتوصيات

جميع الحقوق محفوظة © أرقامي 2025

لمزيد من المعلومات، تواصل معنا عبر بريدنا الإلكتروني: argamil2025@gmail.com