diff --git a/.github/workflows/dev.yaml b/.github/workflows/dev.yaml index ed57db77..95f7c769 100644 --- a/.github/workflows/dev.yaml +++ b/.github/workflows/dev.yaml @@ -63,7 +63,6 @@ jobs: preview-branch: ${{ env.PREVIEW_BRANCH }} action: deploy comment: false - pr_number: ${{ github.event.pull_request.number }} - name: Comment PR (custom) uses: marocchino/sticky-pull-request-comment@v2 @@ -98,4 +97,3 @@ jobs: Preview removed because the pull request was closed. ${{ steps.remove-preview.outputs.action-start-time }} - diff --git a/.github/workflows/prod.yaml b/.github/workflows/prod.yaml index f98ed5ec..e2a6ea79 100644 --- a/.github/workflows/prod.yaml +++ b/.github/workflows/prod.yaml @@ -33,3 +33,5 @@ jobs: target: netlify NETLIFY_AUTH_TOKEN: ${{ secrets.NETLIFY_AUTH_TOKEN }} NETLIFY_SITE_ID: ${{ secrets.NETLIFY_SITE_ID }} + + diff --git a/.gitignore b/.gitignore index 8e706425..6b7b3f8a 100644 --- a/.gitignore +++ b/.gitignore @@ -9,7 +9,24 @@ node_modules/ go.sum .hugo_build.lock +# Quarto +_freeze/ +*.html +*.json +*.feed* +site_libs/ + +# For gh-pages /.quarto/ _site/ + rp_parquet/ +*.quarto_ipynb **/*.quarto_ipynb +course_files/ + +# Venv +.venv/ +*/.venv/ +__pycache__/ +*/__pycache__/ diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 6a8c3be0..fb8f7423 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -147,7 +147,7 @@ Pour des sujets plus transversaux, ou pour discuter avec les autres membres du réseau, il est possible de rejoindre le salon de discussion dédié sur le service de messagerie `Tchap`. Il s'agit d'un salon privé auquel vous pouvez demander l'accès en envoyant un message privé à Lino Galiana ou un -mail à ssphub-contact@insee.fr +mail à {{< var contact.email >}} ## :four: Comment ajouter une référence dans l'une des rubriques événements, ressources ou projets ? diff --git a/README.md b/README.md index c7df77eb..aff3af45 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,103 @@ -# Site web du réseau des data scientists du service statistique public +# Website of the data scientists of the French Official Statistical System -Code source du `SSPHub`, le site du réseau des -_data scientists_ du service statistique public (SSP). +Code of the [`SSPHub`](https://ssphub.netlify.app.), a website for data scientists of the French Official Statistical System. -Contenu disponible sur https://ssphub.netlify.app. +# How to use this repo ? +## Set up +Assumes you have an account on [https://datalab.sspcloud.fr/](https://datalab.sspcloud.fr/) +- Open a service (VSCode or other IDE) with **R installed** +- Github account, (with credentials to InseeFrLab/ssphub if you want to deploy the website) + +## How to contribute +Specified in [contributing.md](CONTRIBUTING.md) + +## How to + +### Render / preview when coding +- render: `Rscript scripts/render.R` +- preview: `Rscript scripts/preview.R` +- render and preview : `Rscript scripts/render.R && Rscript scripts/preview.R` + +If a PR is opened, a website preview is automatically generated. The link to the preview is in the Github PR details. Every push to the remote repo will trigger an update of the website preview. + +### Create a project +used with Python. `create_folder_and_file("2022_JOCAS")` + +```{shell} +cd scripts +uv sync +uv run template.py name_of_the_folder (optional: name_of_the_template.qmd) +``` + +Example : +```{shell} +cd scripts +uv sync +uv run template.py test +``` + + +### Harmonization of categories +private data sources : introduce code snippets for YAML part. +```{json} + "add private data tags (FR)": { + "prefix": "prdata", + "body": " - données de caisse\n - données de téléphonie mobile\n - données CB\n - données comptes bancaires", + "description": "adds categories for listing of similar projects related to private data sources" + }, + + "add private data tags (EN)": { + "prefix": "en_prdata", + "body": " - scanner data\n - mobile phone data\n - credit card data\n - bank account data", + "description": "adds categories for listing of similar projects related to private data sources" + }, +``` +When a new category is created, do a find and replace all to add this category to all the listing to ensure consistency. + +### Translate a page to english +Config : +- have a deepl API KEY stored as `DEEPL_API_KEY` +- working directory must be ssphub/scripts + +```{shell} +# it will take the "index.qmd" file of the project/project_subdir dir and translate it into "index.en.qmd +Rscript translate.R project_subdir +``` + +Example +```{shell} +Rscript scripts/translate.R 2023_doremifasol +``` + + +Have a careful check with the proposed translated webpage. The automated translation often +adds a backslash or "-" at some spots that creates bugs when rendering the website. For example : + - `description: | -` for `description: |` + - `{{\< fa brands github >}}` for `{{< fa brands github >}}` + - Markdown table structure contains many whitespace and --- +The translate programm removes some issues but not all. It deletes all "\", multiple spaces and multiple "----". +But some ENTER remain, and it doesn't translate categories of listing. +A careful look is needed : +- listing categories in the YAML part must be translated +- inside Qmd table to ensure that a row is always coded in 1 line of code. + +### Publish +Publishing is automated with CI in the [prod.yaml](.github/workflows/prod.yaml) file. + +# Credits +Thanks to : + +- [babelquarto](https://docs.ropensci.org/babelquarto/) +- Quarto + +# Personnal + +## To do +- speed up R set up in Github actions (with renv? / dependencies set to '"hard"'?) +- move image to S3 to have smaller repo (impact on newsletter download image function) +- have a developpement Quarto profile ? +- doublon blog/polars/polars-tuto.qmd et additional/notebooks + +## Useful +- init.sh ?? -Site web construit avec `Quarto` diff --git a/_quarto-en.yml b/_quarto-en.yml new file mode 100644 index 00000000..a64e1984 --- /dev/null +++ b/_quarto-en.yml @@ -0,0 +1,16 @@ +website: + description: "Network of data scientists working for the French administration" + navbar: + search: true + right: + - icon: github + href: https://github.com/InseeFrLab/ssphub + left: + - href: index.qmd + text: "Home" + - href: about.qmd + text: "About the SSPHub" + - href: https://datalab.sspcloud.fr/ + text: "SSPCloud" + +lang: en-GB diff --git a/_quarto-fr.yml b/_quarto-fr.yml new file mode 100644 index 00000000..17a04129 --- /dev/null +++ b/_quarto-fr.yml @@ -0,0 +1,39 @@ +website: + description: "Blog du réseau des data scientists de la statistique publique" + navbar: + search: true + right: + - icon: rss + href: index.xml + - icon: github + href: https://github.com/InseeFrLab/ssphub + left: + - href: index.qmd + text: "Accueil" + - href: event.qmd + text: "Événements" + - href: blog.qmd + text: "Blog" + - href: project.qmd + text: "Projets" + - href: course.qmd + text: "Ressources utiles" + - text: "À propos" + menu: + - href: infolettre/infolettre.qmd + text: "Newsletters" + - href: about.qmd + text: "Présentation du réseau" + - href: manifeste.qmd + text: "Manifeste du réseau" + - href: https://datalab.sspcloud.fr/ + text: "Le SSPCloud" + + announcement: + icon: bi-megaphone + dismissable: true + content: "📺️ Les présentations et le replay de la journée du réseau, le 1^er^ décembre 2025, [sont disponibles](/event/2025-12-01-network-day/index.qmd)" + type: primary + position: below-navbar + +lang: fr diff --git a/_quarto.yml b/_quarto.yml index e97f1f7d..f0d284d9 100644 --- a/_quarto.yml +++ b/_quarto.yml @@ -3,62 +3,54 @@ project: render: - index.qmd - about.qmd - - course.qmd - - blog.qmd - - event.qmd - - talk/**/*.qmd - - additional/manifeste.qmd + - manifeste.qmd - "!additional/notebooks/*.qmd" - - infolettre/*.qmd - - infolettre/**/*.qmd - - post/**/*.qmd - - partenaires/**/*.qmd - - course/**/*.qmd + - blog.qmd + - blog/**/*.qmd - "!*/parquetRP/snippets/*" - "!*/polars/polars-tuto.qmd" + - course.qmd + - course/**/*.qmd + - event.qmd + - event/**/index.qmd + - infolettre/infolettre.qmd + - infolettre/**/index.qmd + - partenaires/**/index.qmd + - project.qmd + - project/**/*.qmd + # English version - dealt with babelquarto and not with Quarto profiles + - '*.en.qmd' + +website: + title: "SSPHub" + # site-url: https://ssphub.netlify.app/ # For production + site-url: https://InseeFrLab.github.io/ssphub/pr-preview/pr-112/ # when PR open + # site-url: https://user-nicolastlm-497263-0.user.lab.sspcloud.fr/proxy/4321/ # For dev + repo-url: https://github.com/InseeFrLab/ssphub + repo-actions: [source, issue, edit] title-block-banner: "#6886bb" title-block-banner-color: white -website: - title: "SSPHub" - navbar: - search: true - right: - - icon: rss - href: index.xml - left: - - href: index.qmd - text: "Home" - - href: event.qmd - text: "Événements" - - href: infolettre/index.qmd - text: "Newsletters" - - href: blog.qmd - text: "Blog" - - href: course.qmd - text: "Ressources utiles" - - text: "À propos" - menu: - - href: about.qmd - text: "Présentation du réseau" - - href: additional/manifeste.qmd - text: "Manifeste du réseau" - - href: https://datalab.sspcloud.fr/ - text: "Le SSPCloud" - - icon: github - href: https://github.com/InseeFrLab/ssphub - site-url: https://ssphub.netlify.app/ - description: "Blog du réseau des data scientists de la statistique publique" - announcement: - icon: bi-megaphone - dismissable: true - content: "📺️ Les présentations et le replay de la journée du réseau, le 1^er^ décembre 2025, [sont disponibles](/talk/2025-12-01-network-day/index.qmd)" - position: below-navbar +profile: + default: fr + group: [fr, en] format: html: - theme: [cosmo, styles.scss] + theme: [cosmo, assets/scss/styles.scss] toc: true page-layout: article +babelquarto: + languagelinks: navbar + languagecodes: + - name: en + text: "🇬🇧 English" + - name: fr + text: "🇫🇷 Français" + mainlanguage: 'fr' + languages: ['en'] + icon: "" # No bootstrap icon + + diff --git a/_variables.yml b/_variables.yml new file mode 100644 index 00000000..7850e6a5 --- /dev/null +++ b/_variables.yml @@ -0,0 +1,12 @@ + +contact: + email: + tchap: https://tchap.gouv.fr/#/room/#ssphub:agent.finances.tchap.gouv.fr + +signup: + form: https://grist.numerique.gouv.fr/o/ssphub/forms/jSjAV3L2F8mmiRVuVEpfF7/103 + fiche: https://grist.numerique.gouv.fr/o/ssphub/iTFX7gryL8jK/Annuaire?utm_id=share-doc + +site: + url: https://ssphub.netlify.app/ + github: https://github.com/InseeFrLab/ssphub diff --git a/about.en.qmd b/about.en.qmd new file mode 100644 index 00000000..68af663d --- /dev/null +++ b/about.en.qmd @@ -0,0 +1,37 @@ +--- +title: The SSPHub, the network for data scientists +--- + +# The SSPHub, the network for data scientists + +The network of [Official Statistical System (SSP)](https://www.insee.fr/en/information/2386424) data scientists is made up mainly, but not exclusively, of **the government departments responsible for producing official statistics** (mainly INSEE and ministerial statistical departments). + +The network has several objectives, the main ones being: + +- The **sharing and disseminating knowledge** within the *data scientists* community around the practices and innovations of the *data-science* ; +- The **innovative work** in the field of statistical production ; +- Facilitate **exchanges between peers** The aim is to facilitate exchanges between peers, whether or not they belong to the official statistical service. + +In order to better define the objectives, target audience, themes addressed by the network, and associated resources, a [manifesto ](manifeste.html) was drafted collectively. + +# Would you like to join the network? + +The network is open to anyone working in the production of official statistics and more widely in the civil service. +There are various ways in which you can join, but exchanges are (surprisingly😱) in French 🇫🇷 : + +- You can join our discussion channel [`Tchap`]({{< var contact.tchap >}}) ; +- You can receive the newsletter by registering [here]({{< var signup.form >}}) ; +- You can take part in the creation of content on this site at [our `Github` {{< fa brands github >}}]({{< var contact.email >}}) ; +- If you have any questions, would like to chat, etc., you can also send an e-mail to {{< var contact.email >}}. + +# The SSP Lab, INSEE's data science innovation laboratory, which also runs the SSPHub. + +The SSPLab also manages the SSPHub network. +The SSPLab is an INSEE unit (equivalent to a division or office) which was created following the Insee-2025 medium-term strategy reflections. [^1] . +Part of the Methodology, Statistical and International Coordination Directorate (the famous DMCSI), the SSP Lab **promotes innovation and novelty in data sources, technologies and data science methods**. +To this end, it conducts experimental projects in support of the sponsoring departments responsible for producing official statistics (including SSMs outside INSEE, INSEE's business divisions and regional directorates). +It also provides **monitoring role** and **dissemination of innovative statistical methods** co-organises the SSPHub and acts as a link between **external partners** in areas within its remit (research laboratories, European peers). + +[^1]: More details are available on the Insee website [here (French)](https://www.insee.fr/fr/information/3559883) + + diff --git a/about.qmd b/about.qmd index e53f4826..45bbca9b 100644 --- a/about.qmd +++ b/about.qmd @@ -1,27 +1,31 @@ --- -title: "Le réseau des data scientists" +title: "Le SSPHub, le réseau des data scientists" --- -# Présentation -Le réseau des _data scientists_ du [Service Statistique Publique (SSP)](https://www.insee.fr/fr/information/1302192) est constitué principalement, mais non exclusivement, par -les administrations en charge de la production de statistiques officielles +# Le SSPHub, le réseau des data scientists + +Le réseau des data scientists du [Service Statistique Publique (SSP)](https://www.insee.fr/fr/information/1302192) est constitué principalement, mais non exclusivement, par **les administrations en charge de la production de statistiques officielles** (Insee et Services Statistiques Ministériels principalement). -Le réseau répond à plusieurs objectifs, -dont les principaux sont: +Le réseau répond à plusieurs objectifs, dont les principaux sont: -- Le partage et la diffusion de connaissances au sein de la communauté des _data scientists_ de l'administration autour des pratiques et des innovations de la _data-science_ ; -- La valorisation de travaux novateurs dans le champ de la production statistique ; -- Faciliter les échanges entre pairs, qu'ils appartiennent au service statistique public ou non. +- Le **partage et la diffusion de connaissances** au sein de la communauté des _data scientists_ de l'administration autour des pratiques et des innovations de la _data-science_ ; +- La **valorisation de travaux novateurs** dans le champ de la production statistique ; +- Faciliter les **échanges entre pairs**, qu'ils appartiennent au service statistique public ou non. -Afin de mieux cerner les objectifs, le public cible, les thèmes abordés par le réseau, et les moyens associés, un [Manifeste 📜](/additional/manifeste.html) a été rédigé de manière collective. +Afin de mieux cerner les objectifs, le public cible, les thèmes abordés par le réseau, et les moyens associés, un [manifeste 📜](manifeste.html) a été rédigé de manière collective. # Vous voulez rejoindre le réseau? Le réseau est ouvert à toute personne travaillant dans la production de statistiques officielles et plus largement dans la fonction publique. Vous pouvez le faire de diverses manières : -- Vous pouvez intégrer notre canal de discussion [`Tchap`](https://tchap.gouv.fr/#/room/#ssphub:agent.finances.tchap.gouv.fr) ; -- Vous pouvez recevoir l'infolettre en vous inscrivant [ici](https://grist.numerique.gouv.fr/o/ssphub/forms/jSjAV3L2F8mmiRVuVEpfF7/103) ; -- Vous pouvez participer à la création de contenu sur ce site sur [notre `Github` {{< fa brands github >}}](https://github.com/InseeFrLab/ssphub) ; -- Pour toute question, volonté d'échanger, etc, vous pouvez aussi écrire par mail à . +- Vous pouvez intégrer notre canal de discussion [`Tchap`]({{< var contact.tchap >}}) ; +- Vous pouvez recevoir l'infolettre en vous inscrivant [ici]({{< var signup.form >}}) ; +- Vous pouvez participer à la création de contenu sur ce site sur [notre `Github` {{< fa brands github >}}]({{< var site.github >}}) ; +- Pour toute question, volonté d'échanger, etc, vous pouvez aussi écrire par mail 📧 à {{< var contact.email >}}. + +# Le SSP Lab, le laboratoire d'innovation en data science de l'Insee et qui, notamment, anime le SSPHub + +Le SSPLab quant à lui pilote le réseau du SSPHub. Le SSPLab est une unité de l'Insee (équivalent à une division ou un bureau) qui a été crée suite aux réflexions de stratégie de moyen terme d’Insee-2025[^1]. Inséré au sein la Direction de Méthodologie, Coordination Statistique et Internationale (la fameuse DMCSI), le SSP Lab **promeut l’innovation et la nouveauté en matière de sources de données, de technologies et de méthodes de data science**. A ce titre, il mène des projets expérimentaux en appui aux services sponsors en charge des productions de la statistique publique (que ce soit les SSM en dehors de l'Insee, les directions métiers de l'Insee ou les directions régionales). Il assure aussi un **rôle de veille** et de **diffusion de méthodes statistiques innovantes**, co-anime le SSPHub et fait le lien avec des **partenaires extérieurs** sur les champs relevant de ses compétences (laboratoires de recherche, pairs européens). +[^1]: Plus de détails sont disponibles sur le site de l'Insee [ici](https://www.insee.fr/fr/information/3559883) diff --git a/additional/notebooks/init.sh b/additional/notebooks/init.sh deleted file mode 100644 index c994cd80..00000000 --- a/additional/notebooks/init.sh +++ /dev/null @@ -1,21 +0,0 @@ -NOTEBOOK_NAME=$1 -# ex: polars-tuto - -WORK_DIR="/home/onyxia/work" -CLONE_DIR="${WORK_DIR}/repo-git" - -COURSE_DIR="${CLONE_DIR}/content/notebooks" - -# Clone course repository -REPO_URL="https://github.com/inseefrlab/ssphub.git" -git clone --depth 1 $REPO_URL $CLONE_DIR - -# Put relevant notebook in formation dir -cp "${COURSE_DIR}/${NOTEBOOK_NAME}.ipynb" "${WORK_DIR}" - -# Remove useless repositories -rm -rf $CLONE_DIR ${WORK_DIR}/lost+found - -# Open the relevant notebook when starting Jupyter Lab -jupyter server --generate-config -echo "c.LabApp.default_url = '/lab/tree/${NOTEBOOK_NAME}.ipynb'" >> /home/onyxia/.jupyter/jupyter_server_config.py diff --git a/additional/notebooks/polars-tuto.qmd b/additional/notebooks/polars-tuto.qmd deleted file mode 100644 index 2aad5f94..00000000 --- a/additional/notebooks/polars-tuto.qmd +++ /dev/null @@ -1,595 +0,0 @@ ---- -title: Prise en main de Polars -jupyter: python3 ---- - -`Polars` est un package `Python` permettant de manipuler les données tabulaires à partir de différents types de fichiers (CSV, Parquet, etc.). Il est une alternative directe et moderne à `Pandas`, pensée pour être très performante tout en offrant une syntaxe compréhensible à pour des _data scientists_ habitués à d'autres _frameworks_ de manipulation de données comme `dplyr`. - -Ce notebook offre un complément à l'[article](https://ssphub.netlify.app/post/polars/) publié sur le blog du réseau des data scientists de la statistique publique. Les exemples sont reproductibles dans de nombreux environnements, à condition d'installer les packages comme indiqué ci-dessous. Les utilisateurs du SSP Cloud ou de Colab pourront directement ouvrir ce notebook en utilisant les boutons suivants: - -Onyxia -Open In Colab - -Pour faire le parallèle avec les -exemples pour [découvrir le `tidyverse` dans `utilitr`](https://www.book.utilitr.org/03_fiches_thematiques/fiche_tidyverse)), -ce _notebook_ exploite la [Base Permanente des Equipements (BPE)](https://www.insee.fr/fr/metadonnees/source/serie/s1161). - - -::: {.cell .markdown} -```{=html} - -``` -::: - -Pour pouvoir installer les packages utilisés par ce tutoriel, -il est nécessaire d'exécuter la cellule suivante: - -```{python} -#| eval: false -#| output: false -!pip install polars pynsee[full] s3fs duckdb -``` - - -Nous aurons besoin d'importer les packages suivants dans ce _notebook_: - -```{python} -import os -import polars as pl -import s3fs -from pynsee.download import download_file -``` - - -# Lecture de données - - -A partir d'un csv, il est possible de créer un `DataFrame` `Polars` de plusieurs manières : - -1. Charger les données via `Pandas` puis les transformer en objet `Polars` -2. Charger les données directement avec `Polars` via une fonction `read_csv` qui fonctionne, en apparence, -de la même manière que celle de `Pandas` - -Ces deux approches sont présentées dans les prochaines parties. - -## A partir d'un objet `Pandas` - -Le _package_ `Pynsee` fonctionne en deux temps pour créer un `DataFrame` `Pandas` à partir -des données disponibles sur le site [insee.fr](https://www.insee.fr/fr/accueil) : - -1. Récupération des données depuis le site [insee.fr](https://www.insee.fr/fr/accueil) à partir -des paramètres de la fonction `download_file` (source, année...) -2. Import sous forme de `DataFrame` `Pandas` avec un typage pré-défini dans le _package_, adapté -à la source - -Pour récupérer des données via `Pynsee`, la fonction de référence est `download_file`: - -```{python} -#| output: false -pandas_df_bpe = download_file("BPE_ENS", update = True) -``` - -`Pynsee` renvoie un `DataFrame` `Pandas` correspondant à la source désiré : - -```{python} -pandas_df_bpe.__class__ -``` - - -::: {.cell .markdown} -```{=html} - -``` -::: - -La conversion d'un objet `Pandas` en `Polars` se fait via la -méthode `from_pandas`: - -```{python} -df = pl.from_pandas(pandas_df_bpe) -``` - -Les `DataFrame` `Polars` apparaissent de manière différente des `DataFrame` `Pandas` -dans la console ou dans le _display_ de `Jupyter`: - -- `pd.DataFrame`: - -```{python} -pandas_df_bpe.head(2) -``` - -- `pl.DataFrame`: - -```{python} -df.head(2) -``` - -On va écrire au format [Parquet](https://pythonds.linogaliana.fr/reads3/) ce `DataFrame` pour -ensuite illustrer la lecture à partir de -ce format, plus performant. - -```{python} -df.write_parquet("bpe.parquet") -``` - - -## En lecture directe depuis un CSV - -Pour faciliter l'usage des données de la [Base Permanente des Equipements (BPE)](https://www.insee.fr/fr/metadonnees/source/serie/s1161), -une copie de la version 2019 disponible sur le site de l'Insee est mise à disposition, -prête à l'emploi. Elle est disponible depuis -l'URL : https://minio.lab.sspcloud.fr/donnees-insee/diffusion/BPE/2019/BPE_ENS.csv - - -```{python} -url = "https://minio.lab.sspcloud.fr/donnees-insee/diffusion/BPE/2019/BPE_ENS.csv" -df_bpe = pl.read_csv( - url, sep = ";", - dtypes={ - "DEP": pl.Categorical, - "DEPCOM": pl.Categorical - }) -``` - -L'option `dtypes` est ici nécessaire sous peine d'une erreur qu'on ne rencontrait pas -avec `Pandas` car `Polars` est plus vigilant sur la nature piégeuse de certaines -variables comme les numéros de départements français (qui sont tous numériques -sauf les numéros Corse _"2A"_ et _"2B"_) et demande à l'utilisateur de données -de fixer le type de ces variables. - -::: {.cell .markdown} -```{=html} - -``` -::: - - -# Comment utiliser Polars ? - -Dans la suite de ce tutoriel, on va privilégier l'import -depuis un fichier `Parquet`, plus performant et plus fiable -grâce au typage des colonnes. - -```{python} -df_bpe = pl.read_parquet("bpe.parquet") -``` - -A l'instar d'autres outils modernes d'exploitation des données, -`Polars` expose un modèle de traitement basé sur des fonctions de haut niveau, -comme `select`, `filter` ou `groupby`, qui empruntent au langage SQL -une logique expressive du _"quoi ?"_ plutôt que du _"comment ?"_. - -La différence avec un package comme `Pandas` ou `dplyr` (`R`) est que `Polars` -repose explicitement sur le principe de l'exécution retardée (_lazy evaluation_) -qui consiste à optimiser le plan d'exécution fourni par l'utilisateur de données -pour gagner en performance. - -Dans l'exemple qui suit, on commence par déclarer une exécution retardée (via `lazy()`) -qui va permettre au moteur sous-jacent d'optimiser le traitement complet. -Puis on exprime à l'aide des fonctions de haut niveau ce que l'on veut faire : - -1. Filtrer le jeu de données pour ne garder les lignes pour lesquelles la colonne `TYPEQU` vaut `B316` (les stations-services) -2. On regroupe au niveau département -3. On compte le nombre d'occurrences pour chaque département via `agg` -4. Le dernier appel - `collect()` - indique que le traitement peut être lancé (et donc optimisé et parallelisé par `Polars`). - -```{python} -df_stations_service = df_bpe.lazy().filter( # 1. - pl.col("TYPEQU") == "B316" -).groupby( # 2. - "DEP" -).agg( # 3. - pl.count().alias("NB_STATION_SERVICE") -).collect() # 4. - -df_stations_service.head(5) -``` - -Du point de vue du code, -la complexité induite par l'approche d'évaluation retardée est donc -légère (un `lazy` en début de plan et un `collect` en fin de plan). -Cependant, du point de vue de la performance, cela va amener énormément -de gain car cela permettra à `Polars` d'optimiser l'ordre des opérations -lorsque cela est possible pour gagner en performance. Par exemple, si une étape -comme `filter` arrive tardivement, `Polars` peut être tenté de la faire intervenir -plus tôt que l'étape à laquelle elle a été déclarée si c'est possible -puisque traiter un _dataframe_ allégé peut faire gagner beaucoup de temps. - - -## Lazy or not lazy ? - -Les exemples qui suivent n'utilisent pas systématiquement la fonction `lazy()` -avant les opérations sur le _dataframe_ pour montrer l'alternative qui s'offre à l'utilisateur de `Polars`. - -Cependant, l'usage de cette fonction est recommandée en général -et en particulier pour des traiements sur des tables volumineuses : -en effet, le mode _lazy_ permet au moteur sous-jacent d'optimiser les traitements -et donc de gagner en rapidité (par exemple en parallélisant les calculs). - -## Les expressions - -Les [**expressions**](https://pola-rs.github.io/polars-book/user-guide/dsl/expressions.html) sont au coeur des transformations de données en `Polars`. A partir de l'exemple ci-dessous, on peut comprendre la nature d'une expression : - -``` -pl.col("A").sort().head(2) -``` - -- `pl` est l'alias pour le module `Polars` ; -- `col("A")` pointe vers la colonne _"A"_ ; -- `sort()` est une fonction de tri à appliquer sur la colonne ; -- l'opération `head` va permettre de matérialiser l'expression, ici pour sélectionner les deux premières lignes - -Ici, nous avons utilisé `head` pour matérialiser l'expression. -Le reste de l'expression (les transformations antérieures) sera exécuté lorsqu'une action comme `head` est à mettre en oeuvre. - -Les actions qui déclenchent des opérations sont les suivantes: - -- l'aggrégation (`df.groupby(..).agg(..)`) -- l'affichage de valeurs (`df.head(...)`) -- l'appel explicite à une exécution (`df.collect()`) - -Alors que les transformations suivantes ne génèrent pas d'exécution -immédiate : - -- la sélection d'observations (`df.filter(..)`) -- la création de nouvelles variables (`df.with_columns(..)`) ou la sélection -de colonnes (`df.select(...)`) - -Au contraire, leur exécution est retardée à une exécution -ultérieure. - -# Sélection de données - -Deux types de sélections sont possibles : - -1. une __sélection de variables__ (en colonne), avec `select` -2. une __sélection d'observations__ (en ligne), avec `filter` - -La combinaison des deux se faisant en chaînant l'appel à ces deux fonctions. - -## Sélection de variables - -Commençons par sélectionner des variables en utilisant leurs noms : - -```{python} -df_bpe.select( - ["DEPCOM", "TYPEQU", "NB_EQUIP"] -).head(5) -``` - -Bien que cette méthode ne soit pas conseillée, -il est bon de noter qu'il est également possible de sélectionner via les positions des colonnes, comme le permet -`Pandas` : - -```{python} -df_bpe[:, 1:5].head(5) -``` - -On peut également s'appuyer sur des motifs de sélection des noms de colonnes -mobilisant des expressions régulières (ici `^DEP.*$` signifiant _"débute par DEP"_): - -```{python} -df_bpe.select( - pl.col("^DEP.*$") -).head(5) -``` - -La fonction `select` acceptant des `list` Python, on peut construire des sélecteurs assez puissants : - -```{python} -dep_cols = [cols for cols in df_bpe.columns if cols.startswith("DEP")] - -df_bpe.select(dep_cols).head(5) -``` - -## Sélection d'observations - -La sélection d'observations (de lignes) se fera grâce à la fonction `filter`. - -```{python} -df_bpe.filter( - (pl.col("DEPCOM") == "75101") & - (pl.col("TYPEQU") == "B304") -).head(5) -``` - - -De nombreux opérateurs sont disponibles pour faciliter cette sélection d'observations. Ici, deux exemples : - -- `is_in` qui permet de filtrer sur un ensemble de valeurs ; -- `is_null` pour trouver les données manquantes de la variable _"EPCI"_. - -Par exemple, pour sélectionner les départements 75 et 92: - -```{python} -# Départements 75 ou 92 -df_bpe.filter( - pl.col("DEP").is_in(["75", "92"]) -).head(5) -``` - -Pour sélectionner les observations où la variable EPCI a une valeur manquante: - -```{python} -# Valeurs manquantes pour la variable EPCI -df_bpe.filter( - pl.col("EPCI").is_null() -) -``` - -A l'inverse, si on désire ne sélectionner que les -observations où la colonne _"EPCI"_ n'est pas manquante : - -```{python} -df_bpe.filter( - pl.col("EPCI").is_not_null() -) -``` - -Comme avec `Pandas`, il existe énormément de méthodes -pratiques pour la manipulation de données - - -## Renommage de variables - -La fonction `rename` permet de lister les colonnes à renommer via un dictionnaire Python : - -```{python} -#| tags: [] -df_bpe.rename({ - "DEPCOM" : "code_commune" -}).head(5) -``` - -::: {.cell .markdown} -```{=html} - -``` -::: - -Comme vu plus haut, construire des expressions de renommage plus complexes pourra se faire en pur `Python` : - -```{python} -cols_minuscules = {cols: cols.lower() for cols in df_bpe.columns} - -df_bpe.rename(cols_minuscules).head(5) -``` - - - -## Trier une table - -La fonction `sort` permet de trier la table sur une ou plusieurs variables. - -```{python} -df_bpe.lazy()\ - .sort("DEPCOM", "TYPEQU")\ - .head(5).collect() -``` - -L'ordre de tri - croissant par défaut - peut-être précisé pour chaque variable. - - -```{python} -df_bpe.lazy()\ - .sort("DEPCOM", "TYPEQU", descending=[True, False])\ - .head(5).collect() -``` - - -## Création de nouvelles variables - -La création de nouvelles variables se fera via `with_columns`. Dans l'exemple qui suit : - -- on convertit en entier numérique la variable `NB_EQUIP` -- on calcule la somme cumulée (avec `cumsum`) -- on nomme la nouvelle colonne `NB_EQUIP_SUM` - -```{python} -df_bpe.lazy()\ - .with_columns(pl.col('NB_EQUIP').cast(pl.Int64, strict=False))\ - .with_columns( - pl.col("NB_EQUIP").cumsum().alias("NB_EQUIP_SUM"), - pl.when(pl.col("NB_EQUIP") > 3).then(True).otherwise(False).alias("NB_EQUIP_3PLUS") - ).head(5).collect() -``` - - -## Production de synthèses et d'agrégats - -On peut produire des statistiques synthétiques sur notre jeu de données -avec la fonction `select`. - -```{python} -df_bpe.lazy()\ - .with_columns(pl.col('NB_EQUIP').cast(pl.Int64, strict=False))\ - .select( - pl.col("NB_EQUIP").sum().alias("NB_EQUIP_TOT") - ).head(5).collect() -``` - -Les fonctions `describe` et `glimpse` proposent un aperçu synthétique de la table: - -```{python} -df_bpe.describe() -``` - -```{python} -df_bpe.glimpse() -``` - -Les fonctions `groupby` et `agg` sont mobilisées pour créer des aggrégats. Dans l'exemple ci-dessous : - -1. On précise que l'on veut grouper au niveau départemental (`groupby("DEP")`) ; -2. On somme les occurences d'équipement de type boulangerie (`pl.col("TYPEQU") == "B203").sum()`) ; -3. On donne un nom à la colonne portant la somme (`alias("NB_BOULANGERIES_TOT")`) - - -```{python} -df_bpe.lazy().groupby("DEP").agg( - (pl.col("TYPEQU") == "B203").sum().alias("NB_BOULANGERIES_TOT") -).sort("NB_BOULANGERIES_TOT", descending=True).head(5).collect() -``` - -# Explorer le plan d'exécution - -Il peut être utile pour comprendre les opérations effectuées par `Polars` -de jeter un oeil au plan d'exécution. - -Pour cela, il suffit pour cela de ne pas effectuer -d'action comme `collect` ou `head`. - -```{python} -df_bpe.lazy()\ - .with_columns(pl.col('NB_EQUIP').cast(pl.Int64, strict=False))\ - .select( - pl.col("NB_EQUIP").sum().alias("NB_EQUIP_TOT") - ) -``` - -::: {.cell .markdown} -```{=html} - -``` -::: - -# Une interconnexion avec `DuckDB` pour faire des requêtes SQL - -`Polars` s'appuie -sur [`Apache Arrow`](https://arrow.apache.org/), un écosystème -pour lire des données (CSV ou Parquet) de manière très efficace -et les stocker dans des objets peu volumineux pour gagner en performance. -C'est également le cas d'une autre librairie intéressante pour le traitement -de données: [`DuckDB`](https://duckdb.org/). - -Plutôt que concurrentes, ces deux librairies sont très complémentaires. -Il est possible d'effectuer des -requêtes SQL depuis un `DataFrame` `Polars` via `DuckDB` ou d'utiliser -`DuckDB` pour lire les données et convertir celles-ci en `DataFrame Polars` -à l'issue des requêtes. Ces deux approches sont intéressantes pour les -personnes familières avec le langage SQL. - -Pour illustrer le premier cas, reprenons un exemple précédent qui illustrait -la sélection d'observations en se restreignant au choix de deux départements: - -```{python} -df_bpe.filter( - pl.col("DEP").is_in(["75", "92"]) -).head(5) -``` - -Avec `DuckDB`, pour effectuer la même opération, nommée _filtre_ en SQL, -une requête SQL s'écrira de la manière suivante: - -```{python} -import duckdb - -df_duckdb = duckdb.sql('SELECT * FROM df_bpe WHERE DEP in (75, 92)') -df_duckdb -``` - -::: {.cell .markdown} -```{=html} - -``` -::: - - -La seconde approche implique quant à elle d'utiliser `DuckDB` pour lire et -traiter les données avant de transformer cela en objet `Polars` pour éventuellement -des manipulations de données ultérieures. Cette approche fonctionne en deux temps: - -- `DuckDB` sert à lire les données (ici au format `parquet`) et effectuer le filtre -- Le résultat de cette requête est transformé en `DataFrame` `Polars` avec -la méthode `pl`: - -```{python} -duckdb.sql('SELECT * FROM read_parquet("bpe.parquet") WHERE DEP in (75, 92)').pl() -``` - -Cette approche est intéressante pour effectuer les opérations de sélection -d'observations ou de variables le plus tôt possible afin de ne pas avoir en mémoire -des données inutilisées. \ No newline at end of file diff --git a/homepage.css b/assets/css/homepage.css similarity index 100% rename from homepage.css rename to assets/css/homepage.css diff --git a/assets/media/logo_Insee.png b/assets/media/logo_Insee.png new file mode 100644 index 00000000..7213fe12 Binary files /dev/null and b/assets/media/logo_Insee.png differ diff --git a/assets/media/logo_ssm_insee.webp b/assets/media/logo_ssm_insee.webp new file mode 100644 index 00000000..4a37ca50 Binary files /dev/null and b/assets/media/logo_ssm_insee.webp differ diff --git a/styles.scss b/assets/scss/styles.scss similarity index 100% rename from styles.scss rename to assets/scss/styles.scss diff --git a/blog.qmd b/blog.qmd index 4938cfcd..90bd5b32 100644 --- a/blog.qmd +++ b/blog.qmd @@ -3,16 +3,21 @@ title: "Blog" listing: feed: true id: blog-listing - contents: post + contents: blog/**/index.qmd type: grid - #template: scripts/courses.ejs - sort: date - #categories: true + sort: + - "date desc" + categories: true --- -Les articles de blog les plus récents +Vous pouvez trouver ici les articles de blog et des projets innovants portés par des membres du SSP. +
::: {#blog-listing} -::: \ No newline at end of file +::: + +# A propos de ce blog + +Les informations qui y sont diffusées n'engagent que les contributeurs et en aucun cas les institutions dont ils dépendent. diff --git a/blog/2022_jms/index.qmd b/blog/2022_jms/index.qmd new file mode 100644 index 00000000..eecdb01c --- /dev/null +++ b/blog/2022_jms/index.qmd @@ -0,0 +1,60 @@ +--- +title: Le _machine learning_ aux Journées de la Méthodologie Statistique 2022 (JMS) + +# Summary for listings and search engines +description: | + Revue des présentations en lien avec les travaux en _machine learning_ aux JMS de 2022 + +# Date published +date: 2022-04-06 + +# Featured image +image: jms2022.png + + +categories: + - Insee + - evenement +--- + +Signes des temps, l'édition 2022 des Journées de la Méthodologie Statistique (JMS) a mis en lumière la part croissante du *machine learning* dans les travaux menés au sein de la statistique publique, et au delà. Ainsi, cette année, ce sont 12 papiers utilisant ce type de méthodes qui ont été présentés - contre, à titre de comparaison, 4 en 2018. + +En particulier, quatre types d'utilisation de telles méthodes ont été mises en avant : + +- Le redressement de données manquantes +- La codification automatique +- Les appariements +- Les études + +# Le redressement de données manquantes + +Cette thématique est la plus représentée, grâce à une session dédiée au traitement de données manquantes. Au sein de cette session, 4 communications présentaient des tentatives d'utilisation de méthodes de machine Learning à cette fin. L'objectif de ces 4 publications est différent : + +- Évaluer de façon théorique la possibilité d'utiliser les forêts aléatoires pour redresser les enquêtes par sondage en grande dimension, dans quel cas les modèles paramétriques sont parfois instables et inefficaces ([Forêts aléatoires : D’une approche par modélisation assistée au traitement de la non-réponse](https://journees-methodologie-statistique.insee.net/forets-aleatoires-dune-approche-par-modelisation-assistee-au-traitement-de-la-non-reponse/)) ; +- Évaluer l'intérêt des réseaux de neurones dans le cadre du redressement de la non réponse, de façon théorique et en appliquant au cas de l'enquête emploi ([Imputation de valeurs manquantes avec des réseaux de neurones : Prédiction des salaires dans l’enquête emploi :](https://journees-methodologie-statistique.insee.net/imputation-de-valeurs-manquantes-avec-des-reseaux-de-neurones-prediction-des-salaires-dans-lenquete-emploi/)) ; +- Comparer les différentes méthodes de *machine learning* de façon empirique dans le cadre d'une imputation de non réponse ([Traitement de la non-réponse au moyen de méthodes de machine learning](https://journees-methodologie-statistique.insee.net/traitement-de-la-non-reponse-au-moyen-de-methodes-de-machine-learning/)) ; +- Évaluer un processus complet de correction de non-réponse, dans lequel le machine Learning n'est qu'une facette ([Estimation des montants manquants de versements de TVA : Exploitation des données du contrôle fiscal](https://journees-methodologie-statistique.insee.net/estimation-des-montants-manquants-de-versements-de-tva-exploitation-des-donnees-du-controle-fiscal/)). + +# La codification automatique et l'extraction de données + +Trois communications sur ces thèmes ont été présentées : + +- Une tentative de codification automatique de la PCS au moyen de méthodes de machine Learning ([Application de techniques de machine learning pour coder les professions dans la nomenclature des professions et catégories socio-professionnelles 2020](https://journees-methodologie-statistique.insee.net/application-de-techniques-de-machine-learning-pour-coder-les-professions-dans-la-nomenclature-des-professions-et-categories-socio-professionnelles-2020/)) - *cf.* la page dédiée au [projet](../../project/2021_codif_PCS/index.qmd) sur le site ; +- Une tentative d'extraction automatique d'informations des documents scannés issues des comptes sociaux des entreprises ([Extraction automatique de données issues d’images scannées : Une illustration par les comptes sociaux d’entreprises](https://journees-methodologie-statistique.insee.net/extraction-automatique-de-donnees-issues-dimages-scannees-une-illustration-par-les-comptes-sociaux-dentreprises/)) - *cf.* la page dédiée au [projet](../../project/2021_Extraction_CS/index.qmd) sur le site ; +- Une classification automatique des infractions commises à partir d'une analyse textuelle et de l'utilisation de réseau de neurones ([Détection des infractions relevant de la cyberdélinquance](https://journees-methodologie-statistique.insee.net/detection-des-infractions-relevant-de-la-cyberdelinquance-a-partir-dune-analyse-textuelle-des-manieres-doperer/)) - *cf.* la page dédiée au [projet](../../project/2021_detection_cyber/index.qmd) sur le site. + +# Méthodes d'appariements + +Le *machine learning* peut également être utilisé pour faciliter les appariements. A cet égard, deux communications ont été présentées : + +- Une communication discutant globalement des méthodes d'appariements, incluant - sans se restreindre - le *machine learning* ([Probabilistes ou déterministes, des méthodes d’appariements au banc d’essai du programme RéSIL](https://journees-methodologie-statistique.insee.net/probabilistes-ou-deterministes-des-methodes-dappariements-au-banc-dessai-du-programme-resil/)) - *cf.* la page dédiée au [projet](../../project/2021_Appariement/index.qmd) sur le site ; +- Une communication présentant une méthode innovante d'appariement flou à partir de l'utilisation d'Elastic Search et d'un réseau de neurone pré-entraîné ([Enrichissement de données de caisses à partir d’informations nutritionnelles : Une approche par appariement flou sur données de grande dimension](https://journees-methodologie-statistique.insee.net/enrichissement-de-donnees-de-caisses-a-partir-dinformations-nutritionnelles-une-approche-par-appariement-flou-sur-donnees-de-grande-dimension/)) - *cf.* la page dédiée au [projet](../../project/2020_donnees_caisse/index.qmd) sur le site. + +# Etudes + +La sphère la plus large d'exploitation est bien sûr les études. Les sujets sont alors variés : + +- L'estimation d'un parc de véhicules roulants, en modélisant à la fois la probabilité qu'un véhicule roule encore, et le nombre de kilomètres parcourus ([Modélisation de l’appartenance au parc des véhicules routiers et de son utilisation](https://journees-methodologie-statistique.insee.net/modelisation-de-lappartenance-au-parc-des-vehicules-routiers-et-de-son-utilisation/)) ; +- L'estimation de la valeur d'un patrimoine immobilier dans le cadre du projet FidelImmo ([Estimation de la valeur du patrimoine immobilier des ménages à partir de données exhaustives](https://journees-methodologie-statistique.insee.net/estimation-de-la-valeur-du-patrimoine-immobilier-des-menages-a-partir-de-donnees-exhaustives/)) ; +- L'utilisation des données du site MeilleursAgents.com pour modéliser les loyers, et mieux comprendre les déterminants sous-jacents ([Appréhender la rentabilité locative pour comprendre les mécaniques qui sous-tendent les loyers et les prix à l’aide de méthodes de machine learning](https://journees-methodologie-statistique.insee.net/apprehender-la-rentabilite-locative-pour-comprendre-les-mecaniques-qui-sous-tendent-les-loyers-et-les-prix-a-laide-de-methodes-de-machine-learning/)) ; +- L'utilisation de méthodes de machine Learning pour améliorer la prévision du PIB (méthodes de *nowcasting*) ([*Nowcasting* PIB : imputation de variables non encore publiées](https://journees-methodologie-statistique.insee.net/nowcasting-pib-imputation-de-variables-non-encore-publiees/)). diff --git a/blog/2022_jms/jms2022.png b/blog/2022_jms/jms2022.png new file mode 100644 index 00000000..6bb26d1f Binary files /dev/null and b/blog/2022_jms/jms2022.png differ diff --git a/post/embedding/CBOW_Skipgram_training.png b/blog/embedding/CBOW_Skipgram_training.png similarity index 100% rename from post/embedding/CBOW_Skipgram_training.png rename to blog/embedding/CBOW_Skipgram_training.png diff --git a/post/embedding/fasttext.png b/blog/embedding/fasttext.png similarity index 100% rename from post/embedding/fasttext.png rename to blog/embedding/fasttext.png diff --git a/post/embedding/featured.jpg b/blog/embedding/featured.jpg similarity index 100% rename from post/embedding/featured.jpg rename to blog/embedding/featured.jpg diff --git a/post/embedding/index.qmd b/blog/embedding/index.qmd similarity index 99% rename from post/embedding/index.qmd rename to blog/embedding/index.qmd index 7794c370..8435c117 100644 --- a/post/embedding/index.qmd +++ b/blog/embedding/index.qmd @@ -7,8 +7,6 @@ authors: # Summary for listings and search engines description: | Introduction aux méthodes de traitement du langage naturel. - - # Date published date: 2022-10-03 @@ -30,7 +28,7 @@ standardisées (PCS[^1], NAF[^2], COG[^cog]...). sert à la codification des professions dans le recensement et les enquêtes auprès des ménages. Elle permet ainsi de classer un ensemble de professions dans une même catégorie. Par exemple, dans sa dernière version ([PCS 2020](https://www.insee.fr/fr/information/6205305)), -la catégorie des _"Professions libérales de santé"_ (31A) regroupe diverses professions médicales: médecins libéraux, dentistes, psychologues, véterinaires, pharmaciens libéraux... Une description plus +la catégorie des _"Professions libérales de santé"_ (31A) regroupe diverses professions médicales: médecins libéraux, dentistes, psychologues, vétérinaires, pharmaciens libéraux... Une description plus complète de cette nomenclature et de son historique est disponible sur [le site de l'Insee](https://www.insee.fr/fr/information/6208292) [^2]: La `NAF` (nomenclature d'activités française), est une nomenclature des activités économiques productives, diff --git a/post/embedding/similarite_cosinus.png b/blog/embedding/similarite_cosinus.png similarity index 100% rename from post/embedding/similarite_cosinus.png rename to blog/embedding/similarite_cosinus.png diff --git a/post/embedding/word_embedding.png b/blog/embedding/word_embedding.png similarity index 100% rename from post/embedding/word_embedding.png rename to blog/embedding/word_embedding.png diff --git a/blog/hadoop_spark/hadoop_spark.png b/blog/hadoop_spark/hadoop_spark.png new file mode 100644 index 00000000..a840dd21 Binary files /dev/null and b/blog/hadoop_spark/hadoop_spark.png differ diff --git a/blog/hadoop_spark/index.qmd b/blog/hadoop_spark/index.qmd new file mode 100644 index 00000000..0ea2fdf7 --- /dev/null +++ b/blog/hadoop_spark/index.qmd @@ -0,0 +1,32 @@ +--- +title: "Parallélisation des traitements : Hadoop MapReduce vs Spark" +subtitle: Présentation des deux principaux outils de données volumineuses + +authors: + - Romain + - Stéphanie + +# Summary for listings and search engines +# Date published +date: 2016-06-01 + +# Featured image +image: hadoop_spark.png + +categories: + - données volumineuses +--- + +À la base des systèmes dits « big data », il y a un principe central : la distribution, à la fois des données et des traitements, sur un ensemble de machines/ordinateurs formant un cluster. Le stockage des données brutes s’appuie le plus souvent sur un système de fichiers distribués. *MapReduce* est la première implémentation pour les big data du principe de parallélisation des traitements appliquée aux fichiers distribués. Il repose sur deux fonctions principales, `map` et `reduce`, qui sont appliquées parfois à de multiples reprises. + +La première décrit une transformation que l’on applique aux valeurs d’une collection de données au format clé / valeur ; la deuxième applique une opération à toutes les valeurs d’une même clé. Prenons l’exemple du dénombrement des nucléotides composant un brin d’ADN : « AGTCGGGGCT ». L’objet en entrée est donc une séquence, et on souhaite obtenir en sortie une table avec les différents symboles et le nombre d’occurrences de chacun d’entre eux dans la séquence initiale. La démarche « naturelle » consiste à prendre le premier symbole de la séquence, de noter dans la table de sortie son nom et d’initialiser un compteur à 1, puis de revenir à la séquence, d’identifier le second et s’il correspond au premier, d’incrémenter le compteur correspondant… Cette démarche est assez simple à décrire, mais demande en pratique de parcourir tout ou partie de la séquence à chaque itération. Cela n’est pas problématique si la séquence est aussi élémentaire que celle prise dans cet exemple… mais le devient si elle correspond au génome humain, constitué de quelques milliards de nucléotides (symboles). De la même manière et pour utiliser un exemple plus classique pour un statisticien, filtrer une table selon la valeur des attributs d’une variable est une opération a priori simple et classique, mais dont la mise en œuvre pour des très grands volumes peut s’avérer particulièrement inefficace voire impossible.. + +La même opération réalisée en *MapReduce*, correspond aux opérations suivantes : lors du chargement des données, la séquence a été coupée en plusieurs sous-séquences chargées sur différentes machines ou nœuds ; la première étape (`map`) consiste alors à appliquer au niveau de chaque noeud une fonction dont le résultat est une liste de couples constitués chacun d’une clé et d’une valeur. Ici, la clé correspond au symbole lu, et la valeur à l’occurrence 1 : on a donc une liste de couples (A,1), (G,1), (T,1), (A,1),.. Dans une deuxième étape de triage (« shuffling and sorting »), on rassemble sur un même nœud toutes les paires correspondant à une même clé. Finalement, on applique une fonction d’agrégation (`reduce`) qui combine (ici on somme tout simplement) les valeurs correspondantes à chaque clé. On aboutit dans cet exemple à quatre paires constituées d’un symbole et du nombre d’occurrences de ce symbole sur l’ensemble de la séquence. + +![](map_reduce.png) [Source: Statistique et Big Data Analytics Volumétrie – L’Attaque des Clones](https://hal.archives-ouvertes.fr/file/index/docid/995801/filename/st-stat-bigdata-clones.pdf) + +Autre exemple plus traditionnel en économétrie, la multiplication d’une très grosse matrice `M` avec un vecteur `x` : on pourra répartir les colonnes de la matrice sur différents nœuds et procéder localement à la multiplication de ces colonnes avec les composantes correspondantes de x, avant d’agréger le résultat final. + +![](map_reduce2.png) + +Des outils ont rapidement été construits pour rendre l’écriture des programmes *MapReduce* plus transparente pour l’utilisateur. Hive, une des solutions les plus populaires, propose d’écrire ces programmes en SQL, comme on le ferait pour manipuler les données d’une base relationnelle classique. Ce modèle de programmation permet également d’appliquer efficacement sur un très grand volume de données toute une gamme d’algorithmes. Il existe cependant un certain nombre de limites à ce modèle : la nature même des étapes `map` et `reduce` ne permet pas facilement la mise en œuvre d’algorithmes itératifs en particulier pour certains choix d’architecture (après chaque opération `map` ou `reduce`, Hadoop *MapReduce* écrit les résultats intermédiaires sur disque, ces résultats étant ensuite lus si nécessaires, ce qui entraîne d’importants temps d’exécution). La solution Spark propose des performances supérieures (jusqu’à cent fois plus rapide lorsqu’il travaille en mémoire vive) grâce à un certain nombre d’innovations par rapport au modèle historique. En effet, si Spark conserve un modèle d’exécution distribué sa capacité à opérer bien plus souvent en mémoire vive lui permet de gagner en rapidité d’exécution par opposition aux lectures écritures systématiques du modèle Hadoop. Plus précisément, Spark garde en mémoire le maximum de résultats intermédiaires, ainsi que l’historique des opérations. En cas de panne, les opérations seront effectuées à nouveau, ce qui reste moins coûteux que les écritures/lectures systématiques. diff --git a/blog/hadoop_spark/map_reduce.png b/blog/hadoop_spark/map_reduce.png new file mode 100644 index 00000000..164e5f61 Binary files /dev/null and b/blog/hadoop_spark/map_reduce.png differ diff --git a/blog/hadoop_spark/map_reduce2.png b/blog/hadoop_spark/map_reduce2.png new file mode 100644 index 00000000..cc7d29b5 Binary files /dev/null and b/blog/hadoop_spark/map_reduce2.png differ diff --git a/post/onyxia/background.svg b/blog/onyxia/background.svg similarity index 100% rename from post/onyxia/background.svg rename to blog/onyxia/background.svg diff --git a/post/onyxia/catalogue.svg b/blog/onyxia/catalogue.svg similarity index 100% rename from post/onyxia/catalogue.svg rename to blog/onyxia/catalogue.svg diff --git a/post/onyxia/favicon-32x32.png b/blog/onyxia/favicon-32x32.png similarity index 100% rename from post/onyxia/favicon-32x32.png rename to blog/onyxia/favicon-32x32.png diff --git a/post/onyxia/featured.png b/blog/onyxia/featured.png similarity index 100% rename from post/onyxia/featured.png rename to blog/onyxia/featured.png diff --git a/post/onyxia/index.qmd b/blog/onyxia/index.qmd similarity index 99% rename from post/onyxia/index.qmd rename to blog/onyxia/index.qmd index cd66b35a..1b783f3a 100644 --- a/post/onyxia/index.qmd +++ b/blog/onyxia/index.qmd @@ -18,11 +18,12 @@ authors: categories: - Insee - - onyxia - sspcloud bibliography: references.bib +fig-cap-location: top + # Date published date: 2023-05-10 --- @@ -140,7 +141,7 @@ sur un serveur, est permise par la technologie d'orchestration [`Kubernetes`](ht
- + ::: {.callout-note collapse="true"} ## Plus de détails pour comprendre le changement de paradigme vers la conteuneurisation 👇 @@ -476,8 +477,6 @@ _open source_, un certain nombre d'entreprises s'intéressent à `Onyxia`. ## Vidéo de présentation d'`Onyxia` -{{< youtube zwKiO6LcIWE >}} - {{< video https://youtu.be/zwKiO6LcIWE >}} ## Références diff --git a/post/onyxia/logo.svg b/blog/onyxia/logo.svg similarity index 100% rename from post/onyxia/logo.svg rename to blog/onyxia/logo.svg diff --git a/post/onyxia/multiple_instances.svg b/blog/onyxia/multiple_instances.svg similarity index 100% rename from post/onyxia/multiple_instances.svg rename to blog/onyxia/multiple_instances.svg diff --git a/post/onyxia/onyxia_ecailles.svg b/blog/onyxia/onyxia_ecailles.svg similarity index 100% rename from post/onyxia/onyxia_ecailles.svg rename to blog/onyxia/onyxia_ecailles.svg diff --git a/post/onyxia/onyxia_logic.svg b/blog/onyxia/onyxia_logic.svg similarity index 100% rename from post/onyxia/onyxia_logic.svg rename to blog/onyxia/onyxia_logic.svg diff --git a/post/onyxia/onyxia_ui1.png b/blog/onyxia/onyxia_ui1.png similarity index 100% rename from post/onyxia/onyxia_ui1.png rename to blog/onyxia/onyxia_ui1.png diff --git a/post/onyxia/onyxia_ui2.png b/blog/onyxia/onyxia_ui2.png similarity index 100% rename from post/onyxia/onyxia_ui2.png rename to blog/onyxia/onyxia_ui2.png diff --git a/post/onyxia/onyxia_ui3.png b/blog/onyxia/onyxia_ui3.png similarity index 100% rename from post/onyxia/onyxia_ui3.png rename to blog/onyxia/onyxia_ui3.png diff --git a/post/onyxia/onyxia_ui4.png b/blog/onyxia/onyxia_ui4.png similarity index 100% rename from post/onyxia/onyxia_ui4.png rename to blog/onyxia/onyxia_ui4.png diff --git a/post/onyxia/onyxia_ui5.png b/blog/onyxia/onyxia_ui5.png similarity index 100% rename from post/onyxia/onyxia_ui5.png rename to blog/onyxia/onyxia_ui5.png diff --git a/post/onyxia/references.bib b/blog/onyxia/references.bib similarity index 100% rename from post/onyxia/references.bib rename to blog/onyxia/references.bib diff --git a/post/parquetRP/ducks.png b/blog/parquetRP/ducks.png similarity index 100% rename from post/parquetRP/ducks.png rename to blog/parquetRP/ducks.png diff --git a/post/parquetRP/index.qmd b/blog/parquetRP/index.qmd similarity index 99% rename from post/parquetRP/index.qmd rename to blog/parquetRP/index.qmd index bf8b7029..d2b32204 100644 --- a/post/parquetRP/index.qmd +++ b/blog/parquetRP/index.qmd @@ -11,7 +11,6 @@ description: | date: 2023-10-23 bibliography: reference.bib -# Date updated image: ducks.png authors: diff --git a/post/parquetRP/reference.bib b/blog/parquetRP/reference.bib similarity index 100% rename from post/parquetRP/reference.bib rename to blog/parquetRP/reference.bib diff --git a/post/parquetRP/snippets/0_download_data_python.qmd b/blog/parquetRP/snippets/0_download_data_python.qmd similarity index 100% rename from post/parquetRP/snippets/0_download_data_python.qmd rename to blog/parquetRP/snippets/0_download_data_python.qmd diff --git a/post/parquetRP/snippets/0_download_data_python_markdown.qmd b/blog/parquetRP/snippets/0_download_data_python_markdown.qmd similarity index 100% rename from post/parquetRP/snippets/0_download_data_python_markdown.qmd rename to blog/parquetRP/snippets/0_download_data_python_markdown.qmd diff --git a/post/parquetRP/snippets/0_download_data_r.qmd b/blog/parquetRP/snippets/0_download_data_r.qmd similarity index 100% rename from post/parquetRP/snippets/0_download_data_r.qmd rename to blog/parquetRP/snippets/0_download_data_r.qmd diff --git a/post/parquetRP/snippets/10_use_cast_ojs.qmd b/blog/parquetRP/snippets/10_use_cast_ojs.qmd similarity index 100% rename from post/parquetRP/snippets/10_use_cast_ojs.qmd rename to blog/parquetRP/snippets/10_use_cast_ojs.qmd diff --git a/post/parquetRP/snippets/10_use_cast_python.qmd b/blog/parquetRP/snippets/10_use_cast_python.qmd similarity index 100% rename from post/parquetRP/snippets/10_use_cast_python.qmd rename to blog/parquetRP/snippets/10_use_cast_python.qmd diff --git a/post/parquetRP/snippets/10_use_cast_r.qmd b/blog/parquetRP/snippets/10_use_cast_r.qmd similarity index 100% rename from post/parquetRP/snippets/10_use_cast_r.qmd rename to blog/parquetRP/snippets/10_use_cast_r.qmd diff --git a/post/parquetRP/snippets/10_use_cast_r_dbplyr.qmd b/blog/parquetRP/snippets/10_use_cast_r_dbplyr.qmd similarity index 100% rename from post/parquetRP/snippets/10_use_cast_r_dbplyr.qmd rename to blog/parquetRP/snippets/10_use_cast_r_dbplyr.qmd diff --git a/post/parquetRP/snippets/11_pyramide_ages_ojs.qmd b/blog/parquetRP/snippets/11_pyramide_ages_ojs.qmd similarity index 100% rename from post/parquetRP/snippets/11_pyramide_ages_ojs.qmd rename to blog/parquetRP/snippets/11_pyramide_ages_ojs.qmd diff --git a/post/parquetRP/snippets/11_pyramide_ages_python.qmd b/blog/parquetRP/snippets/11_pyramide_ages_python.qmd similarity index 100% rename from post/parquetRP/snippets/11_pyramide_ages_python.qmd rename to blog/parquetRP/snippets/11_pyramide_ages_python.qmd diff --git a/post/parquetRP/snippets/11_pyramide_ages_r.qmd b/blog/parquetRP/snippets/11_pyramide_ages_r.qmd similarity index 100% rename from post/parquetRP/snippets/11_pyramide_ages_r.qmd rename to blog/parquetRP/snippets/11_pyramide_ages_r.qmd diff --git a/post/parquetRP/snippets/11_pyramide_ages_r_dbplyr.qmd b/blog/parquetRP/snippets/11_pyramide_ages_r_dbplyr.qmd similarity index 100% rename from post/parquetRP/snippets/11_pyramide_ages_r_dbplyr.qmd rename to blog/parquetRP/snippets/11_pyramide_ages_r_dbplyr.qmd diff --git a/post/parquetRP/snippets/12_centenaires_ojs.qmd b/blog/parquetRP/snippets/12_centenaires_ojs.qmd similarity index 100% rename from post/parquetRP/snippets/12_centenaires_ojs.qmd rename to blog/parquetRP/snippets/12_centenaires_ojs.qmd diff --git a/post/parquetRP/snippets/12_centenaires_python.qmd b/blog/parquetRP/snippets/12_centenaires_python.qmd similarity index 100% rename from post/parquetRP/snippets/12_centenaires_python.qmd rename to blog/parquetRP/snippets/12_centenaires_python.qmd diff --git a/post/parquetRP/snippets/12_centenaires_r.qmd b/blog/parquetRP/snippets/12_centenaires_r.qmd similarity index 100% rename from post/parquetRP/snippets/12_centenaires_r.qmd rename to blog/parquetRP/snippets/12_centenaires_r.qmd diff --git a/post/parquetRP/snippets/12_centenaires_r_dbplyr.qmd b/blog/parquetRP/snippets/12_centenaires_r_dbplyr.qmd similarity index 100% rename from post/parquetRP/snippets/12_centenaires_r_dbplyr.qmd rename to blog/parquetRP/snippets/12_centenaires_r_dbplyr.qmd diff --git a/post/parquetRP/snippets/13_autres_sources_ojs.qmd b/blog/parquetRP/snippets/13_autres_sources_ojs.qmd similarity index 100% rename from post/parquetRP/snippets/13_autres_sources_ojs.qmd rename to blog/parquetRP/snippets/13_autres_sources_ojs.qmd diff --git a/post/parquetRP/snippets/13_autres_sources_python.qmd b/blog/parquetRP/snippets/13_autres_sources_python.qmd similarity index 100% rename from post/parquetRP/snippets/13_autres_sources_python.qmd rename to blog/parquetRP/snippets/13_autres_sources_python.qmd diff --git a/post/parquetRP/snippets/13_autres_sources_r.qmd b/blog/parquetRP/snippets/13_autres_sources_r.qmd similarity index 100% rename from post/parquetRP/snippets/13_autres_sources_r.qmd rename to blog/parquetRP/snippets/13_autres_sources_r.qmd diff --git a/post/parquetRP/snippets/13_autres_sources_r_dbplyr.qmd b/blog/parquetRP/snippets/13_autres_sources_r_dbplyr.qmd similarity index 100% rename from post/parquetRP/snippets/13_autres_sources_r_dbplyr.qmd rename to blog/parquetRP/snippets/13_autres_sources_r_dbplyr.qmd diff --git a/post/parquetRP/snippets/1_create_db_ojs.qmd b/blog/parquetRP/snippets/1_create_db_ojs.qmd similarity index 100% rename from post/parquetRP/snippets/1_create_db_ojs.qmd rename to blog/parquetRP/snippets/1_create_db_ojs.qmd diff --git a/post/parquetRP/snippets/1_create_db_python.qmd b/blog/parquetRP/snippets/1_create_db_python.qmd similarity index 100% rename from post/parquetRP/snippets/1_create_db_python.qmd rename to blog/parquetRP/snippets/1_create_db_python.qmd diff --git a/post/parquetRP/snippets/1_create_db_python_md.qmd b/blog/parquetRP/snippets/1_create_db_python_md.qmd similarity index 100% rename from post/parquetRP/snippets/1_create_db_python_md.qmd rename to blog/parquetRP/snippets/1_create_db_python_md.qmd diff --git a/post/parquetRP/snippets/1_create_db_r.qmd b/blog/parquetRP/snippets/1_create_db_r.qmd similarity index 100% rename from post/parquetRP/snippets/1_create_db_r.qmd rename to blog/parquetRP/snippets/1_create_db_r.qmd diff --git a/post/parquetRP/snippets/1_create_db_r_dbplyr.qmd b/blog/parquetRP/snippets/1_create_db_r_dbplyr.qmd similarity index 100% rename from post/parquetRP/snippets/1_create_db_r_dbplyr.qmd rename to blog/parquetRP/snippets/1_create_db_r_dbplyr.qmd diff --git a/post/parquetRP/snippets/2_select_schema_ojs.qmd b/blog/parquetRP/snippets/2_select_schema_ojs.qmd similarity index 100% rename from post/parquetRP/snippets/2_select_schema_ojs.qmd rename to blog/parquetRP/snippets/2_select_schema_ojs.qmd diff --git a/post/parquetRP/snippets/2_select_schema_python.qmd b/blog/parquetRP/snippets/2_select_schema_python.qmd similarity index 100% rename from post/parquetRP/snippets/2_select_schema_python.qmd rename to blog/parquetRP/snippets/2_select_schema_python.qmd diff --git a/post/parquetRP/snippets/2_select_schema_r.qmd b/blog/parquetRP/snippets/2_select_schema_r.qmd similarity index 100% rename from post/parquetRP/snippets/2_select_schema_r.qmd rename to blog/parquetRP/snippets/2_select_schema_r.qmd diff --git a/post/parquetRP/snippets/2_select_schema_r_dbplyr.qmd b/blog/parquetRP/snippets/2_select_schema_r_dbplyr.qmd similarity index 100% rename from post/parquetRP/snippets/2_select_schema_r_dbplyr.qmd rename to blog/parquetRP/snippets/2_select_schema_r_dbplyr.qmd diff --git a/post/parquetRP/snippets/3_select_documentation_ojs.qmd b/blog/parquetRP/snippets/3_select_documentation_ojs.qmd similarity index 100% rename from post/parquetRP/snippets/3_select_documentation_ojs.qmd rename to blog/parquetRP/snippets/3_select_documentation_ojs.qmd diff --git a/post/parquetRP/snippets/3_select_documentation_python.qmd b/blog/parquetRP/snippets/3_select_documentation_python.qmd similarity index 100% rename from post/parquetRP/snippets/3_select_documentation_python.qmd rename to blog/parquetRP/snippets/3_select_documentation_python.qmd diff --git a/post/parquetRP/snippets/3_select_documentation_r.qmd b/blog/parquetRP/snippets/3_select_documentation_r.qmd similarity index 100% rename from post/parquetRP/snippets/3_select_documentation_r.qmd rename to blog/parquetRP/snippets/3_select_documentation_r.qmd diff --git a/post/parquetRP/snippets/3_select_documentation_r_dbplyr.qmd b/blog/parquetRP/snippets/3_select_documentation_r_dbplyr.qmd similarity index 100% rename from post/parquetRP/snippets/3_select_documentation_r_dbplyr.qmd rename to blog/parquetRP/snippets/3_select_documentation_r_dbplyr.qmd diff --git a/post/parquetRP/snippets/4_selectz_ojs.qmd b/blog/parquetRP/snippets/4_selectz_ojs.qmd similarity index 100% rename from post/parquetRP/snippets/4_selectz_ojs.qmd rename to blog/parquetRP/snippets/4_selectz_ojs.qmd diff --git a/post/parquetRP/snippets/4_selectz_python.qmd b/blog/parquetRP/snippets/4_selectz_python.qmd similarity index 100% rename from post/parquetRP/snippets/4_selectz_python.qmd rename to blog/parquetRP/snippets/4_selectz_python.qmd diff --git a/post/parquetRP/snippets/4_selectz_r.qmd b/blog/parquetRP/snippets/4_selectz_r.qmd similarity index 100% rename from post/parquetRP/snippets/4_selectz_r.qmd rename to blog/parquetRP/snippets/4_selectz_r.qmd diff --git a/post/parquetRP/snippets/4_selectz_r_dbplyr.qmd b/blog/parquetRP/snippets/4_selectz_r_dbplyr.qmd similarity index 100% rename from post/parquetRP/snippets/4_selectz_r_dbplyr.qmd rename to blog/parquetRP/snippets/4_selectz_r_dbplyr.qmd diff --git a/post/parquetRP/snippets/5_limit_ojs.qmd b/blog/parquetRP/snippets/5_limit_ojs.qmd similarity index 100% rename from post/parquetRP/snippets/5_limit_ojs.qmd rename to blog/parquetRP/snippets/5_limit_ojs.qmd diff --git a/post/parquetRP/snippets/5_limit_python.qmd b/blog/parquetRP/snippets/5_limit_python.qmd similarity index 100% rename from post/parquetRP/snippets/5_limit_python.qmd rename to blog/parquetRP/snippets/5_limit_python.qmd diff --git a/post/parquetRP/snippets/5_limit_r.qmd b/blog/parquetRP/snippets/5_limit_r.qmd similarity index 100% rename from post/parquetRP/snippets/5_limit_r.qmd rename to blog/parquetRP/snippets/5_limit_r.qmd diff --git a/post/parquetRP/snippets/5_limit_r_dbplyr.qmd b/blog/parquetRP/snippets/5_limit_r_dbplyr.qmd similarity index 100% rename from post/parquetRP/snippets/5_limit_r_dbplyr.qmd rename to blog/parquetRP/snippets/5_limit_r_dbplyr.qmd diff --git a/post/parquetRP/snippets/5_sample_ojs.qmd b/blog/parquetRP/snippets/5_sample_ojs.qmd similarity index 100% rename from post/parquetRP/snippets/5_sample_ojs.qmd rename to blog/parquetRP/snippets/5_sample_ojs.qmd diff --git a/post/parquetRP/snippets/5_sample_python.qmd b/blog/parquetRP/snippets/5_sample_python.qmd similarity index 100% rename from post/parquetRP/snippets/5_sample_python.qmd rename to blog/parquetRP/snippets/5_sample_python.qmd diff --git a/post/parquetRP/snippets/5_sample_r.qmd b/blog/parquetRP/snippets/5_sample_r.qmd similarity index 100% rename from post/parquetRP/snippets/5_sample_r.qmd rename to blog/parquetRP/snippets/5_sample_r.qmd diff --git a/post/parquetRP/snippets/5_sample_r_dbplyr.qmd b/blog/parquetRP/snippets/5_sample_r_dbplyr.qmd similarity index 100% rename from post/parquetRP/snippets/5_sample_r_dbplyr.qmd rename to blog/parquetRP/snippets/5_sample_r_dbplyr.qmd diff --git a/post/parquetRP/snippets/6_sample_columns_ojs.qmd b/blog/parquetRP/snippets/6_sample_columns_ojs.qmd similarity index 100% rename from post/parquetRP/snippets/6_sample_columns_ojs.qmd rename to blog/parquetRP/snippets/6_sample_columns_ojs.qmd diff --git a/post/parquetRP/snippets/6_sample_columns_python.qmd b/blog/parquetRP/snippets/6_sample_columns_python.qmd similarity index 100% rename from post/parquetRP/snippets/6_sample_columns_python.qmd rename to blog/parquetRP/snippets/6_sample_columns_python.qmd diff --git a/post/parquetRP/snippets/6_sample_columns_r.qmd b/blog/parquetRP/snippets/6_sample_columns_r.qmd similarity index 100% rename from post/parquetRP/snippets/6_sample_columns_r.qmd rename to blog/parquetRP/snippets/6_sample_columns_r.qmd diff --git a/post/parquetRP/snippets/6_sample_columns_r_dbplyr.qmd b/blog/parquetRP/snippets/6_sample_columns_r_dbplyr.qmd similarity index 100% rename from post/parquetRP/snippets/6_sample_columns_r_dbplyr.qmd rename to blog/parquetRP/snippets/6_sample_columns_r_dbplyr.qmd diff --git a/post/parquetRP/snippets/7_use_regex_ojs.qmd b/blog/parquetRP/snippets/7_use_regex_ojs.qmd similarity index 100% rename from post/parquetRP/snippets/7_use_regex_ojs.qmd rename to blog/parquetRP/snippets/7_use_regex_ojs.qmd diff --git a/post/parquetRP/snippets/7_use_regex_python.qmd b/blog/parquetRP/snippets/7_use_regex_python.qmd similarity index 100% rename from post/parquetRP/snippets/7_use_regex_python.qmd rename to blog/parquetRP/snippets/7_use_regex_python.qmd diff --git a/post/parquetRP/snippets/7_use_regex_r.qmd b/blog/parquetRP/snippets/7_use_regex_r.qmd similarity index 100% rename from post/parquetRP/snippets/7_use_regex_r.qmd rename to blog/parquetRP/snippets/7_use_regex_r.qmd diff --git a/post/parquetRP/snippets/7_use_regex_r_dbplyr.qmd b/blog/parquetRP/snippets/7_use_regex_r_dbplyr.qmd similarity index 100% rename from post/parquetRP/snippets/7_use_regex_r_dbplyr.qmd rename to blog/parquetRP/snippets/7_use_regex_r_dbplyr.qmd diff --git a/post/parquetRP/snippets/8_filter_dates_ojs.qmd b/blog/parquetRP/snippets/8_filter_dates_ojs.qmd similarity index 100% rename from post/parquetRP/snippets/8_filter_dates_ojs.qmd rename to blog/parquetRP/snippets/8_filter_dates_ojs.qmd diff --git a/post/parquetRP/snippets/8_filter_dates_python.qmd b/blog/parquetRP/snippets/8_filter_dates_python.qmd similarity index 100% rename from post/parquetRP/snippets/8_filter_dates_python.qmd rename to blog/parquetRP/snippets/8_filter_dates_python.qmd diff --git a/post/parquetRP/snippets/8_filter_dates_r.qmd b/blog/parquetRP/snippets/8_filter_dates_r.qmd similarity index 100% rename from post/parquetRP/snippets/8_filter_dates_r.qmd rename to blog/parquetRP/snippets/8_filter_dates_r.qmd diff --git a/post/parquetRP/snippets/8_filter_dates_r_dbplyr.qmd b/blog/parquetRP/snippets/8_filter_dates_r_dbplyr.qmd similarity index 100% rename from post/parquetRP/snippets/8_filter_dates_r_dbplyr.qmd rename to blog/parquetRP/snippets/8_filter_dates_r_dbplyr.qmd diff --git a/post/parquetRP/snippets/8_filter_dpts_ojs.qmd b/blog/parquetRP/snippets/8_filter_dpts_ojs.qmd similarity index 100% rename from post/parquetRP/snippets/8_filter_dpts_ojs.qmd rename to blog/parquetRP/snippets/8_filter_dpts_ojs.qmd diff --git a/post/parquetRP/snippets/8_filter_dpts_python.qmd b/blog/parquetRP/snippets/8_filter_dpts_python.qmd similarity index 100% rename from post/parquetRP/snippets/8_filter_dpts_python.qmd rename to blog/parquetRP/snippets/8_filter_dpts_python.qmd diff --git a/post/parquetRP/snippets/8_filter_dpts_r.qmd b/blog/parquetRP/snippets/8_filter_dpts_r.qmd similarity index 100% rename from post/parquetRP/snippets/8_filter_dpts_r.qmd rename to blog/parquetRP/snippets/8_filter_dpts_r.qmd diff --git a/post/parquetRP/snippets/8_filter_dpts_r_dbplyr.qmd b/blog/parquetRP/snippets/8_filter_dpts_r_dbplyr.qmd similarity index 100% rename from post/parquetRP/snippets/8_filter_dpts_r_dbplyr.qmd rename to blog/parquetRP/snippets/8_filter_dpts_r_dbplyr.qmd diff --git a/post/parquetRP/snippets/8_filter_regions_ojs.qmd b/blog/parquetRP/snippets/8_filter_regions_ojs.qmd similarity index 100% rename from post/parquetRP/snippets/8_filter_regions_ojs.qmd rename to blog/parquetRP/snippets/8_filter_regions_ojs.qmd diff --git a/post/parquetRP/snippets/8_filter_regions_python.qmd b/blog/parquetRP/snippets/8_filter_regions_python.qmd similarity index 100% rename from post/parquetRP/snippets/8_filter_regions_python.qmd rename to blog/parquetRP/snippets/8_filter_regions_python.qmd diff --git a/post/parquetRP/snippets/8_filter_regions_r.qmd b/blog/parquetRP/snippets/8_filter_regions_r.qmd similarity index 100% rename from post/parquetRP/snippets/8_filter_regions_r.qmd rename to blog/parquetRP/snippets/8_filter_regions_r.qmd diff --git a/post/parquetRP/snippets/8_filter_regions_r_dbplyr.qmd b/blog/parquetRP/snippets/8_filter_regions_r_dbplyr.qmd similarity index 100% rename from post/parquetRP/snippets/8_filter_regions_r_dbplyr.qmd rename to blog/parquetRP/snippets/8_filter_regions_r_dbplyr.qmd diff --git a/post/parquetRP/snippets/9_distinct_arrondissements_ojs.qmd b/blog/parquetRP/snippets/9_distinct_arrondissements_ojs.qmd similarity index 100% rename from post/parquetRP/snippets/9_distinct_arrondissements_ojs.qmd rename to blog/parquetRP/snippets/9_distinct_arrondissements_ojs.qmd diff --git a/post/parquetRP/snippets/9_distinct_arrondissements_python.qmd b/blog/parquetRP/snippets/9_distinct_arrondissements_python.qmd similarity index 100% rename from post/parquetRP/snippets/9_distinct_arrondissements_python.qmd rename to blog/parquetRP/snippets/9_distinct_arrondissements_python.qmd diff --git a/post/parquetRP/snippets/9_distinct_arrondissements_r.qmd b/blog/parquetRP/snippets/9_distinct_arrondissements_r.qmd similarity index 100% rename from post/parquetRP/snippets/9_distinct_arrondissements_r.qmd rename to blog/parquetRP/snippets/9_distinct_arrondissements_r.qmd diff --git a/post/parquetRP/snippets/9_distinct_arrondissements_r_dbplyr.qmd b/blog/parquetRP/snippets/9_distinct_arrondissements_r_dbplyr.qmd similarity index 100% rename from post/parquetRP/snippets/9_distinct_arrondissements_r_dbplyr.qmd rename to blog/parquetRP/snippets/9_distinct_arrondissements_r_dbplyr.qmd diff --git a/post/polars/dalle_polar_duck.png b/blog/polars/dalle_polar_duck.png similarity index 100% rename from post/polars/dalle_polar_duck.png rename to blog/polars/dalle_polar_duck.png diff --git a/post/polars/featured.jpg b/blog/polars/featured.jpg similarity index 100% rename from post/polars/featured.jpg rename to blog/polars/featured.jpg diff --git a/post/polars/index.qmd b/blog/polars/index.qmd similarity index 93% rename from post/polars/index.qmd rename to blog/polars/index.qmd index 75f7c214..841a1606 100644 --- a/post/polars/index.qmd +++ b/blog/polars/index.qmd @@ -9,7 +9,6 @@ description: | # Date published date: '2023-02-10T00:00:00Z' -# Date updated image: featured.jpg authors: @@ -35,8 +34,8 @@ Ses atouts ? D'excellentes performances et une expressibilité qui le rapproche Ce post de blog revient sur les principaux atouts de `Polars`, sans vouloir être exhaustif. Un _notebook_ illustrant les principales fonctionnalités du package vise à le compléter : -Onyxia -Open In Colab +Onyxia +Open In Colab @@ -191,5 +190,5 @@ _Le duo DuckDB-Polars illustré par Dall-E-2_ Le _notebook_ accompagnant ce _post_: -Onyxia +Onyxia Open In Colab diff --git a/post/polars/init.sh b/blog/polars/init.sh similarity index 93% rename from post/polars/init.sh rename to blog/polars/init.sh index 63af8347..62cc9aa0 100644 --- a/post/polars/init.sh +++ b/blog/polars/init.sh @@ -4,7 +4,7 @@ NOTEBOOK_NAME=$1 WORK_DIR="/home/onyxia/work" CLONE_DIR="${WORK_DIR}/repo-git" -COURSE_DIR="${CLONE_DIR}/post/polars" +COURSE_DIR="${CLONE_DIR}/blog/polars" # Clone course repository REPO_URL="https://github.com/inseefrlab/ssphub.git" diff --git a/post/polars/polars-benchmark-short.png b/blog/polars/polars-benchmark-short.png similarity index 100% rename from post/polars/polars-benchmark-short.png rename to blog/polars/polars-benchmark-short.png diff --git a/post/polars/polars-split-parallel-apply-combine.svg b/blog/polars/polars-split-parallel-apply-combine.svg similarity index 100% rename from post/polars/polars-split-parallel-apply-combine.svg rename to blog/polars/polars-split-parallel-apply-combine.svg diff --git a/post/polars/polars-tuto.ipynb b/blog/polars/polars-tuto.ipynb similarity index 90% rename from post/polars/polars-tuto.ipynb rename to blog/polars/polars-tuto.ipynb index 8888b64d..e36628e1 100644 --- a/post/polars/polars-tuto.ipynb +++ b/blog/polars/polars-tuto.ipynb @@ -2,6 +2,7 @@ "cells": [ { "cell_type": "markdown", + "id": "7158e942-69cf-4198-9c5a-2cdeaf3b896a", "metadata": {}, "source": [ "# Prise en main de Polars\n", @@ -14,14 +15,14 @@ "de données comme `dplyr`.\n", "\n", "Ce notebook offre un complément à\n", - "l’[article](https://ssphub.netlify.app/post/polars/) publié sur le blog\n", + "l’[article](https://ssphub.netlify.app/blog/polars/) publié sur le blog\n", "du réseau des data scientists de la statistique publique. Les exemples\n", "sont reproductibles dans de nombreux environnements, à condition\n", "d’installer les packages comme indiqué ci-dessous. Les utilisateurs du\n", "SSP Cloud ou de Colab pourront directement ouvrir ce notebook en\n", "utilisant les boutons suivants:\n", "\n", - "\"Onyxia\"\n", + "\"Onyxia\"\n", "\"Open\n", "\n", "Pour faire le parallèle avec les exemples pour [découvrir le `tidyverse`\n", @@ -29,11 +30,11 @@ "`utilitr`](https://www.book.utilitr.org/03_fiches_thematiques/fiche_tidyverse)),\n", "ce *notebook* exploite la [Base Permanente des Equipements\n", "(BPE)](https://www.insee.fr/fr/metadonnees/source/serie/s1161)." - ], - "id": "7158e942-69cf-4198-9c5a-2cdeaf3b896a" + ] }, { "cell_type": "markdown", + "id": "46e4b85f-9086-48ed-8096-fcc6ad92d187", "metadata": {}, "source": [ "
\n", @@ -54,39 +55,39 @@ "requêtes SQL pour la manipulation de données.\n", "\n", "
" - ], - "id": "46e4b85f-9086-48ed-8096-fcc6ad92d187" + ] }, { "cell_type": "markdown", + "id": "2ba41298-5cb8-4509-af82-4b05d06d8ea3", "metadata": {}, "source": [ "Pour pouvoir installer les packages utilisés par ce tutoriel, il est\n", "nécessaire d’exécuter la cellule suivante:" - ], - "id": "2ba41298-5cb8-4509-af82-4b05d06d8ea3" + ] }, { "cell_type": "code", "execution_count": 1, + "id": "aea6b216", "metadata": {}, "outputs": [], "source": [ "!pip install polars pynsee[full] s3fs duckdb" - ], - "id": "aea6b216" + ] }, { "cell_type": "markdown", + "id": "0ef0a138-50be-43db-9460-d3d0fac80f61", "metadata": {}, "source": [ "Nous aurons besoin d’importer les packages suivants dans ce *notebook*:" - ], - "id": "0ef0a138-50be-43db-9460-d3d0fac80f61" + ] }, { "cell_type": "code", "execution_count": 2, + "id": "c4589f59", "metadata": {}, "outputs": [], "source": [ @@ -94,11 +95,11 @@ "import polars as pl\n", "import s3fs\n", "from pynsee.download import download_file" - ], - "id": "c4589f59" + ] }, { "cell_type": "markdown", + "id": "9a06dd67-5ae8-4d91-93f0-6f533060e7c1", "metadata": {}, "source": [ "# Lecture de données\n", @@ -128,50 +129,50 @@ "\n", "Pour récupérer des données via `Pynsee`, la fonction de référence est\n", "`download_file`:" - ], - "id": "9a06dd67-5ae8-4d91-93f0-6f533060e7c1" + ] }, { "cell_type": "code", "execution_count": 3, + "id": "3072305e", "metadata": {}, "outputs": [], "source": [ "pandas_df_bpe = download_file(\"BPE_ENS\", update = True)" - ], - "id": "3072305e" + ] }, { "cell_type": "markdown", + "id": "d7f9e47e-ced6-4946-aef6-8cf1ee55c2ad", "metadata": {}, "source": [ "`Pynsee` renvoie un `DataFrame` `Pandas` correspondant à la source\n", "désiré :" - ], - "id": "d7f9e47e-ced6-4946-aef6-8cf1ee55c2ad" + ] }, { "cell_type": "code", "execution_count": 4, + "id": "d8cf8d30", "metadata": {}, "outputs": [ { - "output_type": "display_data", - "metadata": {}, "data": { "text/plain": [ "pandas.core.frame.DataFrame" ] - } + }, + "metadata": {}, + "output_type": "display_data" } ], "source": [ "pandas_df_bpe.__class__" - ], - "id": "d8cf8d30" + ] }, { "cell_type": "markdown", + "id": "f9fc645d-443f-4076-8a01-970fa1957725", "metadata": {}, "source": [ "
\n", @@ -182,110 +183,110 @@ "choisi. Cependant le typage des données pourrait ne pas être optimal.\n", "\n", "
" - ], - "id": "f9fc645d-443f-4076-8a01-970fa1957725" + ] }, { "cell_type": "markdown", + "id": "256dc51e-9244-49c8-af40-d78de9d81182", "metadata": {}, "source": [ "La conversion d’un objet `Pandas` en `Polars` se fait via la méthode\n", "`from_pandas`:" - ], - "id": "256dc51e-9244-49c8-af40-d78de9d81182" + ] }, { "cell_type": "code", "execution_count": 5, + "id": "f918fb92", "metadata": {}, "outputs": [], "source": [ "df = pl.from_pandas(pandas_df_bpe)" - ], - "id": "f918fb92" + ] }, { "cell_type": "markdown", + "id": "dcfc7217-07d0-439a-a977-3354546b51b6", "metadata": {}, "source": [ "Les `DataFrame` `Polars` apparaissent de manière différente des\n", "`DataFrame` `Pandas` dans la console ou dans le *display* de `Jupyter`:\n", "\n", "- `pd.DataFrame`:" - ], - "id": "dcfc7217-07d0-439a-a977-3354546b51b6" + ] }, { "cell_type": "code", "execution_count": 6, + "id": "286a7c3e", "metadata": {}, "outputs": [ { - "output_type": "display_data", - "metadata": {}, "data": { "text/html": [ "\n", "" ] - } + }, + "metadata": {}, + "output_type": "display_data" } ], "source": [ "pandas_df_bpe.head(2)" - ], - "id": "286a7c3e" + ] }, { "cell_type": "markdown", + "id": "8179fc49-9c12-489a-83a3-0b30cda043f5", "metadata": {}, "source": [ "- `pl.DataFrame`:" - ], - "id": "8179fc49-9c12-489a-83a3-0b30cda043f5" + ] }, { "cell_type": "code", "execution_count": 7, + "id": "8323fe58", "metadata": {}, "outputs": [ { - "output_type": "display_data", - "metadata": {}, "data": { "text/html": [ "" ] - } + }, + "metadata": {}, + "output_type": "display_data" } ], "source": [ "df.head(2)" - ], - "id": "8323fe58" + ] }, { "cell_type": "markdown", + "id": "26ea2d14-98c5-494a-a050-d9e2b54ca2b2", "metadata": {}, "source": [ "On va écrire au format\n", "[Parquet](https://pythonds.linogaliana.fr/reads3/) ce `DataFrame` pour\n", "ensuite illustrer la lecture à partir de ce format, plus performant." - ], - "id": "26ea2d14-98c5-494a-a050-d9e2b54ca2b2" + ] }, { "cell_type": "code", "execution_count": 8, + "id": "ecccac16", "metadata": {}, "outputs": [], "source": [ "df.write_parquet(\"bpe.parquet\")" - ], - "id": "ecccac16" + ] }, { "cell_type": "markdown", + "id": "c830640c-99d7-41da-9ca3-654539b75913", "metadata": {}, "source": [ "## En lecture directe depuis un CSV\n", @@ -296,12 +297,12 @@ "copie de la version 2019 disponible sur le site de l’Insee est mise à\n", "disposition, prête à l’emploi. Elle est disponible depuis l’URL :\n", "https://minio.lab.sspcloud.fr/donnees-insee/diffusion/BPE/2019/BPE_ENS.csv" - ], - "id": "c830640c-99d7-41da-9ca3-654539b75913" + ] }, { "cell_type": "code", "execution_count": 9, + "id": "5e3fde2a", "metadata": {}, "outputs": [], "source": [ @@ -312,11 +313,11 @@ " \"DEP\": pl.Categorical,\n", " \"DEPCOM\": pl.Categorical\n", " })" - ], - "id": "5e3fde2a" + ] }, { "cell_type": "markdown", + "id": "e9af2a71-e27a-4775-8c7c-077fe9efd0b8", "metadata": {}, "source": [ "L’option `dtypes` est ici nécessaire sous peine d’une erreur qu’on ne\n", @@ -325,11 +326,11 @@ "français (qui sont tous numériques sauf les numéros Corse *“2A”* et\n", "*“2B”*) et demande à l’utilisateur de données de fixer le type de ces\n", "variables." - ], - "id": "e9af2a71-e27a-4775-8c7c-077fe9efd0b8" + ] }, { "cell_type": "markdown", + "id": "7a80e31a-5f9a-4644-bcfe-1b763f2fff79", "metadata": {}, "source": [ "
\n", @@ -371,11 +372,11 @@ " └─────┴─────┴────────┴────────┴──────┴────────┴──────────┘\n", "\n", "
" - ], - "id": "7a80e31a-5f9a-4644-bcfe-1b763f2fff79" + ] }, { "cell_type": "markdown", + "id": "fc2185a3-9b85-4e5d-acbb-0a6edbf61e5e", "metadata": {}, "source": [ "# Comment utiliser Polars ?\n", @@ -383,21 +384,21 @@ "Dans la suite de ce tutoriel, on va privilégier l’import depuis un\n", "fichier `Parquet`, plus performant et plus fiable grâce au typage des\n", "colonnes." - ], - "id": "fc2185a3-9b85-4e5d-acbb-0a6edbf61e5e" + ] }, { "cell_type": "code", "execution_count": 11, + "id": "d2628e29", "metadata": {}, "outputs": [], "source": [ "df_bpe = pl.read_parquet(\"bpe.parquet\")" - ], - "id": "d2628e29" + ] }, { "cell_type": "markdown", + "id": "288d97f9-7297-4212-8c67-86581037f4e5", "metadata": {}, "source": [ "A l’instar d’autres outils modernes d’exploitation des données, `Polars`\n", @@ -421,22 +422,22 @@ "3. On compte le nombre d’occurrences pour chaque département via `agg`\n", "4. Le dernier appel - `collect()` - indique que le traitement peut être\n", " lancé (et donc optimisé et parallelisé par `Polars`)." - ], - "id": "288d97f9-7297-4212-8c67-86581037f4e5" + ] }, { "cell_type": "code", "execution_count": 12, + "id": "0617dd2f", "metadata": {}, "outputs": [ { - "output_type": "display_data", - "metadata": {}, "data": { "text/html": [ "" ] - } + }, + "metadata": {}, + "output_type": "display_data" } ], "source": [ @@ -449,11 +450,11 @@ ").collect() # 4.\n", "\n", "df_stations_service.head(5)" - ], - "id": "0617dd2f" + ] }, { "cell_type": "markdown", + "id": "0259129d-a82c-4fe6-8c8b-ff6e52df9ed3", "metadata": {}, "source": [ "Du point de vue du code, la complexité induite par l’approche\n", @@ -525,148 +526,148 @@ "## Sélection de variables\n", "\n", "Commençons par sélectionner des variables en utilisant leurs noms :" - ], - "id": "0259129d-a82c-4fe6-8c8b-ff6e52df9ed3" + ] }, { "cell_type": "code", "execution_count": 13, + "id": "090c2918", "metadata": {}, "outputs": [ { - "output_type": "display_data", - "metadata": {}, "data": { "text/html": [ "" ] - } + }, + "metadata": {}, + "output_type": "display_data" } ], "source": [ "df_bpe.select(\n", " [\"DEPCOM\", \"TYPEQU\", \"NB_EQUIP\"]\n", ").head(5)" - ], - "id": "090c2918" + ] }, { "cell_type": "markdown", + "id": "290a5904-7965-4485-8fda-26585290392f", "metadata": {}, "source": [ "Bien que cette méthode ne soit pas conseillée, il est bon de noter qu’il\n", "est également possible de sélectionner via les positions des colonnes,\n", "comme le permet `Pandas` :" - ], - "id": "290a5904-7965-4485-8fda-26585290392f" + ] }, { "cell_type": "code", "execution_count": 14, + "id": "2ee7a843", "metadata": {}, "outputs": [ { - "output_type": "display_data", - "metadata": {}, "data": { "text/html": [ "" ] - } + }, + "metadata": {}, + "output_type": "display_data" } ], "source": [ "df_bpe[:, 1:5].head(5)" - ], - "id": "2ee7a843" + ] }, { "cell_type": "markdown", + "id": "fe08c2fc-3a7e-418a-99cc-f448751640a8", "metadata": {}, "source": [ "On peut également s’appuyer sur des motifs de sélection des noms de\n", "colonnes mobilisant des expressions régulières (ici `^DEP.*$` signifiant\n", "*“débute par DEP”*):" - ], - "id": "fe08c2fc-3a7e-418a-99cc-f448751640a8" + ] }, { "cell_type": "code", "execution_count": 15, + "id": "49627963", "metadata": {}, "outputs": [ { - "output_type": "display_data", - "metadata": {}, "data": { "text/html": [ "" ] - } + }, + "metadata": {}, + "output_type": "display_data" } ], "source": [ "df_bpe.select(\n", " pl.col(\"^DEP.*$\")\n", ").head(5)" - ], - "id": "49627963" + ] }, { "cell_type": "markdown", + "id": "95f445e9-f650-4165-a13d-15d9f6721358", "metadata": {}, "source": [ "La fonction `select` acceptant des `list` Python, on peut construire des\n", "sélecteurs assez puissants :" - ], - "id": "95f445e9-f650-4165-a13d-15d9f6721358" + ] }, { "cell_type": "code", "execution_count": 16, + "id": "a6452fcf", "metadata": {}, "outputs": [ { - "output_type": "display_data", - "metadata": {}, "data": { "text/html": [ "" ] - } + }, + "metadata": {}, + "output_type": "display_data" } ], "source": [ "dep_cols = [cols for cols in df_bpe.columns if cols.startswith(\"DEP\")] \n", "\n", "df_bpe.select(dep_cols).head(5)" - ], - "id": "a6452fcf" + ] }, { "cell_type": "markdown", + "id": "a5e2bb6c-d98d-4021-ad63-ce33ea0d53ab", "metadata": {}, "source": [ "## Sélection d’observations\n", "\n", "La sélection d’observations (de lignes) se fera grâce à la fonction\n", "`filter`." - ], - "id": "a5e2bb6c-d98d-4021-ad63-ce33ea0d53ab" + ] }, { "cell_type": "code", "execution_count": 17, + "id": "9a615400", "metadata": {}, "outputs": [ { - "output_type": "display_data", - "metadata": {}, "data": { "text/html": [ "" ] - } + }, + "metadata": {}, + "output_type": "display_data" } ], "source": [ @@ -674,11 +675,11 @@ " (pl.col(\"DEPCOM\") == \"75101\") &\n", " (pl.col(\"TYPEQU\") == \"B304\")\n", ").head(5)" - ], - "id": "9a615400" + ] }, { "cell_type": "markdown", + "id": "26a7b7c5-b6c1-4ac9-8b39-b87010b01169", "metadata": {}, "source": [ "De nombreux opérateurs sont disponibles pour faciliter cette sélection\n", @@ -689,22 +690,22 @@ " *“EPCI”*.\n", "\n", "Par exemple, pour sélectionner les départements 75 et 92:" - ], - "id": "26a7b7c5-b6c1-4ac9-8b39-b87010b01169" + ] }, { "cell_type": "code", "execution_count": 18, + "id": "d3d41d7e", "metadata": {}, "outputs": [ { - "output_type": "display_data", - "metadata": {}, "data": { "text/html": [ "" ] - } + }, + "metadata": {}, + "output_type": "display_data" } ], "source": [ @@ -712,31 +713,31 @@ "df_bpe.filter(\n", " pl.col(\"DEP\").is_in([\"75\", \"92\"])\n", ").head(5)" - ], - "id": "d3d41d7e" + ] }, { "cell_type": "markdown", + "id": "76cb38e4-8098-4788-9a28-63637d3b6811", "metadata": {}, "source": [ "Pour sélectionner les observations où la variable EPCI a une valeur\n", "manquante:" - ], - "id": "76cb38e4-8098-4788-9a28-63637d3b6811" + ] }, { "cell_type": "code", "execution_count": 19, + "id": "83a48258", "metadata": {}, "outputs": [ { - "output_type": "display_data", - "metadata": {}, "data": { "text/html": [ "" ] - } + }, + "metadata": {}, + "output_type": "display_data" } ], "source": [ @@ -744,42 +745,42 @@ "df_bpe.filter(\n", " pl.col(\"EPCI\").is_null()\n", ")" - ], - "id": "83a48258" + ] }, { "cell_type": "markdown", + "id": "7f6d7a0a-22fb-4148-ba86-51e0afa3df49", "metadata": {}, "source": [ "A l’inverse, si on désire ne sélectionner que les observations où la\n", "colonne *“EPCI”* n’est pas manquante :" - ], - "id": "7f6d7a0a-22fb-4148-ba86-51e0afa3df49" + ] }, { "cell_type": "code", "execution_count": 20, + "id": "e6100897", "metadata": {}, "outputs": [ { - "output_type": "display_data", - "metadata": {}, "data": { "text/html": [ "" ] - } + }, + "metadata": {}, + "output_type": "display_data" } ], "source": [ "df_bpe.filter(\n", " pl.col(\"EPCI\").is_not_null()\n", ")" - ], - "id": "e6100897" + ] }, { "cell_type": "markdown", + "id": "cba7c960-49c1-4415-81ed-f87312ee1e77", "metadata": {}, "source": [ "Comme avec `Pandas`, il existe énormément de méthodes pratiques pour la\n", @@ -789,35 +790,35 @@ "\n", "La fonction `rename` permet de lister les colonnes à renommer via un\n", "dictionnaire Python :" - ], - "id": "cba7c960-49c1-4415-81ed-f87312ee1e77" + ] }, { "cell_type": "code", "execution_count": 21, + "id": "794ee3d4", "metadata": { "tags": [] }, "outputs": [ { - "output_type": "display_data", - "metadata": {}, "data": { "text/html": [ "" ] - } + }, + "metadata": {}, + "output_type": "display_data" } ], "source": [ "df_bpe.rename({\n", " \"DEPCOM\" : \"code_commune\"\n", "}).head(5)" - ], - "id": "794ee3d4" + ] }, { "cell_type": "markdown", + "id": "47ce3b5f-d8df-483b-bf6b-204191468daf", "metadata": {}, "source": [ "
\n", @@ -828,106 +829,106 @@ "`{\"ancienne_colonne\": \"nouvelle_colonne\"}`\n", "\n", "
" - ], - "id": "47ce3b5f-d8df-483b-bf6b-204191468daf" + ] }, { "cell_type": "markdown", + "id": "5e96bdc1-6585-42b6-8b62-4b4d287eb9a6", "metadata": {}, "source": [ "Comme vu plus haut, construire des expressions de renommage plus\n", "complexes pourra se faire en pur `Python` :" - ], - "id": "5e96bdc1-6585-42b6-8b62-4b4d287eb9a6" + ] }, { "cell_type": "code", "execution_count": 22, + "id": "74443b33", "metadata": {}, "outputs": [ { - "output_type": "display_data", - "metadata": {}, "data": { "text/html": [ "" ] - } + }, + "metadata": {}, + "output_type": "display_data" } ], "source": [ "cols_minuscules = {cols: cols.lower() for cols in df_bpe.columns}\n", "\n", "df_bpe.rename(cols_minuscules).head(5)" - ], - "id": "74443b33" + ] }, { "cell_type": "markdown", + "id": "a7973879-0893-4519-96d2-5e8dc8a843a6", "metadata": {}, "source": [ "## Trier une table\n", "\n", "La fonction `sort` permet de trier la table sur une ou plusieurs\n", "variables." - ], - "id": "a7973879-0893-4519-96d2-5e8dc8a843a6" + ] }, { "cell_type": "code", "execution_count": 23, + "id": "3bd4a2a1", "metadata": {}, "outputs": [ { - "output_type": "display_data", - "metadata": {}, "data": { "text/html": [ "" ] - } + }, + "metadata": {}, + "output_type": "display_data" } ], "source": [ "df_bpe.lazy()\\\n", " .sort(\"DEPCOM\", \"TYPEQU\")\\\n", " .head(5).collect()" - ], - "id": "3bd4a2a1" + ] }, { "cell_type": "markdown", + "id": "c4a1a6b7-ecb7-4ab2-b2fd-3dc5cce7e9df", "metadata": {}, "source": [ "L’ordre de tri - croissant par défaut - peut-être précisé pour chaque\n", "variable." - ], - "id": "c4a1a6b7-ecb7-4ab2-b2fd-3dc5cce7e9df" + ] }, { "cell_type": "code", "execution_count": 24, + "id": "828389ee", "metadata": {}, "outputs": [ { - "output_type": "display_data", - "metadata": {}, "data": { "text/html": [ "" ] - } + }, + "metadata": {}, + "output_type": "display_data" } ], "source": [ "df_bpe.lazy()\\\n", " .sort(\"DEPCOM\", \"TYPEQU\", descending=[True, False])\\\n", " .head(5).collect()" - ], - "id": "828389ee" + ] }, { "cell_type": "markdown", + "id": "195d44cf-7874-49ae-ad39-c5dba46d465a", "metadata": {}, "source": [ "## Création de nouvelles variables\n", @@ -938,22 +939,22 @@ "- on convertit en entier numérique la variable `NB_EQUIP`\n", "- on calcule la somme cumulée (avec `cum_sum`)\n", "- on nomme la nouvelle colonne `NB_EQUIP_SUM`" - ], - "id": "195d44cf-7874-49ae-ad39-c5dba46d465a" + ] }, { "cell_type": "code", "execution_count": 25, + "id": "bae4d483", "metadata": {}, "outputs": [ { - "output_type": "display_data", - "metadata": {}, "data": { "text/html": [ "" ] - } + }, + "metadata": {}, + "output_type": "display_data" } ], "source": [ @@ -963,33 +964,33 @@ " pl.col(\"NB_EQUIP\").cum_sum().alias(\"NB_EQUIP_SUM\"),\n", " pl.when(pl.col(\"NB_EQUIP\") > 3).then(True).otherwise(False).alias(\"NB_EQUIP_3PLUS\")\n", " ).head(5).collect()" - ], - "id": "bae4d483" + ] }, { "cell_type": "markdown", + "id": "68c8b9c0-c97f-4acb-8a95-c30e0a8a22ce", "metadata": {}, "source": [ "## Production de synthèses et d’agrégats\n", "\n", "On peut produire des statistiques synthétiques sur notre jeu de données\n", "avec la fonction `select`." - ], - "id": "68c8b9c0-c97f-4acb-8a95-c30e0a8a22ce" + ] }, { "cell_type": "code", "execution_count": 26, + "id": "18d590ce", "metadata": {}, "outputs": [ { - "output_type": "display_data", - "metadata": {}, "data": { "text/html": [ "" ] - } + }, + "metadata": {}, + "output_type": "display_data" } ], "source": [ @@ -998,46 +999,46 @@ " .select(\n", " pl.col(\"NB_EQUIP\").sum().alias(\"NB_EQUIP_TOT\")\n", " ).head(5).collect()" - ], - "id": "18d590ce" + ] }, { "cell_type": "markdown", + "id": "1d786bc3-52b4-45d3-a073-3e8873a27b36", "metadata": {}, "source": [ "Les fonctions `describe` et `glimpse` proposent un aperçu synthétique de\n", "la table:" - ], - "id": "1d786bc3-52b4-45d3-a073-3e8873a27b36" + ] }, { "cell_type": "code", "execution_count": 27, + "id": "d17056e6", "metadata": {}, "outputs": [ { - "output_type": "display_data", - "metadata": {}, "data": { "text/html": [ "" ] - } + }, + "metadata": {}, + "output_type": "display_data" } ], "source": [ "df_bpe.describe()" - ], - "id": "d17056e6" + ] }, { "cell_type": "code", "execution_count": 28, + "id": "54a6f430", "metadata": {}, "outputs": [ { - "output_type": "stream", "name": "stdout", + "output_type": "stream", "text": [ "Rows: 1056914\n", "Columns: 13\n", @@ -1059,11 +1060,11 @@ ], "source": [ "df_bpe.glimpse()" - ], - "id": "54a6f430" + ] }, { "cell_type": "markdown", + "id": "8b6bd5b9-7be1-4943-a349-a6fbedc40f43", "metadata": {}, "source": [ "Les fonctions `group_by` et `agg` sont mobilisées pour créer des\n", @@ -1075,33 +1076,33 @@ " (`pl.col(\"TYPEQU\") == \"B203\").sum()`) ;\n", "3. On donne un nom à la colonne portant la somme\n", " (`alias(\"NB_BOULANGERIES_TOT\")`)" - ], - "id": "8b6bd5b9-7be1-4943-a349-a6fbedc40f43" + ] }, { "cell_type": "code", "execution_count": 29, + "id": "5dfa2325", "metadata": {}, "outputs": [ { - "output_type": "display_data", - "metadata": {}, "data": { "text/html": [ "" ] - } + }, + "metadata": {}, + "output_type": "display_data" } ], "source": [ "df_bpe.lazy().group_by(\"DEP\").agg(\n", " (pl.col(\"TYPEQU\") == \"B203\").sum().alias(\"NB_BOULANGERIES_TOT\")\n", ").sort(\"NB_BOULANGERIES_TOT\", descending=True).head(5).collect()" - ], - "id": "5dfa2325" + ] }, { "cell_type": "markdown", + "id": "1c95fbdd-bd1a-4648-b048-24cfd9e11f62", "metadata": {}, "source": [ "# Explorer le plan d’exécution\n", @@ -1111,17 +1112,15 @@ "\n", "Pour cela, il suffit pour cela de ne pas effectuer d’action comme\n", "`collect` ou `head`." - ], - "id": "1c95fbdd-bd1a-4648-b048-24cfd9e11f62" + ] }, { "cell_type": "code", "execution_count": 30, + "id": "9fb05058", "metadata": {}, "outputs": [ { - "output_type": "display_data", - "metadata": {}, "data": { "text/html": [ "

NAIVE QUERY PLAN

run LazyFrame.show_graph() to see the optimized version

\n", @@ -1176,7 +1175,9 @@ "\n", "" ] - } + }, + "metadata": {}, + "output_type": "display_data" } ], "source": [ @@ -1185,11 +1186,11 @@ " .select(\n", " pl.col(\"NB_EQUIP\").sum().alias(\"NB_EQUIP_TOT\")\n", " )" - ], - "id": "9fb05058" + ] }, { "cell_type": "markdown", + "id": "cde10fd1-cc4a-4a46-955c-a469fa4f74b4", "metadata": {}, "source": [ "
\n", @@ -1200,11 +1201,11 @@ "retardée en attente d’une action n’ayant pas lieu.\n", "\n", "
" - ], - "id": "cde10fd1-cc4a-4a46-955c-a469fa4f74b4" + ] }, { "cell_type": "markdown", + "id": "dc021af3-9862-4d55-89d0-b6f785a7f7fa", "metadata": {}, "source": [ "# Une interconnexion avec `DuckDB` pour faire des requêtes SQL\n", @@ -1225,48 +1226,46 @@ "Pour illustrer le premier cas, reprenons un exemple précédent qui\n", "illustrait la sélection d’observations en se restreignant au choix de\n", "deux départements:" - ], - "id": "dc021af3-9862-4d55-89d0-b6f785a7f7fa" + ] }, { "cell_type": "code", "execution_count": 31, + "id": "bc9962d8", "metadata": {}, "outputs": [ { - "output_type": "display_data", - "metadata": {}, "data": { "text/html": [ "" ] - } + }, + "metadata": {}, + "output_type": "display_data" } ], "source": [ "df_bpe.filter(\n", " pl.col(\"DEP\").is_in([\"75\", \"92\"])\n", ").head(5)" - ], - "id": "bc9962d8" + ] }, { "cell_type": "markdown", + "id": "9fcbe93b-5780-49a3-915d-6cbbb30270bf", "metadata": {}, "source": [ "Avec `DuckDB`, pour effectuer la même opération, nommée *filtre* en SQL,\n", "une requête SQL s’écrira de la manière suivante:" - ], - "id": "9fcbe93b-5780-49a3-915d-6cbbb30270bf" + ] }, { "cell_type": "code", "execution_count": 32, + "id": "d9db5e1a", "metadata": {}, "outputs": [ { - "output_type": "display_data", - "metadata": {}, "data": { "text/plain": [ "┌─────────┬─────────┬─────────┬─────────┬─────────┬───┬───────────┬─────────┬─────────┬─────────┬─────────┬──────────┐\n", @@ -1300,7 +1299,9 @@ "│ ? rows (>9999 rows, 20 shown) 13 columns (11 shown) │\n", "└────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘" ] - } + }, + "metadata": {}, + "output_type": "display_data" } ], "source": [ @@ -1308,11 +1309,11 @@ "\n", "df_duckdb = duckdb.sql(\"SELECT * FROM df_bpe WHERE CAST(DEP AS VARCHAR) in ('75', '92')\")\n", "df_duckdb" - ], - "id": "d9db5e1a" + ] }, { "cell_type": "markdown", + "id": "7532d6e7-d3b9-4e58-9596-88b2703b6e34", "metadata": {}, "source": [ "
\n", @@ -1323,11 +1324,11 @@ "montré dans le prochain exemple\n", "\n", "
" - ], - "id": "7532d6e7-d3b9-4e58-9596-88b2703b6e34" + ] }, { "cell_type": "markdown", + "id": "43ef0a8e-7512-469e-838c-9ff0e346a0a6", "metadata": {}, "source": [ "La seconde approche implique quant à elle d’utiliser `DuckDB` pour lire\n", @@ -1339,59 +1340,58 @@ " effectuer le filtre\n", "- Le résultat de cette requête est transformé en `DataFrame` `Polars`\n", " avec la méthode `pl`:" - ], - "id": "43ef0a8e-7512-469e-838c-9ff0e346a0a6" + ] }, { "cell_type": "code", "execution_count": 33, + "id": "2fe96183", "metadata": {}, "outputs": [ { - "output_type": "display_data", - "metadata": {}, "data": { "text/html": [ "" ] - } + }, + "metadata": {}, + "output_type": "display_data" } ], "source": [ "duckdb.sql(\"SELECT * FROM read_parquet(\\\"bpe.parquet\\\") WHERE CAST(DEP AS VARCHAR) in ('75', '92')\").pl()" - ], - "id": "2fe96183" + ] }, { "cell_type": "markdown", + "id": "3c84ba76-49af-429b-bd81-4296f19dbf7c", "metadata": {}, "source": [ "Cette approche est intéressante pour effectuer les opérations de\n", "sélection d’observations ou de variables le plus tôt possible afin de ne\n", "pas avoir en mémoire des données inutilisées." - ], - "id": "3c84ba76-49af-429b-bd81-4296f19dbf7c" + ] } ], - "nbformat": 4, - "nbformat_minor": 5, "metadata": { "kernelspec": { - "name": "python3", "display_name": "Python 3 (ipykernel)", - "language": "python" + "language": "python", + "name": "python3" }, "language_info": { - "name": "python", "codemirror_mode": { "name": "ipython", "version": "3" }, "file_extension": ".py", "mimetype": "text/x-python", + "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.11.6" } - } -} \ No newline at end of file + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/post/polars/polars-tuto.qmd b/blog/polars/polars-tuto.qmd similarity index 96% rename from post/polars/polars-tuto.qmd rename to blog/polars/polars-tuto.qmd index 229582a3..7f7ee443 100644 --- a/post/polars/polars-tuto.qmd +++ b/blog/polars/polars-tuto.qmd @@ -5,9 +5,9 @@ jupyter: python3 `Polars` est un package `Python` permettant de manipuler les données tabulaires à partir de différents types de fichiers (CSV, Parquet, etc.). Il est une alternative directe et moderne à `Pandas`, pensée pour être très performante tout en offrant une syntaxe compréhensible à pour des _data scientists_ habitués à d'autres _frameworks_ de manipulation de données comme `dplyr`. -Ce notebook offre un complément à l'[article](https://ssphub.netlify.app/post/polars/) publié sur le blog du réseau des data scientists de la statistique publique. Les exemples sont reproductibles dans de nombreux environnements, à condition d'installer les packages comme indiqué ci-dessous. Les utilisateurs du SSP Cloud ou de Colab pourront directement ouvrir ce notebook en utilisant les boutons suivants: +Ce notebook offre un complément à l'[article](index.qmd) publié sur le blog du réseau des data scientists de la statistique publique. Les exemples sont reproductibles dans de nombreux environnements, à condition d'installer les packages comme indiqué ci-dessous. Les utilisateurs du SSP Cloud ou de Colab pourront directement ouvrir ce notebook en utilisant les boutons suivants: -Onyxia +Onyxia Open In Colab Pour faire le parallèle avec les diff --git a/post/recap2022/cartiflette.png b/blog/recap2022/cartiflette.png similarity index 100% rename from post/recap2022/cartiflette.png rename to blog/recap2022/cartiflette.png diff --git a/post/recap2022/featured.png b/blog/recap2022/featured.png similarity index 100% rename from post/recap2022/featured.png rename to blog/recap2022/featured.png diff --git a/post/recap2022/gouvdown.png b/blog/recap2022/gouvdown.png similarity index 100% rename from post/recap2022/gouvdown.png rename to blog/recap2022/gouvdown.png diff --git a/post/recap2022/gridviz.ics b/blog/recap2022/gridviz.ics similarity index 100% rename from post/recap2022/gridviz.ics rename to blog/recap2022/gridviz.ics diff --git a/post/recap2022/gridviz.png b/blog/recap2022/gridviz.png similarity index 100% rename from post/recap2022/gridviz.png rename to blog/recap2022/gridviz.png diff --git a/post/recap2022/index.qmd b/blog/recap2022/index.qmd similarity index 95% rename from post/recap2022/index.qmd rename to blog/recap2022/index.qmd index 108723fc..5838a636 100644 --- a/post/recap2022/index.qmd +++ b/blog/recap2022/index.qmd @@ -18,15 +18,14 @@ categories: - Insee - Retrospective - Infolettre - - Retrospective image: featured.png --- -*Vous désirez intégrer la liste de diffusion ? Un mail à suffit* +*Vous désirez intégrer la liste de diffusion ? Un mail à {{< var contact.email >}} suffit* -La [rétrospective de l'année 2022](https://ssphub.netlify.app/post/retrospective2022/) promettait +La [rétrospective de l'année 2022](../retrospective2022/index.qmd) promettait une version plus personnalisée, inspirée des visualisations proposées par les réseaux sociaux pour synthétiser l'activité de leurs utilisateurs. @@ -37,7 +36,7 @@ Vous pourrez retrouver à la fin de la _newsletter_ des informations plus classi événements, retour sur les actions du réseau, formations, etc. Elle permet aussi d'illustrer le potentiel d'outils qui ont été présentés -dans la [rétrospective de l'année 2022](https://ssphub.netlify.app/post/retrospective2022/). +dans la [rétrospective de l'année 2022](../retrospective2022/index.qmd). Toutes les figures sont réactives, notamment quand vous passez votre souris dessus. Les principaux ingrédients qui ont été ici utilisés, et qui avaient été mentionnés dans la première partie de la rétrospective, sont `Observable`, `Quarto` et `DuckDB`. Les données @@ -100,7 +99,7 @@ disponible sur [la plateforme](https://observablehq.com/@linogaliana/2022-year-r pour les utilisateurs intéressés par la réutilisation des figures, des données sous-jacentes ou des utilitaires ayant permis d'aboutir à certaines visualisations. Le code source de cette page, disponible -sur le [`Github inseefrlab/ssphub`](https://raw.githubusercontent.com/InseeFrLab/ssphub/main/content/post/recap2022/index.md) +sur le [`Github inseefrlab/ssphub`](https://raw.githubusercontent.com/InseeFrLab/ssphub/main/content/blog/recap2022/index.md) illustre la manière dont les figures peuvent être intégrées à un site _web_ depuis la plateforme [`observablehq`](https://observablehq.com/). Bien que j'ai privilégié la méthode `Runtime JS`, qui permet d'intégrer la visualisation sans le @@ -130,7 +129,7 @@ Le réseau a organisé __trois événements__ pendant l'année 2022. D'abord, av deux _open hours_ ont eu lieu. Cet événement informel prenant la forme de retour d'expérience a été l'occasion de discussions stimulantes autour de d'usage de la _data science_ pour l'administration. -En novembre, l'[événement autour d'`Observable`](/talk/presentation-dobservable-par-nicolas-lambert/) +En novembre, l'[événement autour d'`Observable`](/event/presentation-dobservable-par-nicolas-lambert/) animé par [Nicolas Lambert](https://observablehq.com/@neocartocnrs) a réuni près de 50 personnes. @@ -264,7 +263,7 @@ est arrivée à la [première place des équipes européennes](https://unstats.u Les nouvelles formations à `Git` et aux bonnes pratiques avec `R`, testées récemment à l'Insee et au service statistique du Ministère du Travail, la DARES, -(voir _newsletters_ de [Novembre](/uploads/infolettre_6.pdf) et [Décembre]((/uploads/infolettre_7.pdf))), +(voir _newsletters_ de [Novembre](https://minio.lab.sspcloud.fr/ssphub/diffusion/website/infolettre_old/Infolettre_n6.pdf) et [Décembre](https://minio.lab.sspcloud.fr/ssphub/diffusion/website/infolettre_old/Infolettre_n7.pdf)), deviennent des formations nationales. Pour pouvoir diffuser les bonnes pratiques favorisant @@ -274,7 +273,7 @@ il est nécessaire d'avoir le plus d'enseignants possibles pour cette formation. cela, un appel à candidat pour une __formation de formateurs__ a été diffusée à l'Insee et dans les services statistiques ministériels. Si vous êtes intéressés et ne l'avez pas reçu, n'hésitez pas à envoyer -un mail à ssphub-contact@insee.fr +un mail à {{< var contact.email >}}. En attendant, les supports de ces formations sont déjà disponibles diff --git a/post/recap2022/matchsiret.png b/blog/recap2022/matchsiret.png similarity index 100% rename from post/recap2022/matchsiret.png rename to blog/recap2022/matchsiret.png diff --git a/post/recap2022/socratext.png b/blog/recap2022/socratext.png similarity index 100% rename from post/recap2022/socratext.png rename to blog/recap2022/socratext.png diff --git a/post/retrospective2022/diffusion.png b/blog/retrospective2022/diffusion.png similarity index 100% rename from post/retrospective2022/diffusion.png rename to blog/retrospective2022/diffusion.png diff --git a/post/retrospective2022/featured.png b/blog/retrospective2022/featured.png similarity index 100% rename from post/retrospective2022/featured.png rename to blog/retrospective2022/featured.png diff --git a/post/retrospective2022/index.qmd b/blog/retrospective2022/index.qmd similarity index 97% rename from post/retrospective2022/index.qmd rename to blog/retrospective2022/index.qmd index 557fb354..10644741 100644 --- a/post/retrospective2022/index.qmd +++ b/blog/retrospective2022/index.qmd @@ -1,6 +1,6 @@ --- -title: Infolettre n°8 -subtitle: L'année 2022 dans le monde de la data science +title: Rétrospective de l'année 2022 +subtitle: Infolettre 8 - L'année 2022 dans le monde de la data science description: | La _data science_ a beaucoup fait parler d'elle en 2022, notamment du fait des deux coups @@ -22,7 +22,6 @@ authors: categories: - NLP - - Retrospective - Observable - Quarto - Deep learning @@ -31,7 +30,7 @@ categories: - Infolettre --- -_Vous désirez intégrer la liste de diffusion ? Un mail à suffit_ +_Vous désirez intégrer la liste de diffusion ? Un mail à {{< var contact.email >}} suffit_ @@ -46,7 +45,7 @@ proposer, en deux temps, deux rétrospectives. Cette première _newsletter_ revient sur les principaux événements de l'année 2022 dans le monde de -la _data science_. La [seconde _newsletter_](https://ssphub.netlify.app/post/recap2022/) proposera +la _data science_. La [seconde _newsletter_](index.qmd) proposera une rétrospective quantitative sur le réseau des _data scientists_ de la statistique publique, à la manière des rétrospectives personnalisées de nos applications préférées. @@ -243,7 +242,7 @@ une [grammaire proche de `ggplot2`](https://observablehq.com/@observablehq/plot- La communauté des cartographes a été particulièrement active sur `Observable`, notamment à l'occasion du [#30daymapchallenge](https://observablehq.com/collection/@observablehq/30-day-map-challenge). [Nicolas Bertin (`neocarto`)](https://observablehq.com/@neocartocnrs), dont on ne peut -que recommander l'[introduction à `Observable`](/talk/presentation-dobservable-par-nicolas-lambert/) faite pour le réseau, +que recommander l'[introduction à `Observable`](/event/presentation-dobservable-par-nicolas-lambert/) faite pour le réseau, ou [Eric Mauvière](https://observablehq.com/@ericmauviere) font partie des comptes à suivre dans la communauté francophone. diff --git a/post/retrospective2022/observable1.png b/blog/retrospective2022/observable1.png similarity index 100% rename from post/retrospective2022/observable1.png rename to blog/retrospective2022/observable1.png diff --git a/post/retrospective2022/observable2.png b/blog/retrospective2022/observable2.png similarity index 100% rename from post/retrospective2022/observable2.png rename to blog/retrospective2022/observable2.png diff --git a/post/retrospective2022/vermeer.png b/blog/retrospective2022/vermeer.png similarity index 100% rename from post/retrospective2022/vermeer.png rename to blog/retrospective2022/vermeer.png diff --git a/course.qmd b/course.qmd index 7c576009..72762655 100644 --- a/course.qmd +++ b/course.qmd @@ -2,7 +2,8 @@ title: "Ressources utiles" listing: id: course-listings - contents: course + contents: + - course/**/index.qmd type: grid template: scripts/courses.ejs sort: "date desc" @@ -12,7 +13,7 @@ listing: Une sélection de ressources utiles pour se former ou se perfectionner à la _data science_. _N'hésitez pas à soumettre les ressources que vous jugez utiles -sur [notre `GitHub` {{< fa brands github >}}](https://github.com/InseeFrLab/ssphub/issues)_. +sur [notre `GitHub` {{< fa brands github >}}]({{< var site.github >}})_.
diff --git a/course/observable-course/featured.png b/course/observable-course/featured.png new file mode 100644 index 00000000..f14a087a Binary files /dev/null and b/course/observable-course/featured.png differ diff --git a/course/observable-course/index.qmd b/course/observable-course/index.qmd new file mode 100644 index 00000000..3b71d8b7 --- /dev/null +++ b/course/observable-course/index.qmd @@ -0,0 +1,21 @@ +--- +title: Cours sur la plateforme de dataviz Observable +description: | + When do you use a bar chart over a line chart? + What are area charts good for? + What's wrong with pie charts? + Learn about how these different types of data visualization work, + and how they're used, in Observable's first data visualization course! + Attend lectures (or watch them later), ask questions, and once you've + completed a small assignment at the end, you'll earn a certificate. +categories: +- observable + +date: "2023-04-01T00:00:00Z" + +image: featured.png + +# Optional external URL for project (replaces project detail page). +website: "https://observablehq.com/@observablehq/datavizcourse" + +--- diff --git a/course/r-mtes/featured.png b/course/r-mtes/featured.png new file mode 100644 index 00000000..2864d663 Binary files /dev/null and b/course/r-mtes/featured.png differ diff --git a/course/r-mtes/index.qmd b/course/r-mtes/index.qmd new file mode 100644 index 00000000..a899eece --- /dev/null +++ b/course/r-mtes/index.qmd @@ -0,0 +1,18 @@ +--- +title: Les formations R du MTES +description: | + Une collection de cours `R` faite par le Ministère de la Transition Ecologique +categories: +- R +- MadeByUs + +date: "2024-01-01T00:00:00Z" + +image: featured.png + +# Optional external URL for project (replaces project detail page). +website: "https://mtes-mct.github.io/parcours-r/" + +code: "https://github.com/mtes-mct/parcours-r" +--- + diff --git a/course/sspcloud/index.qmd b/course/sspcloud/index.qmd index d742083d..e1871cf4 100644 --- a/course/sspcloud/index.qmd +++ b/course/sspcloud/index.qmd @@ -1,7 +1,7 @@ --- title: Portail de la formation du SSPCloud description: | - Le SSPCloud, la plateforme cloud + Le SSPCloud, la plateforme cloud développée par l'Insee, propose un certain nombre de tutoriels en Python ou R . @@ -17,5 +17,5 @@ date: "2022-04-27T00:00:00Z" image: featured.png # Optional external URL for project (replaces project detail page). -website: "https://www.sspcloud.fr/formation" ---- \ No newline at end of file +website: "https://www.sspcloud.fr/catalog" +--- diff --git a/course/ssplab-appariement/index.qmd b/course/ssplab-appariement/index.qmd new file mode 100644 index 00000000..79da5029 --- /dev/null +++ b/course/ssplab-appariement/index.qmd @@ -0,0 +1,14 @@ +--- +title: "Appariements de données individuelles : concepts, méthodes, conseils" +description: "Un appariement consiste à rapprocher deux bases de données d’origine distincte partageant des unités statistiques communes mais contenant des informations différentes. Ce document de travail porte sur les cas où un identifiant commun n'existe pas et introduit en pratique les appariements de données individuelles sur traits d'identité." +categories: +- Document de travail +- Insee + +date: "2023-07-03" + +image: ../../assets/media/logo_Insee.png + +# Optional external URL for project (replaces project detail page). +website: "https://www.insee.fr/fr/statistiques/7644535" +--- diff --git a/course/ssplab-grandedimension/featured.png b/course/ssplab-grandedimension/featured.png deleted file mode 100644 index 9804b5a8..00000000 Binary files a/course/ssplab-grandedimension/featured.png and /dev/null differ diff --git a/course/ssplab-grandedimension/index.qmd b/course/ssplab-grandedimension/index.qmd index 9a31d12a..14d99c54 100644 --- a/course/ssplab-grandedimension/index.qmd +++ b/course/ssplab-grandedimension/index.qmd @@ -1,13 +1,13 @@ --- title: L'économétrie en grande dimension description: | - Document de travail sur l'économétrie en grande dimension + Ce document de travail est une courte introduction aux principaux problèmes que l'on rencontre lorsque l'on souhaite faire de l'économétrie en grande dimension, c'est-à-dire lorsque p > n - pour chaque observation, on dispose d'un nombre de caractéristiques potentiellement proportionnel ou plus grand que la taille de l'échantillon. categories: - Econométrie - Insee date: "2022-02-17T00:00:00Z" -image: featured.png +image: ../../assets/media/logo_Insee.png # Optional external URL for project (replaces project detail page). website: "https://www.insee.fr/fr/statistiques/4923129" diff --git a/course/ssplab-neural-network/index.qmd b/course/ssplab-neural-network/index.qmd new file mode 100644 index 00000000..aa95b7a3 --- /dev/null +++ b/course/ssplab-neural-network/index.qmd @@ -0,0 +1,15 @@ +--- +title: "Les réseaux de neurones appliqués à la statistique publique : méthodes et cas d’usages" +description: "Ce document de travail propose une introduction rapide aux réseaux de neurones, de leurs fondements théoriques jusqu’à leur mise en oeuvre pratique en R et python sur des problématiques spécifiques de statistique publique. Il illustre les possibilités et les limites à travers trois cas d’usage détaillés sur l’imputation de valeurs manquantes dans une enquête, l’exploitation de fichiers d’images et la réduction de dimension." +categories: +- Document de travail +- Insee +- machine learning + +date: "2023-02-16" + +image: ../../assets/media/logo_Insee.png + +# Optional external URL for project (replaces project detail page). +website: "https://www.insee.fr/fr/statistiques/6801092" +--- diff --git a/event.qmd b/event.qmd index bbf99c0b..078aaa28 100644 --- a/event.qmd +++ b/event.qmd @@ -2,7 +2,9 @@ title: "Evénements" listing: - id: archives - contents: talk/**/index.qmd + contents: + - event/**/index.qmd + - event/other_events.yml type: grid sort: - "date desc" @@ -12,5 +14,4 @@ listing: --- -## Evénements passés diff --git a/event/2021-06-22-funathon/funathon.jpg b/event/2021-06-22-funathon/funathon.jpg new file mode 100644 index 00000000..c983fac6 Binary files /dev/null and b/event/2021-06-22-funathon/funathon.jpg differ diff --git a/event/2021-06-22-funathon/index.qmd b/event/2021-06-22-funathon/index.qmd new file mode 100644 index 00000000..6a40556a --- /dev/null +++ b/event/2021-06-22-funathon/index.qmd @@ -0,0 +1,37 @@ +--- +title: "Funathon de juin 2021" + +categories: +- event +- funathon +- R +- Python + +description: | + Présentation du premier Funathon du SSPLab organisé le 21 juin 2021 autour de 8 sujets, en R et en Python, à partir de données Airbnb + +date: '2021-06-20' + +image: funathon.jpg + +--- + +# Présentation + +La première édition du Funathon a eu lieu le 21 et 22 juin 2021 et a réuni environ 150 agents, souvent réunis en équipe. Cette première édition a tourné autour de l'utilisation des données d'Airbnb, 8 sujets plus ou moins guidés étant proposés, avec chaque fois des notebooks (en R et en Python) permettant d'entrer facilement dans les sujets. **Tous les niveaux d'expertise étaient les bievenus**. Merci à tous ! + +# Détails du programme des deux jours +Cher.e.s Funambules, + +Vous allez pouvoir vous consacrer cœur et âme pendant deux jours aux joies de la Datascience. Cette expérience sera à la fois longue et courte. Longue car nos calendriers surchargés nous permettent rarement de travailler en collaboration sur un sujet statistique. Mais trop courte, car s’approprier les données, imaginer leurs usages, tester des méthodes de Machine Learning demandent du temps et de la patience. Avant de commencer votre exploration, nous vous recommandons de bien lire les documents et les aides mis à disposition (nous remercions l’équipe du SSPLab pour son coup de main). Nous vous suggérons également de ne pas négliger la partie statistique descriptive, sans quoi vous risquez de mal interpréter les résultats de vos analyses plus complexes. + +Les données proviennent du site Inside Airbnb qui est devenu un acteur de premier plan dans la connaissance de Airbnb. Soutenu par les grandes métropoles européennes et mondiales, le site propose des données scrappées du site Airbnb. Ces données sont utilisées par les agences d’urbanismes (Urban planning) et la recherche académique pour documenter les conséquences des locations Airbnb sur les systèmes urbains. Ces données contiennent par construction des informations personnelles éventuellement identifiantes. Il est interdit d’en faire un usage commercial, ce qui va de soi dans le cadre du Funathon qui est une opération de formation et d’appropriation des outils de Machine Learning. En revanche, en tant que données personnelles, elles doivent être traitées par nous les Funambules, acteurs de la connaissance statistique, avec la même exigence de rigueur et d'éthique que toutes autres sources de données statistiques ou administratives. + +Pendant ces deux jours, certain.e.s Funambules vont découvrir un nouvel outil de travail, le Datalab. Cet outil que nous offre l’équipe de la DIIT (que nous remercions chaleureusement) est l’Armageddon de la Datascience. Sa puissance est redoutable et grisante. En contrepartie, en tant qu’outil en devenir, son appropriation demande plus de temps. N’hésitez pas à consulter le canal général de slack pour poser des questions et y trouver éventuellement des réponses à vos interrogations. + +La Datascience n’est pas seulement l’apanage des plus aguerri.e.s ou des plus virtuoses en informatique. Les esprits curieux ont toute leur place pour penser les données et proposer des approches innovantes. La critique dans les équipes des résultats obtenus nous semble indispensable et ce d'autant plus que les données ne sont pas parfaites. Vos analyses seront forcément biaisées et il est important de connaître et discuter leurs limites. + +N’oubliez pas, nous sommes **des nains sur des épaules de géants**, alors n'hesitez pas à recopier du code. + +L'ensemble du materiel des deux jours est disponible [ici](https://git.lab.sspcloud.fr/ssplab/2021-06-funathon). Premier élément à ouvrir : 0_Kit_De_Demarrage. Puis, laissez vous guider ! + diff --git a/event/2022-06-20-funathon/index.qmd b/event/2022-06-20-funathon/index.qmd new file mode 100644 index 00000000..dbcef8cf --- /dev/null +++ b/event/2022-06-20-funathon/index.qmd @@ -0,0 +1,39 @@ +--- +title: "Funathon de juin 2022" + +categories: +- event +- funathon +- R +- Python + +description: | + Présentation du deuxième Funathon du SSPLab organisé le 20 juin 2022 autour de 9 sujets, en R et en Python. + +date: '2022-06-19' + +image: ../2021-06-22-funathon/funathon.jpg + +--- + +# Présentation + +En 2022, une nouvelle édition a eu lieu les 20 et 21 juin, tournant cette fois autour de la thématique de l'environnement, et du changement climatique. Cette fois encore, 9 sujets ont été proposés, chaque fois accompagnés de notebooks d'explication (en R et en Python). Ceci a notamment permis de travailler sur : + +- l'extraction de données de Twitter, +- l'analyse textuelle des données du grand Débat, +- la réalisation d'analyses graphiques autour de la montée des eaux, +- l'analyse des données issues de la base Ademe sur les logements, +- le machine learning à partir des données de la météo, +- les données satellites, +- l'utilisation de Fasttext, +- d'Elastic Search, +- enfin, 3 Master class ont également été proposées sur : + - (i) la pertinence d'utiliser Python quand on connait R ; + - (ii) une initiation à Elastic ; + - (iii) L'utilisation du deep learning pour classifier des données issues d'images satellites. + +**Tous les niveaux d'expertise étaient les bievenus**. + + # Détails + L'ensemble du materiel associé, et les différents liens vers les master class, sont présents dans le [repo du funathon](https://git.lab.sspcloud.fr/ssplab/2022-06-funathon). \ No newline at end of file diff --git a/event/2022-12-10prcent/Lieu_Transf_logo.png b/event/2022-12-10prcent/Lieu_Transf_logo.png new file mode 100644 index 00000000..006c7fb5 Binary files /dev/null and b/event/2022-12-10prcent/Lieu_Transf_logo.png differ diff --git a/event/2022-12-10prcent/index.qmd b/event/2022-12-10prcent/index.qmd new file mode 100644 index 00000000..b30a0803 --- /dev/null +++ b/event/2022-12-10prcent/index.qmd @@ -0,0 +1,79 @@ +--- +title: "Evénement de clôture de la saison 1 du programme 10%" + +categories: +- event +- 10% +- Python + +description: | + Le __5 décembre__, a lieu l'__événement de clotûre de la saison 1 du programme 10%__. Au programme, restitution des [projets portés cette année](https://10pourcent.etalab.studio/projets/) et une table ronde _"Comment attirer et fidéliser les talents de la data au sein de l’Etat ?"_. + +date: '2022-12-05' + +image: Lieu_Transf_logo.png + +--- + +La `DINUM` et l’`INSEE` ont lancé en 2022 une expérimentation visant à encourager +les experts de la donnée à consacrer au moins 10 % de leur temps de travail à des projets d’intérêt partagé à une échelleinterministérielle. + +Cette expérimentation a permis la mise en place d'une communauté +d'une cinquantaine d'experts publics de la donnée qui s'est mobilisée +sur __4 projets d'intérêt commun__ autour de la data et de l'IA. + +La saison 1 se clôture après six mois d'intense activité. L'occasion de faire le bilan +avec des **restitutions des [projets portés cette année](https://10pourcent.etalab.studio/projets/)**. +Ces restitutions seront suivies +d'une **table ronde sur le sujet _"Comment attirer et fidéliser les talents de la data au sein de l’Etat ?"_** +avec des échanges autour +de pratiques inspirantes issues du public (INSEE, Pôle Emploi, DINUM), du privé (MAIF), +du milieu associatif (Data for good) et de l’étranger (Canada). + +Les projets portés dans le +cadre de la saison 1 sont +disponibles [ici](https://10pourcent.etalab.studio/projets/). + +Lien de l'événement: +https://www.eventbrite.fr/e/billets-evenement-de-cloture-de-la-saison-1-du-programme-10-460655772817 + +:::{.callout-note} + +Pour toute information : + +::: + + +## 14h00-15h00 : Pitchs des projets d'intérêt commun + +- `socratext` : Une solution pour extraire des informations contenues dans des documents non directement exploitables (PDF, images, photos …) afin d’accélérer certaines tâches très chronophages lorsqu’elles sont réalisées à la main par les agents publics (par exemple, extraire les informations des tickets de caisse pour l’enquête budget des familles de l’INSEE ou bien cibler des informations précises dans des rapports médicaux de plusieurs pages). + +Ministères participants : Direction interministérielle du numérique, INSEE, ministère des Armées, ministère de l’Intérieur, Haute Autorité de Santé. + +- `gouvdown` et `shinygouv` : une solution pour créer facilement des applications et des documents conformes à la charte graphique de l’État et faire gagner du temps aux agents. + +Ministères participants : INSEE, direction interministérielle de la transformation publique et réseau des DREAL + +- `MatchSIRET` : une solution pour faciliter et fiabiliser le quotidien des agents en leur donnant le moyen de remonter à l'identifiant exact d'une entreprise à partir d’informations issues du terrain (le nom commercial, la localisation ou le secteur d'activité). + +Ministères participants : Direction interministérielle du numérique, ministère du Travail, de l'Emploi et de l'Insertion + +- `cartiflette` : une solution pour harmoniser et associer des données géographiques issues de différents acteurs publics (INSEE, IGN, collectivités locales) à des contours géographiques normalisés via une API flexible. Ce projet sera associé à un site web, permettant ainsi de faciliter le travail des chercheurs, enseignants, administrations et médias souhaitant réaliser une carte à partir de données géographiques. + +Ministères participants : INSEE, ministère de la Santé, ministère de l’Intérieur et ministère de la Transition écologique, enseignants-chercheurs + + +## 15h00 - 16h00 - Table ronde : Comment attirer et fidéliser les talents de la data au sein de l'Etat ? + +1. Partage de bonnes pratiques issues de la sphère publique : + + Romain Lesur, chef de la division innovation à l’INSEE ; + + Stéphane Campion, chargé des relations externes sur l’IA et la Data à Pôle Emploi ; + + Soraya SAA, cheffe de la mission Talents ; + + Sophie RAVEL, chargée de projet attractivité à la mission Talents de la DINUM. + +2. Regards croisés : initiatives issues de l’étranger, du privé et du milieu associatif : + + Regard de l’étranger : Antoine Augusti, datascientist ayant travaillé au Service numérique canadien + + Regard du privé : Yann Golhen, datascientist à la MAIF + + Regard du milieu associatif : Théo Alves Da Costa, Data For Good + +16h00: Pot final \ No newline at end of file diff --git a/talk/2023-ssphubday/index.qmd b/event/2023-ssphubday/index.qmd similarity index 99% rename from talk/2023-ssphubday/index.qmd rename to event/2023-ssphubday/index.qmd index 8cc06037..23614ff4 100644 --- a/talk/2023-ssphubday/index.qmd +++ b/event/2023-ssphubday/index.qmd @@ -8,7 +8,9 @@ categories: description: | Replay de la première journée de présentation du SSPHub date: '2023-03-29T15:00:00Z' + image: https://custom-images.strikinglycdn.com/res/hrscywv4p/image/upload/c_limit,fl_lossy,h_1440,w_720,f_auto,q_auto/1934057/633539_443779.png + echo: false --- diff --git a/talk/2024-02-29-mauviere/index.qmd b/event/2024-02-29-mauviere/index.qmd similarity index 100% rename from talk/2024-02-29-mauviere/index.qmd rename to event/2024-02-29-mauviere/index.qmd diff --git a/talk/2024-02-29-mauviere/mauviere.png b/event/2024-02-29-mauviere/mauviere.png similarity index 100% rename from talk/2024-02-29-mauviere/mauviere.png rename to event/2024-02-29-mauviere/mauviere.png diff --git a/talk/2004-05-02-quarto/index.qmd b/event/2024-05-02-quarto/index.qmd similarity index 100% rename from talk/2004-05-02-quarto/index.qmd rename to event/2024-05-02-quarto/index.qmd diff --git a/talk/2004-05-02-quarto/quarto.png b/event/2024-05-02-quarto/quarto.png similarity index 100% rename from talk/2004-05-02-quarto/quarto.png rename to event/2024-05-02-quarto/quarto.png diff --git a/talk/2024-10-14-network-day/index.qmd b/event/2024-10-14-network-day/index.qmd similarity index 97% rename from talk/2024-10-14-network-day/index.qmd rename to event/2024-10-14-network-day/index.qmd index 14f8e474..fa23df13 100644 --- a/talk/2024-10-14-network-day/index.qmd +++ b/event/2024-10-14-network-day/index.qmd @@ -138,6 +138,6 @@ Rappel du programme de la journée -Pour toute information : +Pour toute information : {{< var contact.email >}} -📺️ La première journée du réseau ayant eu lieu en 2023 est également [disponible en replay](/talk/2023-ssphubday/index.qmd). +📺️ La première journée du réseau ayant eu lieu en 2023 est également [disponible en replay](/event/2023-ssphubday/index.qmd). diff --git a/talk/2025-04-09-API/API-site-preview.png b/event/2025-04-09-API/API-site-preview.png similarity index 100% rename from talk/2025-04-09-API/API-site-preview.png rename to event/2025-04-09-API/API-site-preview.png diff --git a/talk/2025-04-09-API/Atelier-API.png b/event/2025-04-09-API/Atelier-API.png similarity index 100% rename from talk/2025-04-09-API/Atelier-API.png rename to event/2025-04-09-API/Atelier-API.png diff --git a/talk/2025-04-09-API/index.qmd b/event/2025-04-09-API/index.qmd similarity index 98% rename from talk/2025-04-09-API/index.qmd rename to event/2025-04-09-API/index.qmd index 8bdd129a..bb78f855 100644 --- a/talk/2025-04-09-API/index.qmd +++ b/event/2025-04-09-API/index.qmd @@ -42,4 +42,4 @@ Le matériel lié à l'atelier, y compris le replay, est disponible [ici](https: ![](API-site-preview.png) # Questions / contact -Si vous avez la moindre question 🤨, n'hésitez pas à contacter 📧 __. \ No newline at end of file +Si vous avez la moindre question 🤨, n'hésitez pas à contacter 📧 _{{< var contact.email >}}_. \ No newline at end of file diff --git a/talk/2025-04-16-Parquet/Atelier-Parquet.png b/event/2025-04-16-Parquet/Atelier-Parquet.png similarity index 100% rename from talk/2025-04-16-Parquet/Atelier-Parquet.png rename to event/2025-04-16-Parquet/Atelier-Parquet.png diff --git a/talk/2025-04-16-Parquet/Parquet-site-preview.png b/event/2025-04-16-Parquet/Parquet-site-preview.png similarity index 100% rename from talk/2025-04-16-Parquet/Parquet-site-preview.png rename to event/2025-04-16-Parquet/Parquet-site-preview.png diff --git a/talk/2025-04-16-Parquet/index.qmd b/event/2025-04-16-Parquet/index.qmd similarity index 98% rename from talk/2025-04-16-Parquet/index.qmd rename to event/2025-04-16-Parquet/index.qmd index 7f01080e..dd297937 100644 --- a/talk/2025-04-16-Parquet/index.qmd +++ b/event/2025-04-16-Parquet/index.qmd @@ -42,4 +42,4 @@ Le matériel lié à l'atelier, y compris le replay, est disponible [ici](https: ![](Parquet-site-preview.png) # Questions / contact -Si vous avez la moindre question 🤨, n'hésitez pas à contacter 📧 __. \ No newline at end of file +Si vous avez la moindre question 🤨, n'hésitez pas à contacter 📧 _{{< var contact.email >}}_. \ No newline at end of file diff --git a/talk/2025-12-01-network-day/index.qmd b/event/2025-12-01-network-day/index.qmd similarity index 98% rename from talk/2025-12-01-network-day/index.qmd rename to event/2025-12-01-network-day/index.qmd index 6c4ac277..7b97b38b 100644 --- a/talk/2025-12-01-network-day/index.qmd +++ b/event/2025-12-01-network-day/index.qmd @@ -132,4 +132,6 @@ function createButton(slides, message="Télécharger les slides"){ Pour toute information : -📺️ La deuxième journée du réseau ayant eu lieu en 2024 est également [disponible en replay](/talk/2024-10-14-network-day/index.qmd). +📺️ La deuxième journée du réseau ayant eu lieu en 2024 est également [disponible en replay](../2024-10-14-network-day/index.qmd). + + diff --git a/talk/ocrisation-teklia/index.qmd b/event/ocrisation-teklia/index.qmd similarity index 100% rename from talk/ocrisation-teklia/index.qmd rename to event/ocrisation-teklia/index.qmd diff --git a/talk/ocrisation-teklia/ocr.png b/event/ocrisation-teklia/ocr.png similarity index 100% rename from talk/ocrisation-teklia/ocr.png rename to event/ocrisation-teklia/ocr.png diff --git a/event/other_events.yml b/event/other_events.yml new file mode 100644 index 00000000..8091e2d5 --- /dev/null +++ b/event/other_events.yml @@ -0,0 +1,18 @@ +- path: https://www.insee.fr/fr/information/6529555 + image: assets/media/logo_Insee.png + title: "Séminaire - la méthodologie des appariements" + description: "Séminaire de Méthodologie statistique et de sciences des données du 12 avril 2021 : revue des méthodes d'appariement et des principaux concepts et quelques exemples de traitement mis en oeuvre récemment en termes d'appariement" + date: "2021-04-21" + categories: [Seminaire] +- path: https://www.insee.fr/fr/information/5357816 + image: assets/media/logo_Insee.png + title: "Séminaire - nouvelles approches pour coder dans une nomenclature : machine learning et autocomplétion" + description: "Séminaire de Méthodologie statistique et de sciences des données du 14 janvier 2020 : innovation et expériences pratiques récentes pour réaliser des tâches de classification avec des outils d'analyse textuelle et d'apprentissage statistique supervisé" + date: "2020-01-14" + categories: [Seminaire] +- path: https://www.insee.fr/fr/information/2653115 + image: assets/media/logo_Insee.png + title: "Séminaire - Big Data et statistiques publiques : questions de méthodes et lancement du SSPLab" + description: "Séminaire de Méthodologie statistique et de sciences des données du 30 novembre 2016 : enjeu technique et statistique de l'utilisation de la science des données pour la statistique publique, aperçu des innovations en cours" + date: "2016-11-30" + categories: [Seminaire] diff --git a/talk/presentation-de-gridviz-par-julien-gaffuri/featured.png b/event/presentation-de-gridviz-par-julien-gaffuri/featured.png similarity index 100% rename from talk/presentation-de-gridviz-par-julien-gaffuri/featured.png rename to event/presentation-de-gridviz-par-julien-gaffuri/featured.png diff --git a/talk/presentation-de-gridviz-par-julien-gaffuri/gridviz.png b/event/presentation-de-gridviz-par-julien-gaffuri/gridviz.png similarity index 100% rename from talk/presentation-de-gridviz-par-julien-gaffuri/gridviz.png rename to event/presentation-de-gridviz-par-julien-gaffuri/gridviz.png diff --git a/talk/presentation-de-gridviz-par-julien-gaffuri/index.qmd b/event/presentation-de-gridviz-par-julien-gaffuri/index.qmd similarity index 88% rename from talk/presentation-de-gridviz-par-julien-gaffuri/index.qmd rename to event/presentation-de-gridviz-par-julien-gaffuri/index.qmd index 8a3e55f7..f09ff0e7 100644 --- a/talk/presentation-de-gridviz-par-julien-gaffuri/index.qmd +++ b/event/presentation-de-gridviz-par-julien-gaffuri/index.qmd @@ -29,9 +29,9 @@ carroyées (ou données géolocalisées par des _(x,y)_ à carroyer). Très efficace, elle permet de représenter de manière fluide des volumes importants de données. +## Support et replay {#replay} -## Replay {#replay} - +Le support est disponible [ici](https://minio.lab.sspcloud.fr/ssphub/diffusion/website/2023-01-gridviz/gridviz.pdf). {{< video src="https://minio.lab.sspcloud.fr/ssphub/diffusion/website/2023-01-gridviz/gridviz-20230120.mp4" controls="yes" >}} diff --git a/talk/presentation-des-packages-r-et-python-pour-acceder-a-lopen-data-de-linsee/featured.png b/event/presentation-des-packages-r-et-python-pour-acceder-a-lopen-data-de-linsee/featured.png similarity index 100% rename from talk/presentation-des-packages-r-et-python-pour-acceder-a-lopen-data-de-linsee/featured.png rename to event/presentation-des-packages-r-et-python-pour-acceder-a-lopen-data-de-linsee/featured.png diff --git a/talk/presentation-des-packages-r-et-python-pour-acceder-a-lopen-data-de-linsee/index.qmd b/event/presentation-des-packages-r-et-python-pour-acceder-a-lopen-data-de-linsee/index.qmd similarity index 100% rename from talk/presentation-des-packages-r-et-python-pour-acceder-a-lopen-data-de-linsee/index.qmd rename to event/presentation-des-packages-r-et-python-pour-acceder-a-lopen-data-de-linsee/index.qmd diff --git a/talk/presentation-dobservable-par-nicolas-lambert/featured.png b/event/presentation-dobservable-par-nicolas-lambert/featured.png similarity index 100% rename from talk/presentation-dobservable-par-nicolas-lambert/featured.png rename to event/presentation-dobservable-par-nicolas-lambert/featured.png diff --git a/talk/presentation-dobservable-par-nicolas-lambert/index.qmd b/event/presentation-dobservable-par-nicolas-lambert/index.qmd similarity index 100% rename from talk/presentation-dobservable-par-nicolas-lambert/index.qmd rename to event/presentation-dobservable-par-nicolas-lambert/index.qmd diff --git a/talk/presentation-dobservable-par-nicolas-lambert/observable1.png b/event/presentation-dobservable-par-nicolas-lambert/observable1.png similarity index 100% rename from talk/presentation-dobservable-par-nicolas-lambert/observable1.png rename to event/presentation-dobservable-par-nicolas-lambert/observable1.png diff --git a/talk/presentation-dobservable-par-nicolas-lambert/observable2.png b/event/presentation-dobservable-par-nicolas-lambert/observable2.png similarity index 100% rename from talk/presentation-dobservable-par-nicolas-lambert/observable2.png rename to event/presentation-dobservable-par-nicolas-lambert/observable2.png diff --git a/talk/presentation-du-projet-meta-academy-carpentries/2023-03-MetaAcademy.png b/event/presentation-du-projet-meta-academy-carpentries/2023-03-MetaAcademy.png similarity index 100% rename from talk/presentation-du-projet-meta-academy-carpentries/2023-03-MetaAcademy.png rename to event/presentation-du-projet-meta-academy-carpentries/2023-03-MetaAcademy.png diff --git a/talk/presentation-du-projet-meta-academy-carpentries/index.qmd b/event/presentation-du-projet-meta-academy-carpentries/index.qmd similarity index 100% rename from talk/presentation-du-projet-meta-academy-carpentries/index.qmd rename to event/presentation-du-projet-meta-academy-carpentries/index.qmd diff --git a/images/screenshot.png b/images/screenshot.png deleted file mode 100644 index 2b545d8e..00000000 Binary files a/images/screenshot.png and /dev/null differ diff --git a/images/tn.png b/images/tn.png deleted file mode 100644 index f4aa8e7f..00000000 Binary files a/images/tn.png and /dev/null differ diff --git a/index.en.qmd b/index.en.qmd new file mode 100644 index 00000000..6591a893 --- /dev/null +++ b/index.en.qmd @@ -0,0 +1,69 @@ +--- +toc: false +sidebar: false +title-block-style: none +css: assets/css/homepage.css +page-layout: full +listing: + feed: true + id: project-listing + contents: project/**/index.qmd + type: grid + sort: + - "date desc" + categories: true +--- + +:::::: {#hero-banner .column-screen} +::::: {.grid .column-page} +:::: {.headline .g-col-lg-12 .g-col-12 .g-col-md-12} +::: h1 +Welcome to the `SSPHub`, the website for _data scientists_ working for the French Official Statistical Office +::: +:::: +::::: +:::::: + +# Network of data scientists working for the French Official Statistical Office + +This website is made for the `SSPHub`, a network to foster collaboration and exchange among *data scientists* from the [French Official Statistical Office](https://www.insee.fr/en/information/2386424). +Indeed, in France, the French Official Statistical Office is decentralized : + +- INSEE has its headquarters in Paris region but also has a network of regional offices. +- The other part of the French Officiel Statistical Office is composed of INSEE and 16 Ministerial Statistical Offices (MSOs). MSOs carry out statistical operations in their field of competence. +- INSEE coordinates the public statistics production work of the various MSOs. + +The English version of the website aims at sharing code and innovative projects produced by the *data scientists* from the [French Official Statistical Office](https://www.insee.fr/en/information/2386424). + +The French version of the website offers broader resources to *data scientists* (newsletter, courses ... ). +As it has limited value added for people outside of the French administration, it has not been translated. +But, if you're interested🙂, you are more than welcome to have a look (by using automated translation tools). + +Find out more information about the `SSPHub` network on the [dedicated page](about.qmd). + +# Innovative projects + +## What is considered as an innovative project? +It is always difficult to define ex ante what constitutes an innovative project. +Technological innovation is by definition fluid and evolves very quickly. +However, as stated in the [manifesto (in French)](../manifeste.html), recent technological innovations aim to **simplify and accelerate** certain production processes, **facilitate the exploitation of non-traditional or large data sources**, **automate certain tasks**, **communicate** with wider audiences using responsive visualisations, and, among other things, reduce the gap between statisticians and computer scientists. +For example, modernising a processing chain through the use of new packages or new methods of information processing is an innovation. +However, this may not be ambitious enough on its own to constitute a truly innovative project, and therefore will not necessarily be included in the projects presented here. +The use of web scraping to build a database that is automatically populated will be considered an innovative project. +Conversely, simply updating code or using new administrative databases, if it does not involve any particular technological obstacles, is not considered technological innovation in itself. +This does not mean that such a project is unnecessary or unwelcome 😉. + +Furthermore, a project that is innovative at a given point in time may no longer be so a few months or years later, when the innovation has become widespread enough to be considered conventional knowledge. + +Innovation also occurs everywhere and is not limited to various data science innovation laboratories. + +## What is the scope of the projects presented here? + +The list of projects presented here is not intended to be exhaustive. +It is based on **voluntary participation**. +The aim is to provide a central hub for sharing between SSP data scientists, as outlined in the [manifesto (in French)](../manifeste.html). +**Any proposals for additions or mergers on our platform are welcome!** + +::: {#project-listing} +::: + diff --git a/index.qmd b/index.qmd index e0a4a420..b08a1303 100644 --- a/index.qmd +++ b/index.qmd @@ -2,25 +2,38 @@ toc: false sidebar: false title-block-style: none -css: homepage.css +css: assets/css/homepage.css page-layout: full listing: + - id: project + contents: project/**/index.qmd + type: grid + feed: true + sort: + - "date desc" + page-size: 6 + - id: blog_event + contents: + - blog + - event + type: grid + feed: true + sort: + - "date desc" + page-size: 6 - id: newsletters contents: infolettre/infolettre_*/**/index.qmd type: grid sort: - "number desc" - feed: - categories: [post, infolettre] - - id: blog - contents: post - type: grid feed: true + page-size: 6 - id: partenaires contents: partenaires template: scripts/courses.ejs type: grid feed: false + page-size: 6 echo: false --- @@ -55,11 +68,11 @@ html`${badge}` Le `SSPHub` centralise et vise à faire connaître le contenu créé par le réseau des _data scientists_ du [Service Statistique Publique (SSP)](https://www.insee.fr/fr/information/1302192). -Une présentation du réseau est -disponible sur la page [à propos](#about). +Une présentation du réseau est +disponible sur la page [à propos](about.html). Pour en savoir plus sur les objectifs du réseau, sa philosophie, -et ses modes d'actions, vous pouvez découvrir le [Manifeste 📜](/additional/manifeste.html) -écrit collectivement. +et ses modes d'actions, vous pouvez découvrir le [Manifeste 📜](manifeste.qmd) +écrit collectivement. ::: @@ -77,21 +90,29 @@ et ses modes d'actions, vous pouvez découvrir le [Manifeste 📜](/additional/m ::: {.column-page} -## Les dernières _newsletters_ +## Les derniers billets de blog et événements -Toutes les _newsletters_ précédemment publiées sont disponibles sur la [page dédiée](infolettre/index.qmd). +L'ensemble des billets de blog peut être retrouvé sur la [page dédiée](blog.qmd), tout comme les [événements](event.qmd). -:::: {#newsletters} + +:::: {#blog_event} :::: +## Les projets innovants du SSPHub -## Les derniers billets de blog +L'ensemble des projets innovants peut être retrouvé sur la [page dédiée](project.qmd). -L'ensemble des billets de blog peut être retrouvé sur la [page dédiée](blog.qmd). +:::: {#project} +:::: + + +## Les dernières _newsletters_ + +Toutes les _newsletters_ précédemment publiées sont disponibles sur la [page dédiée](infolettre/infolettre.qmd). -:::: {#blog} +:::: {#newsletters} :::: ## Les réseaux partenaires @@ -105,6 +126,3 @@ Quelques communautés de la data-science avec lesquels nous collaborons ::: - - - diff --git a/infolettre/index.qmd b/infolettre/infolettre.qmd similarity index 100% rename from infolettre/index.qmd rename to infolettre/infolettre.qmd diff --git a/infolettre/infolettre_08/index.qmd b/infolettre/infolettre_08/index.qmd index 9af9c12d..8615f5c2 100644 --- a/infolettre/infolettre_08/index.qmd +++ b/infolettre/infolettre_08/index.qmd @@ -16,7 +16,6 @@ number: 8 categories: - NLP - - Retrospective - Observable - Quarto - Deep learning @@ -25,7 +24,7 @@ categories: - Infolettre --- -_Vous désirez intégrer la liste de diffusion ? Un mail à suffit_ +_Vous désirez intégrer la liste de diffusion ? Un mail à {{< var contact.email >}} suffit_ @@ -40,7 +39,7 @@ proposer, en deux temps, deux rétrospectives. Cette première _newsletter_ revient sur les principaux événements de l'année 2022 dans le monde de -la _data science_. La [seconde _newsletter_](https://ssphub.netlify.app/post/recap2022/) proposera +la _data science_. La [seconde _newsletter_](../../blog/recap2022/index.qmd) proposera une rétrospective quantitative sur le réseau des _data scientists_ de la statistique publique, à la manière des rétrospectives personnalisées de nos applications préférées. @@ -237,7 +236,7 @@ une [grammaire proche de `ggplot2`](https://observablehq.com/@observablehq/plot- La communauté des cartographes a été particulièrement active sur `Observable`, notamment à l'occasion du [#30daymapchallenge](https://observablehq.com/collection/@observablehq/30-day-map-challenge). [Nicolas Bertin (`neocarto`)](https://observablehq.com/@neocartocnrs), dont on ne peut -que recommander l'[introduction à `Observable`](/talk/presentation-dobservable-par-nicolas-lambert/) faite pour le réseau, +que recommander l'[introduction à `Observable`](/event/presentation-dobservable-par-nicolas-lambert/) faite pour le réseau, ou [Eric Mauvière](https://observablehq.com/@ericmauviere) font partie des comptes à suivre dans la communauté francophone. diff --git a/infolettre/infolettre_09/index.qmd b/infolettre/infolettre_09/index.qmd index 5113d904..86024e5a 100644 --- a/infolettre/infolettre_09/index.qmd +++ b/infolettre/infolettre_09/index.qmd @@ -16,7 +16,6 @@ categories: - Insee - Retrospective - Infolettre - - Retrospective image: featured.png @@ -28,7 +27,7 @@ filters: *Vous désirez intégrer la liste de diffusion ? Un mail à suffit* -La [rétrospective de l'année 2022](https://ssphub.netlify.app/post/retrospective2022/) promettait +La [rétrospective de l'année 2022](../../blog/retrospective2022/index.qmd) promettait une version plus personnalisée, inspirée des visualisations proposées par les réseaux sociaux pour synthétiser l'activité de leurs utilisateurs. @@ -39,7 +38,7 @@ Vous pourrez retrouver à la fin de la _newsletter_ des informations plus classi événements, retour sur les actions du réseau, formations, etc. Elle permet aussi d'illustrer le potentiel d'outils qui ont été présentés -dans la [rétrospective de l'année 2022](https://ssphub.netlify.app/post/retrospective2022/). +dans la [rétrospective de l'année 2022](../../blog/retrospective2022/index.qmd). Toutes les figures sont réactives, notamment quand vous passez votre souris dessus. Les principaux ingrédients qui ont été ici utilisés, et qui avaient été mentionnés dans la première partie de la rétrospective, sont `Observable`, `Quarto` et `DuckDB`. Les données @@ -102,7 +101,7 @@ disponible sur [la plateforme](https://observablehq.com/@linogaliana/2022-year-r pour les utilisateurs intéressés par la réutilisation des figures, des données sous-jacentes ou des utilitaires ayant permis d'aboutir à certaines visualisations. Le code source de cette page, disponible -sur le [`Github inseefrlab/ssphub`](https://raw.githubusercontent.com/InseeFrLab/ssphub/main/content/post/recap2022/index.md) +sur le [`Github inseefrlab/ssphub`](https://raw.githubusercontent.com/InseeFrLab/ssphub/main/content/blog/recap2022/index.md) illustre la manière dont les figures peuvent être intégrées à un site _web_ depuis la plateforme [`observablehq`](https://observablehq.com/). Bien que j'ai privilégié la méthode `Runtime JS`, qui permet d'intégrer la visualisation sans le @@ -132,7 +131,7 @@ Le réseau a organisé __trois événements__ pendant l'année 2022. D'abord, av deux _open hours_ ont eu lieu. Cet événement informel prenant la forme de retour d'expérience a été l'occasion de discussions stimulantes autour de d'usage de la _data science_ pour l'administration. -En novembre, l'[événement autour d'`Observable`](/talk/presentation-dobservable-par-nicolas-lambert/) +En novembre, l'[événement autour d'`Observable`](/event/presentation-dobservable-par-nicolas-lambert/) animé par [Nicolas Lambert](https://observablehq.com/@neocartocnrs) a réuni près de 50 personnes. @@ -276,7 +275,7 @@ il est nécessaire d'avoir le plus d'enseignants possibles pour cette formation. cela, un appel à candidat pour une __formation de formateurs__ a été diffusée à l'Insee et dans les services statistiques ministériels. Si vous êtes intéressés et ne l'avez pas reçu, n'hésitez pas à envoyer -un mail à ssphub-contact@insee.fr +un mail à {{< var contact.email >}}. En attendant, les supports de ces formations sont déjà disponibles diff --git a/infolettre/infolettre_10/index.qmd b/infolettre/infolettre_10/index.qmd index 66b174e0..c86bd109 100644 --- a/infolettre/infolettre_10/index.qmd +++ b/infolettre/infolettre_10/index.qmd @@ -25,14 +25,14 @@ categories: --- -*Vous désirez intégrer la liste de diffusion ? Un mail à suffit* +*Vous désirez intégrer la liste de diffusion ? Un mail à {{< var contact.email >}} suffit* ## Un événement autour des packages facilitant l'accès à l'open data de l'Insee ![](dessin-opendata.png){fig-align="center" width="40%"} -Après les présentations [d'`observable`](/talk/presentation-dobservable-par-nicolas-lambert/) -et de [`gridviz`](/talk/presentation-de-gridviz-par-julien-gaffuri/) +Après les présentations [d'`observable`](/event/presentation-dobservable-par-nicolas-lambert/) +et de [`gridviz`](/event/presentation-de-gridviz-par-julien-gaffuri/) nous vous proposons un nouvel événement. Celui-ci sera autour de l'_open data_ à travers la présentation des __packages facilitant la récupération de données de l'Insee__ disponibles @@ -136,14 +136,14 @@ possibilité de surligner ou de prendre des notes. ![](write-blogpost.jpg){fig-align="center" width="30%"} -Le site web du réseau (https://ssphub.netlify.app/) propose depuis septembre une section blog. +Le site web du réseau ({{< var site.url >}}) propose depuis septembre une section blog. __Vos idées et contributions sont les bienvenues pour l'enrichir !__ Pour souligner l'aspect collectif de cette section, un [guide des contributeurs](https://github.com/InseeFrLab/ssphub/blob/main/CONTRIBUTING.md) vient de voir le jour. Celui-ci expose la démarche à suivre, de la phase de discussion pour définir le sujet du billet aux outils proposés pour faciliter la rédaction -et la soumission de celui-ci depuis [`Github` ](https://github.com/InseeFrLab/ssphub). +et la soumission de celui-ci depuis [`Github` ]({{< var site.github >}}). ## La saison 2 du programme 10% arrive diff --git a/infolettre/infolettre_11/index.qmd b/infolettre/infolettre_11/index.qmd index b4c008da..fd6d2748 100644 --- a/infolettre/infolettre_11/index.qmd +++ b/infolettre/infolettre_11/index.qmd @@ -30,7 +30,7 @@ categories: :::{.callout-note} -__*Vous désirez intégrer la liste de diffusion ? L'inscription se fait [ici](https://grist.numerique.gouv.fr/o/ssphub/forms/jSjAV3L2F8mmiRVuVEpfF7/103).*__ +__*Vous désirez intégrer la liste de diffusion ? L'inscription se fait [ici]({{< var signup.form >}}).*__ ::: @@ -44,7 +44,7 @@ nouvelles du réseau. ## ChatGPT continue de faire parler -![](https://ssphub.netlify.app/post/retrospective2022/featured.png){width="40%" fig-align="center"} +![](../../blog/recap2022/featured.png){width="40%" fig-align="center"} L'actualité est encore largement dominée par les discussions autour de `ChatGPT`. @@ -113,7 +113,7 @@ Par ailleurs, l'article de Jordan Tigani ["Big data is dead"](https://motherduck `Huggingface` et `Observable` sont chacun devenus des incontournables dans leur domaine -(voir notre [_newsletter_ de décembre](https://ssphub.netlify.app/post/retrospective2022/)). +(voir notre [_newsletter_ de décembre](../../blog/recap2022/index.qmd)). Alors un rapprochement entre ces deux univers, permettant d'utiliser de nombreux modèles d'apprentissage via l'API d'`HuggingFace` directement dans le navigateur, ça donne envie de s'amuser. @@ -180,7 +180,7 @@ Si vous êtes intéressés par la manière dont les nombreux contenus créés par les membres du réseau pourraient prendre place dans ce cadre, n'hésitez pas à venir pour en savoir plus ! -Informations pratiques [ici](https://ssphub.netlify.app/talk/presentation-du-projet-meta-academy-carpentries/) ! +Informations pratiques [ici](../../event/presentation-du-projet-meta-academy-carpentries/index.qmd) ! ## Masterclass datascientest @@ -216,9 +216,9 @@ __Pour vous inscrire, il suffit de remplir [ce formulaire](https://framaforms.or ## Onyxia -![](https://ssphub.netlify.app/post/onyxia/featured.png){fig-align="center" width="45%"} +![](../../blog/onyxia/featured.png){fig-align="center" width="45%"} -Le [dernier post](https://ssphub.netlify.app/post/onyxia/) sur le site +Le [dernier post](../../blog/onyxia/index.qmd) sur le site web du réseau revient sur le projet `Onyxia`, le logiciel initié par l'équipe innovation de l'Insee et mis à disposition sur [`Github`](https://github.com/InseeFrLab/onyxia-web) pour @@ -228,7 +228,7 @@ de _data science_ à l'état de l'art. Pour en savoir plus sur le contexte de naissance d'Onyxia, les choix techniques mis en oeuvre ou la communauté des -réutilisateurs, c'est [par ici](https://ssphub.netlify.app/post/onyxia/). +réutilisateurs, c'est [par ici](../../blog/onyxia/index.qmd). ## Replay de l'événement autour des packages facilitant l'accès à l'open data de l'Insee @@ -242,7 +242,7 @@ et [`Pynsee`](https://github.com/InseeFrLab/pynsee) (`Python`) lors de notre à l'open data de l'Insee est en ligne ! La vidéo et les supports présentés sont mis à disposition -sur le [site web du réseau](https://ssphub.netlify.app/talk/presentation-des-packages-r-et-python-pour-acceder-a-lopen-data-de-linsee/) +sur le [site web du réseau](../../event/presentation-des-packages-r-et-python-pour-acceder-a-lopen-data-de-linsee/index.qmd) ## Programme 10% diff --git a/infolettre/infolettre_12/index.qmd b/infolettre/infolettre_12/index.qmd index 866f5640..c150588c 100644 --- a/infolettre/infolettre_12/index.qmd +++ b/infolettre/infolettre_12/index.qmd @@ -21,7 +21,7 @@ image: oscars.png :::{.callout-note} -__*Vous désirez intégrer la liste de diffusion ? L'inscription se fait [ici](https://grist.numerique.gouv.fr/o/ssphub/forms/jSjAV3L2F8mmiRVuVEpfF7/103).*__ +__*Vous désirez intégrer la liste de diffusion ? L'inscription se fait [ici]({{< var signup.form >}}).*__ ::: @@ -50,7 +50,7 @@ n'hésitez pas à le consulter ! Ou à découvrir celui sur le [_Met Gala_](http ## ChatGPT encore et toujours -![](https://ssphub.netlify.app/post/retrospective2022/featured.png){fig-align="center" width=40%} +![](../../blog/retrospective2022/featured.png){fig-align="center" width=40%} `ChatGPT` continue de focaliser l'attention. Dans la veine de l'article désignant les modèles de langages @@ -117,7 +117,7 @@ du classement. Une [réponse intéressante](https://ponder.io/big-data-is-dead-long-live-big-data/) à l'article _"Big data is dead"_ -([voir Newsletter #11](https://ssphub.netlify.app/infolettre/infolettre_11/)) +([voir Newsletter #11](../infolettre_11/index.qmd)) revient sur l'intérêt de disposer de données historiques longues pour l'entrainement de modèles d'apprentissage. @@ -140,7 +140,7 @@ que nous organisons. ![](treso.webp){fig-align="center" width=30%} -Déjà annoncée dans la [_Newsletter #11_](https://ssphub.netlify.app/infolettre/infolettre_11/), +Déjà annoncée dans la [_Newsletter #11_](../infolettre_11/index.qmd), nous rappelons la __journée du réseau le 17 avril, en présentiel__ 📅. Le nombre de places dans l'espace à disposition étant limité, @@ -181,7 +181,7 @@ Il est possible de suivre la présentation via [__Zoom__](https://insee-fr.zoom. Pour rappel, Kate Burnett-Isaacs, de Statistics Canada, nous présentera l'initiative Meta Academy / Carpentries le __mardi 28 mars à 15h__ 📅. -Plus de détails dans la [_Newsletter #11_](https://ssphub.netlify.app/infolettre/infolettre_11/). +Plus de détails dans la [_Newsletter #11_](../infolettre_11/index.qmd). __[Invitation `Outlook` ici](https://minio.lab.sspcloud.fr/ssphub/diffusion/website/2023-03-carpentries/carpentries.ics)__. @@ -194,9 +194,9 @@ __[Invitation `Outlook` ici](https://minio.lab.sspcloud.fr/ssphub/diffusion/webs -Pour faire suite à la [_Newsletter #11_](https://ssphub.netlify.app/infolettre/infolettre_11/) +Pour faire suite à la [_Newsletter #11_](../infolettre_11/index.qmd) qui présentait l'écosystème autour du package [`Python` `Polars`](https://www.pola.rs/), -Romain Tailhurat (Insee) nous propose un [post de blog](https://ssphub.netlify.app/post/polars/) pour découvrir ce _package_. +Romain Tailhurat (Insee) nous propose un [post de blog](../../blog/polars/index.qmd) pour découvrir ce _package_. Celui-ci est accompagné par un tutoriel pas-à-pas pour découvrir les principales fonctionnalités de la librairie. Il est possible de tester diff --git a/infolettre/infolettre_13/index.qmd b/infolettre/infolettre_13/index.qmd index ca6aa2f9..81f85d6d 100644 --- a/infolettre/infolettre_13/index.qmd +++ b/infolettre/infolettre_13/index.qmd @@ -23,7 +23,7 @@ categories: :::{.callout-note} -__*Vous désirez intégrer la liste de diffusion ? L'inscription se fait [ici](https://grist.numerique.gouv.fr/o/ssphub/forms/jSjAV3L2F8mmiRVuVEpfF7/103).*__ +__*Vous désirez intégrer la liste de diffusion ? L'inscription se fait [ici]({{< var signup.form >}}).*__ ::: @@ -67,7 +67,7 @@ de reconnaissance d'image et sur un jeu de données ouvertes. Des exemples de r en `Python` sont disponibles sur le [dépôt `Github`](https://github.com/mlfoundations/open_flamingo). Dans le registre IA ouverte, une équipe de chercheurs de plusieurs universités américaines a -mis en oeuvre un `chatbot` ouvert, à partir des modèles `LLaMA` (Meta, voir [Newsletter #11](https://ssphub.netlify.app/infolettre/infolettre_11/)) +mis en oeuvre un `chatbot` ouvert, à partir des modèles `LLaMA` (Meta, voir [Newsletter #11](../infolettre_11/index.qmd)) ou `Alpaca` (Stanford) : [`Vicuna`](https://vicuna.lmsys.org/). Ce chatbot généraliste permet à un internaute de discuter sur une grande variété de sujets. En plus de s'appuyer sur des modèles ouverts, ce qui peut faciliter sa ré-utilisation dans @@ -135,7 +135,7 @@ aux ré-utilisateurs de modèles des applications prêtes à l'emploi pour tester ou enrichir un modèle sur des infrastructures compatibles avec la technique de la conteneurisation, approche utilisée -par les principales plateformes de _data science_ modernes (notamment par celles s'appuyant sur le logiciel [`Onyxia`](https://ssphub.netlify.app/post/onyxia/)). +par les principales plateformes de _data science_ modernes (notamment par celles s'appuyant sur le logiciel [`Onyxia`](../../blog/onyxia/index.qmd)). La plateforme `Observable` propose un [comparatif](https://observablehq.com/@observablehq/data-wrangling-translations) des principales syntaxes @@ -153,7 +153,7 @@ que nous organisons. ![](treso.webp){fig-align="center" width=30%} -Nous rappelons la __journée du réseau le 17 avril, en présentiel__ 📅 ([_Newsletter #12_](https://ssphub.netlify.app/infolettre/infolettre_12/)). +Nous rappelons la __journée du réseau le 17 avril, en présentiel__ 📅 ([_Newsletter #12_](../infolettre_12/index.qmd)). Les places en présentiel sont presque épuisées, ne tardez pas à vous inscrire ! Si vous désirez tout de même suivre les échanges, inscrivez-vous à la retransmission par Zoom. @@ -177,7 +177,7 @@ Inscription [ici](https://framaforms.org/participation-aux-masterclass-datascien ## Replay "Bonnes pratiques pour la mise en production de projets _data science_" (30 mars) Le replay de la présentation succincte -du contenu du cours de l'ENSAE ["Bonnes pratiques pour la mise en production de projets _data science_"](https://ensae-reproductibilite.netlify.app/) ayant eu lieu dans le cadre du programme 10% (voir [_Newsletter #12_](https://ssphub.netlify.app/infolettre/infolettre_12/)) +du contenu du cours de l'ENSAE ["Bonnes pratiques pour la mise en production de projets _data science_"](https://ensae-reproductibilite.netlify.app/) ayant eu lieu dans le cadre du programme 10% (voir [_Newsletter #12_](../infolettre_12/index.qmd)) est disponible [sur le site du programme 10%](https://bbb-dinum-scalelite.visio.education.fr/playback/presentation/2.3/871ab1ad6290d683201d2996582dffe96174d9a6-1680176731865). @@ -193,7 +193,7 @@ ainsi bénéficié d'une excellente introduction à l'histoire des techniques d' et la manière dont aujourd'hui ces modèles fonctionnent en associant reconnaissance d'image et analyse textuelle. -Le replay est [ici](https://ssphub.netlify.app/talk/ocrisation-teklia/) ! +Le replay est [ici](../../event/ocrisation-teklia/index.qmd) ! ## Replay de la présentation de la documentation collaborative _Carpentries_ (28 mars) @@ -203,4 +203,4 @@ l'initiative Meta Academy / Carpentries permettant de construire une documentation francophone de référence sur `R`, `Python` et `Git` à destination des utilisateurs de données. -Le replay est [ici](https://ssphub.netlify.app/talk/presentation-du-projet-meta-academy-carpentries/) ! +Le replay est [ici](../../event/presentation-du-projet-meta-academy-carpentries/index.qmd) ! diff --git a/infolettre/infolettre_14/index.qmd b/infolettre/infolettre_14/index.qmd index 9ab28c63..a66e15f1 100644 --- a/infolettre/infolettre_14/index.qmd +++ b/infolettre/infolettre_14/index.qmd @@ -21,7 +21,7 @@ categories: :::{.callout-note} -__*Vous désirez intégrer la liste de diffusion ? L'inscription se fait [ici](https://grist.numerique.gouv.fr/o/ssphub/forms/jSjAV3L2F8mmiRVuVEpfF7/103).*__ +__*Vous désirez intégrer la liste de diffusion ? L'inscription se fait [ici]({{< var signup.form >}}).*__ ::: diff --git a/infolettre/infolettre_15/index.qmd b/infolettre/infolettre_15/index.qmd index 1ab4da1d..6a2363d5 100644 --- a/infolettre/infolettre_15/index.qmd +++ b/infolettre/infolettre_15/index.qmd @@ -23,7 +23,7 @@ categories: :::{.callout-tip} -__*Vous désirez intégrer la liste de diffusion ? L'inscription se fait [ici](https://grist.numerique.gouv.fr/o/ssphub/forms/jSjAV3L2F8mmiRVuVEpfF7/103).*__ +__*Vous désirez intégrer la liste de diffusion ? L'inscription se fait [ici]({{< var signup.form >}}).*__ ::: @@ -294,7 +294,7 @@ Quelques événements ou informations intéressantes : - [Hackathon de l'ONU](https://unstats.un.org/bigdata/events/2023/un-datathon/): fermeture des inscriptions à la fin du mois ; - [Prix du jeune statisticien de l'IAOS](https://mailings.isi-web.org/?na=v&nk=15226-43b0d8c9de&id=563) : article à envoyer avant le 10 février 2024. -Les personnes intéressées par former une équipe pour les _hackathons_ peuvent contacter . +Les personnes intéressées par former une équipe pour les _hackathons_ peuvent contacter {{< var contact.email >}}. ## Rejoindre le salon Tchap `SSP Hub` @@ -304,4 +304,4 @@ de l’État `Tchap`. Celui-ci réunit plus de 250 personnes et permet des échanges plus directs, plus fréquents et plus informels que la liste de diffusion mail. Si vous avez un compte sur `Tchap`, vous pouvez rejoindre ce salon en cherchant celui-ci par son nom __`« SSP Hub »`__. -En cas de problème pour le rejoindre, n’hésitez pas à envoyer un mail à . +En cas de problème pour le rejoindre, n’hésitez pas à envoyer un mail à {{< var contact.email >}}. diff --git a/infolettre/infolettre_16/index.qmd b/infolettre/infolettre_16/index.qmd index 0f17653b..2edcbacb 100644 --- a/infolettre/infolettre_16/index.qmd +++ b/infolettre/infolettre_16/index.qmd @@ -29,7 +29,7 @@ filters: :::{.callout-tip} -__*Vous désirez intégrer la liste de diffusion ? L'inscription se fait [ici](https://grist.numerique.gouv.fr/o/ssphub/forms/jSjAV3L2F8mmiRVuVEpfF7/103).*__ +__*Vous désirez intégrer la liste de diffusion ? L'inscription se fait [ici]({{< var signup.form >}}).*__ ::: @@ -81,7 +81,7 @@ curieux par le biais de menus déroulants. L'ensemble des codes sources nécessaires à la reproduction de cette page sont disponibles -sur le [`Github {{< fa brands github >}} inseefrlab/ssphub`](https://github.com/InseeFrLab/ssphub/blob/main/infolettre/infolettre_16/). Pour limiter les duplications de code, +sur le `Github {{< fa brands github >}} inseefrlab/ssphub` dont le lien est disponible. Pour limiter les duplications de code, les scripts ont été modularisés dans des fichiers séparés. Les éléments ne sont pas nécessairement présentés dans l'ordre car `JavaScript` est un langage _asynchrone_, les éléments @@ -176,7 +176,7 @@ Les deux dernières publications sur le site du réseau, l'[infolettre #15](/infolettre/infolettre_15/index.qmd) sur le réentrainement des modèles de langage et, surtout, -le [_post_ de blog](/post/parquetRP/index.qmd) +le [_post_ de blog](/blog/parquetRP/index.qmd) sur la publication du recensement de la population au format `Parquet` ont connu un écho important hors des cercles de _data scientist_ du service statistique public @@ -287,20 +287,20 @@ parmi les instituts de statistique publique, vise à simplifier leur exploitation. Pour accompagner cette innovation, en partenariat avec les services de diffusion de l'Insee, -le [dernier _post_ de blog](https://ssphub.netlify.app/post/parquetrp/) +le [dernier _post_ de blog](../../blog/parquetRP/index.qmd) du réseau présente un guide pratique d'utilisation de ces données dans plusieurs langages de traitement ({{< fa brands r-project >}} , `Python` {{< fa brands python >}} et `Observable` {{< fa brands js-square >}}) par le biais de `DuckDB`. Combien d'habitants de Toulouse ont changé de logement sur l'année ? Quels sont les -départements avec le plus de centenaires ? Le [_post_ de blog](https://ssphub.netlify.app/post/parquetrp/) vous montrera comment calculer ces statistiques. Et si vous désirez découvrir +départements avec le plus de centenaires ? Le [_post_ de blog](../../blog/parquetRP/index.qmd) vous montrera comment calculer ces statistiques. Et si vous désirez découvrir ce format avec des exemples additionnels, ce _post_ d'[Eric Mauvière](https://www.icem7.fr/outils/3-explorations-bluffantes-avec-duckdb-1-interroger-des-fichiers-distants/) vous intéressera également. ::: {.callout-note} ## Pour en savoir plus -- Le [_post_ de blog](https://ssphub.netlify.app/post/parquetrp/) ; +- Le [_post_ de blog](../../blog/parquetRP/index.qmd) ; - Un [article](https://www.insee.fr/fr/information/7635827?sommaire=7635842) sur le format `Parquet` dans le _Courrier des stats n°9_ écrit par Alexis Dondon et Pierre Lamarche ; - Le blog d'[Eric Mauvière](https://www.icem7.fr/outils/3-explorations-bluffantes-avec-duckdb-1-interroger-des-fichiers-distants/) qui présente diff --git a/infolettre/infolettre_17/index.qmd b/infolettre/infolettre_17/index.qmd index 39014673..5fdba60d 100644 --- a/infolettre/infolettre_17/index.qmd +++ b/infolettre/infolettre_17/index.qmd @@ -30,7 +30,7 @@ webr: :::{.callout-tip} -__*Vous désirez intégrer la liste de diffusion ? L'inscription se fait [ici](https://grist.numerique.gouv.fr/o/ssphub/forms/jSjAV3L2F8mmiRVuVEpfF7/103).*__ +__*Vous désirez intégrer la liste de diffusion ? L'inscription se fait [ici]({{< var signup.form >}}).*__ ::: @@ -223,7 +223,7 @@ le format `Parquet` à deux reprises pendant l'année 2023. En premier lieu, pour la diffusion des données du [Répertoire Electoral Unique](https://www.insee.fr/fr/metadonnees/source/serie/s1046). Plus récemment, ce sont les données détaillées du recensement de la population -qui ont été diffusées dans ce format, accompagnées d'un [guide d'utilisation](/post/parquetRP) mis en ligne sur le blog du SSP Hub (plus de détails dans l'[infolettre #16](/infolettre/infolettre_16)). +qui ont été diffusées dans ce format, accompagnées d'un [guide d'utilisation](/blog/parquetRP) mis en ligne sur le blog du SSP Hub (plus de détails dans l'[infolettre #16](/infolettre/infolettre_16)).
@@ -294,13 +294,13 @@ Ressources techniques: - Un [_notebook_ {{< fa brands r-project >}}](https://datalab.sspcloud.fr/launcher/ide/rstudio-sparkr?autoLaunch=true&init.personalInit=%C2%ABhttps%3A%2F%2Fraw.githubusercontent.com%2FInseeFrLab%2Fformation-bceao%2Fmain%2Ftp%2Finit-tp.sh%C2%BB&resources.limits.memory=%C2%AB100Gi%C2%BB&persistence.size=%C2%AB40Gi%C2%BB) sur `DuckDB` issu d'une [formation de l'Insee](https://inseefrlab.github.io/formation-bceao/) donnée à la BCEAO ; - Une [fiche sur `Arrow`](https://www.book.utilitr.org/03_fiches_thematiques/fiche_arrow), l'écosystème sous-jacent à `DuckDB`, dans la documentation collaborative `utilitR` ; -- Le [post de blog](/post/polars/) sur la librairie {{< fa brands python >}} `Polars`, une approche alternative à `DuckDB` ; +- Le [post de blog](/blog/polars/) sur la librairie {{< fa brands python >}} `Polars`, une approche alternative à `DuckDB` ; - L'[explorateur de données du SSPCloud](https://datalab.sspcloud.fr/data-explorer?source=https%3A%2F%2Fstatic.data.gouv.fr%2Fresources%2Frecensement-de-la-population-fichiers-detail-individus-localises-au-canton-ou-ville-2020-1%2F20231023-122841%2Ffd-indcvi-2020.parquet) qui repose sur `DuckDB`. Données diffusées par la statistique publique au format `Parquet` : - Les données du [Répertoire Electoral Unique](https://www.data.gouv.fr/fr/datasets/bureaux-de-vote-et-adresses-de-leurs-electeurs/#/resources) ; -- Le guide d’utilisation des données du recensement de la population au format Parquet sous forme de [billet de blog](/post/parquetRP/). +- Le guide d’utilisation des données du recensement de la population au format Parquet sous forme de [billet de blog](/blog/parquetRP/). Voir aussi l'[_infolettre #16_](/infolettre/infolettre_16) ; - Les [données de la délinquance enregistrée par la police et gendarmerie nationales](https://www.linkedin.com/feed/update/urn:li:activity:7163102904906678272/) publiées par le service statistique ministériel de la sécurité intérieur publiées au format Parquet. diff --git a/infolettre/infolettre_18/index.qmd b/infolettre/infolettre_18/index.qmd index 33ce0f2c..89caae95 100644 --- a/infolettre/infolettre_18/index.qmd +++ b/infolettre/infolettre_18/index.qmd @@ -26,7 +26,7 @@ bibliography: references.bib :::{.callout-tip} -__*Vous désirez intégrer la liste de diffusion ? L'inscription se fait [ici](https://grist.numerique.gouv.fr/o/ssphub/forms/jSjAV3L2F8mmiRVuVEpfF7/103).*__ +__*Vous désirez intégrer la liste de diffusion ? L'inscription se fait [ici]({{< var signup.form >}}).*__ ::: @@ -369,7 +369,7 @@ si vous avez participé à celles-ci. ## Replay de la présentation d'Eric Mauvière "La dataviz pour donner du sens aux données et communiquer un message" -![](/talk/2024-02-29-mauviere/mauviere.png) +![](/event/2024-02-29-mauviere/mauviere.png) La présentation d'Eric Mauvière sur les bonnes pratiques de _dataviz_ a rencontré un réel succès avec près de 150 diff --git a/infolettre/infolettre_19/index.qmd b/infolettre/infolettre_19/index.qmd index da471098..fe5eddcd 100644 --- a/infolettre/infolettre_19/index.qmd +++ b/infolettre/infolettre_19/index.qmd @@ -52,13 +52,13 @@ Une version interactive est disponible sur le site du [Wall Street Journal](http ## La troisième journée du réseau 📅 1 décembre - La Tréso (Malakoff) **Réservez votre 1^er^ décembre !** Pour la troisième année consécutive, le SSPLab organise la journée du réseau pour rassembler les data-scientists de la statistique publique. Au menu : présentation de projets innovants, retour d'expérience et moments d'échanges informels (autrement appelés "pots" 🎉). -Comme les années précédentes, l'événement sera en présentiel et à distance pour permettre à tous de participer. Les détails seront publiés sur le [site du réseau](../../talk/2025-12-01-network-day/index.qmd) et si jamais vous voulez déjà vous inscrire alors que l'agenda n'est pas finalisé, c'est possible [ici](https://www.eventbrite.com/e/billets-3e-journee-du-reseau-des-data-scientists-1664052518879?aff=oddtdtcreator). +Comme les années précédentes, l'événement sera en présentiel et à distance pour permettre à tous de participer. Les détails seront publiés sur le [site du réseau](../../event/2025-12-01-network-day/index.qmd) et si jamais vous voulez déjà vous inscrire alors que l'agenda n'est pas finalisé, c'est possible [ici](https://www.eventbrite.com/e/billets-3e-journee-du-reseau-des-data-scientists-1664052518879?aff=oddtdtcreator). - 👉️ [Ajouter cet événement à votre agenda `Outlook`](https://minio.lab.sspcloud.fr/ssphub/diffusion/website/2025-12-network/2025_12_3ejournee_SSPHub.ics) ## Le site du réseau évolue -**L'inscription** à la liste de diffusion a été revue et utilise maintenant [Grist](https://lasuite.numerique.gouv.fr/produits/grist). Pour s'inscrire à la liste de diffusion, c'est par [ici](https://grist.numerique.gouv.fr/o/ssphub/forms/jSjAV3L2F8mmiRVuVEpfF7/103). Une fois inscrit, vous pouvez créer un compte sur [Grist](https://grist.numerique.gouv.fr) et vous connecter directement sur [l'annuaire](https://grist.numerique.gouv.fr/o/ssphub/iTFX7gryL8jK/Annuaire?utm_id=share-doc) pour mettre à jour vos données, demander votre désinscription en cochant la case "Supprimez mon compte". +**L'inscription** à la liste de diffusion a été revue et utilise maintenant [Grist](https://lasuite.numerique.gouv.fr/produits/grist). Pour s'inscrire à la liste de diffusion, c'est par [ici]({{< var signup.form >}}). Une fois inscrit, vous pouvez créer un compte sur [Grist](https://grist.numerique.gouv.fr) et vous connecter directement sur [l'annuaire]({{< var signup.fiche >}}) pour mettre à jour vos données, demander votre désinscription en cochant la case "Supprimez mon compte". Par ailleurs, le **site du réseau devrait évoluer dans les prochaines semaines**. Il va s'étoffer pour présenter plus de projets en cours et permettre ainsi à tout un chacun de savoir qu'un projet existe et pouvoir échanger entre pairs. Si vous souhaitez valoriser un projet, n'hésitez pas à nous le faire savoir ! @@ -104,7 +104,7 @@ Comme toujours, une flopée d'articles a été publiée sur l'IA : le nouveau mo - Avez-vous déjà vu une **intelligence artificielle jouer au Loup-Garou** ? Des étudiants de l'ENSAE ~~se sont amusés~~ ont [étudié](https://werewolf.foaster.ai/) quelles IA étaient meilleures au jeu du Loup-Garou. Ce jeu nécessite en effet de mentir, de convaincre, et d'adapter sa stratégie pour survivre (pour les villageois) ou tuer tous les villageois (pour les loup-garous). A la fin, **GPT-5 gagne dans 97 % des 60 matchs joués, contre 15% pour GPT-OSS-120b**. ::: {.callout-tip} -Vous voyez d'autres sujets d'actualité intéressants ? N'hésitez pas à les partager sur le [groupe Tchap 💬](https://tchap.gouv.fr/#/room/#ssphub:agent.finances.tchap.gouv.fr) directement ! +Vous voyez d'autres sujets d'actualité intéressants ? N'hésitez pas à les partager sur le [groupe Tchap 💬]({{< var contact.tchap >}}) directement ! ::: # L'interview diff --git a/infolettre/infolettre_20/index.qmd b/infolettre/infolettre_20/index.qmd index c5816b51..c09d50d0 100644 --- a/infolettre/infolettre_20/index.qmd +++ b/infolettre/infolettre_20/index.qmd @@ -43,7 +43,7 @@ Beaucoup d'infographies ce mois-ci, le choix a été dur. Pour une fois, partons Les **inscriptions** pour la troisième journée du réseau le 1^er^ décembre 2025 sont [ouvertes](https://www.eventbrite.com/e/billets-3e-journee-du-reseau-des-data-scientists-1664052518879?aff=oddtdtcreator). Si vous souhaitez présenter un sujet, n'hésitez pas à me contacter ! ## Présentation de Cartographia - 📅 13 janvier 2026 - format mixte (Montrouge et en ligne) -[Françoise Bahoken](https://bsky.app/profile/fbahoken.bsky.social) et [Nicolas Lambert](https://bsky.app/profile/neocarto.bsky.social) vont venir nous parler de leur livre [Cartographia](https://neocarto.hypotheses.org/22669) et des questions de cartographie (!) passionnantes qu'ils y abordent. Cela se passera **le 13 janvier 2026** en début d'après-midi, en format mixte : présentiel (à la DG de l'Insee) et à distance. Nicolas Lambert était déjà intervenu pour nous présenter Observable, une librairie Javascript très pratique pour faire des dataviz ([ici](../../talk/presentation-dobservable-par-nicolas-lambert/index.qmd), pour rappel). Si cela vous intéresse, réservez donc votre début d'après-midi ! +[Françoise Bahoken](https://bsky.app/profile/fbahoken.bsky.social) et [Nicolas Lambert](https://bsky.app/profile/neocarto.bsky.social) vont venir nous parler de leur livre [Cartographia](https://neocarto.hypotheses.org/22669) et des questions de cartographie (!) passionnantes qu'ils y abordent. Cela se passera **le 13 janvier 2026** en début d'après-midi, en format mixte : présentiel (à la DG de l'Insee) et à distance. Nicolas Lambert était déjà intervenu pour nous présenter Observable, une librairie Javascript très pratique pour faire des dataviz ([ici](../../event/presentation-dobservable-par-nicolas-lambert/index.qmd), pour rappel). Si cela vous intéresse, réservez donc votre début d'après-midi ! # Actualités Ce mois-ci, place aux belles images et à la cartographie. L'IA reste omniprésente : les institutions cherchent à favoriser la réutilisation de leurs données, certains contournent les LLM avec des consignes écrites « en blanc sur blanc », et les données d'entraînement sont au centre de l'attention. diff --git a/infolettre/infolettre_old/index.qmd b/infolettre/infolettre_old/index.qmd index f639bc27..a327f65d 100644 --- a/infolettre/infolettre_old/index.qmd +++ b/infolettre/infolettre_old/index.qmd @@ -21,11 +21,10 @@ categories: - Quarto - Deep learning - Insee - - Retrospective - Infolettre --- -_Vous désirez intégrer la liste de diffusion ? Un mail à suffit_ +_Vous désirez intégrer la liste de diffusion ? Un mail à {{< var contact.email >}} suffit_ ## Les anciennes infolettres @@ -36,8 +35,8 @@ Les infolettres avant 2022, dont le format était différent, sont archivées ic * [Infolettre n°5, juin 2022](https://minio.lab.sspcloud.fr/ssphub/diffusion/website/infolettre_old/Infolettre_n5.pdf) * [Infolettre n°4, mai 2022](https://minio.lab.sspcloud.fr/ssphub/diffusion/website/infolettre_old/Infolettre_n4.pdf) * [Infolettre n°3, avril 2022](https://minio.lab.sspcloud.fr/ssphub/diffusion/website/infolettre_old/Infolettre_n3.pdf) -* [Infolettre n°2, mars 2022](https://minio.lab.sspcloud.fr/ssphub/diffusion/website/infolettre_old/Infolettre_n2.pdf) -* [Infolettre n°1, février 2022](https://minio.lab.sspcloud.fr/ssphub/diffusion/website/infolettre_old/Infolettre_n1.pdf) +* [Infolettre n°2, avril 2022](https://minio.lab.sspcloud.fr/ssphub/diffusion/website/infolettre_old/Infolettre_n2.pdf) +* [Infolettre n°1, avril 2022](https://minio.lab.sspcloud.fr/ssphub/diffusion/website/infolettre_old/Infolettre_n1.pdf) ## Lettres big data diff --git a/init.sh b/init.sh index 43014fe6..e39beee3 100644 --- a/init.sh +++ b/init.sh @@ -1,9 +1,10 @@ # Install recent go version -GO_VERSION="1.18.4" +GO_VERSION="1.25.1" wget https://go.dev/dl/go${GO_VERSION}.linux-amd64.tar.gz && \ sudo rm -rf /usr/local/go && \ sudo tar -C /usr/local -xzf go${GO_VERSION}.linux-amd64.tar.gz +# Utile ?? HUGO_VERSION="0.97.3" wget https://github.com/gohugoio/hugo/releases/download/v${HUGO_VERSION}/hugo_extended_${HUGO_VERSION}_Linux-64bit.deb && \ sudo apt install "./hugo_extended_${HUGO_VERSION}_Linux-64bit.deb" && \ diff --git a/additional/manifeste.qmd b/manifeste.qmd similarity index 86% rename from additional/manifeste.qmd rename to manifeste.qmd index 4e3643f1..2a41084a 100644 --- a/additional/manifeste.qmd +++ b/manifeste.qmd @@ -16,7 +16,7 @@ Ce manifeste est une production collective. Pour proposer des modifications à celui-ci, qui seront discutées collégialement, vous pouvez -suivre [ce lien vers {{< fa brands github >}}](https://github.com/InseeFrLab/ssphub/edit/main/content/manifeste/index.md). +suivre le lien vers {{< fa brands github >}} indiqué à droite. ::: # Contexte institutionnel @@ -82,27 +82,23 @@ un site web, nommé _« SSP Hub »_, permettant de diffuser les projets et les connaissances acquises, qu'elles soient produites par des membres du réseau ou non. -Ce site relaye à la fois les actions du réseau (posts de blog, projets menés, événéments +Ce site relaye à la fois les actions du réseau (posts de blog, présentation de projets menés, événements organisés) mais aussi des ressources utiles pour les _data scientists_ de l'administration qui désirent suivre des événements liés à la _data-science_ ou explorer des ressources éducatives sur le sujet. # Objectifs -À court terme, les objectifs du réseau sont : +À court terme, les objectifs du réseau sont de : -1. __Faciliter l’échange entre pairs__, notamment les retours d'expérience sur des problématiques génériques de la _data science_ appliquées aux tâches du SSP[^sspagain]. Ces échanges doivent aider à résoudre les problèmes concrets que les agents rencontrent dans leur pratique de la _data science_ et favoriser la mutualisation des connaissances ; +1. __Faciliter l’échange entre pairs__, notamment les retours d'expérience sur des problématiques génériques de la _data science_ appliquées aux tâches du SSP. Ces échanges doivent aider à résoudre les problèmes concrets que les agents rencontrent dans leur pratique de la _data science_ et favoriser la mutualisation des connaissances ; 2. **Promouvoir et démystifier la _data science_** en acculturant un public non aguerri à cette thématique en montrant par l'exemple ses apports concrets mais aussi en mettant à disposition les ressources et formations disponibles pour son appréhension. -[^sspagain]: Le Service Statistique Public (SSP) regroupe les institutions en charge de la production de statistiques officielles. Il est principalement constitué de l'Insee et des services statistiques ministériels (SSM). Pour en savoir plus, le [site de l'Insee](https://www.insee.fr/fr/information/1302192) propose des éléments supplémentaires. - A plus long terme, selon la réussite initiale du réseau, les demandes exprimées par les participants et les moyens dégagés, le _SSP Hub_ pourrait : -1. **Offrir une vitrine des initiatives de _data science_** au sein du SSP[^sspagain2] et favoriser la visibilité et le dialogue avec d'autres acteurs de la _data science_ (autres institutions françaises, institutions internationales, enseignement supérieur et recherche académique...) +1. **Offrir une vitrine des initiatives de _data science_** au sein du SSP et favoriser la visibilité et le dialogue avec d'autres acteurs de la _data science_ (autres institutions françaises, institutions internationales, enseignement supérieur et recherche académique...) 2. **Accompagner de manière ponctuelle des équipes** dans l'amélioration de processus de production existants grâce aux outils ou méthodes de la _data science_. Ces accompagnements offrent un complément utile aux formations en proposant l'acquisition de compétences sur un projet sur lequel les agents travaillent à une fréquence élevée. -[^sspagain2]: Le Service Statistique Public (SSP) regroupe les institutions en charge de la production de statistiques officielles. Il est principalement constitué de l'Insee et des services statistiques ministériels (SSM). Pour en savoir plus, le [site de l'Insee](https://www.insee.fr/fr/information/1302192) propose des éléments supplémentaires. - # Publics Ce réseau s’adresse à tous les agents du Service Statistique Public intéressés par les thématiques définies précédemment, @@ -118,7 +114,7 @@ Plusieurs éléments sont mis en place pour atteindre les objectifs du réseau : - Un ensemble d’__évènements ouverts__. Afin de répondre aux différents besoins, ceux-ci visent des publics, durées et finalités variés. Le premier type d'évènement, testé en 2022, est l'_Open Hour_ dont le rôle est de choisir pour chaque occurence un thème en amont et d'en discuter informellement entre agents travaillant sur cette thématique et ceux désireux d'en apprendre plus. D'autres évènements seront mis en place progressivement selon les formats et contenus identifiés comme pertinents ; - Des canaux de communication sur l’actualité du réseau (infolettre mensuelle) et d’échanges en continu entre agents du réseau (à travers un canal `Tchap`[^5]) -[^5]: Il est possible de rejoindre ce canal `Tchap` sur simple demande à +[^5]: Il est possible de rejoindre ce canal `Tchap` en cliquant [ici]({{< var contact.tchap >}}) # Résumé diff --git a/partenaires/chair_finance_digital/index.qmd b/partenaires/chair_finance_digital/index.qmd new file mode 100644 index 00000000..553f9270 --- /dev/null +++ b/partenaires/chair_finance_digital/index.qmd @@ -0,0 +1,9 @@ +--- +title: La chaire Finance digitale +description: L’objectif de la chaire est de conduire des travaux de recherche sur l’ensemble des innovations, de services, de produits ou d’organisations en lien avec le numérique, susceptibles de modifier le métier de l’intermédiaire financier. Elle est le fruit d'un partenariat entre Télécom Paris, l’université Paris II Panthéon-Assas, l’Institut Louis Bachelier, le Groupement des Cartes Bancaires (CB), la Caisse des Dépôts et l'Insee. +website: "https://digital-finances.com/" + +image: telecom_logo.png +--- + + diff --git a/partenaires/chair_finance_digital/telecom_logo.png b/partenaires/chair_finance_digital/telecom_logo.png new file mode 100644 index 00000000..f681030e Binary files /dev/null and b/partenaires/chair_finance_digital/telecom_logo.png differ diff --git a/partenaires/etalab/featured.png b/partenaires/etalab/etalab_logo.png similarity index 100% rename from partenaires/etalab/featured.png rename to partenaires/etalab/etalab_logo.png diff --git a/partenaires/etalab/index.qmd b/partenaires/etalab/index.qmd index 8cd58018..f61cda90 100644 --- a/partenaires/etalab/index.qmd +++ b/partenaires/etalab/index.qmd @@ -1,9 +1,9 @@ --- -title: Lab IA (Etalab) -description: La communauté des data scientists et acteurs de l’IA pour l’administration française +title: Lab IA (Etalab) & la DINUM +description: La communauté des data scientists et acteurs de l’IA pour l’administration française et plus généralement la DINUM website: "https://www.etalab.gouv.fr/communaute" -image: featured.png +image: etalab_logo.png --- diff --git a/partenaires/eurostat/eurostat_logo.png b/partenaires/eurostat/eurostat_logo.png new file mode 100644 index 00000000..8f8d3ed1 Binary files /dev/null and b/partenaires/eurostat/eurostat_logo.png differ diff --git a/partenaires/eurostat/index.qmd b/partenaires/eurostat/index.qmd new file mode 100644 index 00000000..9623b0b5 --- /dev/null +++ b/partenaires/eurostat/index.qmd @@ -0,0 +1,9 @@ +--- +title: Eurostat & les trusted smart statistics (TSS) +description: Eurostat encadre les réseaux des instituts nationaux de statistiques et les travaux européens autour de l'exploration de nouvelles sources de données et des nouveaux outils de datascience pour la statistique officielle +website: "https://ec.europa.eu/newsroom/estat_tss/items" + +image: eurostat_logo.png +--- + + diff --git a/partenaires/genes/genes_logo.png b/partenaires/genes/genes_logo.png new file mode 100644 index 00000000..24b90a4a Binary files /dev/null and b/partenaires/genes/genes_logo.png differ diff --git a/partenaires/genes/index.qmd b/partenaires/genes/index.qmd new file mode 100644 index 00000000..0f4e3c06 --- /dev/null +++ b/partenaires/genes/index.qmd @@ -0,0 +1,9 @@ +--- +title: L'ENSAE, l'ENSAI et le CREST +description: L'ENSAE, l'ENSAI sont des écoles d'ingénieur en statistiques, science des données et analyse économique. Le CREST est un centre rassemblant des enseignants-chercheurs d’économie de l’École polytechnique et du CNRS +website: "https://groupe-genes.fr/" + +image: genes_logo.png +--- + + diff --git a/partenaires/grr/featured.png b/partenaires/grr/grr.png similarity index 100% rename from partenaires/grr/featured.png rename to partenaires/grr/grr.png diff --git a/partenaires/grr/index.qmd b/partenaires/grr/index.qmd index bca99435..151c9535 100644 --- a/partenaires/grr/index.qmd +++ b/partenaires/grr/index.qmd @@ -11,5 +11,5 @@ description: | # Optional external URL for project (replaces project detail page). website: "https://app.slack.com/client/T9ML8RLMP" -image: featured.png +image: grr.png --- diff --git a/partenaires/oecd/featured.png b/partenaires/oecd/featured.png deleted file mode 100644 index 1364d044..00000000 Binary files a/partenaires/oecd/featured.png and /dev/null differ diff --git a/partenaires/oecd/index.qmd b/partenaires/oecd/index.qmd index 33785e75..13f55ddf 100644 --- a/partenaires/oecd/index.qmd +++ b/partenaires/oecd/index.qmd @@ -3,7 +3,7 @@ title: CoP OCDE description: | Le groupe Community of Practice de l'OCDE est un réseau informel organisé autour des sujets d'innovation statistique. # Optional external URL for project (replaces project detail page). -# website: "" +website: "https://oecd-opsi.org/work-areas/mission-community-of-practice/" -image: featured.jpg +image: oecd_logo.jpg --- diff --git a/partenaires/oecd/featured.jpg b/partenaires/oecd/oecd_logo.jpg similarity index 100% rename from partenaires/oecd/featured.jpg rename to partenaires/oecd/oecd_logo.jpg diff --git a/partenaires/onyxia/index.qmd b/partenaires/onyxia/index.qmd index e348bc53..0c07db5a 100644 --- a/partenaires/onyxia/index.qmd +++ b/partenaires/onyxia/index.qmd @@ -8,5 +8,5 @@ description: | # Optional external URL for project (replaces project detail page). website: "https://datalab.sspcloud.fr/home" -image: featured.png +image: onyxia_logo.png --- \ No newline at end of file diff --git a/partenaires/onyxia/featured.png b/partenaires/onyxia/onyxia_logo.png similarity index 100% rename from partenaires/onyxia/featured.png rename to partenaires/onyxia/onyxia_logo.png diff --git a/partenaires/spyrales/index.qmd b/partenaires/spyrales/index.qmd index 9f2bcf49..5f0bf892 100644 --- a/partenaires/spyrales/index.qmd +++ b/partenaires/spyrales/index.qmd @@ -5,5 +5,5 @@ description: Une communauté d'agents de l'Etat pour s'entraider en R et Python # Optional external URL for project (replaces project detail page). # external_link: "https://www.spyrales.fr/" -image: featured.png +image: spyrales_logo.png --- diff --git a/partenaires/spyrales/featured.png b/partenaires/spyrales/spyrales_logo.png similarity index 100% rename from partenaires/spyrales/featured.png rename to partenaires/spyrales/spyrales_logo.png diff --git a/partenaires/uneceML/index.qmd b/partenaires/uneceML/index.qmd index 9579ec93..c88a5480 100644 --- a/partenaires/uneceML/index.qmd +++ b/partenaires/uneceML/index.qmd @@ -6,5 +6,5 @@ description: | # Optional external URL for project (replaces project detail page). website: "https://statswiki.unece.org/display/ML/Machine+Learning+Group+2021" -image: featured.png +image: uneceML_logo.png --- diff --git a/partenaires/uneceML/featured.png b/partenaires/uneceML/uneceML_logo.png similarity index 100% rename from partenaires/uneceML/featured.png rename to partenaires/uneceML/uneceML_logo.png diff --git a/post/polars/polars-benchmark.png b/post/polars/polars-benchmark.png deleted file mode 100644 index bd743aec..00000000 Binary files a/post/polars/polars-benchmark.png and /dev/null differ diff --git a/post/polars/polars-streaming.png b/post/polars/polars-streaming.png deleted file mode 100644 index 28e115f0..00000000 Binary files a/post/polars/polars-streaming.png and /dev/null differ diff --git a/post/recap2022/Socratext.svg b/post/recap2022/Socratext.svg deleted file mode 100644 index 641aa196..00000000 --- a/post/recap2022/Socratext.svg +++ /dev/null @@ -1,15 +0,0 @@ -0123456789⭐️ Stargazers for etalab-ia/SocratextJulyAugustSeptemberOctoberNovemberDecember202376/13/2022 Bootcamp de lancement 🚀 12/15/2022 Événement de clôture 🎉 \ No newline at end of file diff --git a/post/recap2022/cartiflette.svg b/post/recap2022/cartiflette.svg deleted file mode 100644 index 04557ea5..00000000 --- a/post/recap2022/cartiflette.svg +++ /dev/null @@ -1,15 +0,0 @@ -0246810121416182022⭐️ Stargazers for inseefrlab/cartifletteJun 19Jun 26Jul 03Jul 10Jul 17Jul 24Jul 31Aug 07Aug 14Aug 21Aug 28Sep 04Sep 11Sep 18Sep 25Oct 02Oct 09Oct 16Oct 23Oct 30Nov 06Nov 13Nov 20Nov 27Dec 04Dec 11216/13/2022 Bootcamp de lancement 🚀 12/15/2022 Événement de clôture 🎉 \ No newline at end of file diff --git a/post/recap2022/gouvdown.svg b/post/recap2022/gouvdown.svg deleted file mode 100644 index 68340853..00000000 --- a/post/recap2022/gouvdown.svg +++ /dev/null @@ -1,15 +0,0 @@ -0510152025303540455055⭐️ Stargazers for spyrales/gouvdownJulyOctober2021AprilJulyOctober2022AprilJulyOctober466/13/2022 Bootcamp de lancement 🚀 12/15/2022 Événement de clôture 🎉 \ No newline at end of file diff --git a/post/recap2022/matchSIRET.svg b/post/recap2022/matchSIRET.svg deleted file mode 100644 index e238fc0f..00000000 --- a/post/recap2022/matchSIRET.svg +++ /dev/null @@ -1,15 +0,0 @@ -0123456789101112⭐️ Stargazers for etalab/matchSIRETJulyAugustSeptemberOctoberNovemberDecember2023126/13/2022 Bootcamp de lancement 🚀 12/15/2022 Événement de clôture 🎉 \ No newline at end of file diff --git a/project.en.qmd b/project.en.qmd new file mode 100644 index 00000000..ea4d88de --- /dev/null +++ b/project.en.qmd @@ -0,0 +1,5 @@ +--- +title: "Innovative data science projects" +--- + + diff --git a/project.qmd b/project.qmd new file mode 100644 index 00000000..b1171627 --- /dev/null +++ b/project.qmd @@ -0,0 +1,40 @@ +--- +title: "Projets innovants du SSP" +listing: + feed: true + id: project-listing + contents: project/**/index.qmd + type: grid + sort: + - "date desc" + categories: true +--- + +Vous pouvez trouver ici des exemples de projets innovants portés par des membres du SSP. + +# Qu'est-ce qu'un projet innovant ? + +Il est toujours délicat de définir _ex-ante_ ce qu'est un projet innovant. +L'innovation technologique est par définition mouvante et évolue très vite. +Cependant, comme rappelé dans le [manifeste](manifeste.qmd), les innovations technologiques récentes visent à **simplifier et accélérer** certains processus de production, à **faciliter l’exploitation de sources de données non traditionnelles ou volumineuses**, à **automatiser certaines tâches**, à **communiquer** auprès de publics plus larges avec des visualisations réactives ou encore, entre autres, à réduire le hiatus entre statisticiens et informaticiens. + +Par exemple, la modernisation d'une chaîne de traitement par l'utilisation de nouveaux packages ou de nouvelles méthodes de traitement d'information est une innovation. +Elle peut ne pas être assez ambitieuse à elle-seule cependant pour définir un véritable projet innovant, et donc ne figurera pas forcément dans les projets présentés ici. +L'usage de webscraping pour constituer une base de données, alimentée de manière automatique, sera considéré comme un projet innovant. + +A l'inverse, la simple mise à jour de code, ou l'utilisation de nouvelles bases administratives, si elle ne contient pas d'obstacles technologiques particuliers, n'est pas considéré en soit comme de l'innovation technologique. +Cela ne veut pas dire que ce projet n'est pas nécessaire et bienvenu 😉. + +Par ailleurs, un projet innovant à la date t peut ne plus l'être quelques mois ou années plus tard, quand l'innovation s'est assez répandue pour être considéré comme un savoir classique. + +L'innovation se produit par ailleurs partout et n'est pas réservé aux divers laboratoires en innovation en data-science. + +# Quel est le champ des projets présentés ici ? +La liste des projets présentés ici ne vise pas à être exhaustive. +Elle est basée sur le volontariat. L'objectif est d'offrir un point central de partage entre data-scientist du SSP, comme rappelé dans le [manifeste](manifeste.qmd). +**Toute proposition d'ajout par fusion sur notre est la bienvenue !** + +
+ +::: {#project-listing} +::: diff --git a/project/2018_outlier_dsn/dsn.png b/project/2018_outlier_dsn/dsn.png new file mode 100644 index 00000000..092300d1 Binary files /dev/null and b/project/2018_outlier_dsn/dsn.png differ diff --git a/project/2018_outlier_dsn/index.en.qmd b/project/2018_outlier_dsn/index.en.qmd new file mode 100644 index 00000000..b15a681d --- /dev/null +++ b/project/2018_outlier_dsn/index.en.qmd @@ -0,0 +1,26 @@ +--- +title: Detecting and processing outliers or missing values, application to the Déclaration + Sociale Nominative (Social Nominative Declarations) +description: Use of machine learning methods to detect and process outliers or missing + values, application to the Social Nominative Declarations (Déclaration Sociale Nominative) +format: html +date: '2018-01-01' +image: dsn.png +categories: +- administrative data +- Insee +- machine learning +- in production ?? +- data editing +--- + +# Project summary + +| | Use of machine learning methods to detect and process outliers or missing values, application to the Social Nominative Declarations (Déclaration Sociale Nominative) | +| --- | ----------------------------------------------------------------------- | +| **Project details** | As part of the modernisation of INSEE's internal processes following the Social Nominative Declarations entry into production, this project aims to rethink anomaly detection and salary adjustment. The management of new monthly DSN data has led to the testing of machine learning methods to automatically detect anomalies in the triplet of variables (gross salary, net salary and number of hours). | +| **Players** | Insee | +| **Project results** | The work carried out has made it possible to compare the characteristics of the anomalies identified by three machine learning methods. The three algorithms largely detect different anomalies, depending on how they define and identify the presumed errors. The combined use of several error detection algorithms would therefore make it possible to cover a wider spectrum of potential errors. | +| **Project products and documentation** | - [5,324 per hour: outlier or footballer? Unsupervised learning methods for anomaly detection: application to the case of the Nominative Social Declaration (mixed French and English)](https://journees-methodologie-statistique.insee.net/5324-euros-de-lheure-outlier-ou-footballeur-methodes-dapprentissage-non-supervise-pour-la-detection-danomalies-application-au-cas-de-la-declaration-sociale-nominative/), Statistical Methodology Days 2018 (Journées de la méthodologie statistique 2018)
- A more detailed abstract is available [here (French and English)](https://journees-methodologie-statistique.insee.net/wp-content/uploads/2018/S25_4_ACTE_CORDIER_VILLOING_JMS2018.pdf) | + + diff --git a/project/2018_outlier_dsn/index.qmd b/project/2018_outlier_dsn/index.qmd new file mode 100644 index 00000000..c9e4d4a9 --- /dev/null +++ b/project/2018_outlier_dsn/index.qmd @@ -0,0 +1,24 @@ +--- +title: Détecter et traiter les valeurs aberrantes ou manquantes, application à la Déclaration Sociale Nominative +description: Utilisation des méthodes de machine learning pour la détection et le traitement des valeurs aberrantes ou manquantes, application à la Déclaration Sociale Nominative +format: html +date: '2018-01-01' +image: dsn.png +categories: +- données administratives +- Insee +- machine learning +- en production ?? +- data editing +--- + + +# Synthèse du projet + +| | Utilisation des méthodes de machine learning pour la détection et le traitement des valeurs aberrantes ou manquantes, application à la Déclaration Sociale Nominative (DSN) | +|-----------|------------------------------------------------------------------| +| **Détail du projet** | À l'occasion de la modernisation des processus internes à l'Insee suite à l'arrivée de la DSN, ce projet vise à repenser la détection des anomalies et le redressement des salaires. En effet, la gestion de nouvelles données mensuelles DSN incite à tester des méthodes d'apprentissage statistique (*machine learning*) pour détecter automatiquement les anomalies sur le triplet de variables (salaire brut, salaire net et nombre d'heures). | +| **Acteurs** | Insee | +| **Résultats du projet** | Les travaux réalisés ont permis de comparer les caractéristiques des anomalies identifiées par trois méthodes issues de l’apprentissage statistique. Les trois algorithmes détectent en grande parte des anomalies différentes, en fonction de la manière dont ils définissent et identifient les erreurs présumées. L’utilisation combinée de plusieurs algorithmes de détection d’erreurs permettrait ainsi de couvrir un spectre plus large d’erreurs potentielles. | +| **Produits et documentation du projet** | - [5 324 euros de l’heure : outlier ou footballeur ? Méthodes d’apprentissage non supervisé pour la détection d’anomalies : application au cas de la Déclaration Sociale Nominative](https://journees-methodologie-statistique.insee.net/5324-euros-de-lheure-outlier-ou-footballeur-methodes-dapprentissage-non-supervise-pour-la-detection-danomalies-application-au-cas-de-la-declaration-sociale-nominative/), Journées de méthodologie statistique 2018 | + diff --git a/project/2018_segregation/index.en.qmd b/project/2018_segregation/index.en.qmd new file mode 100644 index 00000000..170a1287 --- /dev/null +++ b/project/2018_segregation/index.en.qmd @@ -0,0 +1,39 @@ +--- +title: 'Urban segregation: insights from mobile phone data' +subtitle: Merging administrative data and MNO data to estimate urban segregation at a local level +format: html +date: '2018-01-01' +categories: +- Insee +- experiment +- mobile phone data +- administrative data +image: indice_segregation.png +listing: +- id: similar-project + contents: ../*/index.qmd + type: grid + include: + categories: + - scanner data + - mobile phone data + - credit card data + - bank account data + sort: "date desc" + page-size: 6 +--- + +# Project summary + +| | Urban segregation: insights from mobile phone data | +| --- | ------------------------------------------------------------------------- | +| **Project details** | By combining mobile telephony data and administrative tax data, this study analyses segregation in France's main urban centres. Social and spatial segregation indices are constructed using the frequency of interactions between each operator's customers. These synthetic indicators provide a picture of social segregation, its level and its evolution over time - on a weekly and calendar year basis. The indices also make it possible to measure the propensity to communicate more strongly within the same social group, defined by an income criterion, or on the contrary a strong interaction between several social groups. In particular, this makes it possible to measure the contrast in the behaviour of extreme social groups. The segregation profile revealed by the mobile telephony data is compared with existing literature on the subject. Particular attention is paid to 'urban policy' neighbourhoods, where the issue of segregation has been particularly well documented. | +| **Players** | Insee | +| **Project products and documentation** | - [Urban segregation: insights from mobile phone data](https://journees-methodologie-statistique.insee.net/segregation-urbaine-un-eclairage-par-les-donnees-de-telephonie-mobile/) , 2018 Statistical Methodology Days (Journées de méthodologie statistique 2018) | + +# Similar projects related to new data sources + +::: {#similar-project} +::: + + diff --git a/project/2018_segregation/index.qmd b/project/2018_segregation/index.qmd new file mode 100644 index 00000000..c0663e3e --- /dev/null +++ b/project/2018_segregation/index.qmd @@ -0,0 +1,38 @@ +--- +title: "Ségrégation urbaine : un éclairage par les données de téléphonie mobile" +subtitle: Croisement de données administratives et de données de téléphonie pour analyser la ségrégation au niveau local +format: html +date: '2018-01-01' +categories: +- Insee +- expérimentation +- données de téléphonie mobile +- données administratives +image: indice_segregation.png +listing: + - id: similar-project + contents: ../*/index.qmd + type: grid + include: + categories: + - données de caisse + - données CB + - données de téléphonie mobile + - données comptes bancaires + sort: "date desc" + page-size: 6 +--- + + +# Synthèse du projet + +| | Ségrégation urbaine : un éclairage par les données de téléphonie mobile | +|-----------|------------------------------------------------------------------| +| **Détail du projet** | En couplant des données de téléphonie mobile et des données administratives fiscales, cette étude analyse la ségrégation dans les principaux pôles urbains français. Des indices de ségrégation sociale et spatiale sont construits en utilisant la fréquence des interactions entre chaque clients de l’opérateur. Ces indicateurs synthétiques permettent de dresser un portrait de la ségrégation sociale, de son niveau comme de son évolution dans le temps – à l’horizon de la semaine comme de l’année civile. Les indices permettent également de mesurer la propension à communiquer plus fortement au sein d’un même groupe social, défini par un critère de revenu, ou au contraire une interaction forte entre plusieurs groupes sociaux. En particulier, cela permet de mesurer le contraste dans le comportement des groupes sociaux extrêmes. Le profil de ségrégation que les données de téléphonie mobile permettent de dégager est comparé à la littérature existante sur le sujet. Une attention particulière est portée aux quartiers « politique de la ville » où la question de la ségrégation a été particulièrement documentée. | +| **Acteurs** | Insee | +| **Produits et documentation du projet** | - [Ségrégation urbaine : un éclairage par les données de téléphonie mobile](https://journees-methodologie-statistique.insee.net/segregation-urbaine-un-eclairage-par-les-donnees-de-telephonie-mobile/), Journées de méthodologie statistique 2018 | + +# Projets similaires utilisant des données privées + +::: {#similar-project} +::: diff --git a/project/2018_segregation/indice_segregation.png b/project/2018_segregation/indice_segregation.png new file mode 100644 index 00000000..e551736e Binary files /dev/null and b/project/2018_segregation/indice_segregation.png differ diff --git a/project/2019_classification_asso/enquete_asso.png b/project/2019_classification_asso/enquete_asso.png new file mode 100644 index 00000000..2c49b2c4 Binary files /dev/null and b/project/2019_classification_asso/enquete_asso.png differ diff --git a/project/2019_classification_asso/index.en.qmd b/project/2019_classification_asso/index.en.qmd new file mode 100644 index 00000000..2234ec71 --- /dev/null +++ b/project/2019_classification_asso/index.en.qmd @@ -0,0 +1,35 @@ +--- +title: Automatic coding of association activity +description: Automatic coding of association activity using machine learning methods +format: html +date: '2019-06-01' +image: enquete_asso.png +categories: +- in production +- Insee +- automatic coding +- machine learning +listing: + - id: similar-project + contents: ../*/index.qmd + type: grid + include: + categories: ["automatic coding"] + sort: "date desc" + page-size: 6 +--- + +# Project summary + +| | Automatic coding of associations' activities | +| --- | --------------------------------------------------------------- | +| **Project details** | The aim of the experiment is to assign a field of activity to the associations in order to improve the selection of the sample for the associations survey. Some associations are registered in Sirène (as employers, subsidised organisations, etc.) but 50% of them have an APE code of 9499Z, which makes it impossible to determine their field of activity precisely. Associations governed by the 1901 Act are registered in the National Directory of Associations (RNA), managed by the Ministry of the Interior. In this directory, a "corporate purpose" field filled in plain text quickly describes the activities of each association. The aim of the experiment is to analyse this field textually in order to predict the activity in 10 modalities.
In practice, after pre-processing and exploration of the textual data and its themes (Dirichlet latent allocation), a dictionary of words was compiled, with variants to reduce its size. The actual prediction was based on various supervised learning models (random forests, support vector machine, penalised generalised linear models GLMnet and Extrem Gradient Boosting (XGBoost)), with the training set (and test sets) being provided by the previous survey (2014) matched with the RNA. The XGboost model performed better than the others (with precision and recall of the order of 69%). The best model is obtained by combining the different models tested. | +| **Players** | Insee | +| **Project results** | The sample for the Association survey was drawn according to a stratification process taking advantage of the prediction of the sector of activity by machine learning carried out as part of this experiment. | + + +# Similar projects related to automatic coding + +::: {#similar-project} +::: + diff --git a/project/2019_classification_asso/index.qmd b/project/2019_classification_asso/index.qmd new file mode 100644 index 00000000..9bc75001 --- /dev/null +++ b/project/2019_classification_asso/index.qmd @@ -0,0 +1,36 @@ +--- +title: Codification automatique de l'activité des associations +description: Codification automatique de l'activité des associations à partir de méthodes de machine learning +format: html +date: '2019-06-01' +image: enquete_asso.png +categories: +- en production +- Insee +- codification automatique +- machine learning + +listing: + - id: similar-project + contents: ../*/index.qmd + type: grid + include: + categories: ["codification automatique"] + sort: "date desc" + page-size: 6 +--- + + +# Synthèse du projet + +| | Codification automatique de l'activité des associations | +|-----------|------------------------------------------------------------------| +| **Détail du projet** | L’enjeu de l’expérimentation est d’attribuer un domaine d’activité aux associations pour améliorer le tirage de l’échantillon de l’enquête associations. En effet, une partie des associations est répertoriée dans Sirène (employeuses, subventionnées…) mais 50 % d’entre elles ont un code APE 9499Z ne permettant pas de déterminer leur domaine d’activité de façon précise. Par ailleurs, les associations loi 1901 sont enregistrées dans le répertoire national des associations (RNA), géré par le ministère de l’intérieur. Dans ce répertoire, un champ "objet social" rempli en clair décrit rapidement les activités de chaque association. L’expérimentation vise à analyser textuellement ce champ pour en prédire l'activité en 10 modalités.
En pratique, après prétraitements et exploration des données textuelles et de ses thématiques (allocation latente de Dirichlet), un dictionnaire des mots a été constitué, avec des variantes pour en réduire la dimension. La prédiction proprement dite s’est appuyée sur divers modèles d’apprentissage supervisé (forêts aléatoires, support vector machine, modèle linéaires généralisés pénalisés GLMnet et Extrem Gradient Boosting (XGBoost)), le jeu d’apprentissage (et les jeux de tests) étant fournis par la précédente enquête (2014) appariée avec le RNA. Le modèle XGboost a montré des performances plus élevés que les autres (avec une précision et un rappel de l’ordre de 69%). Le meilleur modèle s’obtient en combinant les différents modèles testés. | +| **Acteurs** | Insee | +| **Résultats du projet** | L'échantillon de l'enquête Association a été tiré selon une stratification tirant profit de la prédiction du secteur d'activité par machine learning mené dans le cadre de cette expérimentation. | + + +# Projets similaires liés à de la codification automatique + +::: {#similar-project} +::: diff --git a/project/2019_gdp_tracker/evol_croissance_fr.png b/project/2019_gdp_tracker/evol_croissance_fr.png new file mode 100644 index 00000000..31a81ff0 Binary files /dev/null and b/project/2019_gdp_tracker/evol_croissance_fr.png differ diff --git a/project/2019_gdp_tracker/evol_growth_en.png b/project/2019_gdp_tracker/evol_growth_en.png new file mode 100644 index 00000000..cda612a2 Binary files /dev/null and b/project/2019_gdp_tracker/evol_growth_en.png differ diff --git a/project/2019_gdp_tracker/index.en.qmd b/project/2019_gdp_tracker/index.en.qmd new file mode 100644 index 00000000..3a4bf240 --- /dev/null +++ b/project/2019_gdp_tracker/index.en.qmd @@ -0,0 +1,24 @@ +--- +title: 'GDP Tracker: a tool for continuous economic forecasting' +description: Models of *machine learning* for real-time forecasting (*nowcasting*) + to feed INSEE's economic analyses +format: html +date: '2022-01-01' +image: evol_growth_en.png +categories: +- machine learning +- experiment +- forecasts +- Insee + +--- + +# Project summary + +| | Nowcasting GDP with GDP Tracker | +| -- | ---------------------- | +| **Details of the project** | The project `GDP Tracker` consists of building a continuous economic forecasting tool, fed by all the recent economic indicators available at any given time. *t*. The aim of this project is to make the best possible use of the most recent sources to estimate the dynamics of the major macroeconomic aggregates over the last few weeks. These sources are diverse in nature: business and consumer surveys, quarterly national accounts, hard-copy statistical data, as well as data from less traditional sources (internet searches, etc.).

Using this heterogeneous set of data, the tool produces a growth forecast for the macroeconomic aggregates that are most closely scrutinised for French economic conditions (GDP, household consumption, investment, etc.). This forecast is made for the current quarter or the following quarters, based on models of *machine learning* (LASSO, random forests, etc.).

The tool was initially developed for a [Business conditions in 2019](https://www.insee.fr/en/statistiques/fichier/4269288/122019_dossier1E.pdf). Following the health crisis, it was taken up again for more systematic use. Initially focused on France and only on GDP for the current quarter, it has been extended to other countries (Germany, Italy, Spain) and is currently being extended to aggregates other than GDP and to more distant forecasting horizons. | +| **Stakeholders** | Insee | +| **Project products and documentation** | - [Continuous forecasting of French growth](https://www.insee.fr/en/statistiques/4269288?sommaire=4269398)[^1], Conjoncture in France - December 2019 | + +[^1]: Regarding nowcasting, an experiment was also conducted in 2022 to impute unpublished variables and forecast growth, see presentation [GDP nowcasting: imputation of variables not yet published](https://journees-methodologie-statistique.insee.net/nowcasting-pib-imputation-de-variables-non-encore-publiees/) at the 2022 Statistical Methodology Days (journées de méthodologie statistique). diff --git a/project/2019_gdp_tracker/index.qmd b/project/2019_gdp_tracker/index.qmd new file mode 100644 index 00000000..52da9e2a --- /dev/null +++ b/project/2019_gdp_tracker/index.qmd @@ -0,0 +1,30 @@ +--- +title: "« GDP Tracker » : un outil pour des prévisions économiques en continu" + +# Summary for listings and search engines +description: "Modèles de _machine learning_ pour effectuer des prévisions en temps réel (_nowcasting_) pour alimenter les analyses conjoncturelles de l'Insee" + +format: html + +# Date published +date: 2019-12-01 + +image: evol_croissance_fr.png + +categories: +- machine learning +- expérimentation +- prévisions +- Insee + +--- + +# Synthèse du projet + +| | Prévisions du PIB en continu | +|--------------|------------------------------------------------------------------------------------| +| **Détail du projet** | Le projet `GDP Tracker` consiste à construire un outil de prévision économique en continu, alimenté par l’ensemble des indicateurs conjoncturels récents disponibles à l’instant _t_. L'objectif de ce projet est d'exploiter, au mieux, les sources les plus récentes pour estimer la dynamique des agrégats macroéconomiques majeurs au cours des dernières semaines. Ces sources sont de nature diverse: enquêtes de conjoncture, comptes nationaux trimestriels, remontées statistiques en dur mais aussi de données issues de sources moins traditionnelles (recherches internet, etc.)

À partir de cet ensemble hétérogènes d’informations, l’outil effectue une prévision de croissance des agrégats macroéconomiques les plus scrutés pour connaître la conjoncture française (PIB, consommation des ménages, investissement…). Cette prévision est faite pour le trimestre contemporain ou les trimestres suivants, à partir de modèles de _machine learning_ (LASSO, forêts aléatoires…).

L’outil a été initialement développé pour une [note de conjoncture en 2019](https://www.insee.fr/fr/statistiques/fichier/4268833/122019_ndc.pdf). Celui-ci a été repris suite à la crise sanitaire pour une utilisation plus systématique. D’abord centré sur la France et sur le seul PIB du trimestre contemporain, il a été décliné à d’autres pays (Allemagne, Italie, Espagne) et est en cours d’élargissement à des agrégats autres que le PIB et à des horizons de prévision plus lointains. | +| **Acteurs** | Insee | +| **Produits et documentation du projet** | - Dossier [Prévoir en continu la croissance française](https://www.insee.fr/fr/statistiques/4268739?sommaire=4268833)[^1], Note de conjoncture de l'Insee - décembre 2019 | + +[^1]: Sur le _nowcasting_, une expérimentation a par ailleurs eu lieu en 2022 pour l'imputation de variables non publiées et la prévision de croissance, cf présentation [Nowcasting PIB : imputation de variables non encore publiées](https://journees-methodologie-statistique.insee.net/nowcasting-pib-imputation-de-variables-non-encore-publiees/) aux journées de méthodologie statistique de 2022. diff --git a/project/2020_cb_conj/cb_conj.png b/project/2020_cb_conj/cb_conj.png new file mode 100644 index 00000000..b04bdd7c Binary files /dev/null and b/project/2020_cb_conj/cb_conj.png differ diff --git a/project/2020_cb_conj/index.en.qmd b/project/2020_cb_conj/index.en.qmd new file mode 100644 index 00000000..c2e4f7de --- /dev/null +++ b/project/2020_cb_conj/index.en.qmd @@ -0,0 +1,45 @@ +--- +title: Using credit card data and mobile phone data to forecast economic activity +description: | + The 2020 health crisis required a review of forecasting processes + to be more responsive to events. INSEE used credit card transaction data to + forecast economic activity. +format: html +date: '2020-12-01' +image: cb_conj.png +listing: +- id: similar-project + contents: ../*/index.qmd + type: grid + include: + categories: + - scanner data + - mobile phone data + - credit card data + - bank account data + sort: + - date desc + page-size: 6 + categories: true +categories: +- forecasts +- experiment +- Insee +- credit card data +- mobile phone data +--- + +# Project summary + +| | Using credit card and mobile phone data to forecast economic activity | +|---|------------------------------------------------------------------------- | +| **Project details** | The March 24, 2020 Economic Outlook, prepared by INSEE during the first quarter of 2020, was never published in its original form. The health crisis and the measures taken to limit the spread of the pandemic, starting with containment, have turned standard economic forecasts on their head and necessitated the use of alternative, more responsive sources. Traditional data, available for the most part on a monthly basis, were unable to provide reliable and relevant information on the economic situation within the time available: for example, the most recent business surveys, which are a key source for forecasting, were collected mainly between the end of February and the beginning of March, i.e. before the first containment was announced. The first quantitative indicators for March, based on surveys or administrative sources, were not available until April or May. INSEE therefore mobilised other sources of data, of various kinds although essentially high frequency, such as supermarket scanner data, rail freight, mobile phone data, electricity consumption, internet use, and credit card transaction data. | +| **Players** | Insee| +| **Project results** | The use of aggregated and anonymised credit card transaction data to monitor economic activity and household consumption proved particularly appropriate and relevant in 2020, when measures were put in place to curb the spread of Covid-19. They will make it possible to document in real time an exceptional shock for which the standard measurement tools appeared late or sometimes unsuitable. The wealth of information available leads to particularly diverse analyses. However, these sources present significant conceptual differences with the usual statistics used to monitor economic activity. Failure to take them into account would lead to distorted analyses, both in terms of levels and trends. Mobile phone data was also used to track the return to normal activity during the lifting of lockdown restrictions in June 2020. The relevance of these private sources for public studies therefore depends largely on the degree of granularity of the information available and the ability of the producer and user to converge towards a common framework.| +| **Project products and documentation** | - [What do bankcard transaction data have to say about the behaviour of 'confined' consumers? (French)](https://www.insee.fr/fr/statistiques/4478165?sommaire=4473296) INSEE Economic Outlook - April 2020
- [What do bankcard transaction data say about recent trends in household consumption?](https://www.insee.fr/en/statistiques/4496160?sommaire=4473307) Insee Economic Outlook - May 2020
- [Regional disparities in consumption: what do bank card transaction data tell us?](https://www.insee.fr/en/statistiques/4496166?sommaire=4473307) Insee Economic Outlook - May 2020
- [By the end of May, morning commutes had only reached 60% of their usual level](https://www.insee.fr/fr/statistiques/4513042?sommaire=4473296), Insee Economic Outlook - June 2020
- [Contributions, limitations and prospects of bankcard (CB) transaction data in monitoring economic activity (abstract in English)](https://journees-methodologie-statistique.insee.net/apports-limites-et-perspectives-des-donnees-de-transactions-carte-bancaire-cb-dans-le-suivi-de-lactivite-economique/), 2022 Statistical Methodology Days (Journées de méthodologie statistique 2022)| + +# Similar projects + +::: {#similar-project} +::: + diff --git a/project/2020_cb_conj/index.qmd b/project/2020_cb_conj/index.qmd new file mode 100644 index 00000000..083d2fbf --- /dev/null +++ b/project/2020_cb_conj/index.qmd @@ -0,0 +1,48 @@ +--- +title: Utilisation de données de cartes bancaires et de téléphonie mobile pour prévoir l'activité économique +description: | + La crise sanitaire de 2020 a nécessité de revoir les processus de prévision + pour être plus réactif face aux événements. Dans ce cadre, l'Insee s'est + appuyée sur les données de paiement par carte bancaire CB pour prédire l'activité + économique. + +format: html +date: '2020-12-01' +image: cb_conj.png +listing: +- id: similar-project + contents: ../*/index.qmd + type: grid + include: + categories: + - données de caisse + - données de téléphonie mobile + - données CB + - données comptes bancaires + sort: + - date desc + page-size: 6 + categories: true +categories: +- prévisions +- expérimentation +- Insee +- données CB +- données de téléphonie mobile +--- + + +# Synthèse du projet + +| | Utilisation de données de cartes bancaires et de téléphonie mobile pour prévoir l'activité économique | +|-----------|------------------------------------------------------------------| +| **Détail du projet** | La Note de conjoncture du 24 mars 2020, préparée par l’Insee pendant le premier trimestre 2020, n’aura jamais été publiée en l’état. La crise sanitaire et les mesures de limitation de propagation de la pandémie, en premier lieu le confinement, ont bouleversé les prédictions conjoncturelles standards et nécessité l’utilisation de sources alternatives plus réactives. Les données traditionnelles, disponibles pour la plupart mensuellement, n’étaient pas à même de fournir, dans les délais impartis, des informations fiables et pertinentes sur la situation économique : par exemple, les enquêtes de conjoncture les plus récentes auprès des entreprises, qui constituent une source privilégiée pour la prévision, avaient été collectées entre fin février et début mars principalement, donc avant l’annonce du premier confinement. Les premiers indicateurs quantitatifs sur mars, basés sur des enquêtes ou des sources administratives, n’ont été quant à eux disponibles qu’en avril ou mai. L’Insee a donc mobilisé d’autres sources de données, de nature diverse bien qu’essentiellement à haute fréquence, comme les données de caisse des grandes surfaces, le fret ferroviaire, les activations de réseaux de téléphonie mobile, la consommation électrique, l’utilisation d’internet, ou les données de transactions par carte bancaire CB. | +| **Acteurs** | Insee | +| **Résultats du projet** | L’utilisation des données de transactions de paiement par carte bancaire CB agrégées et anonymisées pour la mesure du suivi de l’activité économique et de la consommation des ménages s’est révélée particulièrement appropriée et pertinente en 2020, lors de la mise en place des mesures de freinage de la propagation du Covid-19. Elles permettent de documenter en temps réel un choc exceptionnel pour lequel les outils de mesure standards apparaissaient tardifs ou parfois inadaptés. La richesse des informations conduit à des analyses particulièrement diverses. Toutefois, ces sources présentent des différences conceptuelles importantes avec les statistiques usuelles de suivi de l’activité économique. Ne pas les prendre en compte conduirait à des analyses faussées, en niveau et en évolution. Les données de téléphonie mobile ont aussi été utilisées pour suivre le retour de l'activité lors du déconfinement de juin 2020. La pertinence de ces sources privées pour les études publiques dépend donc grandement du degré de granularité de l’information disponible et de la capacité du producteur et de l’utilisateur à converger vers un cadre commun. | +| **Produits et documentation du projet** | - [Que disent les données de transactions par carte bancaire sur les comportements de consommateurs « confinés » ?](https://www.insee.fr/fr/statistiques/4478165?sommaire=4473296), Note et point de conjoncture de l'Insee - avril 2020
- [Que disent les données de transactions par carte bancaire sur l’évolution récente de la consommation des ménages ?](https://www.insee.fr/fr/statistiques/4488580?sommaire=4473296), Note et point de conjoncture de l'Insee - mai 2020
- [Disparités territoriales de consommation : que disent les données de transaction par carte bancaire ?](https://www.insee.fr/fr/statistiques/4488582?sommaire=4473296), Note et point de conjoncture de l'Insee - mai 2020
- [Fin mai, les trajets matinaux n’atteignaient que 60 % de leur volume habituel](https://www.insee.fr/fr/statistiques/4513042?sommaire=4473296), Note et point de conjoncture, juin 2020
- [Apports, limites et perspectives des données de transactions carte bancaire (CB) dans le suivi de l’activité économique](https://journees-methodologie-statistique.insee.net/apports-limites-et-perspectives-des-donnees-de-transactions-carte-bancaire-cb-dans-le-suivi-de-lactivite-economique/), Journées de méthodologie statistique 2022 || + +# Projets similaires + +::: {#similar-project} +::: + diff --git a/project/2020_donnees_caisse/2020_donnees_caisse.png b/project/2020_donnees_caisse/2020_donnees_caisse.png new file mode 100644 index 00000000..b33a196f Binary files /dev/null and b/project/2020_donnees_caisse/2020_donnees_caisse.png differ diff --git a/project/2020_donnees_caisse/index.en.qmd b/project/2020_donnees_caisse/index.en.qmd new file mode 100644 index 00000000..3087a2d6 --- /dev/null +++ b/project/2020_donnees_caisse/index.en.qmd @@ -0,0 +1,72 @@ +--- +title: Classification of checkout data using machine learning +description: Using machine learning to classify scanner data in the COICOP nomenclature + to calculate the CPI +format: html +date: '2020-01-01' +image: 2020_donnees_caisse.png +categories: +- Python +- automatic coding +- scanner data +- COICOP +- CPI +- in production +listing: +- id: similar-project-codifauto + contents: ../*/index.qmd + type: grid + include: + categories: ["automatic coding"] + sort: "date desc" + page-size: 6 +- id: similar-project-ipc + contents: ../*/index.qmd + type: grid + include: + categories: ["webscraping", "IPC"] + sort: "date desc" + page-size: 6 +- id: similar-project-newdata + contents: ../*/index.qmd + type: grid + include: + categories: + - scanner data + - mobile phone data + - credit card data + - bank account data + sort: "date desc" + page-size: 6 +--- + +# Project summary + +| | Classification of checkout data using machine learning | +| --- | --------------------------------------------------------------------------------- | +| **Project details** | scanner data has been used by INSEE to calculate the CPI since 2010. For each barcode, each day and each point of sale, till data gives the quantities sold as well as the turnover and/or the price at which the product was sold. To use this data, however, you need to know **which product is behind a barcode**. Currently, the IPC relies on a barcode repository, purchased from a service provider, which provides very detailed and structured information on the characteristics of these products. This information is subject to a charge and does not cover all products. **The aim of the experiment is to identify the steps involved in textual processing of the labels, as well as the classification or other methods that would enable the labels to be coded automatically, without going through the repository, in the Coicop nomenclature for the IPC** and on the groupings used for Emagsa as part of the Nosica project, which aims to integrate cashier data into the production of short-term activity indicators. It is also testing their performance on test data sets. | +| **Stakeholders** | Insee | +| **Project results** | scanner data is now used in production to calculate inflation and business activity indicators. | +| **Project products and documentation** |- [Using Scanner Data to Calculate the Consumer Price Index](https://www.insee.fr/en/information/5014725?%20sommaire=5014796), courrier des statistiques n°3 de l'Insee, décembre 2019
- [Scanner data and quality adjustment](https://www.insee.fr/en/statistiques/2912652), documents de travail n°F1704 de l'Insee, août 2017 | +| **Project code** | - API for classifying checkout labels
- : Application for labelling scanner data | + +# Similar projects + +## Related to webscraping and IPC +Online data collection (web scraping) is not only used in the production of inflation figures. +It is also used in other areas and by other entities within the public statistics service besides INSEE. +Since 2020, INSEE has also been using checkout data in the definition of the CPI, as noted in the article [Using Scanner Data to Calculate the Consumer Price Index](https://www.insee.fr/en/information/5014725?sommaire=5014796) in the 2019 statistics newsletter. + +::: {#similar-project-ipc} +::: + +## Related to new data sources + +::: {#similar-project-newdata} +::: + +## Related to automatic coding + +::: {#similar-project-codifauto} +::: + diff --git a/project/2020_donnees_caisse/index.qmd b/project/2020_donnees_caisse/index.qmd new file mode 100644 index 00000000..a237eedc --- /dev/null +++ b/project/2020_donnees_caisse/index.qmd @@ -0,0 +1,77 @@ +--- +title: "Classification des données de caisse à partir de machine learning" + +# Summary for listings and search engines +description: "Classifier des données de caisse dans la nomenclature COICOP par machine learning pour le calcul de l'IPC" + +format: html + +# Date published +date: 2020-01-01 + +image: 2020_donnees_caisse.png + +categories: +- Python +- codification automatique +- données de caisse +- COICOP +- IPC +- en production +listing: +- id: similar-project-codifauto + contents: ../*/index.qmd + type: grid + include: + categories: ["codification automatique"] + sort: "date desc" + page-size: 6 +- id: similar-project-ipc + contents: ../*/index.qmd + type: grid + include: + categories: ["webscraping", "IPC"] + sort: "date desc" + page-size: 6 +- id: similar-project-newdata + contents: ../*/index.qmd + type: grid + include: + categories: + - données de caisse + - données de téléphonie mobile + - données CB + - données comptes bancaires + sort: "date desc" + page-size: 6 +--- + +# Synthèse du projet + +| | Classification des données de caisse à partir de machine learning | +|--------------|------------------------------------------------------------------------------------| +| **Détail du projet** | Les données de caisse sont utilisées à l'Insee pour le calcul de l'IPC depuis 2010. Les données de caisses donnent en effet pour chaque code-barres, chaque jour et chaque point de ventes les quantités vendues ainsi que le chiffre d’affaires et/ou le prix auquel le produit est vendu. Pour exploiter ces données, il est toutefois nécessaire de savoir **quel produit se trouve derrière un code-barres**. Actuellement, l’IPC se fonde sur un référentiel de codes-barres, acheté à un prestataire et qui donne une information très détaillée et structurée des caractéristiques de ces produits. Cette information est payante et ne couvre pas l’ensemble des produits. **L’expérimentation vise à identifier les étapes de traitement textuel des libellés, ainsi que les méthodes de classification ou autres, permettant de coder automatiquement les libellés, sans passer par le référentiel, dans la nomenclature Coicop pour l’IPC** et sur les regroupements utilisés pour Emagsa dans le cadre du projet Nosica qui vise à intégrer notamment les données de caisse dans la production des indicateurs d'activité de court-terme. Elle teste aussi leur performance sur des jeux de données tests. | +| **Acteurs** | Insee | +| **Résultats du projet** | Les données de caisse sont aujourd'hui utilisées en production pour le calcul de l'inflation et pour le calcul d'indicateurs d'activité conjoncturelle. | +| **Produits et documentation du projet** |- [Utiliser les données de caisses pour le calcul de l’indice des prix à la consommation](https://www.insee.fr/fr/information/4254225?%20sommaire=4254170), courrier des statistiques n°3 de l'Insee, décembre 2019
- [Données de caisses et ajustements qualité](https://www.insee.fr/fr/statistiques/2912650), documents de travail n°F1704 de l'Insee, août 2017 | +| **Code du projet** | - [https://github.com/InseeFrLab/predicat](https://github.com/InseeFrLab/predicat) : API pour classification des libellés de caisse
- [https://github.com/InseeFrLab/product-labelling](https://github.com/InseeFrLab/product-labelling) : Application de labellisation des données de caisse | + + +# Projets similaires + +## En lien avec le webscraping et l'IPC +La récolte de données en ligne (_webscraping_) n'est pas utilisée que dans le cadre de la production de l'inflation. Elle est aussi utilisée dans d'autres domaines et par d'autres entités que l'Insee au sein du service statistique public. +L'Insee utilise par ailleurs depuis 2020 les données de caisse dans la définition de l'IPC, comme rappelé dans l'article [Utiliser les données de caisses pour le calcul de l’indice des prix à la consommation](https://www.insee.fr/fr/information/4254225?sommaire=4254170) du courrier des statistiques de 2019. + +::: {#similar-project-ipc} +::: + +## En lien avec l'usage de nouvelles sources de données + +::: {#similar-project-newdata} +::: + +## En lien avec les problématiques de classification automatique + +::: {#similar-project-codifauto} +::: diff --git a/project/2020_mvtpop/index.en.qmd b/project/2020_mvtpop/index.en.qmd new file mode 100644 index 00000000..57b1da95 --- /dev/null +++ b/project/2020_mvtpop/index.en.qmd @@ -0,0 +1,50 @@ +--- +title: Population movements around the March 2020 containment using mobile phone network operators data +description: | + INSEE has had access to mobile telephony data + as part of the monitoring of the 2020 health crisis. + These data were used to produce the following statistics + on population movements between the + French regions before and after containment. + In addition to a publication for the general public, + this project has led to the distribution of a visualisation + flows and to publish the dataset to the + experimental statistics. +format: html +date: '2020-11-01' +image: mvtpop.png +categories: +- datavisualisation +- machine learning +- Insee +- experiment +- open-data +- mobile phone data +listing: + - id: similar-project + contents: ../*/index.qmd + type: grid + include: + categories: + - scanner data + - mobile phone data + - credit card data + - bank account data + sort: "date desc" + page-size: 6 +--- + +# Project summary + +| | Population movements around the March 2020 containment using mobile phone data | +| --- | --------------------------------------------------------------------- | +| **Project details** | As part of its statistical analysis and production work, INSEE used new private data from mobile phone operators to estimate internal population movements in France during the first containment period in March 2020. The experimental data were published in 2021.
Taking advantage of the few days between the announcement of the containment and its entry into force, the population was able to choose where to spend this period. Based on private mobile phone data, which INSEE was already working on, INSEE estimated that around 1.5 million metropolitan residents had returned to their home département and that Paris had lost around 450,000 metropolitan residents compared with the first few months of 2020, half of whom were usual Paris residents. These population surpluses were widely distributed throughout France. In general (apart from Paris), the population was closer to its usual place of residence during the confinement: the reasons for overnight stays in other regions, such as tourism, family visits or business trips, were severely restricted.
A year later, a richer dataset was published by INSEE using the same method to visualise overnight stays aggregated by place of residence, comparing the period before and after the confinement. A datavisualisation was also shared. | +| **Players** | Insee | +| **Project products and documentation** | - [Population present in the area before and after the start of containment - Initial results](https://www.insee.fr/fr/information/4477356), April 2020 (French)
- [Population present in the area before and after the start of containment: consolidated results](https://www.insee.fr/fr/information/4493611), May 2020 (French)
- [Partial return of population movements at the end of the lockdown period](https://www.insee.fr/en/statistiques/4656992), Insee Analyses n°54, July 2020
- [Social mix is stronger during daytime in places of activity than at night in residential neighborhoods](https://www.insee.fr/en/statistiques/5019739), Insee Analyses n°59, November 2020
- [Population movements during containment in spring 2020, published experimental data](https://www.insee.fr/fr/statistiques/5350073), April 2021 (French)
- [Datavisualisation published on population movements](https://inseefrlab.github.io/lockdown-maps-R/inflows_EN) | +| **Project code** | - The code is available on GitHub {{< fa brands github >}} [InseeFrLab/lockdown-maps-R](https://github.com/InseeFrLab/lockdown-maps-R) | + +# Similar projects related to new data + +::: {#similar-project} +::: + diff --git a/project/2020_mvtpop/index.qmd b/project/2020_mvtpop/index.qmd new file mode 100644 index 00000000..5ad81345 --- /dev/null +++ b/project/2020_mvtpop/index.qmd @@ -0,0 +1,52 @@ +--- +title: Mouvements de population autour du confinement de mars 2020 grâce aux données de téléphonie mobile +description: | + L'Insee a eu accès à des données de téléphonie mobile + dans le cadre du suivi de la crise sanitaire de 2020. + Ces données ont permis de produire les statistiques + sur les déplacements de population entre les + régions françaises avant et après le confinement. + Outre une publication grand public, + ce projet a amené à diffuser une visualisation + dynamique des flux et à publier le jeu de données au + titre de statistiques expérimentales. + +format: html +date: '2020-11-01' +image: mvtpop.png +categories: +- datavisualisation +- machine learning +- Insee +- expérimentation +- open-data +- données de téléphonie mobile + +listing: + - id: similar-project + contents: ../*/index.qmd + type: grid + include: + categories: + - données de caisse + - données de téléphonie mobile + - données CB + - données comptes bancaires + sort: "date desc" + page-size: 6 +--- + + +# Synthèse du projet + +| | Mouvements de population autour du confinement de mars 2020 grâce aux données de téléphonie mobile | +|-----------|------------------------------------------------------------------| +| **Détail du projet** | Dans le cadre de ses missions d'analyse et de production de statistiques, l'Insee a estimé, à partir de nouvelles données privées d'opérateurs de téléphonie mobile, les mouvements de population internes en France pendant le premier confinement de mars 2020. Les données expérimentales ont été publiées en 2021.
Profitant des quelques jours entre l'annonce du confinement et son entrée en vigueur, la population a parfois pu choisir où passer cette période. En se basant sur les données privées de téléphonie mobile, sur lesquelles l'Insee travaillait déjà, l'Insee a ainsi estimé qu'environ 1,5 million de métropolitains avait rejoint leur département de résidence et que Paris avait perdu environ 450 000 habitants métropolitains par rapport aux premiers mois de 2020, dont la moitié étaient des résidents habituels de Paris. Ces excédents de population étaient largement répartis sur l'ensemble du territoire français. De manière générale (hormis Paris), la population était plus proche de son lieu de résidence habituel pendant le confinement : les motifs de nuitées dans d'autres régions, tels que le tourisme, les visites familiales ou les voyages d'affaires, étaient fortement restreints.
Un an plus tard, un ensemble de données plus riche a été publié par l'Insee avec la même méthode afin de visualiser les nuitées agrégées par lieu de résidence, en comparant la période avant et après le confinement. Une datavisualisation a par ailleurs été partagée. | +| **Acteurs** | Insee | +| **Produits et documentation du projet** | - [Population présente sur le territoire avant et après le début du confinement – Premiers résultats](https://www.insee.fr/fr/information/4477356), avril 2020
- [Population présente sur le territoire avant et après le début du confinement : résultats consolidés](https://www.insee.fr/fr/information/4493611), mai 2020
- [Retour partiel des mouvements de population avec le déconfinement](https://www.insee.fr/fr/statistiques/4635407), Insee Analyses n°54, juillet 2020
- [La mixité sociale est plus forte en journée sur les lieux d’activité que pendant la nuit dans les quartiers de résidence](https://www.insee.fr/fr/statistiques/4930403), Insee Analyses n°59, novembre 2020
- [Déplacements de population lors du confinement au printemps 2020, données expérimentales publiées](https://www.insee.fr/fr/statistiques/5350073), avril 2021
- [Datavisualisation publiée sur les mouvements de population](https://inseefrlab.github.io/lockdown-maps-R/inflows_FR.html) | +| **Code du projet** | - Le code est disponible sur GitHub {{< fa brands github >}} [InseeFrLab/lockdown-maps-R](https://github.com/InseeFrLab/lockdown-maps-R) | + +# Projets similaires liés aux nouvelles sources de données + +::: {#similar-project} +::: diff --git a/project/2020_mvtpop/mvtpop.png b/project/2020_mvtpop/mvtpop.png new file mode 100644 index 00000000..5402549a Binary files /dev/null and b/project/2020_mvtpop/mvtpop.png differ diff --git a/project/2020_webscraping_ipc/index.en.qmd b/project/2020_webscraping_ipc/index.en.qmd new file mode 100644 index 00000000..47ed7209 --- /dev/null +++ b/project/2020_webscraping_ipc/index.en.qmd @@ -0,0 +1,70 @@ +--- +title: Webscrape product characteristics to improve inflation measurement +description: Collect product characteristics on the web to improve the way quality + effects are taken into account in the consumer price index. +format: html +date: '2020-06-01' +image: webscraping_ipc.png +listing: +- id: similar-project-codifauto + contents: ../*/index.qmd + type: grid + include: + categories: ["automatic coding"] + sort: "date desc" + page-size: 6 +- id: similar-project-ipc + contents: ../*/index.qmd + type: grid + include: + categories: ["webscraping", "IPC"] + sort: "date desc" + page-size: 6 +- id: similar-project-newdata + contents: ../*/index.qmd + type: grid + include: + categories: + - scanner data + - mobile phone data + - credit card data + - bank account data + sort: "date desc" + page-size: 6 +categories: +- in production ?? +- Insee +- CPI +- webscraping +- random forest +--- + +# Project summary + +| | Webscraping of laptop prices and characteristics, estimation of hedonic models to improve the statistical quality of the consumer price index | +| --- | ----------------------------------------------------------------- | +| **Project details** | The CPI measures "pure" price movements, assuming constant quality. It tracks a certain number of identical products over time. When these disappear, they are replaced by products that may not be equivalent. In this case, it is important to distinguish between a quality effect (price difference for a given month) and an inflation effect in the change in prices of the replacements compared with the products replaced.
Hedonic" methods estimate this quality effect on the basis of coefficients corresponding to the underlying prices of the various technical characteristics of the product (for example, the brand of computer, the RAM of a computer, the model and frequency of the processor, etc.). The aim of the project is to strengthen these methods of estimating the quality effect by extending the database and using statistical learning methods. | +| **Players** | Insee | +| **Project results** | The study made it possible to increase the samples used (in terms of price surveys and characteristics) by collecting data online (*webscraping*) and to set up a procedure for automatically selecting the characteristics that explain prices using automatic learning (random forest, Lasso-type regression).
Ultimately, 15 characteristics were selected to estimate the quality effect, such as brand, RAM, storage capacity, brand of processor, processor frequency, screen resolution, etc. The forms used by the surveyors have been amended to include the relevant characteristics that determine the price of computers. | + + +# Similar projects + +## Related to webscraping and IPC +Online data collection (web scraping) is not only used in the production of inflation figures. +It is also used in other areas and by other entities within the public statistics service besides INSEE. +Since 2020, INSEE has also been using checkout data in the definition of the CPI, as noted in the article [Using Scanner Data to Calculate the Consumer Price Index](https://www.insee.fr/en/information/5014725?sommaire=5014796) in the 2019 statistics newsletter. + +::: {#similar-project-ipc} +::: + +## Related to new data sources + +::: {#similar-project-newdata} +::: + +## Related to automatic coding + +::: {#similar-project-codifauto} +::: + diff --git a/project/2020_webscraping_ipc/index.qmd b/project/2020_webscraping_ipc/index.qmd new file mode 100644 index 00000000..2645c945 --- /dev/null +++ b/project/2020_webscraping_ipc/index.qmd @@ -0,0 +1,67 @@ +--- +title: Webscrapper les caractéristiques des produits pour améliorer la mesure de l'inflation +description: Collecter sur le web les caractéristiques des produits pour améliorer la prise en compte des effets qualité dans l'indice des prix à la consommation +format: html +date: '2020-06-01' +image: webscraping_ipc.png +listing: +- id: similar-project-codifauto + contents: ../*/index.qmd + type: grid + include: + categories: ["codification automatique"] + sort: "date desc" + page-size: 6 +- id: similar-project-ipc + contents: ../*/index.qmd + type: grid + include: + categories: ["webscraping", "IPC"] + sort: "date desc" + page-size: 6 +- id: similar-project-newdata + contents: ../*/index.qmd + type: grid + include: + categories: + - données de caisse + - données de téléphonie mobile + - données CB + - données comptes bancaires + sort: "date desc" + page-size: 6 +categories: +- en production ?? +- Insee +- IPC +- webscraping +- forêt aléatoire +--- + + +# Synthèse du projet + +| | Webscraping du prix et des caractéristiques des ordinateurs portables, estimation de modèles hédoniques pour améliorer la qualité statistique de l’indice des prix à la consommation | +|-----------|------------------------------------------------------------------| +| **Détail du projet** | L’IPC mesure l’évolution « pure » des prix, à qualité constante. Il suit un certain nombre de produits identiques dans le temps. Lorsque ceux-ci disparaissent, ils sont remplacés par des produits qui peuvent ne pas être équivalents. Il convient alors de distinguer, dans l’évolution des prix des remplaçants par rapport aux produits remplacés, un effet qualité (différence de prix pour un mois fixé) d’un effet inflation.
Les méthodes « hédoniques » estiment cet effet qualité à partir de coefficients correspondant aux prix sous-jacents des différentes caractéristiques techniques du produit (par exemple la marque de l’ordinateur, la mémoire vive d’un ordinateur, le modèle et la fréquence du processeur, etc.). Le but du projet est de renforcer ces méthodes d'estimation de l'effet qualité par l'extension de la base de données et l'usage de méthode d'apprentissage statistique. | +| **Acteurs** | Insee | +| **Résultats du projet** | L'étude a permis d'augmenter les échantillons utilisés (en termes de relevés de prix et de caractéristiques) par une collecte de données en ligne (_webscraping_) et de mettre en place une procédure de sélection automatique des caractéristiques expliquant les prix par apprentissage automatique (forêt aléatoire, régression de type Lasso).
In fine, 15 caractéristiques ont été retenues pour estimer l'effet qualité, comme par exemple la marque, la RAM, la capacité de stockage, la marque du processeur, sa fréquence, la résolution de l'écran ... Les formulaires utilisés par les enquêteurs ont été amendés pour qu’ils relèvent désormais les caractéristiques pertinentes déterminant le prix des ordinateurs. | + +# Projets similaires + +## En lien avec le webscraping et l'IPC +La récolte de données en ligne (_webscraping_) n'est pas utilisée que dans le cadre de la production de l'inflation. Elle est aussi utilisée dans d'autres domaines et par d'autres entités que l'Insee au sein du service statistique public. +L'Insee utilise par ailleurs depuis 2020 les données de caisse dans la définition de l'IPC, comme rappelé dans l'article [Utiliser les données de caisses pour le calcul de l’indice des prix à la consommation](https://www.insee.fr/fr/information/4254225?sommaire=4254170) du courrier des statistiques de 2019. + +::: {#similar-project-ipc} +::: + +## En lien avec l'usage de nouvelles sources de données + +::: {#similar-project-newdata} +::: + +## En lien avec les problématiques de classification automatique + +::: {#similar-project-codifauto} +::: diff --git a/project/2020_webscraping_ipc/webscraping_ipc.png b/project/2020_webscraping_ipc/webscraping_ipc.png new file mode 100644 index 00000000..15b80748 Binary files /dev/null and b/project/2020_webscraping_ipc/webscraping_ipc.png differ diff --git a/project/2021_Appariement/Resil.png b/project/2021_Appariement/Resil.png new file mode 100644 index 00000000..139f8bf3 Binary files /dev/null and b/project/2021_Appariement/Resil.png differ diff --git a/project/2021_Appariement/index.en.qmd b/project/2021_Appariement/index.en.qmd new file mode 100644 index 00000000..f2d6efdf --- /dev/null +++ b/project/2021_Appariement/index.en.qmd @@ -0,0 +1,25 @@ +--- +title: Comparison of matching methods and the contribution of machine learning +description: To test and compare different matching methods in order to draw up recommendations + for the work needed to build directories, particularly as part of the RESIL multiannual + programme. +format: html +authors: +- Nicolas +date: '2021-01-01' +image: Resil.png +categories: +- matching +- administrative data +- in production +--- + +# Project summary + +| | Comparison of matching methods and the contribution of machine learning | +| --- | --------------------------------------------------------------------------------- | +| **Project details** | The Resil programme aims to build a sustainable and scalable system of directories of individuals, households and residential premises, updated from a variety of administrative sources. It requires the aggregation of several data sources without a common direct identifier.
The aim of the experiment is to **test and compare different matching methods** in order to draw up recommendations for the work needed to build the directories. These will be based on performance criteria (quality of matching) but also on operational considerations (ease of deployment, calculation time, etc.). In particular, the aim is to **assess the contribution and constraints of probabilistic methods and machine learning** in matching tasks. This work will be accompanied by a reflection on the prior normalisation of data and the evaluation of matching results. | +| **Stakeholders** | Insee | +| **Project products and documentation** | - [Methodology for matching individual data](https://journees-methodologie-statistique.insee.net/methodologie-des-appariements-de-donnees-individuelles/), 2022 Statistical Methodology Days (Journées de méthodologie statistique 2022)
- [Probabilistic or deterministic, matching methods put to the test by the RéSIL programme](https://journees-methodologie-statistique.insee.net/probabilistes-ou-deterministes-des-methodes-dappariements-au-banc-dessai-du-programme-resil/), 2022 Statistical Methodology Days (Journées de méthodologie statistique 2022)
- [Impact of data cleaning on the quality of a match](https://journees-methodologie-statistique.insee.net/impact-du-nettoyage-des-donnees-sur-la-qualite-dun-appariement/), 2022 Statistical Methodology Days (Journées de méthodologie statistique 2022)
- [Matching: aims, practices and quality issues (French)](https://www.insee.fr/fr/information/8203044), Working document, Insee, July 2024 | + + diff --git a/project/2021_Appariement/index.qmd b/project/2021_Appariement/index.qmd new file mode 100644 index 00000000..2dc71722 --- /dev/null +++ b/project/2021_Appariement/index.qmd @@ -0,0 +1,27 @@ +--- +title: "Comparaison des méthodes d'appariement et apport du machine learning" + +# Summary for listings and search engines +description: "Tester et comparer différentes méthodes d’appariements afin de dégager des recommandations pour les travaux nécessaires à la construction des répertoires, notamment dans le cadre du programme pluriannuel RESIL." + +format: html + +# Date published +date: 2021-01-01 + +image: Resil.png + +categories: +- appariement +- données administratives +- en production +--- + +# Synthèse du projet + +| | Comparaison des méthodes d'appariement et apport du machine learning | +|--------------|------------------------------------------------------------------------------------| +| **Détail du projet** | Le programme Resil vise à construire un système de répertoires d'individus, de ménages et de locaux d'habitation, durable et évolutif, mis à jour à partir de sources administratives diverses. Il nécessite l'agrégation de plusieurs sources de données sans identifiant direct commun.
Le but de l'expérimentation est de **tester et de comparer différentes méthodes d'appariements** afin de dégager des recommandations pour les travaux nécessaires à la construction des répertoires. Celles-ci seront fondées sur des critères de performance (qualité de l'appariement) mais aussi sur des considérations opérationnelles (facilité de déploiement, temps de calcul, etc.). L'objectif est notamment **d'évaluer l'apport et les contraintes des méthodes probabilistes ainsi que du machine learning** dans les tâches d'appariement. Ce travail s'accompagnera d'une réflexion sur la normalisation préalable des données et l'évaluation des résultats d'un appariement. | +| **Acteurs** | Insee | +| **Produits et documentation du projet** | - [Méthodologie d'appariement de données individuelles](https://journees-methodologie-statistique.insee.net/methodologie-des-appariements-de-donnees-individuelles/), Journées de méthodologie statistique 2022 ;
- [Probabilistes ou déterministes, des méthodes d’appariements au banc d’essai du programme RéSIL](https://journees-methodologie-statistique.insee.net/probabilistes-ou-deterministes-des-methodes-dappariements-au-banc-dessai-du-programme-resil/), Journées de méthodologie statistique 2022 ;
- [Impact du nettoyage des données sur la qualité d'un appariement](https://journees-methodologie-statistique.insee.net/impact-du-nettoyage-des-donnees-sur-la-qualite-dun-appariement/), Journées de méthodologie statistique 2022
- [Les appariements : finalités, pratiques et enjeux de qualité](https://www.insee.fr/fr/information/8203044), document de travail de l'Insee, juillet 2024 | + diff --git a/project/2021_Extraction_CS/Extraction_CS_API.png b/project/2021_Extraction_CS/Extraction_CS_API.png new file mode 100644 index 00000000..4a4db5de Binary files /dev/null and b/project/2021_Extraction_CS/Extraction_CS_API.png differ diff --git a/project/2021_Extraction_CS/index.en.qmd b/project/2021_Extraction_CS/index.en.qmd new file mode 100644 index 00000000..d58e2d51 --- /dev/null +++ b/project/2021_Extraction_CS/index.en.qmd @@ -0,0 +1,30 @@ +--- +title: Automatic extraction of the table of subsidiaries and holdings from company + accounts +description: Extract information from company accounts tables, in particular tables + of subsidiaries and holdings, contained in scanned images made available by INPI + via an API +format: html +authors: +- Nicolas +date: '2021-01-01' +image: Extraction_CS_API.png +categories: +- Python +- data extraction +- API +- machine learning +- in production +--- + +# Project summary + +| | Automatic extraction of the table of subsidiaries and holdings from company accounts | +| --- | --------------------------------------------------------------------------------- | +| **Project details** | A trial on the automated extraction of the table of subsidiaries and holdings from the company accounts was started in 2022 following an internship in the PTGU division. This table is used manually during company profiling operations, which is tedious work. The experiment was conducted with the Banque de France, which is interested in the same use case as Insee, with two main objectives:

- to develop a prototype application enabling users to retrieve a table of subsidiaries and holdings automatically for a given Siren number and year;
- compare the performance of different automatic table extraction methods, based on open-source tools on the one hand and commercial solutions on the other. | +| **Stakeholders** | Insee, Inpi, Banque de France | +| **Project results** | - A new [experimental IPA](https://extraction-cs.lab.sspcloud.fr/docs) and a [experimental interface](https://extract-table-ui.lab.sspcloud.fr/) were put in place to meet the business need. | +| **Project products and documentation** | - The project was presented at an internal Insee seminar on 27 June 2024 [slides](https://ssplab.pages.lab.sspcloud.fr/table-extraction-evaluation/)
- [Automatic extraction of data from scanned images: an illustration using corporate financial statements (abstract in English)](https://journees-methodologie-statistique.insee.net/extraction-automatique-de-donnees-issues-dimages-scannees-une-illustration-par-les-comptes-sociaux-dentreprises/), 2022 Statistical Methodology Days (Journées de méthodologie statistique 2022) | +| **Project code** | - Python wrapper for Inpi's enterprise API
- core" repository containing elements for page detection/table extraction
- code repository for the[experimental interface](https://extract-table-ui.lab.sspcloud.fr/)
- Kubernetes: source code for the overall architecture, comprising containerised microservices orchestrated by Kubernetes. It combines calls to external APIs (INPI), PDF processing and the use of language models (LLM) for data analysis and extraction. | + + diff --git a/project/2021_Extraction_CS/index.qmd b/project/2021_Extraction_CS/index.qmd new file mode 100644 index 00000000..5ad95d8f --- /dev/null +++ b/project/2021_Extraction_CS/index.qmd @@ -0,0 +1,32 @@ +--- +title: "Extraction automatique du tableau des filiales et participations des comptes sociaux des entreprises" + +# Summary for listings and search engines +description: "Extraire les informations de tableaux de comptes sociaux, en particulier des tableaux des filiales et participations, contenus dans des images scannées mises à disposition par l’INPI via une API" + +format: html + +# Date published +date: 2021-01-01 + +image: Extraction_CS_API.png + +categories: +- Python +- extraction de données +- API +- machine learning +- en production + +--- + +# Synthèse du projet + +| | Extraction automatique du tableau des filiales et participations des comptes sociaux des entreprises | +|--------------|------------------------------------------------------------------------------------| +| **Détail du projet** | Une expérimentation autour de l'extraction automatisée du tableau des filiales et participations des comptes sociaux des entreprises a été démarrée en 2022 à la suite d'un stage dans la division PTGU. Ce tableau est exploité à la main au cours des opérations de profilage des entreprises, ce qui constitue un travail fastidieux. L'expérimentation a été menée avec la Banque de France qui est intéressé par le même cas d'usage que l'Insee, avec deux objectifs principaux :

- développer un prototype d'application permettant à des utilisateurs de récupérer un tableau des filiales et participations automatiquement pour un numéro Siren et une année donnés ;
- comparer les performances de différentes méthodes d'extraction automatique de tableaux, basées d’une part sur des outils open-source et d’autre part sur des solutions commerciales. | +| **Acteurs** | Insee, Inpi, Banque de France | +| **Résultats du projet** | - Une [API expérimentale](https://extraction-cs.lab.sspcloud.fr/docs) et une [interface expérimentale](https://extract-table-ui.lab.sspcloud.fr/) ont été mises en place pour répondre au besoin métier. | +| **Produits et documentation du projet** | - Le projet a été présenté le 27 juin 2024 à un séminaire interne Insee [slides](https://ssplab.pages.lab.sspcloud.fr/table-extraction-evaluation/)
- [Extraction automatique de données issues d’images scannées : Une illustration par les comptes sociaux d’entreprises](https://journees-methodologie-statistique.insee.net/extraction-automatique-de-donnees-issues-dimages-scannees-une-illustration-par-les-comptes-sociaux-dentreprises/), Journées de méthodologie statistique 2022 | +| **Code du projet** | - [https://github.com/InseeFrLab/ca-document-querier/](https://github.com/InseeFrLab/ca-document-querier/) : wrapper Python autour de l'API entreprises de l'Inpi
- [https://github.com/InseeFrLab/extraction-comptes-sociaux](https://github.com/InseeFrLab/extraction-comptes-sociaux) : dépôt « core » où se trouvent les éléments pour la détection de page/extraction de tableaux
- [https://github.com/InseeFrLab/extract-table-ui](https://github.com/InseeFrLab/extract-table-ui) : dépôt de code de l'[interface expérimentale](https://extract-table-ui.lab.sspcloud.fr/)
- [https://github.com/InseeFrLab/extraction-comptes-sociaux-llm](https://github.com/InseeFrLab/extraction-comptes-sociaux-llm) : code source de l'architecture globale, comprenant des microservices conteneurisés et orchestrés par Kubernetes. Il combine des appels à des API externes (INPI), le traitement de PDF, et l'utilisation de modèles de langage (LLM) pour l'analyse et l'extraction de données. | + diff --git a/project/2021_codif_PCS/2021_codif_PCS.png b/project/2021_codif_PCS/2021_codif_PCS.png new file mode 100644 index 00000000..41423b3f Binary files /dev/null and b/project/2021_codif_PCS/2021_codif_PCS.png differ diff --git a/project/2021_codif_PCS/index.en.qmd b/project/2021_codif_PCS/index.en.qmd new file mode 100644 index 00000000..5c9eb0f6 --- /dev/null +++ b/project/2021_codif_PCS/index.en.qmd @@ -0,0 +1,35 @@ +--- +title: Automatic coding of occupations in the PCS 2020 nomenclature +description: Automatically code occupations as part of the switch to the new PCS nomenclature + (PCS 2020) +format: html +date: '2021-01-01' +image: 2021_codif_PCS.png +categories: +- Projects +- Python +- automatic coding +- fasttext +listing: +- id: similar-project + contents: ../*/index.qmd + type: grid + include: + categories: ["automatic coding"] + sort: "date desc" + page-size: 6 +--- + +# Project summary + +| | Automatic coding of occupations in the PCS 2020 nomenclature | +| --- | --------------------------------------------------------------------------------- | +| **Project details** | The renewal of the PCS nomenclature in 2020 is accompanied by the promotion of a **autocompletion tool for occupation labels** in a list of enriched headings enabling the **direct coding** in the box of the nomenclature or ad hoc groupings complementary to the nomenclature. However, the autocomplete tool will only be available for computerised data collection, and moreover it includes the possibility of answering "off-list". In order to be able to integrate the new 2020 PCS into the population census for the 2024 collection and also to be able to code paper ballots as well as computerised "off-list" responses, a **automatic coding algorithm** in PCS 2020 of these ballots must be created. Following the postponement of the 2021 census survey, managers have annotated in PCS 2020, with double coding and arbitration, 119,000 bulletins from the EAR 2020. The aim of the experiment is to test and compare different statistical learning models and pre-processing methods for coding occupations in the PCS 2020 nomenclature on the basis of the occupation wording and ancillary variables used during the annotation phase (employer status, etc.), and to select the best performing model. The aim is to maintain the rate of correct codings and the rate of manual data transmission at levels similar to the current situation. | +| **Stakeholders** | Insee | +| **Project products and documentation** | - [Application of machine learning techniques to code occupations in the nomenclature of occupations and socio-professional categories 2020](https://journees-methodologie-statistique.insee.net/application-de-techniques-de-machine-learning-pour-coder-les-professions-dans-la-nomenclature-des-professions-et-categories-socio-professionnelles-2020/), 2022 Statistical Methodology Days (Journées de méthodologie statistique 2022) | + +# Similar projects + +::: {#similar-project} +::: + diff --git a/project/2021_codif_PCS/index.qmd b/project/2021_codif_PCS/index.qmd new file mode 100644 index 00000000..82984a1d --- /dev/null +++ b/project/2021_codif_PCS/index.qmd @@ -0,0 +1,39 @@ +--- +title: "Codification automatique des professions dans la nomenclature PCS 2020" + +# Summary for listings and search engines +description: "Codifier automatiquement les professions dans le cadre de la bascule vers la nouvelle nomenclature PCS (PCS 2020)" + +format: html + +# Date published +date: 2021-01-01 + +image: 2021_codif_PCS.png + +categories: +- Python +- codification automatique +- fasttext +listing: +- id: similar-project + contents: ../*/index.qmd + type: grid + include: + categories: ["codification automatique"] + sort: "date desc" + page-size: 6 +--- + +# Synthèse du projet + +| | Codification automatique des professions dans la nomenclature PCS 2020 | +|--------------|------------------------------------------------------------------------------------| +| **Détail du projet** | La rénovation de la nomenclature des PCS en 2020 s'accompagne de la promotion d'un **outil d'autocomplétion des libellés de profession** dans une liste de libellés enrichis permettant le **codage direct** dans la case de la nomenclature ou des regroupements ad hoc complémentaires de la nomenclature. Or, l'outil d'autocomplétion ne sera disponible que pour des collectes informatisées et par ailleurs il comprend la possibilité de répondre "hors-liste". Pour pouvoir intégrer la nouvelle PCS 2020 dans le recensement de population à la collecte 2024 et être en mesure de coder aussi les bulletins papier tout comme les réponses informatisées "hors-liste", un **algorithme de codification automatique** en PCS 2020 de ces bulletins doit être créé. Suite au report de l'enquête de recensement 2021, des gestionnaires ont annoté en PCS 2020, avec double codage et arbitrage, 119 000 bulletins issus de l'EAR 2020. Le but de l'expérimentation est de tester et comparer différents modèles d'apprentissage statistique et méthodes de prétraitement pour le codage des professions dans la nomenclature PCS 2020 à partir du libellé de profession ainsi que des variables annexes utilisées lors de la phase d'annotation (statut de l'employeur, etc.) et d'en retenir le plus performant. L'objectif est de maintenir le taux de codifications correctes ainsi que le taux d'envoi en reprise manuelle à des niveaux similaires à l'existant. | +| **Acteurs** | Insee | +| **Produits et documentation du projet** | - [Application de techniques de machine learning pour coder les professions dans la nomenclature des professions et catégories socio-professionnelles 2020](https://journees-methodologie-statistique.insee.net/application-de-techniques-de-machine-learning-pour-coder-les-professions-dans-la-nomenclature-des-professions-et-categories-socio-professionnelles-2020/), Journées de méthodologie statistique 2022 | + +# Projets similaires + +::: {#similar-project} +::: diff --git a/project/2021_detection_cyber/cybercriminalite.jpg b/project/2021_detection_cyber/cybercriminalite.jpg new file mode 100644 index 00000000..7723fcc2 Binary files /dev/null and b/project/2021_detection_cyber/cybercriminalite.jpg differ diff --git a/project/2021_detection_cyber/index.en.qmd b/project/2021_detection_cyber/index.en.qmd new file mode 100644 index 00000000..8c92a588 --- /dev/null +++ b/project/2021_detection_cyber/index.en.qmd @@ -0,0 +1,22 @@ +--- +title: Detecting cybercrime in procedures +description: Detection of cybercrime based on textual analysis of modus operandi +format: html +date: '2021-06-01' +image: cybercriminalite.jpg +categories: +- in production ?? +- SSMSI +- deep learning +--- + +# Project summary + +| | Detecting cybercrime in procedures | +| --- | -------------------------------------------------------------------- | +| **Project details** | Cybercrime is a new and fast-growing form of criminality, and the fight against it is a major challenge for the police and gendarmerie. However, it is proving particularly difficult to quantify. It covers all criminal offences attempted or committed against or mainly using information and communication systems. The nomenclature of offences allows only part of this type of crime to be identified. To obtain a better statistical measure, it is necessary to use information provided in textual areas of procedures. The aim of the experiment is to explore the potential of textual analysis methods on these data to measure the extent of this type of crime. | +| **Players** | INSEE and the Ministerial Statistical Office (MSO) for Internal Security ([SSMSI](https://www.police-nationale.interieur.gouv.fr/nous-decouvrir/notre-organisation/organisation/service-statistique-ministeriel-de-securite)) | +| **Project results** | The work was taken up by the SSMSI to derive a two-dimensional nomenclature of cyber-related offences. The algorithm predicts more than 95% of offences as falling within the definition of cybercrime. Similarly, it predicts less than 1% of offences as not falling within the scope of cybercrime as defined. | +| **Project products and documentation** | - [Detection of cybercrime offences based on textual analysis of modus operandi](https://journees-methodologie-statistique.insee.net/detection-des-infractions-relevant-de-la-cyberdelinquance-a-partir-dune-analyse-textuelle-des-manieres-doperer/), 2022 Statistical Methodology Days (Journées de méthodologie statistique 2022) | + + diff --git a/project/2021_detection_cyber/index.qmd b/project/2021_detection_cyber/index.qmd new file mode 100644 index 00000000..a7413e76 --- /dev/null +++ b/project/2021_detection_cyber/index.qmd @@ -0,0 +1,22 @@ +--- +title: Détecter la cybercriminalité dans les procédures +description: Détection des infractions relevant de la cyberdélinquance à partir d'une analyse textuelle des manières d'opérer +format: html +date: '2021-06-01' +image: cybercriminalite.jpg +categories: +- en production ?? +- SSMSI +- deep learning +--- + + +# Synthèse du projet + +| | Détecter la cybercriminalité dans les procédures | +|-----------|------------------------------------------------------------------| +| **Détail du projet** | La cybercriminalité est une nouvelle forme de criminalité en plein essor, et la lutte contre celle-ci est un enjeu important pour les services de police et de gendarmerie. Elle s’avère toutefois particulièrement difficile à quantifier. Elle regroupe toutes les infractions pénales tentées ou commises à l'encontre ou principalement au moyen des systèmes d'information et de communication. La nomenclature des infractions ne permet de repérer qu'une partie de ce type de délinquance. Pour obtenir une meilleure mesure statistique, il est nécessaire d'utiliser des informations fournies dans des zones textuelles des procédures. L'enjeu de l'expérimentation est d'explorer le potentiel des méthodes d'analyse textuelle sur ces données pour mesurer l'ampleur de ce type de délinquance. | +| **Acteurs** | Insee et service statistique ministériel de la sécurité intérieure ([SSMSI](https://www.police-nationale.interieur.gouv.fr/nous-decouvrir/notre-organisation/organisation/service-statistique-ministeriel-de-securite)) | +| **Résultats du projet** | Les travaux ont été repris par le SSMSI pour en déduire notamment une nomenclature à deux dimensions des délits relevant du cyber. L’algorithme prédit à plus de 95% les infractions comme relevant de la cybercriminalité au sens de la définition. De même, il prédit moins de 1% d’infractions comme ne relevant pas de la cybercriminalité au sens de notre définition. | +| **Produits et documentation du projet** | - [Détection des infractions relevant de la cyberdélinquance à partir d'une analyse textuelle des manières d'opérer](https://journees-methodologie-statistique.insee.net/detection-des-infractions-relevant-de-la-cyberdelinquance-a-partir-dune-analyse-textuelle-des-manieres-doperer/), Journée de méthodologie statistique, 2022 | + diff --git a/project/2021_gdp_media/gdp_media.png b/project/2021_gdp_media/gdp_media.png new file mode 100644 index 00000000..20246357 Binary files /dev/null and b/project/2021_gdp_media/gdp_media.png differ diff --git a/project/2021_gdp_media/gdp_media_en.png b/project/2021_gdp_media/gdp_media_en.png new file mode 100644 index 00000000..9960cb56 Binary files /dev/null and b/project/2021_gdp_media/gdp_media_en.png differ diff --git a/project/2021_gdp_media/index.en.qmd b/project/2021_gdp_media/index.en.qmd new file mode 100644 index 00000000..b6264d49 --- /dev/null +++ b/project/2021_gdp_media/index.en.qmd @@ -0,0 +1,37 @@ +--- +title: Predicting growth by reading the newspaper +description: Use continuous press articles to build an indicator to help forecast + growth +format: html +date: '2021-03-01' +image: gdp_media_en.png +categories: +- Insee +- machine learning +- experiment +- forecasts +- webscraping +listing: +- id: similar-project + contents: ../*/index.qmd + type: grid + include: + categories: ["webscraping"] + sort: "date desc" + page-size: 6 +--- + +# Project summary + +| | Construction of an economic sentiment indicator based on press articles to forecast economic growth | +| --- | -----------------------------------------------------------------------| +| **Project details** | The information produced by the media is reactive, abundant and covers a wide range of economic fields. In addition, text analysis (text mining) and automated online data collection (webscraping) techniques can be used to develop indicators that summarise this wealth of information. The aim of the experiment is to estimate the added value of a media indicator associated with economic activity by complementing existing business surveys. This experiment complements pre-existing work, which is seeking to construct an indicator to help predict GDP on the basis of the archives of the newspaper Le Monde, by mobilising complementary journalistic sources and reviewing the models used. | +| **Players** | Insee | +| **Project results** | An indicator of current media sentiment was constructed on the basis of the tone of press articles. | +| **Project products and documentation** | - [Information gleaned from press articles can help predict economic activity in real time](https://www.insee.fr/en/statistiques/4620524?sommaire=4473307) Economic outlook, December 2020 ;
- [French economic activity through press articles](https://www.insee.fr/en/statistiques/5351871) Economic Outlook, March 2021 ;
- [Predicting economic activity from press articles (abstract in English)](https://journees-methodologie-statistique.insee.net/predire-lactivite-economique-a-partir-darticles-de-presse/), 2022 Statistical Methodology Days (Journées de méthodologie statistique 2022) | + +# Similar projects + +::: {#similar-project} +::: + diff --git a/project/2021_gdp_media/index.qmd b/project/2021_gdp_media/index.qmd new file mode 100644 index 00000000..65e060d1 --- /dev/null +++ b/project/2021_gdp_media/index.qmd @@ -0,0 +1,36 @@ +--- +title: Prévoir la croissance en lisant le journal +description: Utiliser les articles de presse en continu pour construire un indicateur aidant à prévoir la croissance +format: html +date: '2021-03-01' +image: gdp_media.png +categories: +- Insee +- machine learning +- expérimentation +- prévisions +- webscraping +listing: +- id: similar-project + contents: ../*/index.qmd + type: grid + include: + categories: ["webscraping"] + sort: "date desc" + page-size: 6 +--- + + +# Synthèse du projet + +| | Construction d'un indicateur de sentiment économique à partir d'articles de presse pour prévoir la croissance économique | +|-----------|------------------------------------------------------------------| +| **Détail du projet** | L’information produite par les media est réactive, fournie et aborde de nombreux domaines économiques. En outre les techniques d’analyse textuelle (text mining) et de collecte automatisée des données en ligne (webscraping) permettent d’élaborer des indicateurs synthétisant cette richesse. Le but de l'expérimentation est d'estimer la plus-value d’un indicateur médiatique associé à l’activité économique par sa complémentarité avec les enquêtes de conjoncture existantes. Cette expérimentation complète les travaux pré-existants, qui cherchent à construire un indicateur aidant à prédire le PIB sur la base des archives du journal Le Monde, en mobilisant des sources journalistiques complémentaires et revoyant les modèles utilisés. | +| **Acteurs** | Insee | +| **Résultats du projet** | Un indicateurs indicateur de sentiment médiatique conjoncturel a été construit à partir des tonalités des articles de presse. | +| **Produits et documentation du projet** | - [Les messages issus des articles de presse peuvent contribuer à prédire l’activité économique en temps réel](https://www.insee.fr/fr/statistiques/4513040?sommaire=4473296), Notes et points de conjoncture de l'Insee de l'année 2020 ;
- [Éclairage - L’activité économique française au travers d’articles de presse](https://www.insee.fr/fr/statistiques/5232051), Note de conjoncture de l'Insee de mars 2021 ;
- [Prédire l’activité économique à partir d’articles de presse](https://journees-methodologie-statistique.insee.net/predire-lactivite-economique-a-partir-darticles-de-presse/), Journées de méthodologie statistique 2022 | + +# Projets similaires + +::: {#similar-project} +::: diff --git a/project/2021_vehicules/index.en.qmd b/project/2021_vehicules/index.en.qmd new file mode 100644 index 00000000..0336b440 --- /dev/null +++ b/project/2021_vehicules/index.en.qmd @@ -0,0 +1,42 @@ +--- +title: Modelling road vehicle fleet ownership and use +description: | + Matching administrative databases and modelling to estimate the number + of road vehicles in France +format: html +date: '2021-06-01' +image: ../../../assets/media/logo_ssm_insee.webp +listing: +- id: similar-project + contents: ../*/index.qmd + type: grid + include: + categories: + - matching + - administrative data + sort: + - date desc + page-size: 6 + categories: true +categories: +- in production +- matching +- SDES +- administrative data +--- + +# Project summary + +| | Modelling road vehicle fleet ownership and use | +|---| ------------------------------------------------------------------------ | +| **Project details** | In 2019, the Ministerial Statistical Office of the French Ministry of Ecological Transition (SDES) will be overhauling the statistical register of road vehicles (RSVero). The main innovation of this project is the use of technical inspection data to ensure that registered vehicles are still in circulation and to determine their annual use, thanks to the odometer reading taken at each visit. However, the integration of this data raises methodological issues: inspections take place on variable dates, sometimes with a delay, and we cannot be sure of the status of vehicles whose last inspection preceded the date on which we wish to determine the fleet. The project will enable us to estimate, for all the cars in the inventory, the probability that they are still in circulation on a given date and, where appropriate, the annual distance travelled. More broadly, this project is part of the drive to develop methodologies for processing administrative sources. | +| **Players** | Insee, [MSO of the French Ministry of Ecological Transition (SDES)](https://www.statistiques.developpement-durable.gouv.fr/english-contents) | +| **Project results** | The methodology is now in production and is used to determine the vehicles on the road each year, their characteristics and their use. | +| **Project products and documentation** | - [Methodology for estimating vehicle fleets and distances travelled (abstract in English)](https://www.statistiques.developpement-durable.gouv.fr/media/7230/download?inline) Working document, March 2024
- [Modelling road vehicle fleet ownership and use](https://journees-methodologie-statistique.insee.net/modelisation-de-lappartenance-au-parc-des-vehicules-routiers-et-de-son-utilisation/) Journées de méthodologie statistique 2022 | + +# Similar projects + +::: {#similar-project} +::: + + diff --git a/project/2021_vehicules/index.qmd b/project/2021_vehicules/index.qmd new file mode 100644 index 00000000..e2c5c17b --- /dev/null +++ b/project/2021_vehicules/index.qmd @@ -0,0 +1,41 @@ +--- +title: Modélisation de l’appartenance au parc des véhicules routiers et de son utilisation +description: | + Appariement de bases administratives et modélisation pour estimer le nombre + de véhicules routiers en France +format: html +date: '2021-06-01' +image: ../../assets/media/logo_ssm_insee.webp +listing: +- id: similar-project + contents: ../*/index.qmd + type: grid + include: + categories: + - appariement + - données administratives + sort: + - date desc + page-size: 6 + categories: true +categories: +- en production +- appariement +- SDES +- données administratives +--- + + +# Synthèse du projet + +| | Modélisation de l’appartenance au parc des véhicules routiers et de son utilisation | +|-----------|------------------------------------------------------------------| +| **Détail du projet** | Le SSM du ministère de la Transition écologique (SDES) a entrepris en 2019 la refonte du répertoire statistique des véhicules routiers (RSVero). Principale innovation de ce projet, l’utilisation des données de contrôles techniques permet de s’assurer que les véhicules immatriculés sont toujours en circulation et de déterminer leur utilisation annuelle, grâce au relevé du compteur kilométrique effectué à chaque visite. Cependant, l’intégration de ces données n’est pas sans poser de questions méthodologiques : les visites interviennent à des dates variables, parfois avec du retard, et on ne peut connaître avec certitude le statut des véhicules dont la dernière visite précède la date à laquelle on souhaite déterminer le parc. Le projet permet d’estimer, pour toutes les voitures du répertoire, la probabilité qu’elles soient toujours en circulation à une date donnée et, le cas échéant, la distance annuelle parcourue. Plus largement, ce projet s’inscrit dans le mouvement de développement de méthodologies de traitement des sources administratives. | +| **Acteurs** | Insee, [SSM Transition écologique (SDES)](https://www.statistiques.developpement-durable.gouv.fr/) | +| **Résultats du projet** | La méthodologie est aujourd'hui en production et utilisée pour déterminer chaque année les véhicules en circulation, leurs caractéristiques et leur utilisation. | +| **Produits et documentation du projet** | - [Méthodologie pour l'estimation des parcs de véhicules et des distances parcourues](https://www.statistiques.developpement-durable.gouv.fr/media/7230/download?inline), document de travail, mars 2024
- [Modélisation de l’appartenance au parc des véhicules routiers et de son utilisation](https://journees-methodologie-statistique.insee.net/modelisation-de-lappartenance-au-parc-des-vehicules-routiers-et-de-son-utilisation/), Journées de méthodologie statistique 2022| + +# Projets similaires + +::: {#similar-project} +::: diff --git a/project/2021_webscraping_ipc_hotel/index.en.qmd b/project/2021_webscraping_ipc_hotel/index.en.qmd new file mode 100644 index 00000000..311e61ca --- /dev/null +++ b/project/2021_webscraping_ipc_hotel/index.en.qmd @@ -0,0 +1,42 @@ +--- +title: 'Consumer price indices for hotel overnight stays: the experience of webscraping + an online booking platform' +format: html +date: '2021-06-01' +image: webscraping_ipc.png +listing: +- id: similar-project + contents: ../*/index.qmd + type: grid + include: + categories: + - webscraping + - CPI + - mobile phone data + - scanner data + sort: date desc + page-size: 6 + categories: true +categories: +- in production +- webscraping +- CPI +- Insee +--- + +# Project summary + +| | *Webscraping* of the prices of hotel nights to construct the consumer price index | +|---| -------------------------------------------------------------------------| +| **Project details** | The consumer price index for overnight stays in hotels is calculated from data collected in the field by INSEE surveyors, who record the price of a room for one night on the same day for 2 people, including breakfast. In order to improve the index and overcome some of the limitations of the current method, this project is exploring an innovative collection method, the *webscraping* from a booking site.
Once the data has been collected online, it is raw and needs to be cleaned up: for example, the value for a characteristic is not necessarily described in the same way between two observations. To overcome the problems associated with a fixed basket index, the final index is constructed from homogeneous classes. Finally, the results of the index calculated using data from the online booking platform are compared with the published index. | +| **Players** | Insee | +| **Project results** | The new price collection methodology is now used in production. | +| **Project products and documentation** | - [Consumer price indices for hotel overnight stays: the experience of webscraping an online booking platform](https://journees-methodologie-statistique.insee.net/indices-des-prix-a-la-consommation-des-nuitees-hotelieres-lexperience-du-webscraping-dune-plateforme-de-reservation-en-ligne/), 2022 Statistical Methodology Days (Journées de méthodologie statistique 2022) | + +# Similar projects + +::: {#similar-project} +::: + + + diff --git a/project/2021_webscraping_ipc_hotel/index.qmd b/project/2021_webscraping_ipc_hotel/index.qmd new file mode 100644 index 00000000..bd29678a --- /dev/null +++ b/project/2021_webscraping_ipc_hotel/index.qmd @@ -0,0 +1,40 @@ +--- +title: "Indices des prix à la consommation des nuitées hôtelières : l’expérience du webscraping d’une plateforme de réservation en ligne" + +format: html +date: '2021-06-01' +image: webscraping_ipc.png +listing: + id: similar-project + contents: ../*/index.qmd + type: grid + include: + categories: + - "webscraping" + - "IPC" + - "données de téléphonie mobile" + - "données de caisse" + sort: "date desc" + page-size: 6 + categories: true +categories: +- en production +- webscraping +- IPC +- Insee +--- + + +# Synthèse du projet + +| | _Webscraping_ des prix de nuitées hôtelières pour construire l'indice des prix à la consommation | +|-----------|------------------------------------------------------------------| +| **Détail du projet** | L’indice des prix à la consommation pour les nuitées hôtelières est calculé à partir de relevés effectués sur le terrain par des enquêtrices et enquêteurs de l’Insee qui relèvent le prix d’une chambre pour une nuitée le jour même pour 2 personnes avec petit-déjeuner. Afin d’améliorer l’indice et de s’émanciper de certaines limites de la méthode actuelle, ce projet explore une méthode de collecte innovante, le _webscraping_ depuis un site de réservation.
Après récolte des données en ligne, celles-ci sont brutes et nécessitent un nettoyage : par exemple la valeur pour une caractéristique n’est pas forcément décrite de la même manière entre deux observations. Pour palier les problèmes liés à un indice à panier fixe, l'indice final est construit à partir de classes homogènes. Enfin, les résultats de l’indice calculé avec les données de la plateforme de réservation en ligne avec l’indice publié. | +| **Acteurs** | Insee | +| **Résultats du projet** | La nouvelle méthodologie de récolte des prix est maintenant en production. | +| **Produits et documentation du projet** | - [Indices des prix à la consommation des nuitées hôtelières : l’expérience du webscraping d’une plateforme de réservation en ligne](https://journees-methodologie-statistique.insee.net/indices-des-prix-a-la-consommation-des-nuitees-hotelieres-lexperience-du-webscraping-dune-plateforme-de-reservation-en-ligne/), Journées de méthodologie statistique 2022 | + +# Projets similaires + +::: {#similar-project} +::: diff --git a/project/2021_webscraping_ipc_hotel/webscraping_ipc.png b/project/2021_webscraping_ipc_hotel/webscraping_ipc.png new file mode 100644 index 00000000..15b80748 Binary files /dev/null and b/project/2021_webscraping_ipc_hotel/webscraping_ipc.png differ diff --git a/project/2022_Curiexplore/curiexplore.png b/project/2022_Curiexplore/curiexplore.png new file mode 100644 index 00000000..38e2e032 Binary files /dev/null and b/project/2022_Curiexplore/curiexplore.png differ diff --git a/project/2022_Curiexplore/index.en.qmd b/project/2022_Curiexplore/index.en.qmd new file mode 100644 index 00000000..f361a94e --- /dev/null +++ b/project/2022_Curiexplore/index.en.qmd @@ -0,0 +1,37 @@ +--- +title: Curiexplore, the platform for comparing national education and research policies +description: | + Interactive visualisation of the teaching environment + and research environment in different countries. +format: html +date: '2022-01-01' +image: curiexplore.png +categories: +- webscraping +- in production +- datavisualisation +- SIES +listing: +- id: similar-project + contents: ../*/index.qmd + type: grid + include: + categories: ["webscraping"] + sort: "date desc" + page-size: 6 +--- + +# Project summary + +| | Curiexplore, the platform for comparing national education and research policies | +| ---- | --------------------- | +| **Project details** | The `CurieXplore` project, developed by `SIES` (the statistical department of the French Ministry of Higher Education and Research) offers an interactive visualisation of the teaching and research environment in different countries.
The platform combines textual content collected by SIES from the French diplomatic network and regularly webscrapped data from international statistical sources (UNESCO, World Bank, OECD, Eurostat, etc.) or private sources (ranking of HE institutions such as Shanghai, UMULTIRANK or THE). | +| **Players** | Statistical Service of the Ministry of Higher Education and Research ([SIES](https://www.enseignementsup-recherche.gouv.fr/fr/sies)) | +| **Project results** | The project is now in production, with a dedicated website available at [curiexplore.enseignementsup-recherche.gouv.fr (in French)](https://curiexplore.enseignementsup-recherche.gouv.fr/). | +| **Project code** | - The code is available on GitHub {{< fa brands github >}} [https://github.com/dataesr/curiexplore-ui](https://github.com/dataesr/curiexplore-ui). | + +# Similar projects + +::: {#similar-project} +::: + diff --git a/project/2022_Curiexplore/index.qmd b/project/2022_Curiexplore/index.qmd new file mode 100644 index 00000000..80645294 --- /dev/null +++ b/project/2022_Curiexplore/index.qmd @@ -0,0 +1,38 @@ +--- +title: Curiexplore, la plateforme de comparaison des politiques nationales d’enseignement et de recherche +description: | + Visualisation interactive de l'environnement de l'enseignement + et de la recherche dans les différents pays. +format: html +date: '2022-01-01' +image: curiexplore.png +categories: +- webscraping +- en production +- datavisualisation +- SIES +listing: +- id: similar-project + contents: ../*/index.qmd + type: grid + include: + categories: ["webscraping"] + sort: "date desc" + page-size: 6 +--- + + +# Synthèse du projet + +| | Curiexplore, la plateforme de comparaison des politiques nationales d’enseignement et de recherche | +|-----------|------------------------------------------------------------------| +| **Détail du projet** | Le projet `CurieXplore`, développé par le `SIES` (service statistique du Ministère de l'Enseignement Supérieur et de la Recherche) propose une visualisation interactive de l'environnement de l'enseignement et de la recherche dans les différents pays.
La plateforme combine du contenu textuel collecté par le SIES auprès du réseau diplomatique français et des données issues de sources statistiques internationales (Unesco, banque mondiale, OCDE, Eurostat, ...) ou privées (classements d’Etablissements d’ES comme Shanghai, UMULTIRANK ou THE) moissonnées automatiquement régulièrement (_webscraping_). | +| **Acteurs** | Service statistique du Ministère de l'Enseignement Supérieur et de la Recherche ([SIES](https://www.enseignementsup-recherche.gouv.fr/fr/sies)) | +| **Résultats du projet** | Le projet est en production, avec un site dédié disponible sur [curiexplore.enseignementsup-recherche.gouv.fr](https://curiexplore.enseignementsup-recherche.gouv.fr/). | +| **Code du projet** | - Le code est disponible sur GitHub {{< fa brands github >}} [https://github.com/dataesr/curiexplore-ui](https://github.com/dataesr/curiexplore-ui). | + +# Projets similaires + +::: {#similar-project} +::: + diff --git a/project/2022_Enquete_Budget_Famille/index.en.qmd b/project/2022_Enquete_Budget_Famille/index.en.qmd new file mode 100644 index 00000000..e356f700 --- /dev/null +++ b/project/2022_Enquete_Budget_Famille/index.en.qmd @@ -0,0 +1,38 @@ +--- +title: Methodological work on the Family Budget survey +description: Modernisation of the family budget survey using automatic classification + tools +format: html +authors: +- Nicolas +date: '2022-01-01' +image: visuel_Budget_des_familles_1.png +categories: +- automatic coding +- data extraction +- scanner data +listing: +- id: similar-project + contents: ../*/index.qmd + type: grid + include: + categories: + - automatic coding + sort: "date desc" + page-size: 6 +--- + +# Project summary + +| | Methodological work on the Family Budget survey | +| --- | --------------------------------------------------------------------------------- | +| **Details of the project** | The collection of the next Family Budget survey in 2026 will be very different from that of the previous survey (2017).
- In fact, some of the household consumption data will be collected through a **mobile application** made available to the households surveyed.
- In addition, the products derived from the consumption data will no longer be recorded in the database by the interviewers, but by a data entry or automatic extraction service provider.
There are two main strands to this experiment:
- The first involves testing open-source solutions from**automatic extraction of the contents of till receipts** in order to be able to work more effectively with partners such as Teklia and potentially carry out some of the extraction work in-house;
- The second (main) axis is around the **automatic coding of consumer products in the COICOP nomenclature** nomenclature: training of a classification model on data from the previous survey and development of an optimal recovery strategy. | +| **Stakeholders** | Insee | +| **Project results** | Project in progress | +| **Project code** | -
- | + +# Similar projects + +::: {#similar-project} +::: + diff --git a/project/2022_Enquete_Budget_Famille/index.qmd b/project/2022_Enquete_Budget_Famille/index.qmd new file mode 100644 index 00000000..7682a302 --- /dev/null +++ b/project/2022_Enquete_Budget_Famille/index.qmd @@ -0,0 +1,42 @@ +--- +title: "Travaux méthodologiques sur l'enquête Budget de Famille" + +# Summary for listings and search engines +description: "Modernisation de l'enquête budget des familles par utilisation d'outils de classification automatique" + +format: html + +# Date published +date: 2022-01-01 + +image: visuel_Budget_des_familles_1.png + +categories: +- codification automatique +- extraction de données +- données de caisse + +listing: +- id: similar-project + contents: ../*/index.qmd + type: grid + include: + categories: + - codification automatique + sort: "date desc" + page-size: 6 +--- + +# Synthèse du projet + +| | Travaux méthodologiques sur l'enquête Budget de Famille | +|--------------|------------------------------------------------------------------------------------| +| **Détail du projet** | La collecte de la prochaine enquête Budget de Famille en 2026 sera largement différente de celle de l'enquête précédente (2017).
- En effet, une partie des données de consommation des ménages sera remontée à travers une **application mobile** mise à disposition des ménages enquêtés.
- De plus, l'enregistrement en base de données des produits issus des données de consommation ne se fera plus par les enquêteurs mais par un prestataire de saisie ou d'extraction automatique.
Deux axes existent dans cette expérimentation :
- Le premier axe consiste à tester les solutions open-source d'**extraction automatique du contenu de tickets de caisse**, afin de pouvoir mieux dialoguer avec des partenaires comme Teklia et potentiellement pouvoir procéder à une partie des extractions en interne ;
- Le second axe (principal) est autour de la **codification automatique des produits de consommation dans la nomenclature COICOP** : entraînement d'un modèle de classification sur les données de l'enquête précédente et élaboration d'une stratégie de reprise optimale. | +| **Acteurs** | Insee | +| **Résultats du projet** | Projet en cours | +| **Code du projet** | - [https://git.lab.sspcloud.fr/ssplab/bdf](https://git.lab.sspcloud.fr/ssplab/bdf)
- [https://git.lab.sspcloud.fr/ssplab/experimentation-bdf](https://git.lab.sspcloud.fr/ssplab/experimentation-bdf) | + +# Projets similaires + +::: {#similar-project} +::: diff --git a/project/2022_Enquete_Budget_Famille/visuel_Budget_des_familles_1.png b/project/2022_Enquete_Budget_Famille/visuel_Budget_des_familles_1.png new file mode 100644 index 00000000..3c0dfab3 Binary files /dev/null and b/project/2022_Enquete_Budget_Famille/visuel_Budget_des_familles_1.png differ diff --git a/project/2022_JOCAS/index.en.qmd b/project/2022_JOCAS/index.en.qmd new file mode 100644 index 00000000..1ca2e7ac --- /dev/null +++ b/project/2022_JOCAS/index.en.qmd @@ -0,0 +1,38 @@ +--- +title: Jocas, webscraping online job offers +description: The project `Jocas` (Job offers collection and analysis system) project + enables the DARES (Ministerial Statistical Office for Labour) to automatically + collect job offers online in order to compile statistics on the labour market. +format: html +date: '2022-01-01' +image: jocas.png +categories: +- webscraping +- in production +- automatic coding +- DARES +listing: +- id: similar-project + contents: ../*/index.qmd + type: grid + include: + categories: ["webscraping", "automatic coding"] + sort: "date desc" + page-size: 6 +--- + +# Project summary + +| | Online job vacancies, a new source of labour market data | +| --- | ------------------------ | +| **Project details** | In just a few years, the Internet has become a new source of information on the job market. According to the Dares Job Offer and Recruitment survey (Ofer), 95% of job advertisements were published on the Internet in 2016, compared with 53% in 2005. With this in mind, Dares decided to collect online job offers published on around fifteen websites to create a new database of job offers: Jocas (Job offers collection and analysis system). Various tools are being used to build this new database: webscraping, automatic text classification algorithms and de-duplication.
For 2019, the Jocas database can be compared with the usual sources of public statistics on job vacancies, whether administrative sources, such as vacancies advertised by Pôle emploi and Declarations Préliminaires à l'embauche (DPAE) from Urssaf, or data from surveys such as Pôle emploi's "Besoins en main-d'œuvre" (BMO), INSEE's "Emploi" survey, and DARES' "Activité et conditions d'emploi de la main-d'œuvre" (Acemo) survey. The results show that Jocas covers occupations unevenly. Occupations with a high proportion of managerial staff or that recruit a lot of people online tend to be over-represented. Conversely, those with a high proportion of multiple recruitments or using informal recruitment channels tend to be under-represented. | +| **Players** | [DARES](https://dares.travail-emploi.gouv.fr/) | +| **Project results** | Online vacancy data has been used to calculate tensions on the labour market. They were also used to produce the table monitoring the labour market situation in 2020-2021 during the Covid-19 crisis. Jocas data is freely accessible to students, researchers and civil servants. Access to the data may also be granted for statistical and non-commercial use, on request from DARES. The database is accessible on the [INSEE's SSPCloud pl](https://datalab.sspcloud.fr/) by following the path 'projet-jocas-prod/diffusion/JOCAS'.| +| **Project products and documentation** |- [Description on the DARES website](https://dares.travail-emploi.gouv.fr/publication/les-offres-demploi-en-ligne-nouvelle-source-de-donnees-sur-le-marche-du-travail)
- [Working document](https://dares.travail-emploi.gouv.fr/sites/default/files/ed7db1ecec02433585a7654411102726/DE%20258%20Offres%20demploi%20en%20ligne.pdf)
- [Hackathon in March 2023](https://dares.travail-emploi.gouv.fr/actualite/un-hackathon-pour-dedoubler-les-offres-demploi-en-ligne) on the duplication of job offers
- [Project news](https://dares.travail-emploi.gouv.fr/actualite/suivre-les-offres-demploi-en-ligne-pour-mieux-comprendre-le-marche-du-travail)
- [Training](https://dares.travail-emploi.gouv.fr/enquete-source/job-offers-collection-and-analysis-system) to use the JOCAS database | +| **Project code** | - Code repo is available on GitHub {{< fa brands github >}} [https://github.com/OnlineJobVacanciesESSnetBigData/JobTitleProcessing_FR](https://github.com/OnlineJobVacanciesESSnetBigData/JobTitleProcessing_FR) | + +# Similar projects + +::: {#similar-project} +::: + diff --git a/project/2022_JOCAS/index.qmd b/project/2022_JOCAS/index.qmd new file mode 100644 index 00000000..04f3bbc8 --- /dev/null +++ b/project/2022_JOCAS/index.qmd @@ -0,0 +1,37 @@ +--- +title: Jocas, webscraping des offres d'emploi en ligne +description: Le projet `Jocas` (Job offers collection and analysis system) permet à la DARES (Service statistique ministériel Travail) de collecter automatique des offres d’emploi en ligne pour construire des statistiques sur le marché du travail. +format: html +date: 2022-01-01 +image: jocas.png +categories: +- webscraping +- en production +- codification automatique +- DARES +listing: +- id: similar-project + contents: ../*/index.qmd + type: grid + include: + categories: ["webscraping", "codification automatique"] + sort: "date desc" + page-size: 6 +--- + + +# Synthèse du projet + +| | Les offres d’emploi en ligne, nouvelle source de données sur le marché du travail | +|--------------|------------------------------------------------------------------------------------| +| **Détail du projet** | En quelques années, Internet est devenu une nouvelle source d’information sur le marché du travail. Selon l’enquête Offre d'emploi et recrutement (Ofer) de la Dares, 95 % des annonces d’offres d’emploi ont fait l’objet d’une publication sur Internet en 2016 contre 53 % en 2005. Forte de ce constat, la Dares a décidé de collecter les offres d’emploi en ligne publiées sur une quinzaine de sites pour en faire une nouvelle base de données sur les offres d’emploi : Jocas (Job offers collection and analysis system). Différents outils sont utilisés pour construire cette nouvelle base de données : webscraping, algorithme de classification automatique de texte, déduplication.
Sur l’année 2019, la base Jocas peut être comparée aux sources usuelles de la statistique publique sur l’offre d’emploi, qu’il s’agisse de sources administratives, comme les offres diffusées par Pôle emploi et les Déclarations préalables à l’embauche (DPAE) des Urssaf, ou bien des données issues d’enquête telles que celle sur les Besoins en main-d’œuvre (BMO) de Pôle emploi, l’enquête Emploi de l’Insee, l’enquête Activité et conditions d’emploi de la main-d’œuvre (Acemo) de la Dares. Il en ressort que les métiers sont inégalement couverts par Jocas. Les domaines professionnels avec une forte proportion de cadres ou effectuant beaucoup de recrutements en ligne ont tendance à être surreprésentés. Au contraire, ceux comptabilisant beaucoup de recrutements multiples ou mobilisant des canaux de recrutement informels sont plutôt sous-représentés. | +| **Acteurs** | [DARES](https://dares.travail-emploi.gouv.fr/) | +| **Résultats du projet** | Les données d’offres en ligne ont notamment été intégrées au calcul des tensions sur le marché du travail. Elles ont également été utilisées pour la production du tableau de suivi de la situation du marché du travail en 2020-2021 lors de la crise du Covid-19. les données Jocas sont en accès libre pour les étudiants, les chercheurs et les agents de la fonction publique. L’accès aux données peut également être accordé pour un usage statistique et non commercial, sur demande auprès de la Dares. La base est notamment accessible sur la plateforme [SSPCloud de l’Insee](https://datalab.sspcloud.fr/), en suivant le chemin d’accès ‘projet-jocas-prod/diffusion/JOCAS’.| +| **Produits et documentation du projet** | - [Description sur le site de la DARES](https://dares.travail-emploi.gouv.fr/publication/les-offres-demploi-en-ligne-nouvelle-source-de-donnees-sur-le-marche-du-travail)
- [Document de travail](https://dares.travail-emploi.gouv.fr/sites/default/files/ed7db1ecec02433585a7654411102726/DE%20258%20Offres%20demploi%20en%20ligne.pdf)
- [Hackathon en mars 2023](https://dares.travail-emploi.gouv.fr/actualite/un-hackathon-pour-dedoubler-les-offres-demploi-en-ligne) sur le dédoublement des offres d'emploi
- [Actualités du projet](https://dares.travail-emploi.gouv.fr/actualite/suivre-les-offres-demploi-en-ligne-pour-mieux-comprendre-le-marche-du-travail)
- [Formation](https://dares.travail-emploi.gouv.fr/enquete-source/job-offers-collection-and-analysis-system) pour utiliser la base JOCAS| +| **Code du projet** | - Le code est disponible sur GitHub {{< fa brands github >}} [https://github.com/OnlineJobVacanciesESSnetBigData/JobTitleProcessing_FR](https://github.com/OnlineJobVacanciesESSnetBigData/JobTitleProcessing_FR) | + +# Projets similaires + +::: {#similar-project} +::: + diff --git a/project/2022_JOCAS/jocas.png b/project/2022_JOCAS/jocas.png new file mode 100644 index 00000000..8cb11de7 Binary files /dev/null and b/project/2022_JOCAS/jocas.png differ diff --git a/project/2022_alimentation/index.en.qmd b/project/2022_alimentation/index.en.qmd new file mode 100644 index 00000000..658b262a --- /dev/null +++ b/project/2022_alimentation/index.en.qmd @@ -0,0 +1,48 @@ +--- +title: Enriching case data with nutritional information to analyse the impact of consumption + on health +format: html +date: '2022-01-01' +image: ../../../assets/media/logo_ssm_insee.webp +categories: +- machine learning +- Insee +- COICOP +- scanner data +- matching +- experiment stopped +- fasttext +- automatic coding +listing: +- id: similar-project + contents: ../*/index.qmd + type: grid + include: + categories: + - matching + - automatic coding + - fasttext + - scanner data + - mobile phone data + - credit card data + - bank account data + sort: date desc + page-size: 6 + categories: true +--- + +# Project summary + +| | Enriching case data with nutritional information to analyse the impact of consumption on health | +|--- | ----------------------------------------------------------------------- | +| **Project details** | In addition to the many well-documented dimensions of inequality (income, wealth, education, housing, access to healthcare and public services in general), disparities in food consumption are also likely to be a source of health inequalities, as well as social and territorial markers. Checkout data could provide a very rich description of local consumption, provided that product identifiers allow enrichment with external sources, such as nutritional information. The aim of this project is to enrich supermarket data with nutritional information extracted from Open Food Facts, supplemented by Ciqual data from Anses. | +| **Players** | Insee | +| **Project results** | To compensate for the partial matching via the barcode, a method for efficiently matching short labels was implemented. After a pre-processing stage to normalise short labels, fuzzy matching techniques are implemented. These are based on several tokenizers (including n-grams) by querying an ElasticSearch custom index and validating candidate echoes with a Levenstein distance. The pipeline consists of several stages successively relaxing constraints to find relevant candidates. Finally, the final match is evaluated using a similarity measure based on word embedding obtained by training a Siamese network on the exact match via barcodes. The data used, covering the period 2015-2018, is that of several chains belonging to the same mass retail group (relevanC). | +| **Project products and documentation** | - [Enriching checkout data with nutritional information: a fuzzy matching approach on high-dimensional data](https://journees-methodologie-statistique.insee.net/enrichissement-de-donnees-de-caisses-a-partir-dinformations-nutritionnelles-une-approche-par-appariement-flou-sur-donnees-de-grande-dimension/), 2022 Statistical Methodology Days (Journées de méthodologie statistique 2022) | + +# Similar projects + +::: {#similar-project} +::: + + diff --git a/project/2022_alimentation/index.qmd b/project/2022_alimentation/index.qmd new file mode 100644 index 00000000..fde817c9 --- /dev/null +++ b/project/2022_alimentation/index.qmd @@ -0,0 +1,48 @@ +--- +title: Enrichissement de données de caisses à partir de données d'informations nutritionnelles pour analyser l'impact de la consommation sur la santé +format: html +date: '2022-01-01' +image: ../../assets/media/logo_ssm_insee.webp +categories: +- machine learning +- Insee +- COICOP +- données de caisse +- appariement +- expérimentation arrêtée +- fasttext +- codification automatique +listing: +- id: similar-project + contents: ../*/index.qmd + type: grid + include: + categories: + - "appariement" + - "codification automatique" + - "fasttext" + - données de caisse + - données de téléphonie mobile + - données CB + - données comptes bancaires + sort: "date desc" + page-size: 6 + categories: true +--- + + +# Synthèse du projet + +| | Enrichissement de données de caisses à partir de données d'informations nutritionnelles pour analyser l'impact de la consommation sur la santé | +|-----------|------------------------------------------------------------------| +| **Détail du projet** | Au-delà des multiples dimensions largement documentées d’inégalités (revenu, patrimoine, éducation, logement, accès aux soins et aux services publics en général), des disparités dans la consommation de biens alimentaires sont également susceptibles d’être la source d’inégalités de santé, ainsi que des marqueurs sociaux et territoriaux. Les données de caisse pourraient offrir une description très riche de la consommation locale, à condition que les identifiants des produits permettent des enrichissement avec des sources externes, comme des informations nutritionnelles. Ce projet a pour but d'enrichir des données de la grande distribution avec des informations nutritionnelles extraites d’Open Food Facts, complétées par les données Ciqual de l’Anses. | +| **Acteurs** | Insee | +| **Résultats du projet** | Pour compenser l’appariement partiel via le code-barre, une méthode pour apparier efficacement des libellés courts est mise en place. Après une étape de prétraitement pour normaliser des libellés courts, des techniques d’appariement floue sont mises en place. Elles sont basées sur plusieurs tokenizers (y compris les n-grammes) en interrogeant un index personnalisé ElasticSearch et en validant les échos candidats avec une distance de Levenstein. Le pipeline est composé de plusieurs étapes relâchant successivement les contraintes pour trouver des candidats pertinents. Enfin, l'appariement final est évalué par une mesure de similarité basée sur un word embedding obtenu en entraînant un réseau siamois sur l’appariement exact via les code-barres. Les données mobilisées, portant sur la période 2015-2018, sont celles de plusieurs enseignes d’un même groupe de la grande distribution (relevanC). | +| **Produits et documentation du projet** | - [Enrichissement de données de caisses à partir d’informations nutritionnelles : une approche par appariement flou sur données de grande dimension](https://journees-methodologie-statistique.insee.net/enrichissement-de-donnees-de-caisses-a-partir-dinformations-nutritionnelles-une-approche-par-appariement-flou-sur-donnees-de-grande-dimension/), Journées de méthodologie statistique 2022 | + +# Projets similaires + +::: {#similar-project} +::: + + diff --git a/project/2022_bso/bso.png b/project/2022_bso/bso.png new file mode 100644 index 00000000..cd9afba3 Binary files /dev/null and b/project/2022_bso/bso.png differ diff --git a/project/2022_bso/bso_en.png b/project/2022_bso/bso_en.png new file mode 100644 index 00000000..b4c86cd3 Binary files /dev/null and b/project/2022_bso/bso_en.png differ diff --git a/project/2022_bso/index.en.qmd b/project/2022_bso/index.en.qmd new file mode 100644 index 00000000..7a904843 --- /dev/null +++ b/project/2022_bso/index.en.qmd @@ -0,0 +1,38 @@ +--- +title: Open Science Monitor +description: To be able to monitor the opening up of scientific publications (the + objective of the **national plan for open science**), the statistical service of + the Ministry of Higher Education and Research (SIES) has created a tool to monitor + the implementation of public policy measures in favour of open science. +format: html +date: '2022-01-01' +image: bso_en.png +categories: +- webscraping +- datavisualisation +- open-data +- in production +- SIES +listing: +- id: similar-project + contents: ../*/index.qmd + type: grid + include: + categories: ["webscraping"] + sort: "date desc" + page-size: 6 +--- + +# Project summary + +| | French Open Science Monitor | +| ----- | --------------------------------- | +| **Project details** | The generalisation of open access to scientific publications is one of the axes of the French national open science strategy, with the objective of a 100% open access rate in 2030. It facilitates, broadens and accelerates the dissemination of the results of research to scientific communities and to society in general: teachers, students, companies, associations, public policy actors, etc.

The French Open Science Monitor thus constructs open science indicators for publications, data, software and codes in order to measure the achievement of this objective.
As far as publications are concerned, as much metadata as possible is collected. It is then filtered to keep only French affiliations and enriched to track the open status of publications by identified discipline. The data is then published as open data. This method makes it possible to create the most exhaustive database of French publications in the world.
For data, software and codes, the scientific production is first listed. The text of the publication is then analysed to detect the availability of open access data, software or codes. Finally, monitoring indicators are produced and published. | +| **Players** | Statistical Service of the Ministry of Higher Education and Research ([SIES](https://www.enseignementsup-recherche.gouv.fr/fr/sies)) | +| **Project results** | The project is presented on the dedicated website : . It includes a [methodology](https://frenchopensciencemonitor.esr.gouv.fr/about/methodology) | +| **Project code** | The code files are available on [GitHub {{< fa brands github >}}](https://github.com/search?q=org%3Adataesr%20bso&type=repositories) | + +# Similar projects related to webscraping + +::: {#similar-project} +::: diff --git a/project/2022_bso/index.qmd b/project/2022_bso/index.qmd new file mode 100644 index 00000000..5efde0f6 --- /dev/null +++ b/project/2022_bso/index.qmd @@ -0,0 +1,37 @@ +--- +title: Baromètre de la science ouverte +description: Pour être en mesure de suivre l'ouverture des publications scientifiques (objectif de la stratégie nationale de science ouverte), le service statistique du Ministère de l'Enseignement Supérieur et de la Recherche (le SIES) a créé un outil de suivi de la mise en oeuvre des mesures de politiques publiques en faveur de la science ouverte. +format: html +date: '2022-01-01' +image: bso.png +categories: +- webscraping +- datavisualisation +- open-data +- en production +- SIES +listing: +- id: similar-project + contents: ../*/index.qmd + type: grid + include: + categories: ["webscraping"] + sort: "date desc" + page-size: 6 +--- + + +# Synthèse du projet + +| | Baromètre français de la science ouverte | +|-----------|------------------------------------------------------------------| +| **Détail du projet** | La généralisation de l'accès ouvert aux publications scientifiques est l'un des axes de la stratégie nationale de science ouverte, avec pour objectif un taux d'accès ouvert de 100 % en 2030 pour les articles de revue. En effet, l'accès ouvert facilite, élargit et accélère la diffusion des résultats de la recherche auprès des communautés scientifiques et des acteurs de la société en général : enseignants, étudiants, entreprises, associations, acteurs des politiques publiques, etc.

Le baromètre construit ainsi des indicateurs de la science ouverte pour les publications, données, logiciels et codes afin de mesurer l'atteinte de cet objectif.
Concernant les publications, un maximum de métadonnées sur les publications est collecté. Il est ensuite filtré pour ne garder que les affiliations françaises et puis enrichi pour suivre le statut d'ouverture des publications par discipline identifiée. Les données sont ensuite publiées en open-data. Cette méthode permet ainsi de constituer la base de données des publications françaises la plus exhaustive au monde.
Concernant les données, logiciels et codes, la production scientifique est d'abord répertoriée. Le texte de la publication est ensuite analysé pour détecter la mise à disposition de données, logiciels ou codes en accès ouvert. Des indicateurs de suivi sont enfin produits et publiés. | +| **Acteurs** | Service statistique du Ministère de l'Enseignement Supérieur et de la Recherche ([SIES](https://www.enseignementsup-recherche.gouv.fr/fr/sies)) | +| **Résultats du projet** | Le projet est présenté sur le site dédié : https://barometredelascienceouverte.esr.gouv.fr/. Il comprend notamment une [méthodologie](https://barometredelascienceouverte.esr.gouv.fr/a-propos/methodologie) | +| **Code du projet** | Les dossiers de code sont disponibles sur [GitHub {{< fa brands github >}}](https://github.com/search?q=org%3Adataesr%20bso&type=repositories) | + +# Projets similaires en lien avec le webscraping + +::: {#similar-project} +::: + diff --git a/project/2022_codif_ape/cards/cards1.qmd b/project/2022_codif_ape/cards/cards1.qmd new file mode 100644 index 00000000..a6cbc20b --- /dev/null +++ b/project/2022_codif_ape/cards/cards1.qmd @@ -0,0 +1,11 @@ + +--- +title: Séminaire DMS +image: https://upload.wikimedia.org/wikipedia/fr/thumb/1/10/Logo_Insee.svg/1200px-Logo_Insee.svg.png +date: "2023-09-01" +description: | + Description : Séminaire interne du département des méthodes statistiques de l'Insee +author: Thomas Faria et Tom Seimandi +website: https://inseefrlab.github.io/codif-ape-prez/slides/seminaire-dms-oct-2022/index.html +order: 1 +--- \ No newline at end of file diff --git a/project/2022_codif_ape/cards/cards10.qmd b/project/2022_codif_ape/cards/cards10.qmd new file mode 100644 index 00000000..06c6421e --- /dev/null +++ b/project/2022_codif_ape/cards/cards10.qmd @@ -0,0 +1,10 @@ +--- +title: Groupe de veille Codification Automatique n°10 +image: img/logo-card-10.jpg +date: "2025-03-05" +description: | + Description : Présentation du package torchFastText et ses performances sur la codification de l'APE +author: Meilame Tayebjee +website: https://inseefrlab.github.io/codif-ape-prez/slides/grp-veille-codif-auto-10/index.html +order: 10 +--- diff --git a/project/2022_codif_ape/cards/cards11.qmd b/project/2022_codif_ape/cards/cards11.qmd new file mode 100644 index 00000000..55c1e172 --- /dev/null +++ b/project/2022_codif_ape/cards/cards11.qmd @@ -0,0 +1,10 @@ +--- +title: Ateliers concepteurs +image: img/APE_CODE.png +date: "2025-04-04" +description: | + Description : Présentation non technique de la codification automatique de la NAF +author: Meilame Tayebjee +website: https://inseefrlab.github.io/codif-ape-prez/slides/ateliers-concepteurs/index.html +order: 11 +--- diff --git a/project/2022_codif_ape/cards/cards12.qmd b/project/2022_codif_ape/cards/cards12.qmd new file mode 100644 index 00000000..c4ee4af8 --- /dev/null +++ b/project/2022_codif_ape/cards/cards12.qmd @@ -0,0 +1,10 @@ +--- +title: Conférence UNECE +image: https://geneve-int.ch/sites/default/files/styles/scale_450x450/public/2021-06/UNECE-logo.png?itok=h7fLK1Qa +date: "2025-05-12" +description: | + Description : Presentation given during the UNECE Generative AI and Official Statistics Workshop 2025 +author: Thomas Faria +website: https://inseefrlab.github.io/codif-ape-prez/slides/unece-2025/index.html +order: 12 +--- diff --git a/project/2022_codif_ape/cards/cards13.qmd b/project/2022_codif_ape/cards/cards13.qmd new file mode 100644 index 00000000..909f3dda --- /dev/null +++ b/project/2022_codif_ape/cards/cards13.qmd @@ -0,0 +1,10 @@ +--- +title: WP10 Project Presentation +image: https://cros.ec.europa.eu/system/files/inline-images/profilo%20linkedin.png +date: "2025-05-22" +description: | + Description : Presentation given during the WP10 +author: Thomas Faria, Meilame Tayebjee +website: https://inseefrlab.github.io/codif-ape-prez/slides/wp10-country-project/index.html +order: 13 +--- diff --git a/project/2022_codif_ape/cards/cards14.qmd b/project/2022_codif_ape/cards/cards14.qmd new file mode 100644 index 00000000..4a0e6908 --- /dev/null +++ b/project/2022_codif_ape/cards/cards14.qmd @@ -0,0 +1,32 @@ +--- +title: PyData Paris +image: img/pydata-logo-final.png +date: "2025-10-01" +description: | + Description : Presentation at PyData Paris 2025 +author: Cédric Couralet, Meilame Tayebjee +website: https://inseefrlab.github.io/codif-ape-prez/slides/pydata/index.html +order: 14 +--- + + Faciliter l'entraînement mais pas forcément --> + + + diff --git a/project/2022_codif_ape/cards/cards15.qmd b/project/2022_codif_ape/cards/cards15.qmd new file mode 100644 index 00000000..a6b6a0df --- /dev/null +++ b/project/2022_codif_ape/cards/cards15.qmd @@ -0,0 +1,10 @@ +--- +title: Échange avec Statec - Luxembourg +image: img/statec_logo.jpg +date: "2025-09-23" +description: | + Description : Cas d'usage de Label Studio à la DSE de l'Insee +author: Nathan Randriamanana +website: https://inseefrlab.github.io/codif-ape-prez/slides/statec-echange-label-studio/index.html +order: 15 +--- diff --git a/project/2022_codif_ape/cards/cards2.qmd b/project/2022_codif_ape/cards/cards2.qmd new file mode 100644 index 00000000..88ad43cc --- /dev/null +++ b/project/2022_codif_ape/cards/cards2.qmd @@ -0,0 +1,11 @@ + +--- +title: Journée SSP Hub +image: img/avatar.png +date: "2023-04-17" +description: | + Description : Présentation lors de l'évènement de lancement du SSP Hub +author: Thomas Faria et Tom Seimandi +website: https://inseefrlab.github.io/codif-ape-prez/slides/journee-ssphub/index.html +order: 2 +--- \ No newline at end of file diff --git a/project/2022_codif_ape/cards/cards3.en.qmd b/project/2022_codif_ape/cards/cards3.en.qmd new file mode 100644 index 00000000..9b7b29aa --- /dev/null +++ b/project/2022_codif_ape/cards/cards3.en.qmd @@ -0,0 +1,11 @@ + +--- +title: Conférence UNECE +image: https://geneve-int.ch/sites/default/files/styles/scale_450x450/public/2021-06/UNECE-logo.png?itok=h7fLK1Qa +date: "2023-06-05" +description: | + Description : Presentation given during the UNECE Machine Learning for Official Statistics Workshop 2023 +author: Thomas Faria and Tom Seimandi +website: https://inseefrlab.github.io/codif-ape-prez/slides/unece-conf/index.html +order: 3 +--- \ No newline at end of file diff --git a/project/2022_codif_ape/cards/cards3.qmd b/project/2022_codif_ape/cards/cards3.qmd new file mode 100644 index 00000000..9b7b29aa --- /dev/null +++ b/project/2022_codif_ape/cards/cards3.qmd @@ -0,0 +1,11 @@ + +--- +title: Conférence UNECE +image: https://geneve-int.ch/sites/default/files/styles/scale_450x450/public/2021-06/UNECE-logo.png?itok=h7fLK1Qa +date: "2023-06-05" +description: | + Description : Presentation given during the UNECE Machine Learning for Official Statistics Workshop 2023 +author: Thomas Faria and Tom Seimandi +website: https://inseefrlab.github.io/codif-ape-prez/slides/unece-conf/index.html +order: 3 +--- \ No newline at end of file diff --git a/project/2022_codif_ape/cards/cards4.qmd b/project/2022_codif_ape/cards/cards4.qmd new file mode 100644 index 00000000..5d401903 --- /dev/null +++ b/project/2022_codif_ape/cards/cards4.qmd @@ -0,0 +1,11 @@ + +--- +title: Formation BCEAO 2023 +image: https://upload.wikimedia.org/wikipedia/fr/a/a1/BCEAO-logo.png?20211030215428 +date: "2023-09-27" +description: | + Description : Présentation pour la formation Big Data donné à la BCEAO à Dakar +author: Romain Avouac, Thomas Faria et Tom Seimandi +website: https://inseefrlab.github.io/codif-ape-prez/slides/bceao-2023/index.html +order: 4 +--- \ No newline at end of file diff --git a/project/2022_codif_ape/cards/cards5.en.qmd b/project/2022_codif_ape/cards/cards5.en.qmd new file mode 100644 index 00000000..b8171b5f --- /dev/null +++ b/project/2022_codif_ape/cards/cards5.en.qmd @@ -0,0 +1,11 @@ + +--- +title: MLOps exhange with StatCan +image: https://upload.wikimedia.org/wikipedia/commons/1/12/Statistics_Canada_logo.svg +date: "2024-03-19" +description: | + Description : Slides used for an exchange with StatCan on MLOps +author: Romain Avouac, Thomas Faria et Tom Seimandi +website: https://inseefrlab.github.io/codif-ape-prez/slides/statcan-exchange/index.html +order: 5 +--- \ No newline at end of file diff --git a/project/2022_codif_ape/cards/cards5.qmd b/project/2022_codif_ape/cards/cards5.qmd new file mode 100644 index 00000000..b8171b5f --- /dev/null +++ b/project/2022_codif_ape/cards/cards5.qmd @@ -0,0 +1,11 @@ + +--- +title: MLOps exhange with StatCan +image: https://upload.wikimedia.org/wikipedia/commons/1/12/Statistics_Canada_logo.svg +date: "2024-03-19" +description: | + Description : Slides used for an exchange with StatCan on MLOps +author: Romain Avouac, Thomas Faria et Tom Seimandi +website: https://inseefrlab.github.io/codif-ape-prez/slides/statcan-exchange/index.html +order: 5 +--- \ No newline at end of file diff --git a/project/2022_codif_ape/cards/cards6.qmd b/project/2022_codif_ape/cards/cards6.qmd new file mode 100644 index 00000000..6d213999 --- /dev/null +++ b/project/2022_codif_ape/cards/cards6.qmd @@ -0,0 +1,11 @@ + +--- +title: Eurostat webinar +image: https://upload.wikimedia.org/wikipedia/commons/thumb/f/f6/Eurostat_Newlogo.png/800px-Eurostat_Newlogo.png +date: "2024-04-30" +description: | + Description : Presentation given during the NACE implementation webinar +author: Nathan Randriamanana +website: https://inseefrlab.github.io/codif-ape-prez/slides/eurostat-nace-rev-2024/index.html +order: 6 +--- diff --git a/project/2022_codif_ape/cards/cards7.qmd b/project/2022_codif_ape/cards/cards7.qmd new file mode 100644 index 00000000..92778e14 --- /dev/null +++ b/project/2022_codif_ape/cards/cards7.qmd @@ -0,0 +1,12 @@ + +--- +title: Échange avec l'Inserm +image: https://upload.wikimedia.org/wikipedia/commons/thumb/c/cd/Inserm.svg/1200px-Inserm.svg.png +date: "2024-05-07" +description: | + Description : Codification automatique de l'APE à l'Insee +author: Thomas Faria et Nathan Randriamanana +website: https://inseefrlab.github.io/codif-ape-prez/slides/inserm-echange/index.html +order: 7 +--- + diff --git a/project/2022_codif_ape/cards/cards8.qmd b/project/2022_codif_ape/cards/cards8.qmd new file mode 100644 index 00000000..369a8f52 --- /dev/null +++ b/project/2022_codif_ape/cards/cards8.qmd @@ -0,0 +1,13 @@ +--- +title: European Conference for Quality in Official Statistics 2024 +image: https://assets-global.website-files.com/648c7faf76cc874ddfcc8040/6554e80926bb869643d77f7b_Q2024%20-%20Logo-p-800.png +date: "2024-05-24" +description: | + Description : Retraining strategies for an economic activity classification model +author: Thomas Faria, Nathan Randriamanana, Tom Seimandi +website: https://inseefrlab.github.io/codif-ape-prez/slides/estoril-slides/index.html +paper: + text: Paper + url: /slides/estoril-paper/index.pdf +order: 8 +--- diff --git a/project/2022_codif_ape/cards/cards9.qmd b/project/2022_codif_ape/cards/cards9.qmd new file mode 100644 index 00000000..95b1e78d --- /dev/null +++ b/project/2022_codif_ape/cards/cards9.qmd @@ -0,0 +1,10 @@ +--- +title: Groupe de veille Codification Automatique n°9 +image: img/logo-card-9.jpg +date: "2024-11-06" +description: | + Description : Travaux sur le passage de la nomenclature NAF2008 Rev2.1 à la NAF2025 +author: Thomas Faria, Nathan Randriamanana +website: https://inseefrlab.github.io/codif-ape-prez/slides/grp-veille-codif-auto-9/index.html +order: 9 +--- diff --git a/project/2022_codif_ape/cards/img/APE_CODE.png b/project/2022_codif_ape/cards/img/APE_CODE.png new file mode 100644 index 00000000..44b90590 Binary files /dev/null and b/project/2022_codif_ape/cards/img/APE_CODE.png differ diff --git a/project/2022_codif_ape/cards/img/avatar.png b/project/2022_codif_ape/cards/img/avatar.png new file mode 100644 index 00000000..48d7bdbc Binary files /dev/null and b/project/2022_codif_ape/cards/img/avatar.png differ diff --git a/project/2022_codif_ape/cards/img/logo-card-10.jpg b/project/2022_codif_ape/cards/img/logo-card-10.jpg new file mode 100644 index 00000000..900e9419 Binary files /dev/null and b/project/2022_codif_ape/cards/img/logo-card-10.jpg differ diff --git a/project/2022_codif_ape/cards/img/logo-card-9.jpg b/project/2022_codif_ape/cards/img/logo-card-9.jpg new file mode 100644 index 00000000..0997dd96 Binary files /dev/null and b/project/2022_codif_ape/cards/img/logo-card-9.jpg differ diff --git a/project/2022_codif_ape/cards/img/pydata-logo-final.png b/project/2022_codif_ape/cards/img/pydata-logo-final.png new file mode 100644 index 00000000..4a1e14fb Binary files /dev/null and b/project/2022_codif_ape/cards/img/pydata-logo-final.png differ diff --git a/project/2022_codif_ape/cards/img/statec_logo.jpg b/project/2022_codif_ape/cards/img/statec_logo.jpg new file mode 100644 index 00000000..373f1a35 Binary files /dev/null and b/project/2022_codif_ape/cards/img/statec_logo.jpg differ diff --git a/project/2022_codif_ape/codif_ape_overall.png b/project/2022_codif_ape/codif_ape_overall.png new file mode 100644 index 00000000..7b1caa84 Binary files /dev/null and b/project/2022_codif_ape/codif_ape_overall.png differ diff --git a/project/2022_codif_ape/index.en.qmd b/project/2022_codif_ape/index.en.qmd new file mode 100644 index 00000000..cc269f7e --- /dev/null +++ b/project/2022_codif_ape/index.en.qmd @@ -0,0 +1,51 @@ +--- +title: Automatic coding of companies' main activity +description: Develop a machine learning algorithm to automate the classification of + companies' main activities and put it into production +format: html +authors: +- Nicolas +date: '2022-01-01' +image: codif_ape_overall.png +categories: +- Python +- automatic coding +- fasttext +- package +- in production +- MLFlow +listing: +- id: presentations + contents: cards/*.qmd + sort: order desc + categories: false + type: grid + template: ../../scripts/courses.ejs +- id: similar-project + contents: ../*/index.qmd + type: grid + include: + categories: ["automatic coding", "package"] + sort: "date desc" + page-size: 6 +--- + +# Project summary + +| | Automatic coding of companies' main activity | +| --- | --------------------------------------------------------------------------------- | +| **Project details** | The coding of companies' main activity (APE) on the basis of activity descriptions (in the form of free text) in the Sirene register was previously carried out using 6 deterministic coding environments mobilising a huge number of decision rules. The aim of the experiment is to **test the performance of statistical learning models in predicting the category of APE** category as part of the overhaul of the Sirene register and the introduction of a one-stop shop.
| +| **Stakeholders** | Insee | +| **Project results** | The model developed presents **similar performance to previous models** by automating them, and also offers decision support. The model has also been put into production, applying MLOps principles where possible.
Presentations and written materials relating to the project can be accessed at [this site](https://inseefrlab.github.io/codif-ape-prez/). | +| **Project code** | Accessible code repositories on [Github {{< fa brands github >}}](https://github.com/search?q=org%3AInseeFrLab%20codif-ape&type=repositories&p=1). They include:
- Code for annotating data using Label Studio ;
- Code for a coding web API deployed on the SSP Cloud ;
- Code implementing a visualisation dashboard for monitoring the activity of a coding model in production and accessible via a web API;
- Code for training APE classification models.
| + +# Project documents + +::: {#presentations} +::: + +# Similar projects + +::: {#similar-project} +::: + diff --git a/project/2022_codif_ape/index.qmd b/project/2022_codif_ape/index.qmd new file mode 100644 index 00000000..f4cc1957 --- /dev/null +++ b/project/2022_codif_ape/index.qmd @@ -0,0 +1,59 @@ +--- +title: "Codification automatique de l'activité principale des entreprises" + +# Summary for listings and search engines +description: "Développer un algorithme de machine learning pour automatiser la classification de l'activité principale des entreprises et mise en production" + +format: html + +# Date published +date: 2022-01-01 + +image: codif_ape_overall.png + +categories: +- Python +- codification automatique +- fasttext +- package +- en production +- MLFlow + +listing: +- id: presentations + contents: cards/*.qmd + sort: "order desc" + categories: false + type: grid + template: ../../scripts/courses.ejs +- id: similar-project + contents: ../*/index.qmd + type: grid + include: + categories: ["codification automatique", "package"] + sort: "date desc" + page-size: 6 + +--- + +# Synthèse du projet + +| | Codification automatique de l'activité principale des entreprises | +|--------------|------------------------------------------------------------------------------------| +| **Détail du projet** | La codification de l'activité principale exercée (APE) des entreprises à partir de descriptions d'activité (sous forme de texte libre) dans le répertoire Sirene était auparavant réalisée grâce à 6 environnements de codification déterministes mobilisant un nombre énorme de règles de décision. Le but de l’expérimentation est de **tester les performances des modèles d’apprentissage statistique pour prédire la catégorie d’APE** dans le cadre de la refonte du répertoire Sirene et de la mise en place d'un guichet unique.
| +| **Acteurs** | Insee | +| **Résultats du projet** | Le modèle développé présente des **performances similaires aux modèles précédents**, en les automatisant, et propose par ailleurs une aide à la décision. Le modèle a par ailleurs été mis en production, en appliquant quand cela était possible les principes MLOps.
Les présentations et supports écrits concernant le projet sont accessibles sur [ce site](https://inseefrlab.github.io/codif-ape-prez/). | +| **Code du projet** | Dépôts de code accessibles sur [Github {{< fa brands github >}}](https://github.com/search?q=org%3AInseeFrLab%20codif-ape&type=repositories&p=1). Ils comprennent :
- Code relatif à l'annotation de données à l'aide de Label Studio ;
- Code d'une API web de codification déployée sur le SSP Cloud ;
- Code qui implémente un dashboard de visualisation permettant de surveiller l'activité d'un modèle de codification en production et accessible via une API web ;
- Code pour l'entraînement de modèles de classification de l'APE.
| + +# Documents relatifs au projet + + +::: {#presentations} +::: + +# Projets similaires + +::: {#similar-project} +::: + + diff --git a/project/2022_drees_dataviz/dataviz.png b/project/2022_drees_dataviz/dataviz.png new file mode 100644 index 00000000..6937c76d Binary files /dev/null and b/project/2022_drees_dataviz/dataviz.png differ diff --git a/project/2022_drees_dataviz/index.en.qmd b/project/2022_drees_dataviz/index.en.qmd new file mode 100644 index 00000000..99a9e615 --- /dev/null +++ b/project/2022_drees_dataviz/index.en.qmd @@ -0,0 +1,24 @@ +--- +title: Visualisations of SARS-Cov2 test data +description: Weekly publication of data relating to SARS-Cov2 detection tests by Shiny + from the SI-DEP information system +format: html +date: '2023-06-01' +image: dataviz.png +categories: +- R +- datavisualisation +- experiment stopped +- DREES +- open-data +--- + +# Project summary + +| | Automatic publication and data-visualisation of Covid-19 test data | +| --- | ----------------------------------------------- | +| **Project details** | In recent years, the `DREES` (the statistical department of the Ministry of Health), has been making available, as part of its strategy *open-data* as part of its open-data strategy, is making available interactive visualisations of data on a variety of topics (Covid, of course, but also the number of healthcare professionals, pensions and retirement ages, etc.). These visualisations are based on {{< fa brands r-project >}} `Shiny` and give users the freedom to play with the data and update exploratory graphs.
Between October 2020 and June 2023,3 DREES provided data on the volume and validation times for RT-PCR and antigen tests on a weekly basis. These results are based on data from the SI-DEP information system. | +| **Players** | DREES | +| **Project results** | The project published automatically updated information on Covid-19 tests and deadlines between 2020 and mid-2023. The data is still available on the but has not been updated since June 2023. | + + diff --git a/project/2022_drees_dataviz/index.qmd b/project/2022_drees_dataviz/index.qmd new file mode 100644 index 00000000..910f884d --- /dev/null +++ b/project/2022_drees_dataviz/index.qmd @@ -0,0 +1,22 @@ +--- +title: Visualisations des données liées aux tests du SARS-Cov2 +description: Publication hebdomadaire des données liées aux tests de détection du SARS-Cov2 par Shiny à partir du système d'information SI-DEP +format: html +date: '2023-06-01' +image: dataviz.png +categories: +- R +- datavisualisation +- expérimentation arrêtée +- DREES +- open-data +--- + + +# Synthèse du projet + +| | Publication automatique et data-visualisation des données sur les tests du Covid-19 | +|--------------|------------------------------------------------------------------------------------| +| **Détail du projet** | Depuis quelques années, la `DREES` (service statistique du Ministère de la Santé), met à disposition, dans le cadre de sa stratégie _open-data_, des visualisations interactives de données sur des thèmes variés (Covid bien-sûr mais aussi effectifs des professionnels de santé, pensions et âges de retraites...). Ces visualisations reposent sur {{< fa brands r-project >}} `Shiny` et offrent ainsi la liberté à l'utilisateur de jouer avec les données et obtenir une mise à jour de graphiques exploratoires.
Entre octobre 2020 et juin 20233, la DREES a ainsi mis à disposition les données sur le volume et les délais de validation des tests RT-PCR et antigéniques de manière hebdomadaire. Ces résultats sont issus des données du système d’information SI-DEP. | +| **Acteurs** | DREES | +| **Résultats du projet** | Le projet a publié des informations mises à jour automatiquement sur les tests liés au Covid-19 et les délais entre 2020 et mi-2023. Les données sont toujours disponibles sur le site [https://drees.shinyapps.io/delais_test_app/](https://drees.shinyapps.io/delais_test_app/) mais ne sont plus mises à jour depuis juin 2023. | diff --git a/project/2022_satellites/Satellites_Mayotte.png b/project/2022_satellites/Satellites_Mayotte.png new file mode 100644 index 00000000..13f79863 Binary files /dev/null and b/project/2022_satellites/Satellites_Mayotte.png differ diff --git a/project/2022_satellites/cards/article_jms.qmd b/project/2022_satellites/cards/article_jms.qmd new file mode 100644 index 00000000..a705ed0f --- /dev/null +++ b/project/2022_satellites/cards/article_jms.qmd @@ -0,0 +1,11 @@ +--- +title: Article JMS 2025 +image: img/toad_DT.jpg +date: "2025-11-25" +description: | + Description : Utilisation des images satellites pour améliorer le repérage des logements à Mayotte. +author: Maëlys Bernard, Raya Berova et Thomas Faria +website: https://inseefrlab.github.io/satellite-images-docs/src/article_jms/index.pdf +order: 8 +lang: fr-FR +--- \ No newline at end of file diff --git a/project/2022_satellites/cards/cratt_card.qmd b/project/2022_satellites/cards/cratt_card.qmd new file mode 100644 index 00000000..63ae50b1 --- /dev/null +++ b/project/2022_satellites/cards/cratt_card.qmd @@ -0,0 +1,10 @@ +--- +title: Application web +image: img/toad_cratt.jpeg +date: last-modified +description: | + Description : Application web à destination des agents facilitant l'utilisation des résultats fournis par le modèle de segmentation. +website: https://inseefrlab.github.io/satellite-images-webapp/ +order: 2 +lang: fr-FR +--- \ No newline at end of file diff --git a/project/2022_satellites/cards/documentation_card.qmd b/project/2022_satellites/cards/documentation_card.qmd new file mode 100644 index 00000000..7a2fb58f --- /dev/null +++ b/project/2022_satellites/cards/documentation_card.qmd @@ -0,0 +1,11 @@ +--- +title: Documentation +image: img/toad_doc.jpg +date: last-modified +description: | + Description : Ici est rassemblée toute la documentation technique sur le travail effectué au cours de l'expérimentation sur les données satellite +author: Raya Berova, Gaëtan Carrere, Thomas Faria, Clément Guillo et Tom Seimandi +website: https://inseefrlab.github.io/satellite-images-docs/src/documentation/index.html +order: 1 +lang: fr-FR +--- diff --git a/project/2022_satellites/cards/dt_card.qmd b/project/2022_satellites/cards/dt_card.qmd new file mode 100644 index 00000000..147c4b99 --- /dev/null +++ b/project/2022_satellites/cards/dt_card.qmd @@ -0,0 +1,11 @@ +--- +title: Document de travail +image: img/toad_DT.jpg +date: "2024-05-16" +description: | + Description : Document retraçant les avancées et résultats obtenus sur les travaux exploratoires utilisant des images satellitaires +author: Raya Berova, Gaëtan Carrere, Thomas Faria, Clément Guillo et Tom Seimandi +website: https://inseefrlab.github.io/satellite-images-docs/src/DT/index.pdf +order: 3 +lang: fr-FR +--- \ No newline at end of file diff --git a/project/2022_satellites/cards/img/card_wp7.jpg b/project/2022_satellites/cards/img/card_wp7.jpg new file mode 100644 index 00000000..12b0bc9f Binary files /dev/null and b/project/2022_satellites/cards/img/card_wp7.jpg differ diff --git a/project/2022_satellites/cards/img/ntts_bruxelles.jpg b/project/2022_satellites/cards/img/ntts_bruxelles.jpg new file mode 100644 index 00000000..57f0c656 Binary files /dev/null and b/project/2022_satellites/cards/img/ntts_bruxelles.jpg differ diff --git a/project/2022_satellites/cards/img/seminaire_dmcsi_satellite.jpg b/project/2022_satellites/cards/img/seminaire_dmcsi_satellite.jpg new file mode 100644 index 00000000..e5fe9a35 Binary files /dev/null and b/project/2022_satellites/cards/img/seminaire_dmcsi_satellite.jpg differ diff --git a/project/2022_satellites/cards/img/toad_DT.jpg b/project/2022_satellites/cards/img/toad_DT.jpg new file mode 100644 index 00000000..c8c3c70e Binary files /dev/null and b/project/2022_satellites/cards/img/toad_DT.jpg differ diff --git a/project/2022_satellites/cards/img/toad_cratt.jpeg b/project/2022_satellites/cards/img/toad_cratt.jpeg new file mode 100644 index 00000000..1e0d42ad Binary files /dev/null and b/project/2022_satellites/cards/img/toad_cratt.jpeg differ diff --git a/project/2022_satellites/cards/img/toad_doc.jpg b/project/2022_satellites/cards/img/toad_doc.jpg new file mode 100644 index 00000000..62896a21 Binary files /dev/null and b/project/2022_satellites/cards/img/toad_doc.jpg differ diff --git a/project/2022_satellites/cards/img/toad_guada.jpg b/project/2022_satellites/cards/img/toad_guada.jpg new file mode 100644 index 00000000..c505b343 Binary files /dev/null and b/project/2022_satellites/cards/img/toad_guada.jpg differ diff --git a/project/2022_satellites/cards/img/toad_video.jpg b/project/2022_satellites/cards/img/toad_video.jpg new file mode 100644 index 00000000..b846e4fb Binary files /dev/null and b/project/2022_satellites/cards/img/toad_video.jpg differ diff --git a/project/2022_satellites/cards/img/toad_wp7.jpg b/project/2022_satellites/cards/img/toad_wp7.jpg new file mode 100644 index 00000000..12b0bc9f Binary files /dev/null and b/project/2022_satellites/cards/img/toad_wp7.jpg differ diff --git a/project/2022_satellites/cards/ntts_card.en.qmd b/project/2022_satellites/cards/ntts_card.en.qmd new file mode 100644 index 00000000..b15a9a1e --- /dev/null +++ b/project/2022_satellites/cards/ntts_card.en.qmd @@ -0,0 +1,11 @@ +--- +title: Conference on New Techniques and Technologies for official Statistics (NTTS 2025) +image: img/ntts_bruxelles.jpg +date: "2025-03-12" +description: | + Description : Slide deck for the NTTS 2025 conference. +author: Raya Berova, Thomas Faria et Clément Guillo +website: https://inseefrlab.github.io/satellite-images-docs/src/ntts-2025/index.html +order: 6 +lang: fr-FR +--- \ No newline at end of file diff --git a/project/2022_satellites/cards/ntts_card.qmd b/project/2022_satellites/cards/ntts_card.qmd new file mode 100644 index 00000000..b15a9a1e --- /dev/null +++ b/project/2022_satellites/cards/ntts_card.qmd @@ -0,0 +1,11 @@ +--- +title: Conference on New Techniques and Technologies for official Statistics (NTTS 2025) +image: img/ntts_bruxelles.jpg +date: "2025-03-12" +description: | + Description : Slide deck for the NTTS 2025 conference. +author: Raya Berova, Thomas Faria et Clément Guillo +website: https://inseefrlab.github.io/satellite-images-docs/src/ntts-2025/index.html +order: 6 +lang: fr-FR +--- \ No newline at end of file diff --git a/project/2022_satellites/cards/seminaire_dirage_card.qmd b/project/2022_satellites/cards/seminaire_dirage_card.qmd new file mode 100644 index 00000000..da20ff1b --- /dev/null +++ b/project/2022_satellites/cards/seminaire_dirage_card.qmd @@ -0,0 +1,14 @@ +--- +title: Séminaire à la Dirag +image: img/toad_guada.jpg +date: "2024-05-28" +description: | + Description : Ce séminaire marque la fin des travaux d’expérimentation. À cette occasion, nous présenterons l’intégralité de la chaîne de traitement, de la récupération des images jusqu’à l’application d’aide à la décision, en mettant l’accent sur les difficultés rencontrées. La poursuite de ces travaux dépendra des besoins réels de l’Insee et nécessitera des compétences variées et une technicité élevée pour maintenir et/ou améliorer la chaîne de traitement. +author: Raya Berova, Gaëtan Carrere, Thomas Faria, Clément Guillo et Tom Seimandi +website: https://inseefrlab.github.io/satellite-images-docs/src/seminaire-dirag/index.html +video: + text: Vidéo + url: src/seminaire-dirag-video/index.html +order: 4 +lang: fr-FR +--- \ No newline at end of file diff --git a/project/2022_satellites/cards/seminaire_dmcsi_card.qmd b/project/2022_satellites/cards/seminaire_dmcsi_card.qmd new file mode 100644 index 00000000..75ea59b2 --- /dev/null +++ b/project/2022_satellites/cards/seminaire_dmcsi_card.qmd @@ -0,0 +1,11 @@ +--- +title: Utilisation des images satellites pour améliorer le repérage des logements dans les départements d'outre-mer +image: img/seminaire_dmcsi_satellite.jpg +date: "2025-07-03" +description: | + Description : Slides pour le séminaire de Méthodologie Statistique & Sciences des données de la DMCSI - La terre vue d’en haut : images satellites, images aériennes et statistique publique. +author: Raya Berova et Thomas Faria +website: https://inseefrlab.github.io/satellite-images-docs/src/seminaire-dmcsi/index.html +order: 7 +lang: fr-FR +--- \ No newline at end of file diff --git a/project/2022_satellites/cards/wp7_paris_card.en.qmd b/project/2022_satellites/cards/wp7_paris_card.en.qmd new file mode 100644 index 00000000..f1cf4028 --- /dev/null +++ b/project/2022_satellites/cards/wp7_paris_card.en.qmd @@ -0,0 +1,12 @@ +--- +title: AIML4OS Workshop on Earth Observation +image: img/toad_wp7.jpg +date: "2024-11-13" +description: | + Description : Slideshow presentation of the project Detecting changes in buildings in French overseas departments for Work Package 7, + Artificial Intelligence and Machine Learning for Official Statistics, organized by Eurostat. +author: Raya Berova, Thomas Faria et Clément Guillo +website: https://inseefrlab.github.io/satellite-images-docs/src/aiml4os-wp7/index.html +order: 5 +lang: fr-FR +--- \ No newline at end of file diff --git a/project/2022_satellites/cards/wp7_paris_card.qmd b/project/2022_satellites/cards/wp7_paris_card.qmd new file mode 100644 index 00000000..f1cf4028 --- /dev/null +++ b/project/2022_satellites/cards/wp7_paris_card.qmd @@ -0,0 +1,12 @@ +--- +title: AIML4OS Workshop on Earth Observation +image: img/toad_wp7.jpg +date: "2024-11-13" +description: | + Description : Slideshow presentation of the project Detecting changes in buildings in French overseas departments for Work Package 7, + Artificial Intelligence and Machine Learning for Official Statistics, organized by Eurostat. +author: Raya Berova, Thomas Faria et Clément Guillo +website: https://inseefrlab.github.io/satellite-images-docs/src/aiml4os-wp7/index.html +order: 5 +lang: fr-FR +--- \ No newline at end of file diff --git a/project/2022_satellites/index.en.qmd b/project/2022_satellites/index.en.qmd new file mode 100644 index 00000000..3a19dcd9 --- /dev/null +++ b/project/2022_satellites/index.en.qmd @@ -0,0 +1,50 @@ +--- +title: Using satellite images for official statistics +description: Using satellite images to improve population censuses in the French overseas + territories +format: html +authors: +- Nicolas +date: '2022-10-01' +image: Satellites_Mayotte.png +categories: +- Python +- package +- deep learning +- satellite imagery +- in production +listing: +- id: presentations + contents: cards/*.qmd + sort: order desc + categories: false + type: grid + template: ../../scripts/courses.ejs +- id: similar-project + contents: ../*/index.qmd + type: grid + include: + categories: ["package", "satellite imagery" ] + sort: "date desc" + page-size: 6 +--- + +# Project summary + +| | Using satellite images for official statistics | +| --- | --------------------------------------------------------------------------------- | +| **Project details** | At the end of 2022, an experimental working group on the use of satellite data for official statistics was launched. The aim of this initiative was to **improve the organisation of mapping surveys in overseas departments** particularly in French Guiana and Mayotte. These surveys are used to update the individual/housing register (RIL) each year, and make it easier to identify new spontaneous or temporary housing areas in advance of the surveys. Algorithms applied to **satellite photographs** are used to identify such areas, which in a given year will require more surveyors than in the previous year.
The project is presented in more detail [here](https://inseefrlab.github.io/satellite-images-docs/src/documentation/index.html). | +| **Actors** | Insee (DG and Réunion-Mayotte Interregional Directorate) | +| **Project results** | The results of the project are presented in more detail [on the dedicated website](https://inseefrlab.github.io/satellite-images-docs/). The experimentation phase ended with:
- The transmission of **building evolution statistics** in Mayotte. These statistics were used to organise the 2024 complementary mapping survey in Mayotte;
- The development of a [**visualisation application**](https://inseefrlab.github.io/satellite-images-webapp/) integrating background maps built from Pleiades tiles and buildings detected on these tiles using our algorithms, as well as change detection layers;
- The creation of the**Python package for processing satellite images** [**Astrovision**](https://pypi.org/project/astrovision/) | +| **Project code** | - : **Python package** package for working with satellite data:
- code of the**viewing application**
- [https://github.com/InseeFrLab/satellite-images-preprocess ](https://github.com/InseeFrLab/satellite-images-preprocess) code of **data pre-processing**
- code for the**model training**
- code for the**inference** | + +# Documents relating to the INSEE satellite data project + +::: {#presentations} +::: + +# Similar projects + +::: {#similar-project} +::: + diff --git a/project/2022_satellites/index.qmd b/project/2022_satellites/index.qmd new file mode 100644 index 00000000..b27a8512 --- /dev/null +++ b/project/2022_satellites/index.qmd @@ -0,0 +1,54 @@ +--- +title: "Utilisation des images satellites pour la statistique publique" + +# Summary for listings and search engines +description: "Utiliser les images satellites pour améliorer le recensement de la population dans les territoire ultra-marins" + +format: html + +# Date published +date: 2022-10-01 + +image: Satellites_Mayotte.png + +categories: +- Python +- package +- deep learning +- images satellites +- en production + +listing: +- id: presentations + contents: cards/*.qmd + sort: "order desc" + categories: false + type: grid + template: ../../scripts/courses.ejs +- id: similar-project + contents: ../*/index.qmd + type: grid + include: + categories: ["package", "images satellites"] + sort: "date desc" + page-size: 6 + +--- + +# Synthèse du projet + +| | Utilisation des images satellites pour la statistique publique | +|--------------|------------------------------------------------------------------------------------| +| **Détail du projet** | Fin 2022, un groupe de travail expérimental sur l'utilisation des données satellites pour la statistique publique a été lancé. Cette initiative visait à **améliorer l'organisation des enquêtes cartographiques dans les départements d'outre-mer**, particulièrement en Guyane et à Mayotte. Ces enquêtes servent à mettre à jour le répertoire individus / logement (RIL) chaque année, et facilitent l'identification en amont des enquêtes de nouvelles zones d'habitations spontanées ou temporaires. Des algorithmes appliqués à des **photographies satellites** permettent d'identifier de telles zones, qui à une année d'exercice donnée nécessiteront plus d'enquêteurs qu'à l'exercice précédent.
Le projet est présenté plus précisément [ici](https://inseefrlab.github.io/satellite-images-docs/src/documentation/index.html). | +| **Acteurs** | Insee (DG et Direction interrégionale Réunion-Mayotte) | +| **Résultats du projet** | Les résultats du projet sont présentés plus précisément [sur le site dédié](https://inseefrlab.github.io/satellite-images-docs/). La phase d'expérimentation s'est achevée avec:
- La transmission de **statistiques d'évolution de bâti** par îlot à Mayotte. Ces statistiques ont servi à l'organisation de l'enquête cartographique complémentaire 2024 à Mayotte ;
- Le développement d'une [**application de visualisation**](https://inseefrlab.github.io/satellite-images-webapp/) intégrant des fonds de carte construits à partir de tuiles Pleiades et les bâtiments détectés sur ces tuiles avec nos algorithmes, ainsi que des couches de détection de changement ;
- La création du **package Python de traitement d'images satellites** [**Astrovision**](https://pypi.org/project/astrovision/) | +| **Code du projet** | - [https://github.com/InseeFrLab/astrovision](https://github.com/InseeFrLab/astrovision) : **package Python** pour travailler avec des données satellites:
- [https://inseefrlab.github.io/satellite-images-webapp/](https://inseefrlab.github.io/satellite-images-webapp/): code de l'**application de visualisation**
- [https://github.com/InseeFrLab/satellite-images-preprocess ](https://github.com/InseeFrLab/satellite-images-preprocess): code de **pré-processing des données**
- [https://github.com/InseeFrLab/satellite-images-train](https://github.com/InseeFrLab/satellite-images-train) : code pour l'**entraînement des modèles**
- [https://github.com/InseeFrLab/satellite-images-inference](https://github.com/InseeFrLab/satellite-images-inference) : code pour l'**inférence** | + + +# Documents relatifs au projet sur les données satellites à l'Insee + + +::: {#presentations} +::: + + diff --git a/project/2023_doremifasol/doremifasol.png b/project/2023_doremifasol/doremifasol.png new file mode 100644 index 00000000..afe364e1 Binary files /dev/null and b/project/2023_doremifasol/doremifasol.png differ diff --git a/project/2023_doremifasol/index.en.qmd b/project/2023_doremifasol/index.en.qmd new file mode 100644 index 00000000..de546df7 --- /dev/null +++ b/project/2023_doremifasol/index.en.qmd @@ -0,0 +1,35 @@ +--- +title: Doremifasol +description: The package {{< fa brands r-project >}} `Doremifasol` makes it easier for + data scientists to retrieve Insee data. The library is open source. +format: html +date: '2023-01-01' +image: doremifasol.png +categories: +- package +- R +- in production +- Insee +listing: +- id: similar-project + contents: ../*/index.qmd + type: grid + include: + categories: ["package"] + sort: "date desc" + page-size: 6 +--- + +# Project summary + +| | Package {{< fa brands r-project >}} to retrieve data from the Insee website | +| -- | ----------------------- | +| **Project details** | doremifasol (data with R made available by Insee and easily retrievable in French) is a R package mainly aiming at showing off data available on Insee’s website, helping the user to put them on stage and extract the information they carry. So it is about analysing data, creating maps, quantifying phenomenons and in general using the data without the painful effort to retrieve them on the website, as well as import them into R’s memory. The name of the package stands for the five first notes of music, and pushing the metaphore, underlines its aim at helping the users to easily pratice their solfège in {{< fa brands r-project >}}. | +| **Players** | Insee | +| **Project results** | The DoReMiFaSol package is open source and can be downloaded from GitHub. The documentation is also published [here](https://inseefrlab.github.io/DoReMIFaSol/). | +| **Project code** | - Code is available on GitHub {{< fa brands github >}} repo [https://github.com/InseeFrLab/DoReMIFaSol](https://github.com/InseeFrLab/DoReMIFaSol) | + +# Similar projects + +::: {#similar-project} +::: diff --git a/project/2023_doremifasol/index.qmd b/project/2023_doremifasol/index.qmd new file mode 100644 index 00000000..a746065b --- /dev/null +++ b/project/2023_doremifasol/index.qmd @@ -0,0 +1,34 @@ +--- +title: Doremifasol +description: Le package {{< fa brands r-project >}} R Doremifasol facilite la récupération des données Insee pour les data scientists. La librairie est open source, disponible sur GitHub {{< fa brands github >}}. +format: html +date: 2023-01-01 +image: doremifasol.png +categories: +- package +- R +- en production +- Insee +listing: +- id: similar-project + contents: ../*/index.qmd + type: grid + include: + categories: ["package"] + sort: "date desc" + page-size: 6 +--- + +# Synthèse du projet + +| | Package {{< fa brands r-project >}} pour récupérer des données du site de l'Insee | +|---------------|---------------------------------------------------------| +| **Détail du projet** | Le package doremifasol (Données en R Mises à disposition par l’Insee et Facilement Sollicitables) permet d’importer facilement dans R des données mises à disposition sur le site de l’Insee.

Il offre deux fonctionnalités principales :
- télécharger et importer dans R des fichiers disponibles sur insee.fr (Base Permanente des Équipements, Recensement de Population, Filosofi...), y compris les données mises à disposition via Melodi ;
- requêter l’API Sirene et recupérer les résultats dans R. | +| **Acteurs** | Insee | +| **Résultats du projet** | Le package DoReMiFaSol est en production et téléchargeable depuis GitHub. La documentation est aussi publiée [ici](https://inseefrlab.github.io/DoReMIFaSol/). | +| **Code du projet** | - Le code est disponible sur GitHub {{< fa brands github >}} [https://github.com/InseeFrLab/DoReMIFaSol](https://github.com/InseeFrLab/DoReMIFaSol) | + +# Projets similaires + +::: {#similar-project} +::: diff --git a/project/2023_pynsee/example_pynsee.webp b/project/2023_pynsee/example_pynsee.webp new file mode 100644 index 00000000..4a2caaf1 Binary files /dev/null and b/project/2023_pynsee/example_pynsee.webp differ diff --git a/project/2023_pynsee/index.en.qmd b/project/2023_pynsee/index.en.qmd new file mode 100644 index 00000000..f90d5bd9 --- /dev/null +++ b/project/2023_pynsee/index.en.qmd @@ -0,0 +1,35 @@ +--- +title: pynsee, a {{< fa brands python >}} Python package for retrieving INSEE data +description: The {{< fa brands python >}} package `pynsee` package makes it easier + for data scientists to retrieve INSEE data. The library is open source. +format: html +date: '2023-01-01' +image: example_pynsee.webp +categories: +- in production +- Insee +- package +- Python +listing: +- id: similar-project + contents: ../*/index.qmd + type: grid + include: + categories: ["package"] + sort: "date desc" + page-size: 6 +--- + +# Project summary + +| | `pynsee`, a {{< fa brands python >}} Python package to retrieve data from INSEE | +| --- | --------------------- | +| **Project details** | pynsee provides rapid access to more than 150,000 macroeconomic series, around ten local data sets, numerous sources available on insee.fr as well as key metadata and a SIRENE database containing data on all French businesses. Visit the [API details page](portal-api.insee.fr).
This package is a contribution to reproducible research and to the transparency of public data. It benefits from developments made by the teams working on APIs at INSEE and IGN. | +| **Players** | Insee | +| **Project results** | The pynsee package is in production and can be downloaded from GitHub. The documentation is also published [here](https://pynsee.readthedocs.io/en/latest/). | +| **Project code** | - Repo [GitHub {{< fa brands github >}}](https://github.com/InseeFrLab/pynsee) | + +# Similar projects related to package creation + +::: {#similar-project} +::: diff --git a/project/2023_pynsee/index.qmd b/project/2023_pynsee/index.qmd new file mode 100644 index 00000000..bdf24624 --- /dev/null +++ b/project/2023_pynsee/index.qmd @@ -0,0 +1,39 @@ +--- +title: pynsee, un package Python {{< fa brands python >}} pour récupérer les données de l'Insee +description: | + Le package {{< fa brands python >}} `pynsee` facilite la récupération des + données Insee pour les data scientists. + La librairie est open source, disponible sur Github. +format: html +date: '2023-01-01' +image: example_pynsee.webp +categories: +- en production +- Insee +- package +- Python +listing: +- id: similar-project + contents: ../*/index.qmd + type: grid + include: + categories: ["package"] + sort: "date desc" + page-size: 6 +--- + + +# Synthèse du projet + +| | `pynsee`, un package Python pour récupérer les données de l'Insee | +|--------------|----------------------------------------------------------------------------| +| **Détail du projet** | pynsee donne un accès rapide à plus de 150 000 séries macroéconomiques, une dizaine d’ensembles de données locales, de nombreuses sources disponibles sur insee.fr ainsi que des métadonnées clés et une base de données SIRENE contenant des données sur toutes les entreprises françaises. Consultez la page détaillée de l'API [portail-api.insee.fr](portail-api.insee.fr).
Ce paquet est une contribution à la recherche reproductible et à la transparence des données publiques. Il bénéficie des développements réalisés par les équipes travaillant sur les API à l’Insee et à l’IGN. | +| **Acteurs** | Insee | +| **Résultats du projet** | Le package pynsee est en production et téléchargeable depuis GitHub. La documentation est aussi publiée [ici](https://pynsee.readthedocs.io/en/latest/). | +| **Code du projet** | - Le code est disponible sur GitHub {{< fa brands github >}} [https://github.com/InseeFrLab/pynsee](https://github.com/InseeFrLab/pynsee) | + +# Projets similaires ayant abouti à la création de package + +::: {#similar-project} +::: + diff --git a/project/2024_cb_mno_tabac/index.en.qmd b/project/2024_cb_mno_tabac/index.en.qmd new file mode 100644 index 00000000..92c57581 --- /dev/null +++ b/project/2024_cb_mno_tabac/index.en.qmd @@ -0,0 +1,42 @@ +--- +title: An assessment of cross-border tobacco purchases and associated tax losses in + France +format: html +date: '2024-01-01' +image: tabac.png +listing: +- id: similar-project + contents: ../*/index.qmd + type: grid + include: + categories: + - scanner data + - mobile phone data + - credit card data + - bank account data + sort: + - date desc + page-size: 6 + categories: true +categories: +- experiment +- mobile phone data +- credit card data +- Insee +--- + +# Project summary + +| | An assessment of cross-border tobacco purchases and associated tax losses in France| +|---|------------------------------------------------------------------------- | +| **Project details** | Smoking is a major public health problem, causing many preventable diseases worldwide. In recent decades, increasing the price of tobacco has become the main strategy used by governments to reduce smoking. However, price differences between certain neighbouring countries are likely to limit the effectiveness of this measure by allowing some consumers to buy tobacco at a lower price in a neighbouring country. Although the problem of cross-border shopping is not new, the extent of the phenomenon remains poorly understood and is still the subject of regular debate. This study contributes to its assessment in France by exploiting an unprecedented natural experiment : the closure of land borders between March 2020 and June 2020 as part of the fight against the Covid-19 pandemic. | +| **Players** | Insee| +| **Project results** | Results show that the closure of the borders led to a 9.5 % surplus in tobacco purchases in mainland France compared to the counterfactual situation in which the borders had remained open. This result probably underestimates cross-border purchases. In fact, some tobacco consumption abroad may have continued during the first lockdown, as the borders were not completely closed, in particular for cross-border workers. Extrapolating the consumption observed in the rest of the country to border regions with identical characteristics, the revenue generated in France would be about 13.5 % higher if there were no cheaper alternatives abroad. | +| **Project products and documentation** | - [An assessment of cross-border tobacco purchases and associated tax losses in France](https://www.insee.fr/en/statistiques/8172204) Insee Working Papers No. 2024-06, April 2024| + +# Similar projects + +::: {#similar-project} +::: + + diff --git a/project/2024_cb_mno_tabac/index.qmd b/project/2024_cb_mno_tabac/index.qmd new file mode 100644 index 00000000..a82c2b38 --- /dev/null +++ b/project/2024_cb_mno_tabac/index.qmd @@ -0,0 +1,40 @@ +--- +title: Une évaluation des achats transfrontaliers de tabac et des pertes fiscales associées en France +format: html +date: '2024-01-01' +image: tabac.png +listing: +- id: similar-project + contents: ../*/index.qmd + type: grid + include: + categories: + - données de caisse + - données de téléphonie mobile + - données CB + - données comptes bancaires + sort: + - date desc + page-size: 6 + categories: true +categories: +- expérimentation +- données de téléphonie mobile +- données CB +- Insee +--- + + +# Synthèse du projet + +| | Une évaluation des achats transfrontaliers de tabac et des pertes fiscales associées en France | +|-----------|------------------------------------------------------------------| +| **Détail du projet** | Le tabagisme est un problème majeur de santé publique, à l’origine de nombreuses maladies évitables à travers le monde. Au cours des dernières décennies, l’augmentation du prix du tabac s’est imposée comme la principale stratégie des États pour lutter contre le tabagisme. Toutefois, les différences de prix entre certains pays frontaliers sont susceptibles de limiter l’efficacité de cette mesure en permettant à certains consommateurs d’acheter du tabac à un prix inférieur dans un État voisin. Si le problème des achats transfrontaliers n’est pas nouveau, l’ampleur du phénomène reste mal connue et fait encore l’objet de débats réguliers. Cette étude contribue à son évaluation en France en exploitant une expérience naturelle sans précédent : la fermeture des frontières terrestres entre mars 2020 et juin 2020 dans le cadre de la lutte contre la pandémie de Covid-19. | +| **Acteurs** | Insee | +| **Résultats du projet** | Les résultats montrent que la fermeture des frontières a généré un surplus d’achats de tabac de 9,5 % en France métropolitaine, par rapport à la situation contrefactuelle où les frontières seraient restées ouvertes. Il s’agit probablement d’une estimation basse des achats transfrontaliers. En effet, une partie de la consommation de tabac en provenance de l’étranger a pu persister pendant le premier confinement, les frontières n’ayant pas été complètement fermées, notamment aux travailleurs frontaliers. En extrapolant la consommation observée dans le reste du pays aux régions frontalières, à caractéristiques identiques, les recettes générées en France seraient environ 13,5 % plus élevées s’il n’existait pas d’alternatives moins chères à l’étranger. | +| **Produits et documentation du projet** | - [Une évaluation des achats transfrontaliers de tabac et des pertes fiscales associées en France](https://www.insee.fr/fr/statistiques/8172202), Documents de travail de l’Insee n°2024-06, avril 2024 | + +# Projets similaires + +::: {#similar-project} +::: diff --git a/project/2024_cb_mno_tabac/tabac.png b/project/2024_cb_mno_tabac/tabac.png new file mode 100644 index 00000000..40afbb7a Binary files /dev/null and b/project/2024_cb_mno_tabac/tabac.png differ diff --git a/scripts/.python-version b/scripts/.python-version new file mode 100644 index 00000000..24ee5b1b --- /dev/null +++ b/scripts/.python-version @@ -0,0 +1 @@ +3.13 diff --git a/scripts/glossary-fr-en.csv b/scripts/glossary-fr-en.csv new file mode 100644 index 00000000..bf27bfbe --- /dev/null +++ b/scripts/glossary-fr-en.csv @@ -0,0 +1,10 @@ +French, English (British) +données de caisse, scanner data +données téléphonie mobile, mobile phone data +données massives, big data +apprentissage statistique, machine learning +apprentissage profond, deep learning +révisions économiques en continu, nowcasting +service statistique ministériel, Ministerial Statistical Office +SSM, MSO +carte bancaire, credit card diff --git a/scripts/preview.R b/scripts/preview.R new file mode 100644 index 00000000..a77f3e2b --- /dev/null +++ b/scripts/preview.R @@ -0,0 +1 @@ +servr::httw(paste0(getwd(), '/_site')) diff --git a/scripts/project_template.qmd b/scripts/project_template.qmd new file mode 100644 index 00000000..21e61f19 --- /dev/null +++ b/scripts/project_template.qmd @@ -0,0 +1,39 @@ +--- +title: "A COMPLETER" + +# Summary for listings and search engines +description: "A COMPLETER" + +format: html + +# Date published +date: '2023-01-01' + +image: monimage.png + +listing: + - id: similar-project + contents: ../*/index.qmd + type: grid + include: + categories: ["machine learning"] + sort: + - "date desc" + page-size: 6 + categories: true +--- + +# Synthèse du projet + +| | Description | +|-----------|------------------------------------------------------------------| +| **Détail du projet** | | +| **Acteurs** | | +| **Résultats du projet** | | +| **Produits et documentation du projet** | | +| **Code du projet** | - Le code est disponible sur GitHub {{< fa brands github >}} []() | + +# Projets similaires + +::: {#similar-project} +::: diff --git a/scripts/pyproject.toml b/scripts/pyproject.toml new file mode 100644 index 00000000..8a946be8 --- /dev/null +++ b/scripts/pyproject.toml @@ -0,0 +1,10 @@ +[project] +name = "ssphub" +version = "0.1.0" +description = "Add your description here" +readme = "README.md" +requires-python = ">=3.13" +dependencies = [ + "polars>=1.35.2", + "pyyaml>=6.0.3", +] diff --git a/scripts/render.R b/scripts/render.R new file mode 100644 index 00000000..d1b04114 --- /dev/null +++ b/scripts/render.R @@ -0,0 +1,7 @@ +# Installing babelquarto if not present +if (! "babelquarto" %in% installed.packages() ) { + install.packages('babelquarto', repos = c('https://ropensci.r-universe.dev', 'https://cloud.r-project.org')) +} + +# Render site +babelquarto::render_website(getwd()) diff --git a/scripts/template.py b/scripts/template.py new file mode 100644 index 00000000..2cb4ba88 --- /dev/null +++ b/scripts/template.py @@ -0,0 +1,157 @@ +import os +import yaml +import sys +import polars as pl + +def find_index_qmd_files(root_folder='ssphub/project', pattern='index.qmd'): + index_qmd_files = [] + for root, dirs, files in os.walk(root_folder): + for file in files: + if file == pattern: + index_qmd_files.append(os.path.join(root, file)) + return index_qmd_files + +# find_index_qmd_files() + + +def extract_yaml_key(file_path='ssphub/project/2019_gdp_tracker/index.qmd', yaml_key='categories'): + """ + Extract selected key of a YAML part of the given Qmd file + + Args: + + Returns: + list + + Example: + >>> + """ + with open(file_path, mode='r') as file: + qmd_content = file.read() + + # Split the YAML header and the HTML content + yaml_header = qmd_content.split('---', 2)[1] + yaml_header = yaml.safe_load(yaml_header) + + return yaml_header.get(yaml_key, '') + + +def extract_categories(file_path='ssphub/project/2019_gdp_tracker/index.qmd'): + """ + Extract categories of the YAML part of index.qmd + + Args: + + Returns: + list + + Example: + >>> + """ + + return extract_yaml_key(file_path=file_path, yaml_key='categories') + + +def conc_yaml_categories(root_folder='ssphub/project'): + # Parse the YAML header1 + categories_conc_list = [] + + for file_path in find_index_qmd_files(root_folder): + categories_list = extract_categories(file_path) + categories_conc_list = categories_conc_list + categories_list + + categories_conc_list = list(set(categories_conc_list)) + + return categories_conc_list + + +# conc_yaml_categories() + +def add_categories_to_yaml(qmd_output_file, template_path='project_template.qmd', root_folder='../project'): + with open(template_path, mode='r') as file: + qmd_content = file.read() + parts = qmd_content.split('---', 2) + + yaml_header = parts[1] + md_content = parts[2] + + # Clean the YAML header + yaml_header = yaml.safe_load(yaml_header) + + # Keep only the specified keys + yaml_header['categories'] = conc_yaml_categories(root_folder=root_folder) + + # Convert the cleaned YAML back to a string + yaml_header_str = yaml.dump(yaml_header, sort_keys=False, allow_unicode=True, width=4096) + + # Combine the cleaned YAML header and HTML content + processed_qmd_content = f"---\n{yaml_header_str}---\n{md_content}" + + # Save the processed QMD content to a file + with open(qmd_output_file, 'w', encoding='utf-8') as f: + f.write(processed_qmd_content) + +# add_categories_to_yaml('test.qmd') + + +def create_table_of_all_qmd(root_folder='ssphub/project'): + """ + Extract all Qmd file (named index.qmd and index.en.qmd) details of a folder + + Args: + root_folder (string) : folder to search index.qmd files into + + Returns: + a pl dataframe with project title, file path, folder name, description + and path to english version if any + + Example: + >>> create_table_of_all_qmd() + shape: (24, 6) + ┌─────────────────────────────────┬────────────────────────────┬─────────────────────────────────┬─────────────────────────────────┬─────────────────────────────────┬─────────────────────────────────┐ + │ path ┆ folder ┆ title_fr ┆ description_fr ┆ categories_fr ┆ path_en │ + │ --- ┆ --- ┆ --- ┆ --- ┆ --- ┆ --- │ + │ str ┆ str ┆ str ┆ str ┆ list[str] ┆ str │ + ╞═════════════════════════════════╪════════════════════════════╪═════════════════════════════════╪═════════════════════════════════╪═════════════════════════════════╪═════════════════════════════════╡ + │ ssphub/project/2020_donnees_ca… ┆ 2020_donnees_caisse ┆ Classification des données de … ┆ Classifier des données de cais… ┆ ["Python", "codification autom… ┆ ssphub/project/2020_donnees_ca… │ + │ ssphub/project/2020_webscrapin… ┆ 2020_webscraping_ipc ┆ Webscrapper les caractéristiqu… ┆ Collecter sur le web les carac… ┆ ["en production ??", "Insee", … ┆ ssphub/project/2020_webscrapin… │ + """ + # List all projects + df = pl.DataFrame({'path':find_index_qmd_files(root_folder=root_folder, pattern='index.qmd')}) + # Add project details + df = df.with_columns( + folder=pl.col('path').str.extract(r"project/(\w+)", group_index=1), + title_fr=pl.col('path').map_elements(lambda x: extract_yaml_key(file_path=x, yaml_key='title'), return_dtype=pl.String()), + description_fr=pl.col('path').map_elements(lambda x: extract_yaml_key(file_path=x, yaml_key='description'), return_dtype=pl.String()), + categories_fr=pl.col('path').map_elements(lambda x: extract_yaml_key(file_path=x, yaml_key='categories'), return_dtype=pl.List(pl.String())) + ) + + # Add english version if exists + df_en = pl.DataFrame({'path_en':find_index_qmd_files(root_folder=root_folder, pattern='index.en.qmd')}) + df_en = df_en.with_columns( + folder=pl.col('path_en').str.extract(r"project/(\w+)", group_index=1), + ) + + df = df.join(df_en, on='folder', how='full', coalesce=True) # Coalesce: to merge similar column + + return df + + +def create_folder_and_file(folder_name, template_path='project_template.qmd'): + # Create the folder in the 'project' directory + os.makedirs(os.path.join("../project", folder_name), exist_ok=True) + + # Define the path for the new file + new_file_path = os.path.join("../project", folder_name, "index.qmd") + + # Copy the template to the new file + add_categories_to_yaml(new_file_path, template_path=template_path, root_folder="../project") + + +if __name__ == '__main__': + foldername = sys.argv[1] + if len(sys.argv) > 2: + template_path = sys.argv[2] + create_folder_and_file(foldername, template_path) + else: + create_folder_and_file(foldername) diff --git a/scripts/translate.R b/scripts/translate.R new file mode 100644 index 00000000..e8aa11d2 --- /dev/null +++ b/scripts/translate.R @@ -0,0 +1,66 @@ +# Installing babelquarto if not present +if (! "pak" %in% installed.packages() ) { + install.packages("pak") + pak::pak("ropensci-review-tools/babeldown") +} + +# Arguments for the preview +args = commandArgs(trailingOnly=TRUE) + +# test if there is at least one argument: if not, return an error +if (length(args)==0) { + stop("One argument must be supplied.", call.=FALSE) +} + +if (! "DEEPL_API_KEY" %in% names(Sys.getenv())){ + stop("DEEPL API KEY not set", call.=FALSE) +} + +input_path = paste0("../project/", args[1], "/index.qmd") # sth like directory/sub +out_path = paste0("../project/",args[1], "/index.en.qmd") + +babeldown::deepl_translate( + path = input_path, + out_path = out_path, + source_lang = "FR", + target_lang = "EN-GB", + formality = "default", + yaml_fields = c("title", "description", "categories") +) + +replace_in_qmd <- function(input_file) { + # Read the input file + content <- readLines(input_file) + + # Replace multiple spaces with empty string + content <- gsub("\\s{5,}", "", content) + + # Replace too many "-"s with as many necessary to fill the first line + content <- gsub("-{77,}", "-------------------------------------------------------------------------", content) + + # Replace "| | ----" + content <- gsub("\\|\\s{2}\\|\\s---", "|---|---", content) + + # Replace "\" with "", for ex for "\-" and "{{\< fa brands" + content <- gsub("\\\\", "", content) + + # Replace "description: |-" or "description: | -" with "description: |" + content <- gsub("description:\\s\\|-|description:\\s\\|\\s-", "description: |", content) + + # Write the modified content to the output file + writeLines(content, input_file) + +} + +replace_in_qmd(out_path) + +# NO WORK - TO DO LATER +# # Glossary +# filename <- "glossary-fr-en.csv" + +# # create (or update) glossary +# babeldown::deepl_upsert_glossary( +# filename, +# target_lang = "en", +# source_lang = "fr" +# ) diff --git a/scripts/uv.lock b/scripts/uv.lock new file mode 100644 index 00000000..5fa6c787 --- /dev/null +++ b/scripts/uv.lock @@ -0,0 +1,80 @@ +version = 1 +revision = 3 +requires-python = ">=3.13" + +[[package]] +name = "polars" +version = "1.35.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "polars-runtime-32" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/fa/43/09d4738aa24394751cb7e5d1fc4b5ef461d796efcadd9d00c79578332063/polars-1.35.2.tar.gz", hash = "sha256:ae458b05ca6e7ca2c089342c70793f92f1103c502dc1b14b56f0a04f2cc1d205", size = 694895, upload-time = "2025-11-09T13:20:05.921Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b4/9a/24e4b890c7ee4358964aa92c4d1865df0e8831f7df6abaa3a39914521724/polars-1.35.2-py3-none-any.whl", hash = "sha256:5e8057c8289ac148c793478323b726faea933d9776bd6b8a554b0ab7c03db87e", size = 783597, upload-time = "2025-11-09T13:18:51.361Z" }, +] + +[[package]] +name = "polars-runtime-32" +version = "1.35.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/cb/75/ac1256ace28c832a0997b20ba9d10a9d3739bd4d457c1eb1e7d196b6f88b/polars_runtime_32-1.35.2.tar.gz", hash = "sha256:6e6e35733ec52abe54b7d30d245e6586b027d433315d20edfb4a5d162c79fe90", size = 2694387, upload-time = "2025-11-09T13:20:07.624Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/66/de/a532b81e68e636483a5dd764d72e106215543f3ef49a142272b277ada8fe/polars_runtime_32-1.35.2-cp39-abi3-macosx_10_12_x86_64.whl", hash = "sha256:e465d12a29e8df06ea78947e50bd361cdf77535cd904fd562666a8a9374e7e3a", size = 40524507, upload-time = "2025-11-09T13:18:55.727Z" }, + { url = "https://files.pythonhosted.org/packages/2d/0b/679751ea6aeaa7b3e33a70ba17f9c8150310792583f3ecf9bb1ce15fe15c/polars_runtime_32-1.35.2-cp39-abi3-macosx_11_0_arm64.whl", hash = "sha256:ef2b029b78f64fb53f126654c0bfa654045c7546bd0de3009d08bd52d660e8cc", size = 36700154, upload-time = "2025-11-09T13:18:59.78Z" }, + { url = "https://files.pythonhosted.org/packages/e2/c8/fd9f48dd6b89ae9cff53d896b51d08579ef9c739e46ea87a647b376c8ca2/polars_runtime_32-1.35.2-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:85dda0994b5dff7f456bb2f4bbd22be9a9e5c5e28670e23fedb13601ec99a46d", size = 41317788, upload-time = "2025-11-09T13:19:03.949Z" }, + { url = "https://files.pythonhosted.org/packages/67/89/e09d9897a70b607e22a36c9eae85a5b829581108fd1e3d4292e5c0f52939/polars_runtime_32-1.35.2-cp39-abi3-manylinux_2_24_aarch64.whl", hash = "sha256:3b9006902fc51b768ff747c0f74bd4ce04005ee8aeb290ce9c07ce1cbe1b58a9", size = 37850590, upload-time = "2025-11-09T13:19:08.154Z" }, + { url = "https://files.pythonhosted.org/packages/dc/40/96a808ca5cc8707894e196315227f04a0c82136b7fb25570bc51ea33b88d/polars_runtime_32-1.35.2-cp39-abi3-win_amd64.whl", hash = "sha256:ddc015fac39735592e2e7c834c02193ba4d257bb4c8c7478b9ebe440b0756b84", size = 41290019, upload-time = "2025-11-09T13:19:12.214Z" }, + { url = "https://files.pythonhosted.org/packages/f4/d1/8d1b28d007da43c750367c8bf5cb0f22758c16b1104b2b73b9acadb2d17a/polars_runtime_32-1.35.2-cp39-abi3-win_arm64.whl", hash = "sha256:6861145aa321a44eda7cc6694fb7751cb7aa0f21026df51b5faa52e64f9dc39b", size = 36955684, upload-time = "2025-11-09T13:19:15.666Z" }, +] + +[[package]] +name = "pyyaml" +version = "6.0.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/05/8e/961c0007c59b8dd7729d542c61a4d537767a59645b82a0b521206e1e25c2/pyyaml-6.0.3.tar.gz", hash = "sha256:d76623373421df22fb4cf8817020cbb7ef15c725b9d5e45f17e189bfc384190f", size = 130960, upload-time = "2025-09-25T21:33:16.546Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d1/11/0fd08f8192109f7169db964b5707a2f1e8b745d4e239b784a5a1dd80d1db/pyyaml-6.0.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:8da9669d359f02c0b91ccc01cac4a67f16afec0dac22c2ad09f46bee0697eba8", size = 181669, upload-time = "2025-09-25T21:32:23.673Z" }, + { url = "https://files.pythonhosted.org/packages/b1/16/95309993f1d3748cd644e02e38b75d50cbc0d9561d21f390a76242ce073f/pyyaml-6.0.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:2283a07e2c21a2aa78d9c4442724ec1eb15f5e42a723b99cb3d822d48f5f7ad1", size = 173252, upload-time = "2025-09-25T21:32:25.149Z" }, + { url = "https://files.pythonhosted.org/packages/50/31/b20f376d3f810b9b2371e72ef5adb33879b25edb7a6d072cb7ca0c486398/pyyaml-6.0.3-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ee2922902c45ae8ccada2c5b501ab86c36525b883eff4255313a253a3160861c", size = 767081, upload-time = "2025-09-25T21:32:26.575Z" }, + { url = "https://files.pythonhosted.org/packages/49/1e/a55ca81e949270d5d4432fbbd19dfea5321eda7c41a849d443dc92fd1ff7/pyyaml-6.0.3-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:a33284e20b78bd4a18c8c2282d549d10bc8408a2a7ff57653c0cf0b9be0afce5", size = 841159, upload-time = "2025-09-25T21:32:27.727Z" }, + { url = "https://files.pythonhosted.org/packages/74/27/e5b8f34d02d9995b80abcef563ea1f8b56d20134d8f4e5e81733b1feceb2/pyyaml-6.0.3-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0f29edc409a6392443abf94b9cf89ce99889a1dd5376d94316ae5145dfedd5d6", size = 801626, upload-time = "2025-09-25T21:32:28.878Z" }, + { url = "https://files.pythonhosted.org/packages/f9/11/ba845c23988798f40e52ba45f34849aa8a1f2d4af4b798588010792ebad6/pyyaml-6.0.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:f7057c9a337546edc7973c0d3ba84ddcdf0daa14533c2065749c9075001090e6", size = 753613, upload-time = "2025-09-25T21:32:30.178Z" }, + { url = "https://files.pythonhosted.org/packages/3d/e0/7966e1a7bfc0a45bf0a7fb6b98ea03fc9b8d84fa7f2229e9659680b69ee3/pyyaml-6.0.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:eda16858a3cab07b80edaf74336ece1f986ba330fdb8ee0d6c0d68fe82bc96be", size = 794115, upload-time = "2025-09-25T21:32:31.353Z" }, + { url = "https://files.pythonhosted.org/packages/de/94/980b50a6531b3019e45ddeada0626d45fa85cbe22300844a7983285bed3b/pyyaml-6.0.3-cp313-cp313-win32.whl", hash = "sha256:d0eae10f8159e8fdad514efdc92d74fd8d682c933a6dd088030f3834bc8e6b26", size = 137427, upload-time = "2025-09-25T21:32:32.58Z" }, + { url = "https://files.pythonhosted.org/packages/97/c9/39d5b874e8b28845e4ec2202b5da735d0199dbe5b8fb85f91398814a9a46/pyyaml-6.0.3-cp313-cp313-win_amd64.whl", hash = "sha256:79005a0d97d5ddabfeeea4cf676af11e647e41d81c9a7722a193022accdb6b7c", size = 154090, upload-time = "2025-09-25T21:32:33.659Z" }, + { url = "https://files.pythonhosted.org/packages/73/e8/2bdf3ca2090f68bb3d75b44da7bbc71843b19c9f2b9cb9b0f4ab7a5a4329/pyyaml-6.0.3-cp313-cp313-win_arm64.whl", hash = "sha256:5498cd1645aa724a7c71c8f378eb29ebe23da2fc0d7a08071d89469bf1d2defb", size = 140246, upload-time = "2025-09-25T21:32:34.663Z" }, + { url = "https://files.pythonhosted.org/packages/9d/8c/f4bd7f6465179953d3ac9bc44ac1a8a3e6122cf8ada906b4f96c60172d43/pyyaml-6.0.3-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:8d1fab6bb153a416f9aeb4b8763bc0f22a5586065f86f7664fc23339fc1c1fac", size = 181814, upload-time = "2025-09-25T21:32:35.712Z" }, + { url = "https://files.pythonhosted.org/packages/bd/9c/4d95bb87eb2063d20db7b60faa3840c1b18025517ae857371c4dd55a6b3a/pyyaml-6.0.3-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:34d5fcd24b8445fadc33f9cf348c1047101756fd760b4dacb5c3e99755703310", size = 173809, upload-time = "2025-09-25T21:32:36.789Z" }, + { url = "https://files.pythonhosted.org/packages/92/b5/47e807c2623074914e29dabd16cbbdd4bf5e9b2db9f8090fa64411fc5382/pyyaml-6.0.3-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:501a031947e3a9025ed4405a168e6ef5ae3126c59f90ce0cd6f2bfc477be31b7", size = 766454, upload-time = "2025-09-25T21:32:37.966Z" }, + { url = "https://files.pythonhosted.org/packages/02/9e/e5e9b168be58564121efb3de6859c452fccde0ab093d8438905899a3a483/pyyaml-6.0.3-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:b3bc83488de33889877a0f2543ade9f70c67d66d9ebb4ac959502e12de895788", size = 836355, upload-time = "2025-09-25T21:32:39.178Z" }, + { url = "https://files.pythonhosted.org/packages/88/f9/16491d7ed2a919954993e48aa941b200f38040928474c9e85ea9e64222c3/pyyaml-6.0.3-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c458b6d084f9b935061bc36216e8a69a7e293a2f1e68bf956dcd9e6cbcd143f5", size = 794175, upload-time = "2025-09-25T21:32:40.865Z" }, + { url = "https://files.pythonhosted.org/packages/dd/3f/5989debef34dc6397317802b527dbbafb2b4760878a53d4166579111411e/pyyaml-6.0.3-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:7c6610def4f163542a622a73fb39f534f8c101d690126992300bf3207eab9764", size = 755228, upload-time = "2025-09-25T21:32:42.084Z" }, + { url = "https://files.pythonhosted.org/packages/d7/ce/af88a49043cd2e265be63d083fc75b27b6ed062f5f9fd6cdc223ad62f03e/pyyaml-6.0.3-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:5190d403f121660ce8d1d2c1bb2ef1bd05b5f68533fc5c2ea899bd15f4399b35", size = 789194, upload-time = "2025-09-25T21:32:43.362Z" }, + { url = "https://files.pythonhosted.org/packages/23/20/bb6982b26a40bb43951265ba29d4c246ef0ff59c9fdcdf0ed04e0687de4d/pyyaml-6.0.3-cp314-cp314-win_amd64.whl", hash = "sha256:4a2e8cebe2ff6ab7d1050ecd59c25d4c8bd7e6f400f5f82b96557ac0abafd0ac", size = 156429, upload-time = "2025-09-25T21:32:57.844Z" }, + { url = "https://files.pythonhosted.org/packages/f4/f4/a4541072bb9422c8a883ab55255f918fa378ecf083f5b85e87fc2b4eda1b/pyyaml-6.0.3-cp314-cp314-win_arm64.whl", hash = "sha256:93dda82c9c22deb0a405ea4dc5f2d0cda384168e466364dec6255b293923b2f3", size = 143912, upload-time = "2025-09-25T21:32:59.247Z" }, + { url = "https://files.pythonhosted.org/packages/7c/f9/07dd09ae774e4616edf6cda684ee78f97777bdd15847253637a6f052a62f/pyyaml-6.0.3-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:02893d100e99e03eda1c8fd5c441d8c60103fd175728e23e431db1b589cf5ab3", size = 189108, upload-time = "2025-09-25T21:32:44.377Z" }, + { url = "https://files.pythonhosted.org/packages/4e/78/8d08c9fb7ce09ad8c38ad533c1191cf27f7ae1effe5bb9400a46d9437fcf/pyyaml-6.0.3-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:c1ff362665ae507275af2853520967820d9124984e0f7466736aea23d8611fba", size = 183641, upload-time = "2025-09-25T21:32:45.407Z" }, + { url = "https://files.pythonhosted.org/packages/7b/5b/3babb19104a46945cf816d047db2788bcaf8c94527a805610b0289a01c6b/pyyaml-6.0.3-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6adc77889b628398debc7b65c073bcb99c4a0237b248cacaf3fe8a557563ef6c", size = 831901, upload-time = "2025-09-25T21:32:48.83Z" }, + { url = "https://files.pythonhosted.org/packages/8b/cc/dff0684d8dc44da4d22a13f35f073d558c268780ce3c6ba1b87055bb0b87/pyyaml-6.0.3-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:a80cb027f6b349846a3bf6d73b5e95e782175e52f22108cfa17876aaeff93702", size = 861132, upload-time = "2025-09-25T21:32:50.149Z" }, + { url = "https://files.pythonhosted.org/packages/b1/5e/f77dc6b9036943e285ba76b49e118d9ea929885becb0a29ba8a7c75e29fe/pyyaml-6.0.3-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:00c4bdeba853cc34e7dd471f16b4114f4162dc03e6b7afcc2128711f0eca823c", size = 839261, upload-time = "2025-09-25T21:32:51.808Z" }, + { url = "https://files.pythonhosted.org/packages/ce/88/a9db1376aa2a228197c58b37302f284b5617f56a5d959fd1763fb1675ce6/pyyaml-6.0.3-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:66e1674c3ef6f541c35191caae2d429b967b99e02040f5ba928632d9a7f0f065", size = 805272, upload-time = "2025-09-25T21:32:52.941Z" }, + { url = "https://files.pythonhosted.org/packages/da/92/1446574745d74df0c92e6aa4a7b0b3130706a4142b2d1a5869f2eaa423c6/pyyaml-6.0.3-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:16249ee61e95f858e83976573de0f5b2893b3677ba71c9dd36b9cf8be9ac6d65", size = 829923, upload-time = "2025-09-25T21:32:54.537Z" }, + { url = "https://files.pythonhosted.org/packages/f0/7a/1c7270340330e575b92f397352af856a8c06f230aa3e76f86b39d01b416a/pyyaml-6.0.3-cp314-cp314t-win_amd64.whl", hash = "sha256:4ad1906908f2f5ae4e5a8ddfce73c320c2a1429ec52eafd27138b7f1cbe341c9", size = 174062, upload-time = "2025-09-25T21:32:55.767Z" }, + { url = "https://files.pythonhosted.org/packages/f1/12/de94a39c2ef588c7e6455cfbe7343d3b2dc9d6b6b2f40c4c6565744c873d/pyyaml-6.0.3-cp314-cp314t-win_arm64.whl", hash = "sha256:ebc55a14a21cb14062aa4162f906cd962b28e2e9ea38f9b4391244cd8de4ae0b", size = 149341, upload-time = "2025-09-25T21:32:56.828Z" }, +] + +[[package]] +name = "ssphub" +version = "0.1.0" +source = { virtual = "." } +dependencies = [ + { name = "polars" }, + { name = "pyyaml" }, +] + +[package.metadata] +requires-dist = [ + { name = "polars", specifier = ">=1.35.2" }, + { name = "pyyaml", specifier = ">=6.0.3" }, +] diff --git a/static/custom/onyxia.svg b/static/custom/onyxia.svg deleted file mode 100644 index 99296fcf..00000000 --- a/static/custom/onyxia.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/static/uploads/.gitkeep b/static/uploads/.gitkeep deleted file mode 100644 index e69de29b..00000000 diff --git a/static/uploads/2022-02-07-open-hour-bonnes-pratiques.pdf b/static/uploads/2022-02-07-open-hour-bonnes-pratiques.pdf deleted file mode 100644 index 6dc6dc97..00000000 Binary files a/static/uploads/2022-02-07-open-hour-bonnes-pratiques.pdf and /dev/null differ diff --git a/static/uploads/Machine Learning et imputation.odp b/static/uploads/Machine Learning et imputation.odp deleted file mode 100644 index 4ec6ed8f..00000000 Binary files a/static/uploads/Machine Learning et imputation.odp and /dev/null differ diff --git a/static/uploads/actu_data_0306.pdf b/static/uploads/actu_data_0306.pdf deleted file mode 100644 index a61ffa2f..00000000 Binary files a/static/uploads/actu_data_0306.pdf and /dev/null differ diff --git a/static/uploads/actu_data_2204.pdf b/static/uploads/actu_data_2204.pdf deleted file mode 100644 index 0f9b5b81..00000000 Binary files a/static/uploads/actu_data_2204.pdf and /dev/null differ diff --git a/static/uploads/gridviz.pdf b/static/uploads/gridviz.pdf deleted file mode 100644 index bcc82d24..00000000 Binary files a/static/uploads/gridviz.pdf and /dev/null differ