curve fit

parent 1935bcec
...@@ -20,7 +20,7 @@ ...@@ -20,7 +20,7 @@
}, },
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": 2, "execution_count": 31,
"metadata": {}, "metadata": {},
"outputs": [], "outputs": [],
"source": [ "source": [
...@@ -28,7 +28,8 @@ ...@@ -28,7 +28,8 @@
"import matplotlib.pyplot as plt\n", "import matplotlib.pyplot as plt\n",
"import pandas as pd\n", "import pandas as pd\n",
"import isoweek\n", "import isoweek\n",
"import datetime" "import datetime\n",
"from scipy.optimize import curve_fit"
] ]
}, },
{ {
...@@ -148,16 +149,16 @@ ...@@ -148,16 +149,16 @@
}, },
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": 13, "execution_count": 6,
"metadata": {}, "metadata": {},
"outputs": [ "outputs": [
{ {
"data": { "data": {
"text/plain": [ "text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x7f2c79704f98>" "<matplotlib.axes._subplots.AxesSubplot at 0x7fbb168f3470>"
] ]
}, },
"execution_count": 13, "execution_count": 6,
"metadata": {}, "metadata": {},
"output_type": "execute_result" "output_type": "execute_result"
}, },
...@@ -186,14 +187,45 @@ ...@@ -186,14 +187,45 @@
] ]
}, },
{ {
"cell_type": "markdown", "cell_type": "code",
"execution_count": 23,
"metadata": {}, "metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x7fbb125ee898>"
]
},
"execution_count": 23,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAABIgAAAJQCAYAAADlkV+7AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4zLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvIxREBQAAIABJREFUeJzs3X+QpWV9IPrvQ3fPdM8wwJRiwGUQK2YzGhAMLVjBzaBho7FM2JRmY9Zako2GooJxcym5VMqKmmTzw5giJi6VCsbaaOJ6JSaGLbPe6KyIkVIy3Qt4ETsajXOHIhOR2wxN09N0N8/9Y84ZzpzpH6e7zznvr8+naorpnnMOT/d5zvu+z/f9fr9PyjkHAAAAAM11RtEDAAAAAKBYAkQAAAAADSdABAAAANBwAkQAAAAADSdABAAAANBwAkQAAAAADSdABAAAANBwAkQAAAAADSdABAAAANBwo0UPICLiuc99br7ooouKHgYAAABAbUxPT38353xuL48tRYDooosuiqmpqaKHAQAAAFAbKaXDvT5WiRkAAABAwwkQAQAAADScABEAAABAw5WiBxEAAABQTktLS/Hwww/H8ePHix4KaxgfH48LLrggxsbGtvwaAkQAAADAmh5++OHYs2dPXHTRRZFSKno4dMk5x2OPPRYPP/xwvPCFL9zy6ygxAwAAANZ0/PjxeM5zniM4VFIppXjOc56z7QwvASIAAABgXYJD5daP90eACAAAAKDhBIgAAACAUjt69Gi86U1viu/93u+Nl7zkJfG6170uvv71rxc2nve///3x1FNPbfp5f/qnfxqPPPLIya/f+ta3xkMPPdTPoW2ZABEAAABQWjnn+Mmf/Mm4+uqr45vf/GY89NBD8Vu/9VvxL//yL4WNab0A0crKyprP6w4Q/cmf/Em85CUv6fv4tkKACAAAAOir+cXlmD48G/OLy9t+rbvuuivGxsbihhtuOPm9yy67LF75ylfGzTffHBdffHFccskl8fGPfzwiIj7/+c/H1VdfHW984xtj//798eY3vzlyzhERcejQofihH/qhuPTSS+OKK66Iubm5WFlZiZtvvjle/vKXx0tf+tL44z/+43Vf5w//8A/jkUceiVe96lXxqle9KiIizjzzzHjXu94VV155ZXzpS1+KX//1X4+Xv/zlcfHFF8f1118f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\n",
"text/plain": [
"<Figure size 1440x720 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [ "source": [
"## Oscillation annuelle\n", "# Keep data from 1970 to 1975 since we have nothing missing\n",
"data_slice = data.iloc[550:850]\n",
"\n", "\n",
"A l'origine, l'objectif de ces mesures était d'observer ces variations entre les saisons sur l'année, c'est-à-dire les oscillations visibles sur le graphique précédant. Nous allons maintenant observer ces oscillations en ignorant la tendance globale, et en comparant ainsi les mois au sein d'une même année.\n", "data_slice.plot(figsize=(20, 10), style='.', ms=5)"
"\n", ]
"TODO" },
{
"cell_type": "markdown",
"metadata": {},
"source": [
"En zoomant sur une partie de la courbe pour laquelle aucune donnée n'est manquante, nous pouvons constater que l'oscillation semble périodique sur les années. Cette oscillation sera calculée avec plus de détails par la suite, en ayant enlevé la variation dûe à la tendance globale, et sera considérée avec une période d'un an."
] ]
}, },
{ {
...@@ -207,7 +239,7 @@ ...@@ -207,7 +239,7 @@
}, },
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": 30, "execution_count": 24,
"metadata": {}, "metadata": {},
"outputs": [], "outputs": [],
"source": [ "source": [
...@@ -230,16 +262,16 @@ ...@@ -230,16 +262,16 @@
}, },
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": 34, "execution_count": 25,
"metadata": {}, "metadata": {},
"outputs": [ "outputs": [
{ {
"data": { "data": {
"text/plain": [ "text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x7f2c79645f28>" "<matplotlib.axes._subplots.AxesSubplot at 0x7fbb12569cf8>"
] ]
}, },
"execution_count": 34, "execution_count": 25,
"metadata": {}, "metadata": {},
"output_type": "execute_result" "output_type": "execute_result"
}, },
...@@ -264,12 +296,49 @@ ...@@ -264,12 +296,49 @@
"cell_type": "markdown", "cell_type": "markdown",
"metadata": {}, "metadata": {},
"source": [ "source": [
"Comme attendu, nous pouvons observer la tendence globale sans la présence de l'oscillation annuelle.\n", "Comme attendu, nous pouvons observer la tendance globale sans la présence de l'oscillation annuelle.\n",
"\n", "\n",
"L'objectif est maintenant de trouver à quelle courbe assimiler ces données afin de les extrapoler pour les années suivantes.\n", "L'objectif est maintenant de trouver à quelle courbe assimiler ces données afin de les extrapoler pour les années suivantes.\n",
"\n", "\n",
"TODO" "TODO"
] ]
},
{
"cell_type": "code",
"execution_count": 40,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[ 1.60961150e+00 -2.84730619e+03]\n"
]
}
],
"source": [
"x_data = yearly_avg.index\n",
"y_data = yearly_avg.values\n",
"\n",
"def ref_func(x, a, b):\n",
" return a*x + b\n",
"\n",
"res, cov = curve_fit(ref_func, x_data, y_data)\n",
"print(res)\n",
"\n",
"\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Oscillation annuelle\n",
"\n",
"A l'origine, l'objectif de ces mesures était d'observer ces variations entre les saisons sur l'année, c'est-à-dire les oscillations visibles sur le graphique précédant. Nous allons maintenant observer ces oscillations en ignorant la tendance globale, et en comparant ainsi les mois au sein d'une même année.\n",
"\n",
"TODO"
]
} }
], ],
"metadata": { "metadata": {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment