Renommage des variables.

parent 2dfad9fe
......@@ -489,8 +489,8 @@
"text": [
"Requirement already satisfied: lmfit in /opt/conda/lib/python3.6/site-packages (1.0.0)\n",
"Requirement already satisfied: numpy>=1.16 in /opt/conda/lib/python3.6/site-packages (from lmfit) (1.18.2)\n",
"Requirement already satisfied: asteval>=0.9.16 in /opt/conda/lib/python3.6/site-packages (from lmfit) (0.9.18)\n",
"Requirement already satisfied: uncertainties>=3.0.1 in /opt/conda/lib/python3.6/site-packages (from lmfit) (3.1.2)\n",
"Requirement already satisfied: asteval>=0.9.16 in /opt/conda/lib/python3.6/site-packages (from lmfit) (0.9.18)\n",
"Requirement already satisfied: scipy>=1.2 in /opt/conda/lib/python3.6/site-packages (from lmfit) (1.4.1)\n"
]
}
......@@ -543,10 +543,10 @@
"outputs": [],
"source": [
"# Ajustement de la courbe de tendance sur toutes les données de la base\n",
"model = QuadraticModel()\n",
"params = model.guess(data['CO2'], x=time)\n",
"model_trend = QuadraticModel()\n",
"params_trend = model_trend.guess(data['CO2'], x=time)\n",
"\n",
"result = model.fit(data['CO2'], params, x=time)"
"result_trend = model_trend.fit(data['CO2'], params_trend, x=time)"
]
},
{
......@@ -559,7 +559,7 @@
"outputs": [],
"source": [
"# Affichage des meilleures paramètres calculés par lmfit\n",
"coeffs = result.params.valuesdict()"
"coeffs_trend = result_trend.params.valuesdict()"
]
},
{
......@@ -571,8 +571,8 @@
},
"outputs": [],
"source": [
"def fitted_curve(time):\n",
" trend_CO2 = coeffs.get('a')*time*time + coeffs.get('b')*time + coeffs.get('c')\n",
"def trend_fitted_curve(time):\n",
" trend_CO2 = coeffs_trend.get('a')*time*time + coeffs_trend.get('b')*time + coeffs_trend.get('c')\n",
" return np.round(trend_CO2, 2)"
]
},
......@@ -586,7 +586,7 @@
"outputs": [],
"source": [
"# Ajout d'une colonne dans le dataframe data\n",
"data['trend_fit'] = pd.Series(fitted_curve(time), index=data.index)"
"data['trend_fit'] = pd.Series(trend_fitted_curve(time), index=data.index)"
]
},
{
......@@ -719,7 +719,7 @@
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x7f5b08ff9d30>"
"<matplotlib.axes._subplots.AxesSubplot at 0x7fe4d7553278>"
]
},
"execution_count": 17,
......@@ -776,98 +776,14 @@
},
{
"cell_type": "code",
"execution_count": 18,
"execution_count": null,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>CO2</th>\n",
" <th>trend_fit</th>\n",
" <th>untrend_data</th>\n",
" </tr>\n",
" <tr>\n",
" <th>date</th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>1960-01-02</th>\n",
" <td>315.72</td>\n",
" <td>315.96</td>\n",
" <td>315.95</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1960-01-09</th>\n",
" <td>316.40</td>\n",
" <td>315.98</td>\n",
" <td>316.61</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1960-01-16</th>\n",
" <td>316.73</td>\n",
" <td>316.00</td>\n",
" <td>316.92</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1960-01-23</th>\n",
" <td>316.57</td>\n",
" <td>316.01</td>\n",
" <td>316.75</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1960-01-30</th>\n",
" <td>316.68</td>\n",
" <td>316.03</td>\n",
" <td>316.84</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" CO2 trend_fit untrend_data\n",
"date \n",
"1960-01-02 315.72 315.96 315.95\n",
"1960-01-09 316.40 315.98 316.61\n",
"1960-01-16 316.73 316.00 316.92\n",
"1960-01-23 316.57 316.01 316.75\n",
"1960-01-30 316.68 316.03 316.84"
]
},
"execution_count": 18,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"data[mask1_1y].head(5)"
]
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": 19,
"execution_count": 18,
"metadata": {
"hideCode": true,
"hidePrompt": true
......@@ -880,39 +796,14 @@
},
{
"cell_type": "code",
"execution_count": 20,
"execution_count": null,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x7f5b08f40b38>"
]
},
"execution_count": 20,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"data_1y.plot()"
]
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": 58,
"execution_count": 19,
"metadata": {},
"outputs": [],
"source": [
......@@ -922,35 +813,35 @@
},
{
"cell_type": "code",
"execution_count": 59,
"execution_count": 20,
"metadata": {},
"outputs": [],
"source": [
"sinemodel = Model(mysine)\n",
"params = sinemodel.make_params(amp=7, freq=1, shift = 0)"
"params_sine = sinemodel.make_params(amp=7, freq=1, shift = 0)"
]
},
{
"cell_type": "code",
"execution_count": 60,
"execution_count": 21,
"metadata": {},
"outputs": [],
"source": [
"result = sinemodel.fit(data_1y['untrend_data'], params, x=time_1y)"
"result_season = sinemodel.fit(data_1y['untrend_data'], params_sine, x=time_1y)"
]
},
{
"cell_type": "code",
"execution_count": 61,
"execution_count": 22,
"metadata": {},
"outputs": [],
"source": [
"coeffs = result.params.valuesdict()"
"coeffs_season = result_season.params.valuesdict()"
]
},
{
"cell_type": "code",
"execution_count": 62,
"execution_count": 23,
"metadata": {},
"outputs": [
{
......@@ -961,24 +852,24 @@
" ('shift', 0.8693924761163696)])"
]
},
"execution_count": 62,
"execution_count": 23,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"coeffs"
"coeffs_season"
]
},
{
"cell_type": "code",
"execution_count": 63,
"execution_count": 24,
"metadata": {},
"outputs": [],
"source": [
"def fitted_curve(time):\n",
" CO2_1y = coeffs.get('amp')*np.sin(2*np.pi*coeffs.get('freq')*time) + coeffs.get('shift')\n",
" return np.round(CO2_1y, 2)"
"def season_fitted_curve(time):\n",
" season_CO2 = coeffs_season.get('amp')*np.sin(2*np.pi*coeffs_season.get('freq')*time) + coeffs_season.get('shift')\n",
" return np.round(season_CO2, 2)"
]
},
{
......@@ -990,26 +881,26 @@
},
{
"cell_type": "code",
"execution_count": 64,
"execution_count": 25,
"metadata": {},
"outputs": [],
"source": [
"# Ajout d'une colonne dans le dataframe data\n",
"data_1y['fit'] = pd.Series(fitted_curve(time_1y), index=data_1y.index)"
"data_1y['fit'] = pd.Series(season_fitted_curve(time_1y), index=data_1y.index)"
]
},
{
"cell_type": "code",
"execution_count": 65,
"execution_count": 26,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x7f5b08dc5a20>"
"<matplotlib.axes._subplots.AxesSubplot at 0x7fe4d75a1b38>"
]
},
"execution_count": 65,
"execution_count": 26,
"metadata": {},
"output_type": "execute_result"
},
......@@ -1032,10 +923,24 @@
},
{
"cell_type": "code",
"execution_count": null,
"execution_count": 27,
"metadata": {},
"outputs": [],
"source": []
"outputs": [
{
"data": {
"text/plain": [
"0.9109789398058519"
]
},
"execution_count": 27,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Estimation du coefficient de détermination\n",
"r2_score(data_1y['untrend_data'], data_1y['fit'])"
]
},
{
"cell_type": "code",
......
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