Données

Cette page présente les données et les traitements qui ont été réalisés pour construire les indicateurs utilisés pour le ciblage territorial. Les données proviennent de deux sources principales : l’OIR (Observatoire de l’Intérim et du Recrutement) et l’INSEE (recensements de la population, données fiscales). Une représentation cartographique de chaque variable statistique est fournie, afin d’illustrer la distribution spatiale de la variable à l’échelle des deux régions.

Création des indicateurs

Données de l’OIR

Indicateur n°1 : part des jeunes intérimaires dans l’emploi intérimaire total (2024)

L’OIR (Observatoire de l’Intérim et du Recrutement) met à disposition une application qui fournit un ensemble d’indicateurs sur les salariés intérimaires, aux échelles régionale, départementale et intercommunale. On y trouve notamment, pour les années 2019 à 2024 :

  • le nombre de salariés intérimaires
  • leur répartition par genre
  • leur répartition par classes d’âge (dont une classe “moins de 25 ans”)
  • le nombre total d’heures travaillées

Il nous a semblé pertinent d’utiliser l’information sur les classes d’âge afin de construire un indicateur “part des jeunes intérimaires dans l’emploi intérimaire total”, cartographié ci-dessous. Les données n’étant pas facilement téléchargeables depuis le site de l’OIR, le script python ci-dessous a été utilisé afin d’interroger directement l’API de l’application pour récupérer les informations.

Voir le script Python

import requests
import pandas as pd

BASE_URL = "https://territoire.observatoire-interim-recrutement.fr/prod/api/data"

# Charger les codes interco depuis un CSV (colonne "id_interco")
codes_epci = pd.read_csv("codes_epci.csv")["id_interco"].astype(str).tolist()

def get_json(url):
    r = requests.get(url)
    if r.status_code == 200:
        return r.json()
    else:
        print(f"⚠️ Erreur {r.status_code} pour {url}")
        return None

def extract_value_by_key(j, code):
    """Cherche dans j['data'] l’entrée dont key == code et retourne value"""
    if not j or "data" not in j:
        return None
    for entry in j["data"]:
        if str(entry.get("key")) == str(code):
            return entry.get("value")
    return None

data = []

for code in codes_epci:
    print(f"⏳ Traitement interco {code}...")

    # 1. Nb salariés intérimaires
    url_sum = f"{BASE_URL}/2024.ctt.sum.i{code}.json?importId=40"
    j_sum = get_json(url_sum)
    nb_salaries = extract_value_by_key(j_sum, code)

    # 2. Nb heures travaillées
    url_hours = f"{BASE_URL}/2024.ctt.hours.i{code}.json?importId=40"
    j_hours = get_json(url_hours)
    nb_heures = extract_value_by_key(j_hours, code)

    # 3. Répartition par âge
    url_age = f"{BASE_URL}/2024.ctt.groupage.i{code}.json?importId=40"
    j_age = get_json(url_age)

    nb_moins_25 = nb_25_45 = nb_46_60 = nb_60plus = None
    if j_age and "data" in j_age:
        for entry in j_age["data"]:
            key = str(entry.get("key"))
            val = entry.get("value")
            if key == "0":      # -25 ans
                nb_moins_25 = val
            elif key == "1":    # 25-45 ans
                nb_25_45 = val
            elif key == "2":    # 46-60 ans
                nb_46_60 = val
            elif key == "3":    # +60 ans
                nb_60plus = val

    data.append({
        "id_interco": code,
        "nb_salariés_intérimaires": nb_salaries,
        "nb_heures_travaillées": nb_heures,
        "nb_m25_ans": nb_moins_25,
        "nb_25_45_ans": nb_25_45,
        "nb_46_60_ans": nb_46_60,
        "nb_60_ans": nb_60plus
    })

# Sauvegarde CSV
df = pd.DataFrame(data)
df.to_csv("interim_epci.csv", index=False, sep=";")

print("✅ Fichier généré : interim_epci.csv")

Cartographie de la variable :

