"Bien que le fichier d'origine nous fournisse un jeu de données pré-traitées; nous allons "
"Bien que le fichier d'origine nous fournisse un jeu de données pré-traitées; nous allons désormais tenter de retrouver ces résultats en:\n",
"- identifiant la composante lente en un polynôme de degré 2 en fonction du temps\n",
"- identifiant par la suite la composante périodique en effectuant une analyse spectrale une fois la composante lente enlevée."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Composante lente\n",
"\n",
"on considère un polynôme de la forme $C(t) = a + b t + c t^2$. Nous allons appliquer une régression linéaire (grâce à [`np.linalg.lstsq`](https://numpy.org/doc/stable/reference/generated/numpy.linalg.lstsq.html))\n",
"\n",
"Commençons par récupérer les tableaux numpy"
]
},
{
"cell_type": "code",
"execution_count": 87,
"metadata": {},
"outputs": [],
"source": [
"temps = np.array(data_MLO[\"Date.1\"])\n",
"CO2 = np.array(data_MLO[\"CO2\"])"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Pour que les temps soient de taille plus raisonnable, nous allons soustraire le temps initial à tout les temps afin de commencer à zéro:"
]
},
{
"cell_type": "code",
"execution_count": 93,
"metadata": {},
"outputs": [],
"source": [
"temps = temps - temps[0]"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Construisons ensuite la matrice qui nous permettra d'effectuer la régression linéaire:\n",
"A = np.column_stack([temps**0,temps, temps**2])\n",
"print(A)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Nous pouvons à présent résoudre le système linéaire: $$ Ax = b$$"
]
},
{
"cell_type": "code",
"execution_count": 103,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Estimation des coefficients de la régression: a = 314.830 ppm, b = 0.734 ppm/annee, c = 0.014 ppm/annee^2 \n"
]
}
],
"source": [
"param = np.linalg.lstsq(A,CO2,rcond=None)\n",
"a,b,c = param[0] \n",
"print(f\"Estimation des coefficients de la régression: a = {a:.3f} ppm, b = {b:.3f} ppm/annee, c = {c:.3f} ppm/annee^2 \" )"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Nous allons désormais afficher le CO2 au cours du temps et y superposer notre estimation. Commençons par définir une fonction qui renvoie la composante lente:"