{"id":20792,"date":"2024-02-19T22:19:25","date_gmt":"2024-02-19T21:19:25","guid":{"rendered":"https:\/\/complex-systems-ai.com\/?page_id=20792"},"modified":"2024-02-20T10:06:40","modified_gmt":"2024-02-20T09:06:40","slug":"pipeline-forecasting","status":"publish","type":"page","link":"https:\/\/complex-systems-ai.com\/es\/pronostico-de-prediccion\/prevision-de-tuberias\/","title":{"rendered":"Previsi\u00f3n de tuber\u00edas"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"20792\" class=\"elementor elementor-20792\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-488b25f elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"488b25f\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-33 elementor-top-column elementor-element elementor-element-07b9cbb\" data-id=\"07b9cbb\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-f1bd48c elementor-align-justify elementor-widget elementor-widget-button\" data-id=\"f1bd48c\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-button-wrapper\">\n\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"https:\/\/complex-systems-ai.com\/prediction-forecasting\/\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">Forecasting<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t<div class=\"elementor-column elementor-col-33 elementor-top-column elementor-element elementor-element-612d26b\" data-id=\"612d26b\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-842110a elementor-align-justify elementor-widget elementor-widget-button\" data-id=\"842110a\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-button-wrapper\">\n\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"https:\/\/complex-systems-ai.com\/\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">Page d'accueil<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t<div class=\"elementor-column elementor-col-33 elementor-top-column elementor-element elementor-element-001906c\" data-id=\"001906c\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-d44e5ce elementor-align-justify elementor-widget elementor-widget-button\" data-id=\"d44e5ce\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-button-wrapper\">\n\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"https:\/\/plat.ai\/blog\/difference-between-prediction-and-forecast\/\" target=\"_blank\" rel=\"noopener\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">Wiki<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-0937054 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"0937054\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-d4fcad4\" data-id=\"d4fcad4\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-a959a95 elementor-widget elementor-widget-heading\" data-id=\"a959a95\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_82_2 counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Contenus<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Alternar tabla de contenidos\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/complex-systems-ai.com\/es\/pronostico-de-prediccion\/prevision-de-tuberias\/#Pipeline-Forecasting-avec-comparaison-de-methodes\" >Pipeline Forecasting avec comparaison de m\u00e9thodes<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/complex-systems-ai.com\/es\/pronostico-de-prediccion\/prevision-de-tuberias\/#Apercu\" >Aper\u00e7u<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/complex-systems-ai.com\/es\/pronostico-de-prediccion\/prevision-de-tuberias\/#Preprocessing\" >Preprocessing<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/complex-systems-ai.com\/es\/pronostico-de-prediccion\/prevision-de-tuberias\/#Recherche-de-correlation\" >Recherche de corr\u00e9lation<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/complex-systems-ai.com\/es\/pronostico-de-prediccion\/prevision-de-tuberias\/#Stationnarite\" >Stationnarit\u00e9<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/complex-systems-ai.com\/es\/pronostico-de-prediccion\/prevision-de-tuberias\/#Differenciation\" >Diff\u00e9renciation<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/complex-systems-ai.com\/es\/pronostico-de-prediccion\/prevision-de-tuberias\/#Lissage-Smoothing-en-cas-de-bruit-important\" >Lissage (Smoothing) en cas de bruit important<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/complex-systems-ai.com\/es\/pronostico-de-prediccion\/prevision-de-tuberias\/#Modeles-en-une-etape-ou-en-plusieurs-etapes-oneshot-ou-autoregressif\" >Mod\u00e8les en une \u00e9tape ou en plusieurs \u00e9tapes (oneshot ou autor\u00e9gressif)<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/complex-systems-ai.com\/es\/pronostico-de-prediccion\/prevision-de-tuberias\/#Types-de-modele\" >Types de mod\u00e8le<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-10\" href=\"https:\/\/complex-systems-ai.com\/es\/pronostico-de-prediccion\/prevision-de-tuberias\/#Modele-classique-AutoARIMA\" >Mod\u00e8le classique (AutoARIMA)<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-11\" href=\"https:\/\/complex-systems-ai.com\/es\/pronostico-de-prediccion\/prevision-de-tuberias\/#Modele-de-regression-lineaire\" >Mod\u00e8le de r\u00e9gression lin\u00e9aire<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-12\" href=\"https:\/\/complex-systems-ai.com\/es\/pronostico-de-prediccion\/prevision-de-tuberias\/#Random-Forest\" >Random Forest<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-13\" href=\"https:\/\/complex-systems-ai.com\/es\/pronostico-de-prediccion\/prevision-de-tuberias\/#XGBoost\" >XGBoost<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-14\" href=\"https:\/\/complex-systems-ai.com\/es\/pronostico-de-prediccion\/prevision-de-tuberias\/#Autres-modeles-a-mettre-en-place\" >Autres mod\u00e8les \u00e0 mettre en place<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-15\" href=\"https:\/\/complex-systems-ai.com\/es\/pronostico-de-prediccion\/prevision-de-tuberias\/#Comment-evaluer-les-modeles\" >Comment \u00e9valuer les mod\u00e8les<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-16\" href=\"https:\/\/complex-systems-ai.com\/es\/pronostico-de-prediccion\/prevision-de-tuberias\/#Aller-plus-loin\" >Aller plus loin<\/a><\/li><\/ul><\/nav><\/div>\n<h2 class=\"elementor-heading-title elementor-size-default\"><span class=\"ez-toc-section\" id=\"Pipeline-Forecasting-avec-comparaison-de-methodes\"><\/span>Pipeline Forecasting avec comparaison de m\u00e9thodes<span class=\"ez-toc-section-end\"><\/span><\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-970753b elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"970753b\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-91e17fc\" data-id=\"91e17fc\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-ec079a0 elementor-widget elementor-widget-text-editor\" data-id=\"ec079a0\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Dans ce tutoriel, vous apprendrez une pipeline forecasting : comment comparer et s\u00e9lectionner des mod\u00e8les de s\u00e9ries temporelles en fonction des performances pr\u00e9dictives.<\/p><p><img decoding=\"async\" class=\"aligncenter wp-image-11096 size-full\" src=\"http:\/\/complex-systems-ai.com\/wp-content\/uploads\/2020\/09\/cropped-Capture.png\" alt=\"pipeline forecasting\" width=\"97\" height=\"97\" title=\"\"><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-4b0cdef elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"4b0cdef\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-753efdb\" data-id=\"753efdb\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-e1e6ef3 elementor-widget elementor-widget-heading\" data-id=\"e1e6ef3\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\"><span class=\"ez-toc-section\" id=\"Apercu\"><\/span>Aper\u00e7u<span class=\"ez-toc-section-end\"><\/span><\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-8fd7f1a elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"8fd7f1a\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-1a66a45\" data-id=\"1a66a45\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-4827ee1 elementor-widget elementor-widget-text-editor\" data-id=\"4827ee1\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Dans la premi\u00e8re partie, vous d\u00e9couvrirez de nombreux mod\u00e8les de s\u00e9ries chronologiques. Cette partie est divis\u00e9e en trois parties :<\/p><ul><li>mod\u00e8les de s\u00e9ries chronologiques classiques,<\/li><li>mod\u00e8les supervis\u00e9s,<\/li><li>et des mod\u00e8les bas\u00e9s sur l\u2019apprentissage profond.<\/li><\/ul><p>Dans la deuxi\u00e8me partie, vous verrez une application \u00e0 un cas d&rsquo;utilisation dans lequel vous construirez quelques mod\u00e8les de s\u00e9ries chronologiques pour la pr\u00e9vision boursi\u00e8re et vous apprendrez quelques techniques de mod\u00e9lisation de s\u00e9ries chronologiques. Les mod\u00e8les seront compar\u00e9s les uns aux autres pour s\u00e9lectionner le plus performant.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-25caf77 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"25caf77\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-d77d264\" data-id=\"d77d264\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-25b9b82 elementor-widget elementor-widget-heading\" data-id=\"25b9b82\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\"><span class=\"ez-toc-section\" id=\"Preprocessing\"><\/span>Preprocessing<span class=\"ez-toc-section-end\"><\/span><\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-9e53f96 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"9e53f96\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-75c1b1c\" data-id=\"75c1b1c\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-3209e30 elementor-widget elementor-widget-text-editor\" data-id=\"3209e30\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>En raison de la nature des donn\u00e9es de s\u00e9ries chronologiques, la mod\u00e9lisation des s\u00e9ries chronologiques comporte un certain nombre de sp\u00e9cificit\u00e9s qui ne sont pas pertinentes pour d\u2019autres ensembles de donn\u00e9es.<\/p><p>La premi\u00e8re sp\u00e9cificit\u00e9 des s\u00e9ries temporelles est que l\u2019horodatage qui identifie les donn\u00e9es a une signification intrins\u00e8que. Les mod\u00e8les de s\u00e9ries chronologiques univari\u00e9es sont des mod\u00e8les de pr\u00e9vision qui utilisent une seule variable (la variable cible) et sa variation temporelle pour pr\u00e9voir l&rsquo;avenir. Les mod\u00e8les univari\u00e9s sont sp\u00e9cifiques aux s\u00e9ries chronologiques.<\/p><p>Dans d\u2019autres situations, vous pouvez disposer de donn\u00e9es explicatives suppl\u00e9mentaires sur l\u2019avenir. Par exemple, imaginez que vous souhaitiez prendre en compte les pr\u00e9visions m\u00e9t\u00e9orologiques dans vos pr\u00e9visions de demande de produits, ou que vous disposiez d&rsquo;autres donn\u00e9es qui influenceront vos pr\u00e9visions. Dans ce cas, vous pouvez utiliser des mod\u00e8les de s\u00e9ries chronologiques multivari\u00e9es.\u00a0<\/p><p>Les mod\u00e8les de s\u00e9ries chronologiques multivari\u00e9es sont des mod\u00e8les de s\u00e9ries chronologiques univari\u00e9es adapt\u00e9s pour int\u00e9grer des variables externes. Vous pouvez \u00e9galement utiliser l\u2019apprentissage automatique supervis\u00e9 pour cette t\u00e2che.<\/p><p>Si vous souhaitez utiliser une variation temporelle sur vos donn\u00e9es de s\u00e9ries chronologiques, vous devrez d&rsquo;abord comprendre les diff\u00e9rents types de variations temporelles auxquelles vous pouvez vous attendre.<\/p><p>La d\u00e9composition des s\u00e9ries chronologiques est une technique permettant d&rsquo;extraire plusieurs types de variations de votre ensemble de donn\u00e9es. Il existe trois composants importants dans les donn\u00e9es temporelles d&rsquo;une s\u00e9rie chronologique\u00a0: la saisonnalit\u00e9, la tendance et le bruit.<\/p><p>La saisonnalit\u00e9 est un mouvement r\u00e9current pr\u00e9sent dans votre variable de s\u00e9rie chronologique. Par exemple, la temp\u00e9rature d\u2019un endroit sera plus \u00e9lev\u00e9e pendant les mois d\u2019\u00e9t\u00e9 et plus basse pendant les mois d\u2019hiver. Vous pouvez calculer les temp\u00e9ratures mensuelles moyennes et utiliser cette saisonnalit\u00e9 comme base pour pr\u00e9voir les valeurs futures.<\/p><p>Une tendance peut \u00eatre une tendance \u00e0 la hausse ou \u00e0 la baisse \u00e0 long terme. Dans une s\u00e9rie chronologique de temp\u00e9ratures, une tendance pourrait \u00eatre pr\u00e9sente en raison du r\u00e9chauffement climatique. Par exemple, en plus de la saisonnalit\u00e9 \u00e9t\u00e9\/hiver, vous pourriez constater une l\u00e9g\u00e8re augmentation des temp\u00e9ratures moyennes au fil du temps.<\/p><p>Le bruit fait partie de la variabilit\u00e9 d&rsquo;une s\u00e9rie chronologique qui ne peut \u00eatre expliqu\u00e9e ni par la saisonnalit\u00e9 ni par une tendance. Lors de la cr\u00e9ation de mod\u00e8les, vous finissez par combiner diff\u00e9rents composants dans une formule math\u00e9matique. Deux \u00e9l\u00e9ments d\u2019une telle formule peuvent \u00eatre la saisonnalit\u00e9 et la tendance. Un mod\u00e8le qui combine les deux ne repr\u00e9sentera jamais parfaitement les valeurs de temp\u00e9rature : une erreur subsistera toujours. Ceci est repr\u00e9sent\u00e9 par le facteur de bruit.<\/p><p>Voyons un court exemple pour comprendre comment d\u00e9composer une s\u00e9rie chronologique en Python, en utilisant l&rsquo;ensemble de donn\u00e9es CO2 de la biblioth\u00e8que statsmodels.<\/p><p>Vous pouvez importer les donn\u00e9es comme suit\u00a0:<\/p><p>import statsmodels.datasets.co2 as co2<br \/>co2_data = co2.load().data<br \/>print(co2_data)<\/p><p>Il existe quelques valeurs NA que vous pouvez supprimer \u00e0 l&rsquo;aide d&rsquo;une interpolation, comme suit\u00a0:<\/p><p>co2_data = co2_data.fillna(co2_data.interpolate())<\/p><p>Vous pouvez voir l&rsquo;\u00e9volution temporelle des valeurs de CO2 \u00e0 l&rsquo;aide du code suivant :<\/p><p>co2_data.plot()<\/p><p><img fetchpriority=\"high\" decoding=\"async\" class=\"alignnone size-medium wp-image-20807\" src=\"http:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/forecast1-300x201.webp\" alt=\"pipeline forecasting\" width=\"300\" height=\"201\" title=\"\" srcset=\"https:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/forecast1-300x201.webp 300w, https:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/forecast1-18x12.webp 18w, https:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/forecast1.webp 576w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/p><p>Vous pouvez effectuer une d\u00e9composition pr\u00eate \u00e0 l&#8217;emploi (out-of-the-box) \u00e0 l&rsquo;aide de la fonction season_decompose de statsmodels. Le code suivant g\u00e9n\u00e9rera un trac\u00e9 qui divisera la s\u00e9rie chronologique en tendance, saisonnalit\u00e9 et bruit (appel\u00e9 ici r\u00e9siduel) :<\/p><p>from statsmodels.tsa.seasonal import seasonal_decompose<br \/>result = seasonal_decompose(co2_data)<br \/>result.plot()<\/p><p><img decoding=\"async\" class=\"alignnone wp-image-20808 size-full\" src=\"http:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/forecast2.webp\" alt=\"pipeline forecasting\" width=\"593\" height=\"390\" title=\"\" srcset=\"https:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/forecast2.webp 593w, https:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/forecast2-300x197.webp 300w, https:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/forecast2-18x12.webp 18w\" sizes=\"(max-width: 593px) 100vw, 593px\" \/><\/p><p>La d\u00e9composition des donn\u00e9es CO2 montre une tendance \u00e0 la hausse et une forte saisonnalit\u00e9.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-a78b41a elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"a78b41a\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-6ccd594\" data-id=\"6ccd594\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-455b873 elementor-widget elementor-widget-heading\" data-id=\"455b873\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\"><span class=\"ez-toc-section\" id=\"Recherche-de-correlation\"><\/span>Recherche de corr\u00e9lation<span class=\"ez-toc-section-end\"><\/span><\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-250d0f2 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"250d0f2\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-a5bd76e\" data-id=\"a5bd76e\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-1612c2e elementor-widget elementor-widget-text-editor\" data-id=\"1612c2e\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Passons au deuxi\u00e8me type d\u2019informations temporelles pouvant \u00eatre pr\u00e9sentes dans les donn\u00e9es de s\u00e9ries temporelles : l\u2019autocorr\u00e9lation.<\/p><p>L&rsquo;autocorr\u00e9lation est la <a href=\"https:\/\/complex-systems-ai.com\/es\/correlacion-y-regresiones\/\">corr\u00e9lation<\/a> entre la valeur actuelle d&rsquo;une s\u00e9rie chronologique et les valeurs pass\u00e9es. Si tel est le cas, vous pouvez utiliser les valeurs actuelles pour mieux pr\u00e9dire les valeurs futures.<\/p><p>L&rsquo;autocorr\u00e9lation peut \u00eatre positive ou n\u00e9gative\u00a0:<\/p><ul><li>Une autocorr\u00e9lation positive signifie qu\u2019une valeur \u00e9lev\u00e9e maintenant est susceptible de produire une valeur \u00e9lev\u00e9e dans le futur et vice versa. Pensez au march\u00e9 boursier : si tout le monde ach\u00e8te une action, alors le prix augmente. Lorsque le prix augmente, les gens pensent que c\u2019est une bonne action \u00e0 acheter et ils l\u2019ach\u00e8tent \u00e9galement, ce qui fait monter encore le prix. Cependant, si le prix baisse, alors tout le monde a peur d\u2019un krach, vend ses actions et le prix baisse.<\/li><li>L\u2019autocorr\u00e9lation n\u00e9gative est l\u2019inverse : une valeur \u00e9lev\u00e9e aujourd\u2019hui implique une valeur faible demain et une valeur faible aujourd\u2019hui implique une valeur \u00e9lev\u00e9e demain. Un exemple courant est celui des populations de lapins dans les environnements naturels. S\u2019il y a beaucoup de lapins sauvages au cours d\u2019un \u00e9t\u00e9, ils mangeront toutes les ressources naturelles disponibles. Pendant l\u2019hiver, il n\u2019y aura plus rien \u00e0 manger, donc beaucoup d\u2019entre eux mourront et la population de lapins survivants sera petite. Durant cette ann\u00e9e avec une petite population de lapins, les ressources naturelles vont cro\u00eetre et permettre \u00e0 la population de lapins de cro\u00eetre l&rsquo;ann\u00e9e suivante.<\/li><\/ul><p>Deux graphiques c\u00e9l\u00e8bres peuvent vous aider \u00e0 d\u00e9tecter l&rsquo;autocorr\u00e9lation dans votre ensemble de donn\u00e9es\u00a0: le trac\u00e9 ACF et le trac\u00e9 PACF.<\/p><p>Vous pouvez calculer un trac\u00e9 ACF \u00e0 l&rsquo;aide de Python comme suit\u00a0:<\/p><p>from statsmodels.graphics.tsaplots import plot_acf<br \/>plot_acf(co2_data)<\/p><p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-20809 size-full\" src=\"http:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/forecast3.webp\" alt=\"pipeline forecasting\" width=\"580\" height=\"412\" title=\"\" srcset=\"https:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/forecast3.webp 580w, https:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/forecast3-300x213.webp 300w, https:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/forecast3-18x12.webp 18w, https:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/forecast3-120x85.webp 120w\" sizes=\"(max-width: 580px) 100vw, 580px\" \/><\/p><p>Sur l&rsquo;axe des x, vous pouvez voir les pas de temps (retour dans le temps). C&rsquo;est aussi ce qu&rsquo;on appelle le nombre de d\u00e9calages. Sur l\u2019axe des y, vous pouvez voir le degr\u00e9 de corr\u00e9lation de chaque pas de temps avec le temps \u00ab pr\u00e9sent \u00bb. Il est \u00e9vident qu\u2019il existe une autocorr\u00e9lation significative dans ce graphique.<\/p><p>Le PACF est une alternative \u00e0 l\u2019ACF. Plut\u00f4t que de donner les autocorr\u00e9lations, il vous donne l&rsquo;autocorr\u00e9lation partielle. Cette autocorr\u00e9lation est dite partielle, car \u00e0 chaque retour en arri\u00e8re, seule une autocorr\u00e9lation suppl\u00e9mentaire est r\u00e9pertori\u00e9e. Ceci est diff\u00e9rent de l&rsquo;ACF, car l&rsquo;ACF contient des corr\u00e9lations en double lorsque la variabilit\u00e9 peut \u00eatre expliqu\u00e9e par plusieurs moments dans le temps.<\/p><p>Par exemple, si la valeur d&rsquo;aujourd&rsquo;hui est la m\u00eame que la valeur d&rsquo;hier, mais \u00e9galement la m\u00eame que celle d&rsquo;avant-hier, l&rsquo;ACF affichera deux \u00e9tapes hautement corr\u00e9l\u00e9es. Le PACF ne s&rsquo;afficherait qu&rsquo;hier et supprimerait avant-hier.<\/p><p>Vous pouvez calculer un trac\u00e9 PACF \u00e0 l&rsquo;aide de Python comme suit\u00a0:<\/p><p>from statsmodels.graphics.tsaplots import plot_pacf<br \/>plot_pacf(co2_data)<\/p><p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-20810 size-full\" src=\"http:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/forecast4.webp\" alt=\"pipeline forecasting\" width=\"573\" height=\"406\" title=\"\" srcset=\"https:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/forecast4.webp 573w, https:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/forecast4-300x213.webp 300w, https:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/forecast4-18x12.webp 18w, https:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/forecast4-120x85.webp 120w\" sizes=\"(max-width: 573px) 100vw, 573px\" \/><\/p><p>Vous pouvez voir ci-dessous que ce trac\u00e9 PACF donne une bien meilleure repr\u00e9sentation de l\u2019autocorr\u00e9lation dans les donn\u00e9es CO2. Il existe une forte autocorr\u00e9lation positive avec le d\u00e9calage 1\u00a0: une valeur \u00e9lev\u00e9e signifie d\u00e9sormais que vous observerez tr\u00e8s probablement une valeur \u00e9lev\u00e9e \u00e0 l&rsquo;\u00e9tape suivante. \u00c9tant donn\u00e9 que l&rsquo;autocorr\u00e9lation pr\u00e9sent\u00e9e ici est partielle, vous ne voyez aucun effet en double avec les d\u00e9calages ant\u00e9rieurs, ce qui rend le trac\u00e9 PACF plus net et plus clair.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-e141405 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"e141405\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-bb267f1\" data-id=\"bb267f1\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-13ff6fb elementor-widget elementor-widget-heading\" data-id=\"13ff6fb\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\"><span class=\"ez-toc-section\" id=\"Stationnarite\"><\/span>Stationnarit\u00e9<span class=\"ez-toc-section-end\"><\/span><\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-1d2db8c elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"1d2db8c\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-c154cd6\" data-id=\"c154cd6\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-cc7efc6 elementor-widget elementor-widget-text-editor\" data-id=\"cc7efc6\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Une autre d\u00e9finition importante des s\u00e9ries chronologiques est la stationnarit\u00e9. Une s\u00e9rie chronologique stationnaire est une s\u00e9rie chronologique sans tendance. Certains mod\u00e8les de s\u00e9ries chronologiques ne sont pas capables de traiter les tendances (nous y reviendrons plus tard). Vous pouvez d\u00e9tecter la non-stationnarit\u00e9 \u00e0 l&rsquo;aide du test de Dickey-Fuller et supprimer la non-stationnarit\u00e9 \u00e0 l&rsquo;aide de la diff\u00e9renciation.<\/p><p>Le test de Dickey-Fuller est un test d&rsquo;hypoth\u00e8se statistique qui permet de d\u00e9tecter la non-stationnarit\u00e9. Vous pouvez utiliser le code Python suivant pour appliquer un test Dickey-Fuller aux donn\u00e9es CO2\u00a0:<\/p><p>from statsmodels.tsa.stattools import adfuller<br \/>adf, pval, usedlag, nobs, crit_vals, icbest = adfuller(co2_data.co2.values)<br \/>print(&lsquo;ADF test statistic:&rsquo;, adf)<br \/>print(&lsquo;ADF p-values:&rsquo;, pval)<br \/>print(&lsquo;ADF number of lags used:&rsquo;, usedlag)<br \/>print(&lsquo;ADF number of observations:&rsquo;, nobs)<br \/>print(&lsquo;ADF critical values:&rsquo;, crit_vals)<br \/>print(&lsquo;ADF best information criterion:&rsquo;, icbest)<\/p><p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-20811 size-full\" src=\"http:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/forecast5.webp\" alt=\"pipeline forecasting\" width=\"831\" height=\"122\" title=\"\" srcset=\"https:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/forecast5.webp 831w, https:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/forecast5-300x44.webp 300w, https:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/forecast5-768x113.webp 768w, https:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/forecast5-18x3.webp 18w\" sizes=\"(max-width: 831px) 100vw, 831px\" \/><\/p><p>L&rsquo;hypoth\u00e8se nulle du test ADF est qu&rsquo;une racine unitaire est pr\u00e9sente dans la s\u00e9rie chronologique. L&rsquo;hypoth\u00e8se alternative est que les donn\u00e9es sont stationnaires.<\/p><p>La deuxi\u00e8me valeur est la valeur p. Si cette valeur p est inf\u00e9rieure \u00e0 0,05, vous pouvez rejeter l&rsquo;hypoth\u00e8se nulle (rejeter la non-stationnarit\u00e9) et accepter l&rsquo;hypoth\u00e8se alternative (stationnarit\u00e9). Dans ce cas, on ne peut pas rejeter l\u2019hypoth\u00e8se nulle et il faudra supposer que les donn\u00e9es sont non stationnaires. Comme vous avez vu les donn\u00e9es, vous savez qu\u2019il y a une tendance, cela confirme donc \u00e9galement le r\u00e9sultat que nous avons obtenu.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-7d5cd59 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"7d5cd59\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-463f0d2\" data-id=\"463f0d2\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-ff1260b elementor-widget elementor-widget-heading\" data-id=\"ff1260b\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\"><span class=\"ez-toc-section\" id=\"Differenciation\"><\/span>Diff\u00e9renciation <span class=\"ez-toc-section-end\"><\/span><\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-fead400 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"fead400\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-51f99f5\" data-id=\"51f99f5\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-494db39 elementor-widget elementor-widget-text-editor\" data-id=\"494db39\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Vous pouvez supprimer la tendance de votre s\u00e9rie chronologique. Le but est de n&rsquo;avoir que des variations saisonni\u00e8res : cela peut \u00eatre une mani\u00e8re d&rsquo;utiliser certains mod\u00e8les qui fonctionnent avec la saisonnalit\u00e9 mais pas avec les tendances.<\/p><p>prev_co2_value = co2_data.co2.shift()<br \/>differenced_co2 = co2_data.co2 &#8211; prev_co2_value<br \/>differenced_co2.plot()<\/p><p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-20812 size-full\" src=\"http:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/forecast6.webp\" alt=\"pipeline forecasting\" width=\"652\" height=\"433\" title=\"\" srcset=\"https:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/forecast6.webp 652w, https:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/forecast6-300x199.webp 300w, https:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/forecast6-18x12.webp 18w\" sizes=\"(max-width: 652px) 100vw, 652px\" \/><\/p><p>Si vous refaites le test ADF sur les donn\u00e9es diff\u00e9renci\u00e9es, vous confirmerez que ces donn\u00e9es sont d\u00e9sormais bien stationnaires :<\/p><p>adf, pval, usedlag, nobs, crit_vals, icbest = adfuller(differenced_co2.dropna())<br \/>print(&lsquo;ADF test statistic:&rsquo;, adf)<br \/>print(&lsquo;ADF p-values:&rsquo;, pval)<br \/>print(&lsquo;ADF number of lags used:&rsquo;, usedlag)<br \/>print(&lsquo;ADF number of observations:&rsquo;, nobs)<br \/>print(&lsquo;ADF critical values:&rsquo;, crit_vals)<br \/>print(&lsquo;ADF best information criterion:&rsquo;, icbest)<\/p><p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-20813 size-full\" src=\"http:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/forecast7.webp\" alt=\"pipeline forecasting\" width=\"851\" height=\"122\" title=\"\" srcset=\"https:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/forecast7.webp 851w, https:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/forecast7-300x43.webp 300w, https:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/forecast7-768x110.webp 768w, https:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/forecast7-18x3.webp 18w\" sizes=\"(max-width: 851px) 100vw, 851px\" \/><\/p><p>La valeur p est tr\u00e8s faible, ce qui indique que l&rsquo;hypoth\u00e8se alternative (stationnarit\u00e9) est vraie.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-e36c3ee elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"e36c3ee\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-d762fe6\" data-id=\"d762fe6\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-ac284aa elementor-widget elementor-widget-heading\" data-id=\"ac284aa\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\"><span class=\"ez-toc-section\" id=\"Lissage-Smoothing-en-cas-de-bruit-important\"><\/span>Lissage (Smoothing) en cas de bruit important<span class=\"ez-toc-section-end\"><\/span><\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-b483b5f elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"b483b5f\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-e04d4b6\" data-id=\"e04d4b6\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-a86ad7f elementor-widget elementor-widget-text-editor\" data-id=\"a86ad7f\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Le lissage exponentiel est une technique statistique de base qui peut \u00eatre utilis\u00e9e pour lisser les s\u00e9ries temporelles. Les mod\u00e8les de s\u00e9ries chronologiques pr\u00e9sentent souvent une grande variabilit\u00e9 \u00e0 long terme, mais \u00e9galement une variabilit\u00e9 (bruyante) \u00e0 court terme. Le lissage vous permet de rendre votre courbe plus lisse afin que la variabilit\u00e9 \u00e0 long terme devienne plus \u00e9vidente et que les mod\u00e8les (bruyants) \u00e0 court terme soient supprim\u00e9s.<\/p><p>Cette version liss\u00e9e de la s\u00e9rie chronologique peut ensuite \u00eatre utilis\u00e9e pour l&rsquo;analyse.<\/p><p>Si vous souhaitez aller encore plus loin, vous pouvez utiliser le triple lissage exponentiel, \u00e9galement appel\u00e9 lissage exponentiel de Holt Winter. Vous ne devez l&rsquo;utiliser que lorsqu&rsquo;il existe trois signaux importants dans vos donn\u00e9es de s\u00e9rie chronologique. Par exemple, un signal pourrait \u00eatre la tendance, un autre pourrait \u00eatre une saisonnalit\u00e9 hebdomadaire et un troisi\u00e8me pourrait \u00eatre une saisonnalit\u00e9 mensuelle.<\/p><p>Dans l&rsquo;exemple suivant, vous voyez comment appliquer un lissage exponentiel simple aux donn\u00e9es CO2. Le niveau de lissage indique \u00e0 quel point votre courbe doit devenir lisse. Dans l\u2019exemple, il est r\u00e9gl\u00e9 tr\u00e8s bas, indiquant une courbe tr\u00e8s douce. N&rsquo;h\u00e9sitez pas \u00e0 jouer avec ce param\u00e8tre et voyez \u00e0 quoi ressemblent les versions moins fluides.<\/p><p>from statsmodels.tsa.api import SimpleExpSmoothing<br \/>es = SimpleExpSmoothing(co2_data.co2.values)<br \/>es.fit(smoothing_level=0.01)<br \/>plt.plot(co2_data.co2.values)<br \/>plt.plot(es.predict(es.params, start=0, end=None))<br \/>plt.show()<\/p><p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-20815\" src=\"http:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/forecast9-300x195.webp\" alt=\"smoothing\" width=\"300\" height=\"195\" title=\"\" srcset=\"https:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/forecast9-300x195.webp 300w, https:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/forecast9-18x12.webp 18w, https:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/forecast9.webp 552w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/p><p>Une fois la courbe liss\u00e9e, elle est beaucoup plus simple \u00e0 apprendre (ici cela revient \u00e0 faire la tendance).<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-f06e9e2 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"f06e9e2\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-5a2eaf0\" data-id=\"5a2eaf0\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-121076a elementor-widget elementor-widget-heading\" data-id=\"121076a\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\"><span class=\"ez-toc-section\" id=\"Modeles-en-une-etape-ou-en-plusieurs-etapes-oneshot-ou-autoregressif\"><\/span>Mod\u00e8les en une \u00e9tape ou en plusieurs \u00e9tapes (oneshot ou autor\u00e9gressif)<span class=\"ez-toc-section-end\"><\/span><\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-4b82cea elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"4b82cea\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-15a542a\" data-id=\"15a542a\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-a6df443 elementor-widget elementor-widget-text-editor\" data-id=\"a6df443\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Le dernier concept qu\u2019il est important de comprendre avant de se lancer dans la mod\u00e9lisation est celui des mod\u00e8les en une \u00e9tape par rapport aux mod\u00e8les en plusieurs \u00e9tapes.<\/p><p>Certains mod\u00e8les fonctionnent tr\u00e8s bien pour pr\u00e9dire la prochaine \u00e9tape d\u2019une s\u00e9rie chronologique, mais n\u2019ont pas la capacit\u00e9 de pr\u00e9dire plusieurs \u00e9tapes \u00e0 la fois. Ces mod\u00e8les sont des mod\u00e8les en une seule \u00e9tape. Vous pouvez cr\u00e9er des mod\u00e8les en plusieurs \u00e9tapes avec eux en fen\u00eatrant vos pr\u00e9dictions, mais il existe un risque\u00a0: lorsque vous utilisez des valeurs pr\u00e9dites pour faire des pr\u00e9dictions, vos erreurs peuvent rapidement s&rsquo;accumuler et devenir tr\u00e8s importantes.<\/p><p>Les mod\u00e8les multi-\u00e9tapes sont des mod\u00e8les qui ont la capacit\u00e9 intrins\u00e8que de pr\u00e9dire plusieurs \u00e9tapes \u00e0 la fois. Ils constituent g\u00e9n\u00e9ralement le meilleur choix pour les pr\u00e9visions \u00e0 long terme, et parfois aussi pour les pr\u00e9visions \u00e0 une \u00e9tape. Il est essentiel que vous d\u00e9cidiez du nombre d&rsquo;\u00e9tapes que vous souhaitez pr\u00e9dire avant de commencer \u00e0 cr\u00e9er des mod\u00e8les. Cela d\u00e9pend uniquement de votre cas d&rsquo;utilisation.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-9882c44 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"9882c44\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-c16cc08\" data-id=\"c16cc08\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-59305c2 elementor-widget elementor-widget-heading\" data-id=\"59305c2\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\"><span class=\"ez-toc-section\" id=\"Types-de-modele\"><\/span>Types de mod\u00e8le<span class=\"ez-toc-section-end\"><\/span><\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-6b4cc8c elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"6b4cc8c\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-89f3556\" data-id=\"89f3556\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-362cc3b elementor-widget elementor-widget-text-editor\" data-id=\"362cc3b\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Maintenant que vous avez vu les principales sp\u00e9cificit\u00e9s des donn\u00e9es de s\u00e9ries chronologiques, il est temps d\u2019examiner les types de mod\u00e8les pouvant \u00eatre utilis\u00e9s pour pr\u00e9dire les s\u00e9ries chronologiques. Cette t\u00e2che est g\u00e9n\u00e9ralement appel\u00e9e pr\u00e9vision.<\/p><p><b>Mod\u00e8les de s\u00e9ries chronologiques classiques<\/b><\/p><p>Les mod\u00e8les de s\u00e9ries chronologiques classiques sont une famille de mod\u00e8les traditionnellement tr\u00e8s utilis\u00e9s dans de nombreux domaines de la pr\u00e9vision. Ils sont fortement bas\u00e9s sur la variation temporelle \u00e0 l\u2019int\u00e9rieur d\u2019une s\u00e9rie chronologique et fonctionnent bien avec des s\u00e9ries chronologiques univari\u00e9es. Certaines options avanc\u00e9es existent pour ajouter \u00e9galement des variables externes dans les mod\u00e8les. Ces mod\u00e8les ne s&rsquo;appliquent g\u00e9n\u00e9ralement qu&rsquo;aux s\u00e9ries chronologiques et ne sont pas utiles pour d&rsquo;autres types d&rsquo;apprentissage automatique.<\/p><p><b>Mod\u00e8les supervis\u00e9s<\/b><\/p><p>Les mod\u00e8les supervis\u00e9s sont une famille de mod\u00e8les utilis\u00e9s pour de nombreuses t\u00e2ches d\u2019apprentissage automatique. Un mod\u00e8le d&rsquo;apprentissage automatique est supervis\u00e9 lorsqu&rsquo;il utilise des variables d&rsquo;entr\u00e9e clairement d\u00e9finies et une ou plusieurs variables de sortie (cibles).<\/p><p>Les mod\u00e8les supervis\u00e9s peuvent \u00eatre utilis\u00e9s pour les s\u00e9ries chronologiques, \u00e0 condition que vous disposiez d&rsquo;un moyen d&rsquo;extraire la saisonnalit\u00e9 et de la placer dans une variable. Les exemples incluent la cr\u00e9ation d&rsquo;une variable pour une ann\u00e9e, un mois ou un jour de la semaine, etc. Celles-ci sont ensuite utilis\u00e9es comme variables X dans votre mod\u00e8le supervis\u00e9 et le \u00ab y \u00bb est la valeur r\u00e9elle de la s\u00e9rie chronologique. Vous pouvez \u00e9galement inclure des versions d\u00e9cal\u00e9es de y (la valeur pass\u00e9e de y) dans les donn\u00e9es X, afin d&rsquo;ajouter des effets d&rsquo;autocorr\u00e9lation.<\/p><p><b>Deep learning et mod\u00e8les r\u00e9cents<\/b><\/p><p>La popularit\u00e9 croissante du deep learning au cours des derni\u00e8res ann\u00e9es a \u00e9galement ouvert de nouvelles portes \u00e0 la pr\u00e9vision, car des architectures sp\u00e9cifiques de deep learning ont \u00e9t\u00e9 invent\u00e9es et fonctionnent tr\u00e8s bien sur les donn\u00e9es de s\u00e9quence.<\/p><p>Le cloud computing et la vulgarisation de l\u2019IA en tant que service ont \u00e9galement donn\u00e9 naissance \u00e0 un certain nombre de nouvelles inventions dans le domaine. Facebook, Amazon et d&rsquo;autres grandes entreprises technologiques ouvrent leurs produits de pr\u00e9vision ou les rendent disponibles sur leurs plateformes cloud. La disponibilit\u00e9 de ces nouveaux mod\u00e8les de \u00ab bo\u00eete noire \u00bb donne aux pr\u00e9visionnistes de nouveaux outils \u00e0 essayer et \u00e0 tester, et peut parfois m\u00eame surpasser les mod\u00e8les pr\u00e9c\u00e9dents.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-7445ccd elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"7445ccd\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-2ced28e\" data-id=\"2ced28e\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-5e851fe elementor-widget elementor-widget-heading\" data-id=\"5e851fe\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\"><span class=\"ez-toc-section\" id=\"Modele-classique-AutoARIMA\"><\/span>Mod\u00e8le classique (AutoARIMA)<span class=\"ez-toc-section-end\"><\/span><\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-d87ad50 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"d87ad50\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-bc072ec\" data-id=\"bc072ec\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-7945c61 elementor-widget elementor-widget-text-editor\" data-id=\"7945c61\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>La famille de mod\u00e8les ARIMA est un ensemble de mod\u00e8les plus petits pouvant \u00eatre combin\u00e9s. Chaque partie du mod\u00e8le ARIMA peut \u00eatre utilis\u00e9e comme composant autonome, ou les diff\u00e9rents \u00e9l\u00e9ments de base peuvent \u00eatre combin\u00e9s. Lorsque tous les composants individuels sont assembl\u00e9s, vous obtenez le mod\u00e8le SARIMAX.\u00a0<\/p><p>La difficult\u00e9 avec les mod\u00e8les ARIMA ou SARIMAX est que vous avez de nombreux param\u00e8tres (pp, d, q) ou m\u00eame (p, d, q)(P, D, Q) que vous devez choisir.<\/p><p>Dans certains cas, vous pouvez inspecter les graphiques d&rsquo;autocorr\u00e9lation et identifier des choix logiques pour les param\u00e8tres. Vous pouvez utiliser l&rsquo;impl\u00e9mentation statsmodels de SARIMAX et tester les performances avec les param\u00e8tres de votre choix.<\/p><p>Une autre approche consiste \u00e0 utiliser une fonction auto-arima qui optimise automatiquement les hyperparam\u00e8tres pour vous. La biblioth\u00e8que Pyramid Python fait exactement cela : elle essaie diff\u00e9rentes combinaisons et s\u00e9lectionne celle qui pr\u00e9sente les meilleures performances.<\/p><p>import pmdarima as pm<br \/>from pmdarima.model_selection import train_test_split<br \/>import numpy as np<br \/>import matplotlib.pyplot as plt<\/p><p>train, test = train_test_split(co2_data.co2.values, train_size=2200)<\/p><p>model = pm.auto_arima(train, seasonal=True, m=52)<br \/>preds = model.predict(test.shape[0])<\/p><p>plt.plot(co2_data.co2.values[:2200], train)<br \/>plt.plot(co2_data.co2.values[2200:], preds)<br \/>plt.show()<\/p><p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-20814\" src=\"http:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/forecast8-300x201.webp\" alt=\"pipeline forecasting autoARIMA\" width=\"300\" height=\"201\" title=\"\" srcset=\"https:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/forecast8-300x201.webp 300w, https:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/forecast8-18x12.webp 18w, https:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/forecast8.webp 570w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/p><p>Dans ce graphique, la ligne bleue repr\u00e9sente les donn\u00e9es r\u00e9elles (donn\u00e9es d&rsquo;entra\u00eenement) et la ligne orange repr\u00e9sente les pr\u00e9visions.<\/p><p>Vous pourriez voir l&rsquo;autor\u00e9gression vectorielle, ou VAR, comme une alternative multivari\u00e9e \u00e0 Arima. Plut\u00f4t que de pr\u00e9dire une variable d\u00e9pendante, vous pr\u00e9disez plusieurs s\u00e9ries temporelles en m\u00eame temps. Cela peut \u00eatre particuli\u00e8rement utile lorsqu\u2019il existe des relations fortes entre vos diff\u00e9rentes s\u00e9ries chronologiques. L&rsquo;autor\u00e9gression vectorielle, comme le mod\u00e8le AR standard, ne contient qu&rsquo;un composant autor\u00e9gressif.<\/p><p>Le mod\u00e8le VARMA est l&rsquo;\u00e9quivalent multivari\u00e9 du mod\u00e8le ARMA. VARMA est \u00e0 ARMA ce que VAR est \u00e0 AR : il ajoute un composant de moyenne mobile au mod\u00e8le.<\/p><p>Si vous souhaitez aller plus loin, vous pouvez utiliser VARMAX. Le X repr\u00e9sente des variables externes (exog\u00e8nes). Les variables exog\u00e8nes sont des variables qui peuvent aider votre mod\u00e8le \u00e0 faire de meilleures pr\u00e9visions, mais qui n&rsquo;ont pas besoin d&rsquo;\u00eatre elles-m\u00eames pr\u00e9vues. L&rsquo;impl\u00e9mentation de statsmodels VARMAX est un bon moyen de commencer \u00e0 impl\u00e9menter des mod\u00e8les VARMAX.<\/p><p>Des versions plus avanc\u00e9es telles que VARMAX saisonnier (SVARMAX) existent, mais elles deviennent si complexes et sp\u00e9cifiques qu&rsquo;il sera difficile de trouver des impl\u00e9mentations permettant de le faire facilement et efficacement. Une fois que les mod\u00e8les deviennent si complexes, il devient difficile de comprendre ce qui se passe \u00e0 l\u2019int\u00e9rieur du mod\u00e8le et il est souvent pr\u00e9f\u00e9rable de commencer \u00e0 examiner d\u2019autres mod\u00e8les familiers.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-75e531e elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"75e531e\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-3f73f6b\" data-id=\"3f73f6b\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-6242ac3 elementor-widget elementor-widget-heading\" data-id=\"6242ac3\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\"><span class=\"ez-toc-section\" id=\"Modele-de-regression-lineaire\"><\/span>Mod\u00e8le de r\u00e9gression lin\u00e9aire<span class=\"ez-toc-section-end\"><\/span><\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-b607ab6 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"b607ab6\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-5387810\" data-id=\"5387810\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-9d582c3 elementor-widget elementor-widget-text-editor\" data-id=\"9d582c3\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>La <a href=\"https:\/\/complex-systems-ai.com\/es\/correlacion-y-regresiones\/transformacion-de-datos-y-regresion\/\">r\u00e9gression<\/a> lin\u00e9aire est sans doute le mod\u00e8le d\u2019apprentissage automatique supervis\u00e9 le plus simple. La r\u00e9gression lin\u00e9aire estime les relations lin\u00e9aires\u00a0: chaque variable ind\u00e9pendante a un coefficient qui indique comment cette variable affecte la variable cible.<\/p><p>La r\u00e9gression lin\u00e9aire simple est une r\u00e9gression lin\u00e9aire dans laquelle il n&rsquo;y a qu&rsquo;une seule variable ind\u00e9pendante. Un exemple de mod\u00e8le de r\u00e9gression lin\u00e9aire simple dans des donn\u00e9es non chronologiques pourrait \u00eatre le suivant\u00a0: ventes de chocolat chaud qui d\u00e9pendent de la temp\u00e9rature ext\u00e9rieure (degr\u00e9s Celsius).<\/p><p>Dans la r\u00e9gression lin\u00e9aire multiple, plut\u00f4t que d\u2019utiliser une seule variable ind\u00e9pendante, vous utilisez plusieurs variables ind\u00e9pendantes. Vous pouvez imaginer que le graphique 2D se transforme en un graphique 3D, o\u00f9 le troisi\u00e8me axe repr\u00e9sente la variable Prix. Dans ce cas, vous construirez un <a href=\"https:\/\/complex-systems-ai.com\/es\/ayuda-con-la-decision\/modelado-lineal\/\">mod\u00e8le lin\u00e9aire<\/a> qui explique les ventes en utilisant la temp\u00e9rature et le prix. Vous pouvez ajouter autant de variables que n\u00e9cessaire.<\/p><p>Bien s\u00fbr, il ne s\u2019agit pas d\u2019un ensemble de donn\u00e9es de s\u00e9ries chronologiques\u00a0: aucune variable temporelle n\u2019est pr\u00e9sente. Alors, comment pourriez-vous utiliser cette technique pour les s\u00e9ries chronologiques\u00a0? La r\u00e9ponse est assez simple. Plut\u00f4t que d&rsquo;utiliser uniquement la temp\u00e9rature et le prix dans cet ensemble de donn\u00e9es, vous pouvez ajouter les variables ann\u00e9e, mois, jour de la semaine, etc.<\/p><p>Si vous cr\u00e9ez un mod\u00e8le supervis\u00e9 sur des s\u00e9ries chronologiques, vous avez l&rsquo;inconv\u00e9nient de devoir faire un peu d&rsquo;ing\u00e9nierie des fonctionnalit\u00e9s pour extraire la saisonnalit\u00e9 dans les variables d&rsquo;une mani\u00e8re ou d&rsquo;une autre. L\u2019avantage est toutefois que l\u2019ajout de variables exog\u00e8nes devient beaucoup plus facile.<\/p><p>Voyons maintenant comment appliquer une r\u00e9gression lin\u00e9aire sur l&rsquo;ensemble de donn\u00e9es CO2. Vous pouvez pr\u00e9parer les donn\u00e9es CO2 comme suit\u00a0:<\/p><p>import numpy as np<\/p><p># extract the seasonality data<br \/>months = [x.month for x in co2_data.index]<br \/>years = [x.year for x in co2_data.index]<br \/>day = [x.day for x in co2_data.index]<\/p><p># convert into one matrix<br \/>X = np.array([day, months, years]).T<\/p><p>Vous disposez alors de trois variables ind\u00e9pendantes : jour, mois et semaine. Vous pouvez \u00e9galement penser \u00e0 d\u2019autres variables de saisonnalit\u00e9 comme le jour de la semaine, le num\u00e9ro de la semaine, etc., mais pour l\u2019instant, allons-y.<\/p><p>Vous pouvez ensuite utiliser scikit-learn pour cr\u00e9er un mod\u00e8le de r\u00e9gression lin\u00e9aire et faire des pr\u00e9dictions pour voir ce que le mod\u00e8le a appris\u00a0:<\/p><p>from sklearn.linear_model import LinearRegression<\/p><p># fit the model<br \/>my_lr = LinearRegression()<br \/>my_lr.fit(X, co2_data.co2.values)<\/p><p># predict on the same period<br \/>preds = my_lr.predict(X)<\/p><p># plot what has been learned<br \/>plt.plot(co2_data.index, co2_data.co2.values)<br \/>plt.plot(co2_data.index, preds)<\/p><p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-20816 size-full\" src=\"http:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/forecast10.webp\" alt=\"r\u00e9gression lin\u00e9aire\" width=\"536\" height=\"369\" title=\"\" srcset=\"https:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/forecast10.webp 536w, https:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/forecast10-300x207.webp 300w, https:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/forecast10-18x12.webp 18w\" sizes=\"(max-width: 536px) 100vw, 536px\" \/><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-91c4e46 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"91c4e46\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-2da084a\" data-id=\"2da084a\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-a6ec92d elementor-widget elementor-widget-heading\" data-id=\"a6ec92d\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\"><span class=\"ez-toc-section\" id=\"Random-Forest\"><\/span>Random Forest <span class=\"ez-toc-section-end\"><\/span><\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-c5ae3be elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"c5ae3be\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-dfbffd1\" data-id=\"dfbffd1\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-86f1bff elementor-widget elementor-widget-text-editor\" data-id=\"86f1bff\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Le mod\u00e8le lin\u00e9aire est tr\u00e8s limit\u00e9 : il ne peut s&rsquo;adapter qu&rsquo;\u00e0 des relations lin\u00e9aires. Parfois cela suffit, mais dans la plupart des cas, il vaut mieux utiliser des mod\u00e8les plus performants. Random Forest est un mod\u00e8le tr\u00e8s utilis\u00e9 qui permet d&rsquo;ajuster des relations non lin\u00e9aires. Cela reste tr\u00e8s simple \u00e0 utiliser.<\/p><p>La biblioth\u00e8que scikit-learn poss\u00e8de le RandomForestRegressor que vous pouvez simplement utiliser pour remplacer le LinearRegression dans le code pr\u00e9c\u00e9dent.<\/p><p>from sklearn.ensemble import RandomForestRegressor<\/p><p># fit the model<br \/>my_rf = RandomForestRegressor()<br \/>my_rf.fit(X, co2_data.co2.values)<\/p><p># predict on the same period<br \/>preds = my_rf.predict(X)<\/p><p># plot what has been learned<br \/>plt.plot(co2_data.index, co2_data.co2.values)<br \/>plt.plot(co2_data.index, preds)<\/p><p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-20817 size-full\" src=\"http:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/forecast11.webp\" alt=\"random forest\" width=\"554\" height=\"370\" title=\"\" srcset=\"https:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/forecast11.webp 554w, https:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/forecast11-300x200.webp 300w, https:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/forecast11-18x12.webp 18w\" sizes=\"(max-width: 554px) 100vw, 554px\" \/><\/p><p>Pour l&rsquo;instant, il suffit de comprendre que cette Random Forest a pu mieux apprendre les donn\u00e9es d&rsquo;entra\u00eenement. Dans une partie ult\u00e9rieure de cet article, vous d\u00e9couvrirez des m\u00e9thodes plus quantitatives pour l\u2019\u00e9valuation des mod\u00e8les.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-463c5aa elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"463c5aa\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-360ff1b\" data-id=\"360ff1b\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-d9604d6 elementor-widget elementor-widget-heading\" data-id=\"d9604d6\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\"><span class=\"ez-toc-section\" id=\"XGBoost\"><\/span>XGBoost<span class=\"ez-toc-section-end\"><\/span><\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-64059db elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"64059db\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-d18cb3a\" data-id=\"d18cb3a\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-b62b110 elementor-widget elementor-widget-text-editor\" data-id=\"b62b110\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Le mod\u00e8le XGBoost est un troisi\u00e8me mod\u00e8le qu\u2019il faut absolument conna\u00eetre. Il existe de nombreux autres mod\u00e8les, mais Random Forests et XGBoost sont consid\u00e9r\u00e9s comme des classiques absolus parmi la famille de l&rsquo;apprentissage automatique supervis\u00e9.<\/p><p>XGBoost est un mod\u00e8le d&rsquo;apprentissage automatique bas\u00e9 sur le framework d&rsquo;am\u00e9lioration de gradient. Ce mod\u00e8le est un mod\u00e8le d\u2019ensemble d\u2019apprenants faibles tout comme le Random Forest mais avec un avantage int\u00e9ressant. Dans le boosting de gradient standard, les arbres individuels sont ajust\u00e9s en s\u00e9quence et chaque <a href=\"https:\/\/complex-systems-ai.com\/es\/teoria-de-grafos\/arboles-y-arboles\/\">arbre<\/a> de d\u00e9cision cons\u00e9cutif est ajust\u00e9 de mani\u00e8re \u00e0 minimiser l&rsquo;erreur des arbres pr\u00e9c\u00e9dents. XGBoost obtient le m\u00eame r\u00e9sultat mais est toujours capable de faire de l&rsquo;apprentissage en parall\u00e8le.<\/p><p>Vous pouvez utiliser le package XGBoost comme suit\u00a0:<\/p><p>import xgboost as xgb<\/p><p># fit the model<br \/>my_xgb = xgb.XGBRegressor()<br \/>my_xgb.fit(X, co2_data.co2.values)<\/p><p># predict on the same period<br \/>preds = my_xgb.predict(X)<\/p><p># plot what has been learned<br \/>plt.plot(co2_data.index, co2_data.co2.values)<br \/>plt.plot(co2_data.index, preds)<\/p><p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-20818 size-full\" src=\"http:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/forecast12.webp\" alt=\"XGBoost\" width=\"543\" height=\"371\" title=\"\" srcset=\"https:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/forecast12.webp 543w, https:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/forecast12-300x205.webp 300w, https:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/forecast12-18x12.webp 18w\" sizes=\"(max-width: 543px) 100vw, 543px\" \/><\/p><p>Comme vous pouvez le constater, ce mod\u00e8le s\u2019adapte \u00e9galement tr\u00e8s bien aux donn\u00e9es. Vous apprendrez comment effectuer l\u2019\u00e9valuation du mod\u00e8le dans la derni\u00e8re partie de cet article.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-5aae3d5 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"5aae3d5\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-4fecf19\" data-id=\"4fecf19\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-428f7b4 elementor-widget elementor-widget-heading\" data-id=\"428f7b4\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\"><span class=\"ez-toc-section\" id=\"Autres-modeles-a-mettre-en-place\"><\/span>Autres mod\u00e8les \u00e0 mettre en place<span class=\"ez-toc-section-end\"><\/span><\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-d2d7370 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"d2d7370\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-4019450\" data-id=\"4019450\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-f2a7474 elementor-widget elementor-widget-text-editor\" data-id=\"f2a7474\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><b>GARCH<\/b><\/p><p>GARCH signifie H\u00e9t\u00e9rosc\u00e9dasticit\u00e9 conditionnelle autor\u00e9gressive g\u00e9n\u00e9ralis\u00e9e. Il s&rsquo;agit d&rsquo;une approche pour estimer la volatilit\u00e9 des march\u00e9s financiers et est g\u00e9n\u00e9ralement utilis\u00e9e pour ce cas d&rsquo;utilisation. Il est rarement utilis\u00e9 pour d\u2019autres cas d\u2019utilisation.<\/p><p>Le mod\u00e8le fonctionne bien pour cela, car il suppose un mod\u00e8le ARMA pour la variance d&rsquo;erreur de la s\u00e9rie chronologique plut\u00f4t que pour les donn\u00e9es r\u00e9elles. De cette fa\u00e7on, vous pouvez pr\u00e9dire la variabilit\u00e9 plut\u00f4t que les valeurs r\u00e9elles.<\/p><p>Il existe un certain nombre de variantes \u00e0 la famille de mod\u00e8les GARCH, par exemple, jetez un \u0153il \u00e0 ceci. Ce mod\u00e8le est bon \u00e0 conna\u00eetre, mais ne doit \u00eatre utilis\u00e9 que lorsque la pr\u00e9vision de la variabilit\u00e9 est n\u00e9cessaire et il est donc relativement diff\u00e9rent des autres mod\u00e8les pr\u00e9sent\u00e9s dans cet article.<\/p><p><b>TBATS<\/b><\/p><p>TBATS repr\u00e9sente la combinaison des composants suivants\u00a0:<\/p><p>Saisonnalit\u00e9 trigonom\u00e9trique<br \/>Transformation Box-Cox<br \/>Erreurs ARMA<br \/>Tendance<br \/>Composants saisonniers<\/p><p>Le mod\u00e8le a \u00e9t\u00e9 cr\u00e9\u00e9 en 2011 comme solution pour pr\u00e9voir des s\u00e9ries chronologiques comportant plusieurs p\u00e9riodes saisonni\u00e8res. Comme il est relativement nouveau et relativement avanc\u00e9, il est moins r\u00e9pandu et moins utilis\u00e9 que les mod\u00e8les de la famille ARIMA.<\/p><p>Une impl\u00e9mentation Python utile de TBATS peut \u00eatre trouv\u00e9e dans le package sktime de Python.<\/p><p>Vous verrez d\u00e9sormais trois mod\u00e8les plus r\u00e9cents qui peuvent \u00e9galement \u00eatre utilis\u00e9s \u00e0 des fins de pr\u00e9vision. Ils sont encore plus complexes \u00e0 appr\u00e9hender et \u00e0 ma\u00eetriser et peuvent (ou non) produire de meilleurs r\u00e9sultats, selon les donn\u00e9es et les sp\u00e9cificit\u00e9s du cas d\u2019usage.<\/p><p><b>LSTM (m\u00e9moire longue \u00e0 court terme)<\/b><\/p><p>Les LSTM sont des r\u00e9seaux de <a href=\"https:\/\/complex-systems-ai.com\/es\/algoritmos-neuronales\/perceptron-es\/\">neurones<\/a> r\u00e9currents. Les r\u00e9seaux de neurones sont des mod\u00e8les d&rsquo;apprentissage automatique tr\u00e8s complexes qui transmettent les donn\u00e9es d&rsquo;entr\u00e9e via un r\u00e9seau. Chaque n\u0153ud du r\u00e9seau apprend une op\u00e9ration tr\u00e8s simple. Le r\u00e9seau neuronal se compose de nombreux n\u0153uds de ce type. Le fait que le mod\u00e8le puisse utiliser un grand nombre de n\u0153uds simples rend la pr\u00e9diction globale tr\u00e8s complexe. Les r\u00e9seaux de neurones peuvent donc s&rsquo;adapter \u00e0 des ensembles de donn\u00e9es tr\u00e8s complexes et non lin\u00e9aires.<\/p><p>Les RNN sont un type sp\u00e9cial de r\u00e9seau neuronal, dans lequel le r\u00e9seau peut apprendre \u00e0 partir de donn\u00e9es de s\u00e9quence. Cela peut \u00eatre utile pour plusieurs cas d&rsquo;utilisation, notamment pour comprendre des s\u00e9ries temporelles (qui sont clairement des s\u00e9quences de valeurs dans le temps), mais aussi du texte (les phrases sont des s\u00e9quences de mots).<\/p><p>Les LSTM sont un type sp\u00e9cifique de RNN. Ils se sont r\u00e9v\u00e9l\u00e9s utiles \u00e0 plusieurs reprises pour la pr\u00e9vision de s\u00e9ries chronologiques. Ils n\u00e9cessitent certaines donn\u00e9es et sont plus compliqu\u00e9s \u00e0 apprendre que les mod\u00e8les supervis\u00e9s. Une fois que vous les ma\u00eetrisez, ils peuvent s\u2019av\u00e9rer tr\u00e8s puissants en fonction de vos donn\u00e9es et de votre cas d\u2019usage sp\u00e9cifique.<\/p><p>Pour se lancer dans les LSTM, la biblioth\u00e8que Keras en Python est un excellent point de d\u00e9part.<\/p><p><b>Prophet<\/b><\/p><p>Prophet est une biblioth\u00e8que de s\u00e9ries chronologiques open source par Facebook. Il s\u2019agit d\u2019un mod\u00e8le bo\u00eete noire, car il g\u00e9n\u00e9rera des pr\u00e9visions sans trop de sp\u00e9cifications de la part de l\u2019utilisateur. Cela peut \u00eatre un avantage, car vous pouvez g\u00e9n\u00e9rer presque automatiquement des mod\u00e8les de pr\u00e9vision sans trop de connaissances ni d&rsquo;efforts.<\/p><p>D&rsquo;un autre c\u00f4t\u00e9, il existe \u00e9galement un risque : si vous n&rsquo;y pr\u00eatez pas suffisamment attention, vous pourriez tr\u00e8s bien produire un mod\u00e8le qui semble bon pour l&rsquo;outil de cr\u00e9ation de mod\u00e8les automatis\u00e9, mais qui, en r\u00e9alit\u00e9, ne fonctionne pas bien.<\/p><p>Une validation et une \u00e9valuation approfondies des mod\u00e8les sont recommand\u00e9es lors de l&rsquo;utilisation de tels mod\u00e8les de bo\u00eete noire, mais si vous constatez qu&rsquo;ils fonctionnent bien dans votre cas d&rsquo;utilisation sp\u00e9cifique, vous y trouverez peut-\u00eatre beaucoup de valeur ajout\u00e9e.<\/p><p>Vous pouvez trouver de nombreuses ressources sur le GitHub de Facebook.<\/p><p><b>DeepAR<\/b><\/p><p>DeepAR est un autre mod\u00e8le de bo\u00eete noire d\u00e9velopp\u00e9 par Amazon. Le fonctionnement est en profondeur diff\u00e9rent, mais en termes d\u2019exp\u00e9rience utilisateur, il est relativement \u00e9gal \u00e0 Prophet. L\u2019id\u00e9e est encore une fois d\u2019avoir une biblioth\u00e8que Python qui fait tout le gros du travail \u00e0 votre place.<\/p><p>Encore une fois, la prudence est de mise, car on ne peut jamais s\u2019attendre \u00e0 ce qu\u2019un mod\u00e8le de bo\u00eete noire soit parfaitement fiable. Dans la partie suivante, vous en verrez davantage sur l&rsquo;\u00e9valuation et l&rsquo;analyse comparative des mod\u00e8les, ce qui est extr\u00eamement important avec des mod\u00e8les aussi complexes. Plus un mod\u00e8le est complexe, plus il peut \u00eatre erron\u00e9 !<\/p><p>Une impl\u00e9mentation int\u00e9ressante et facile \u00e0 utiliser de DeepAR est disponible dans le package Gluon.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-09dc749 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"09dc749\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-5ecd2ff\" data-id=\"5ecd2ff\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-a9eedfa elementor-widget elementor-widget-heading\" data-id=\"a9eedfa\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\"><span class=\"ez-toc-section\" id=\"Comment-evaluer-les-modeles\"><\/span>Comment \u00e9valuer les mod\u00e8les<span class=\"ez-toc-section-end\"><\/span><\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-d32ca3c elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"d32ca3c\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-0868748\" data-id=\"0868748\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-cbc120c elementor-widget elementor-widget-text-editor\" data-id=\"cbc120c\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><b>M\u00e9triques de s\u00e9ries chronologiques<\/b><\/p><p>La premi\u00e8re chose \u00e0 d\u00e9finir lors de la s\u00e9lection des mod\u00e8les est la m\u00e9trique que vous souhaitez examiner. Dans la partie pr\u00e9c\u00e9dente, vous avez vu plusieurs ajustements avec des qualit\u00e9s diff\u00e9rentes (pensez \u00e0 la r\u00e9gression lin\u00e9aire par rapport \u00e0 la for\u00eat al\u00e9atoire).<\/p><p>Pour aller plus loin dans la s\u00e9lection de mod\u00e8les, vous devrez d\u00e9finir une m\u00e9trique pour \u00e9valuer vos mod\u00e8les. Un mod\u00e8le tr\u00e8s souvent utilis\u00e9 en pr\u00e9vision est l\u2019erreur quadratique moyenne. Cette m\u00e9trique mesure l\u2019erreur \u00e0 chaque instant et en prend le carr\u00e9. La moyenne de ces erreurs quadratiques est appel\u00e9e erreur quadratique moyenne. Une alternative souvent utilis\u00e9e est l\u2019erreur quadratique moyenne : la racine carr\u00e9e de l\u2019erreur quadratique moyenne.<\/p><p>Une autre mesure fr\u00e9quemment utilis\u00e9e est l\u2019erreur moyenne absolue : plut\u00f4t que de prendre le carr\u00e9 de chaque erreur, elle prend ici la valeur absolue. L&rsquo;erreur absolue moyenne en pourcentage est une variante de celle-ci o\u00f9 l&rsquo;erreur absolue \u00e0 chaque instant est exprim\u00e9e en pourcentage de la valeur r\u00e9elle. Cela donne une mesure sous forme de pourcentage, tr\u00e8s facile \u00e0 interpr\u00e9ter.<\/p><p><b>R\u00e9partition des tests d&rsquo;entrainement en s\u00e9ries chronologiques<\/b><\/p><p>La deuxi\u00e8me chose \u00e0 prendre en compte lors de l&rsquo;\u00e9valuation du Machine Learning est de consid\u00e9rer qu&rsquo;un mod\u00e8le qui fonctionne bien sur les donn\u00e9es d&rsquo;entra\u00eenement ne fonctionne pas n\u00e9cessairement bien sur de nouvelles donn\u00e9es hors \u00e9chantillon. Un tel mod\u00e8le est appel\u00e9 mod\u00e8le de surapprentissage.<\/p><p>Il existe deux approches courantes qui peuvent vous aider \u00e0 estimer si un mod\u00e8le g\u00e9n\u00e9ralise correctement\u00a0: le fractionnement du test et la validation crois\u00e9e.<\/p><p>La r\u00e9partition du test de train signifie que vous supprimez une partie de vos donn\u00e9es avant d&rsquo;ajuster le mod\u00e8le. \u00c0 titre d&rsquo;exemple, vous pouvez supprimer les 3 derni\u00e8res ann\u00e9es de la base de donn\u00e9es CO2 et utiliser les 40 ann\u00e9es restantes pour ajuster le mod\u00e8le. Vous pr\u00e9voiriez ensuite les trois ann\u00e9es de donn\u00e9es de test et mesureriez la m\u00e9trique d\u2019\u00e9valuation de votre choix entre vos pr\u00e9dictions et les valeurs r\u00e9elles des trois derni\u00e8res ann\u00e9es.<\/p><p>Pour comparer et choisir des mod\u00e8les, vous pouvez cr\u00e9er plusieurs mod\u00e8les sur les 40 ann\u00e9es de donn\u00e9es et effectuer l&rsquo;\u00e9valuation de l&rsquo;ensemble de tests sur chacun d&rsquo;eux. Sur la base de ces performances de test, vous pouvez s\u00e9lectionner le mod\u00e8le le plus performant.<\/p><p>Bien entendu, si vous construisez un mod\u00e8le de pr\u00e9vision \u00e0 court terme, utiliser trois ann\u00e9es de donn\u00e9es n\u2019aurait pas de sens : vous choisiriez une p\u00e9riode d\u2019\u00e9valuation comparable \u00e0 la p\u00e9riode que vous pr\u00e9voiriez en r\u00e9alit\u00e9.<\/p><p><b>Validation crois\u00e9e des s\u00e9ries chronologiques<\/b><\/p><p>Un risque avec la r\u00e9partition des tests de train est que vous ne mesurez qu&rsquo;\u00e0 un moment donn\u00e9. Dans les donn\u00e9es non chronologiques, l&rsquo;ensemble de test est g\u00e9n\u00e9ralement g\u00e9n\u00e9r\u00e9 par une s\u00e9lection al\u00e9atoire de points de donn\u00e9es. Cependant, dans les s\u00e9ries temporelles, cela ne fonctionne pas dans de nombreux cas\u00a0: lorsque des s\u00e9quences sont utilis\u00e9es, vous ne pouvez pas supprimer un point de la s\u00e9quence tout en vous attendant \u00e0 ce que le mod\u00e8le fonctionne.<\/p><p>Il est donc pr\u00e9f\u00e9rable d&rsquo;appliquer les r\u00e9partitions des tests de train de s\u00e9ries chronologiques en s\u00e9lectionnant la p\u00e9riode finale comme ensemble de test. Le risque ici est que cela puisse mal se passer si vos derni\u00e8res r\u00e8gles ne sont pas tr\u00e8s fiables. Au cours des derni\u00e8res p\u00e9riodes de covid, on peut imaginer que de nombreuses pr\u00e9visions \u00e9conomiques se sont compl\u00e8tement d\u00e9t\u00e9rior\u00e9es : les tendances de fond ont chang\u00e9.<\/p><p>La validation crois\u00e9e est une m\u00e9thode qui effectue une \u00e9valuation r\u00e9p\u00e9t\u00e9e des tests de train. Plut\u00f4t que de diviser un test de train, il en cr\u00e9e plusieurs (le nombre exact est un param\u00e8tre d\u00e9fini par l&rsquo;utilisateur). Par exemple, si vous utilisez une validation crois\u00e9e en trois volets, vous diviserez votre ensemble de donn\u00e9es en trois parties \u00e9gales. Vous ajusterez ensuite trois fois le m\u00eame mod\u00e8le sur les deux tiers de l&rsquo;ensemble de donn\u00e9es et utiliserez l&rsquo;autre tiers pour l&rsquo;\u00e9valuation. En fin de compte, vous disposez de trois scores d\u2019\u00e9valuation (chacun sur un ensemble de tests diff\u00e9rent) et vous pouvez utiliser la moyenne comme mesure finale.<\/p><p>En faisant cela, vous \u00e9vitez de s\u00e9lectionner par hasard un mod\u00e8le qui fonctionne sur l\u2019ensemble de test : vous \u00eates d\u00e9sormais assur\u00e9 qu\u2019il fonctionne sur plusieurs ensembles de test.<\/p><p>Toutefois, dans les s\u00e9ries chronologiques, vous ne pouvez pas appliquer une s\u00e9lection al\u00e9atoire pour obtenir plusieurs ensembles de tests. Si vous faisiez cela, vous vous retrouveriez avec des s\u00e9quences avec de nombreux points de donn\u00e9es manquants.<\/p><p>Une solution peut \u00eatre trouv\u00e9e dans la validation crois\u00e9e des s\u00e9ries chronologiques. Ce qu&rsquo;il fait, c&rsquo;est cr\u00e9er plusieurs ensembles de tests de train, mais chacun des ensembles de tests correspond \u00e0 la fin de la p\u00e9riode. Par exemple, la premi\u00e8re r\u00e9partition des tests de train pourrait \u00eatre construite sur les 10 premi\u00e8res ann\u00e9es de donn\u00e9es (5 trains, 5 tests). Le deuxi\u00e8me mod\u00e8le serait r\u00e9alis\u00e9 sur les 15 premi\u00e8res ann\u00e9es de donn\u00e9es (10 trains, 5 tests), etc. Cela peut bien fonctionner mais pr\u00e9sente l&rsquo;inconv\u00e9nient que chacun des mod\u00e8les n&rsquo;utilise pas le m\u00eame nombre d&rsquo;ann\u00e9es dans les donn\u00e9es de formation.<\/p><p>Une alternative est de faire un fractionnement glissant (toujours 5 ans d&rsquo;entra\u00eenement, 5 ans de test), mais ici l&rsquo;inconv\u00e9nient est que vous ne pouvez jamais utiliser plus de 5 ans pour les donn\u00e9es d&rsquo;entra\u00eenement.<\/p><p><b>Exp\u00e9riences sur des mod\u00e8les de s\u00e9ries chronologiques<\/b><\/p><p>En conclusion, lors de la s\u00e9lection de mod\u00e8les de s\u00e9ries chronologiques, il est essentiel de d\u00e9finir les questions suivantes avant de commencer \u00e0 exp\u00e9rimenter\u00a0:<\/p><ul><li>Quelle m\u00e9trique utilisez-vous\u00a0?<\/li><li>Quelle p\u00e9riode souhaitez-vous pr\u00e9voir ?<\/li><li>Comment vous assurer que votre mod\u00e8le fonctionne sur les futurs points de donn\u00e9es qui n&rsquo;ont pas \u00e9t\u00e9 vus par le mod\u00e8le ?<\/li><\/ul><p>Une fois que vous avez la r\u00e9ponse aux questions susmentionn\u00e9es, vous pouvez commencer \u00e0 essayer diff\u00e9rents mod\u00e8les et utiliser la strat\u00e9gie d&rsquo;\u00e9valuation d\u00e9finie pour s\u00e9lectionner et am\u00e9liorer les mod\u00e8les.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-5a56bf4 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"5a56bf4\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-fede113\" data-id=\"fede113\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-c2244c0 elementor-widget elementor-widget-heading\" data-id=\"c2244c0\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\"><span class=\"ez-toc-section\" id=\"Aller-plus-loin\"><\/span>Aller plus loin<span class=\"ez-toc-section-end\"><\/span><\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-e2997b4 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"e2997b4\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-7ff9123\" data-id=\"7ff9123\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-a14eaa7 elementor-widget elementor-widget-text-editor\" data-id=\"a14eaa7\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Concernant les choix \u00e9voquer dans la section pr\u00e9c\u00e9dente, je vous invite \u00e0 lire les tutoriels correspondants. Bonne lecture !<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Pron\u00f3stico Inicio Wiki Pron\u00f3stico de tuber\u00edas con comparaci\u00f3n de m\u00e9todos En este tutorial aprender\u00e1 a hacer pron\u00f3sticos de tuber\u00edas: c\u00f3mo comparar y seleccionar modelos... <\/p>","protected":false},"author":1,"featured_media":0,"parent":20753,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-20792","page","type-page","status-publish","hentry"],"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/complex-systems-ai.com\/es\/wp-json\/wp\/v2\/pages\/20792","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/complex-systems-ai.com\/es\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/complex-systems-ai.com\/es\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/complex-systems-ai.com\/es\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/complex-systems-ai.com\/es\/wp-json\/wp\/v2\/comments?post=20792"}],"version-history":[{"count":4,"href":"https:\/\/complex-systems-ai.com\/es\/wp-json\/wp\/v2\/pages\/20792\/revisions"}],"predecessor-version":[{"id":20823,"href":"https:\/\/complex-systems-ai.com\/es\/wp-json\/wp\/v2\/pages\/20792\/revisions\/20823"}],"up":[{"embeddable":true,"href":"https:\/\/complex-systems-ai.com\/es\/wp-json\/wp\/v2\/pages\/20753"}],"wp:attachment":[{"href":"https:\/\/complex-systems-ai.com\/es\/wp-json\/wp\/v2\/media?parent=20792"}],"curies":[{"name":"gracias","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}