Si on ne retient que les EPCI où la part est supérieure à 35% (filtrage, seuil défini arbitrairement), on obtient les 41 EPCI suivantes :

   dep                                epci part_jeunes nb_jeunes total
1   48                  CC Coeur de Lozère    46.20853       195   422
2   12            CC Comtal Lot et Truyère    42.30769       264   624
3   32       CC de la Gascogne Toulousaine    41.52047       284   684
4   17                   CC de l'Ile de Ré    41.20482       171   415
5   12              CA Rodez Agglomération    41.06656      1055  2569
6   12                CC Conques-Marcillac    39.80344       162   407
7   79                    CC du Thouarsais    39.43489       963  2442
8   79         CC Airvaudais-Val du Thouet    39.11007       167   427
9   79                CC Haut Val de Sèvre    38.72549       711  1836
10  33                 CC Jalle-Eau-Bourde    38.62159       297   769
11  86               CC Vienne et Gartempe    38.52140       396  1028
12  17                   CA de La Rochelle    38.44378      3330  8662
13  33                      CC du Bazadais    38.44011       276   718
14  48    CC des Hautes Terres de l'Aubrac    37.89474        36    95
15  87                CU Limoges Métropole    37.84521      2220  5866
16  87         CC Porte Océane du Limousin    37.67361       434  1152
17  46 CC Causses et Vallée de la Dordogne    37.57339       768  2044
18  46                  CC du Quercy Blanc    37.27811        63   169
19  31             CC des Coteaux du Girou    37.09677        46   124
20  33              CC Convergence Garonne    37.01657       402  1086
21  87      CC Élan Limousin Avenir Nature    37.01149       322   870
22  30                CA du Gard Rhodanien    36.62420      1150  3140
23  32             CC Artagnan de Fezensac    36.58537        30    82
24  79            CA du Bocage Bressuirais    36.47141      2092  5736
25  40                      CC du Seignanx    36.41059       564  1549
26  19            CC Xaintrie Val'Dordogne    36.36364        96   264
27  47              CC Fumel Vallée du Lot    36.35394       341   938
28  12                CC du Pays Rignacois    36.30573        57   157
29  79                      CA du Niortais    36.21795      1921  5304
30  31                   CC du Frontonnais    36.21673       381  1052
31  24                  CC Dronne et Belle    35.96674       173   481
32  87                   CC Ouest Limousin    35.93750       138   384
33  33                   CC de Montesquieu    35.73001       487  1363
34  34          CC du Grand Pic Saint-Loup    35.59322       147   413
35  12         CC de Millau Grands Causses    35.57858       618  1737
36  47            CA du Grand Villeneuvois    35.54129      1218  3427
37  30               CA de Nîmes Métropole    35.47337      2724  7679
38  79                CC Mellois en Poitou    35.28336       579  1641
39  30                  CC du Pont du Gard    35.26448       140   397
40  33  CC des Portes de l'Entre-Deux-Mers    35.15358       206   586
41  64                   CC de Lacq-Orthez    35.12931       815  2320

Ce qui nous donne (localisation) :

Indicateur n°2 : taux d’évolution annuel moyen de la part des jeunes intérimaires dans le total des intérimaires (période 2019-2024)

L’évolution annuelle moyenne de la part des intérimaires de moins de 25 ans est calculée comme un taux de croissance composé entre la part en 2019 et celle en 2024. À des fins de lisibilité, l’évolution est exprimée en points de pourcentage par an :

\[ \Delta p_{\text{an}} = \frac{\text{part}_{2024} - \text{part}_{2019}}{5} \]

Données OIR et INSEE

Indicateur n°3 : part des intétimaires dans le total des actifs occupés (2022)

Le troisième indicateur rapporte une donnée OIR (nombre total d’intérimaires en 2022) à une donnée INSEE (total de la population active occupée, en 2022 également).

Cartographie de la variable :

Données INSEE

Indicateur n°4 : niveau de vie médian des moins de 30 ans (2021)

Les données sur le niveau de vie médian par tranche d’âge du référent fiscal sont extraites du fichier Filosofi (2021).

Cartographie de la variable :

Indicateur n°5 : taux d’évolution annuel des 15-29 ans (période 2016-2022) :

Le taux d’évolution annuel de la population jeune permet d’identifier les territoires qui accueillent des jeunes et ceux qui en perdent (sur la période 2016-2022).

Cartographie de la variable :

Données de la “carte des loyers 2025”

Indicateur n°6 : niveau des loyers (T3 2025)

Les données utilisées sont celles de la “carte des loyers T3 2025” (Estimations ANIL, à partir des données du Groupe SeLoger et de leboncoin), à récupérer ici.

Les données étant mises à disposition à l’échelle communale, nous avons calculé un loyer moyen par EPCI (moyenne des loyers des communes ayant le même code SIREN).

Cartographie de la variable :

Analyse spatiale

Ségrégation spatiale

Les données de l’indicateur n°1 (répartition des intérimaires par classe d’âge en 2024), permettent de calculer un quotient de localisation.

Le quotient de localisation (QL) est un indicateur d’analyse spatiale couramment utilisé en géographie et en économie régionale. Il permet d’identifier les territoires dans lesquels un groupe est sur-représenté ou sous-représenté par rapport à une situation de référence (Apparicio, 2000). Un QL supérieur à 1 indique une sur-représentation locale des jeunes intérimaires, tandis qu’un QL inférieur à 1 traduit une sous-représentation.

\[ QL_i = \frac{J_i / T_i}{J / T} \]

avec :

  • \(J_i\) : nombre de jeunes intérimaires (-25 ans) dans le territoire i
  • \(T_i\) : nombre total d’intérimaires tous âges dans le territoire i
  • \(J\) : nombre total de jeunes intérimaires sur l’ensemble du territoire d’étude
  • \(T\) : nombre total d’intérimaires tous âges sur l’ensemble du territoire d’étude

Règle de lecture :

  • \(QL_i > 1\) : sur-représentation des jeunes intérimaires
  • \(QL_i = 1\) : proportion moyenne
  • \(QL_i < 1\) : sous-représentation des jeunes intérimaires

Cartographie du QL :

Autocorrélation spatiale

Définition et I de Moran

L’autocorrélation spatiale désigne le fait que des territoires proches géographiquement présentent des valeurs similaires pour un même indicateur. Une autocorrélation spatiale positive signifie que des territoires voisins tendent à partager des niveaux comparables (élevés ou faibles), tandis qu’une autocorrélation négative traduit des contrastes marqués entre territoires proches. L’analyse de l’autocorrélation spatiale permet ainsi de déterminer si la répartition d’un phénomène est structurée dans l’espace ou résulte d’une distribution aléatoire.

Le test global d’autocorrélation spatiale (I de Moran) appliqué au quotient de localisation (QL) des jeunes intérimaires met en évidence une structuration spatiale significative. La valeur observée de l’indice (I = 0,32) est nettement supérieure à celle attendue sous l’hypothèse d’une répartition aléatoire, et le test est hautement significatif (p < 0,001).

Ce résultat indique que les territoires présentant une sur-représentation des jeunes intérimaires tendent à se regrouper spatialement, formant des ensembles territoriaux cohérents, plutôt que d’être distribués de manière isolée.

Cartographie des LISA

Les indicateurs locaux d’autocorrélation spatiale (LISA) permettent d’identifier, à l’échelle de chaque territoire, les zones où les valeurs d’un indicateur sont significativement similaires ou contrastées par rapport à celles des territoires voisins. Ils distinguent notamment des clusters de territoires à valeurs élevées entourés de valeurs élevées (HH), des clusters de valeurs faibles (LL), ainsi que des situations de contraste spatial (HL et LH), correspondant à des territoires atypiques au regard de leur environnement. Les LISA complètent ainsi l’autocorrélation spatiale globale en localisant précisément les structures spatiales observées.