|
30 | 30 | },
|
31 | 31 | {
|
32 | 32 | "cell_type": "code",
|
33 |
| - "execution_count": 27, |
| 33 | + "execution_count": 1, |
34 | 34 | "metadata": {
|
35 | 35 | "slideshow": {
|
36 | 36 | "slide_type": "skip"
|
|
389 | 389 | "metadata": {
|
390 | 390 | "slideshow": {
|
391 | 391 | "slide_type": "subslide"
|
392 |
| - } |
| 392 | + }, |
| 393 | + "tags": [ |
| 394 | + "hide-input" |
| 395 | + ] |
393 | 396 | },
|
394 | 397 | "outputs": [
|
395 | 398 | {
|
|
470 | 473 | "metadata": {
|
471 | 474 | "slideshow": {
|
472 | 475 | "slide_type": "subslide"
|
473 |
| - } |
| 476 | + }, |
| 477 | + "tags": [ |
| 478 | + "hide-input" |
| 479 | + ] |
474 | 480 | },
|
475 | 481 | "outputs": [
|
476 | 482 | {
|
|
527 | 533 | "metadata": {
|
528 | 534 | "slideshow": {
|
529 | 535 | "slide_type": "fragment"
|
530 |
| - } |
| 536 | + }, |
| 537 | + "tags": [ |
| 538 | + "hide-input" |
| 539 | + ] |
531 | 540 | },
|
532 | 541 | "outputs": [
|
533 | 542 | {
|
|
623 | 632 | "metadata": {
|
624 | 633 | "slideshow": {
|
625 | 634 | "slide_type": "fragment"
|
626 |
| - } |
| 635 | + }, |
| 636 | + "tags": [ |
| 637 | + "hide-input" |
| 638 | + ] |
627 | 639 | },
|
628 | 640 | "outputs": [
|
629 | 641 | {
|
|
686 | 698 | "metadata": {
|
687 | 699 | "slideshow": {
|
688 | 700 | "slide_type": "fragment"
|
689 |
| - } |
| 701 | + }, |
| 702 | + "tags": [ |
| 703 | + "hide-input" |
| 704 | + ] |
690 | 705 | },
|
691 | 706 | "outputs": [
|
692 | 707 | {
|
|
761 | 776 | "metadata": {
|
762 | 777 | "slideshow": {
|
763 | 778 | "slide_type": "fragment"
|
764 |
| - } |
| 779 | + }, |
| 780 | + "tags": [ |
| 781 | + "hide-input" |
| 782 | + ] |
765 | 783 | },
|
766 | 784 | "outputs": [
|
767 | 785 | {
|
|
837 | 855 | "slide_type": "fragment"
|
838 | 856 | }
|
839 | 857 | },
|
| 858 | + "outputs": [], |
| 859 | + "source": [ |
| 860 | + "slope, intercept = np.polyfit(np.arange(len(additive)), additive, 1) # estimate line coefficient\n", |
| 861 | + "trend = np.arange(len(additive)) * slope + intercept # linear trend\n", |
| 862 | + "detrended = additive - trend # remove the trend" |
| 863 | + ] |
| 864 | + }, |
| 865 | + { |
| 866 | + "cell_type": "code", |
| 867 | + "execution_count": 15, |
| 868 | + "metadata": { |
| 869 | + "tags": [ |
| 870 | + "hide-input" |
| 871 | + ] |
| 872 | + }, |
840 | 873 | "outputs": [
|
841 | 874 | {
|
842 | 875 | "data": {
|
|
850 | 883 | }
|
851 | 884 | ],
|
852 | 885 | "source": [
|
853 |
| - "slope, intercept = np.polyfit(np.arange(len(additive)), additive, 1) # estimate line coefficient\n", |
854 |
| - "trend = np.arange(len(additive)) * slope + intercept # linear trend\n", |
855 |
| - "detrended = additive - trend # remove the trend\n", |
856 |
| - "\n", |
857 | 886 | "plt.figure(figsize=(10, 3))\n",
|
858 | 887 | "plt.plot(additive, label='Original')\n",
|
859 | 888 | "plt.plot(trend, label='Trend')\n",
|
|
892 | 921 | },
|
893 | 922 | {
|
894 | 923 | "cell_type": "code",
|
895 |
| - "execution_count": 15, |
| 924 | + "execution_count": 16, |
896 | 925 | "metadata": {
|
897 | 926 | "slideshow": {
|
898 | 927 | "slide_type": "fragment"
|
|
904 | 933 | "additive_decomposition = seasonal_decompose(x=additive, model='additive', period=12)"
|
905 | 934 | ]
|
906 | 935 | },
|
907 |
| - { |
908 |
| - "cell_type": "markdown", |
909 |
| - "metadata": { |
910 |
| - "slideshow": { |
911 |
| - "slide_type": "subslide" |
912 |
| - } |
913 |
| - }, |
914 |
| - "source": [ |
915 |
| - "- We define a utility function to make the plots." |
916 |
| - ] |
917 |
| - }, |
918 | 936 | {
|
919 | 937 | "cell_type": "code",
|
920 |
| - "execution_count": 16, |
| 938 | + "execution_count": 17, |
921 | 939 | "metadata": {
|
922 | 940 | "slideshow": {
|
923 | 941 | "slide_type": "-"
|
924 |
| - } |
| 942 | + }, |
| 943 | + "tags": [ |
| 944 | + "hide-input" |
| 945 | + ] |
925 | 946 | },
|
926 | 947 | "outputs": [],
|
927 | 948 | "source": [
|
| 949 | + "# Utility function to make the plots\n", |
928 | 950 | "def seas_decomp_plots(original, decomposition):\n",
|
929 | 951 | " _, axes = plt.subplots(4, 1, sharex=True, sharey=False, figsize=(7, 5))\n",
|
930 | 952 | " axes[0].plot(original, label='Original')\n",
|
|
940 | 962 | },
|
941 | 963 | {
|
942 | 964 | "cell_type": "code",
|
943 |
| - "execution_count": 17, |
| 965 | + "execution_count": 18, |
944 | 966 | "metadata": {
|
945 | 967 | "slideshow": {
|
946 | 968 | "slide_type": "subslide"
|
|
1008 | 1030 | },
|
1009 | 1031 | {
|
1010 | 1032 | "cell_type": "code",
|
1011 |
| - "execution_count": 18, |
| 1033 | + "execution_count": 19, |
1012 | 1034 | "metadata": {
|
1013 | 1035 | "slideshow": {
|
1014 | 1036 | "slide_type": "subslide"
|
|
1054 | 1076 | },
|
1055 | 1077 | "source": [
|
1056 | 1078 | "### Locally estimated scatterplot smoothing (LOESS)\n",
|
1057 |
| - "- Next, we try a second method called `STL` (Seasonal and Trend decomposition using LOESS)\n", |
| 1079 | + "- Next, we try a second method called `STL` (Seasonal and Trend decomposition using LOESS).\n", |
1058 | 1080 | "- We start with the additive model."
|
1059 | 1081 | ]
|
1060 | 1082 | },
|
1061 | 1083 | {
|
1062 | 1084 | "cell_type": "code",
|
1063 |
| - "execution_count": 19, |
| 1085 | + "execution_count": 20, |
1064 | 1086 | "metadata": {
|
1065 | 1087 | "slideshow": {
|
1066 | 1088 | "slide_type": "subslide"
|
|
1097 | 1119 | },
|
1098 | 1120 | {
|
1099 | 1121 | "cell_type": "code",
|
1100 |
| - "execution_count": 20, |
| 1122 | + "execution_count": 21, |
1101 | 1123 | "metadata": {
|
1102 | 1124 | "slideshow": {
|
1103 | 1125 | "slide_type": "subslide"
|
|
1219 | 1241 | " - Use the Fast Fourier Transform on a signal *without* trend.\n",
|
1220 | 1242 | "\n",
|
1221 | 1243 | "- We will look more into FFT later on.\n",
|
1222 |
| - "- For now, you can use the following code to compute the dominant period in the data." |
| 1244 | + "- For now, you can use the following function to compute the dominant period in the data." |
1223 | 1245 | ]
|
1224 | 1246 | },
|
1225 | 1247 | {
|
1226 | 1248 | "cell_type": "code",
|
1227 |
| - "execution_count": 21, |
| 1249 | + "execution_count": 22, |
1228 | 1250 | "metadata": {
|
1229 | 1251 | "slideshow": {
|
1230 | 1252 | "slide_type": "subslide"
|
1231 | 1253 | },
|
1232 |
| - "tags": [] |
| 1254 | + "tags": [ |
| 1255 | + "hide-input" |
| 1256 | + ] |
1233 | 1257 | },
|
1234 | 1258 | "outputs": [],
|
1235 | 1259 | "source": [
|
|
1260 | 1284 | },
|
1261 | 1285 | {
|
1262 | 1286 | "cell_type": "code",
|
1263 |
| - "execution_count": 22, |
| 1287 | + "execution_count": 23, |
1264 | 1288 | "metadata": {
|
1265 | 1289 | "slideshow": {
|
1266 | 1290 | "slide_type": "subslide"
|
|
1282 | 1306 | },
|
1283 | 1307 | {
|
1284 | 1308 | "cell_type": "code",
|
1285 |
| - "execution_count": 23, |
| 1309 | + "execution_count": 24, |
1286 | 1310 | "metadata": {
|
1287 | 1311 | "slideshow": {
|
1288 | 1312 | "slide_type": "subslide"
|
1289 | 1313 | },
|
1290 |
| - "tags": [] |
| 1314 | + "tags": [ |
| 1315 | + "hide-input" |
| 1316 | + ] |
1291 | 1317 | },
|
1292 | 1318 | "outputs": [
|
1293 | 1319 | {
|
|
1325 | 1351 | },
|
1326 | 1352 | {
|
1327 | 1353 | "cell_type": "code",
|
1328 |
| - "execution_count": 24, |
| 1354 | + "execution_count": 25, |
1329 | 1355 | "metadata": {
|
1330 | 1356 | "slideshow": {
|
1331 | 1357 | "slide_type": "-"
|
|
1338 | 1364 | },
|
1339 | 1365 | {
|
1340 | 1366 | "cell_type": "code",
|
1341 |
| - "execution_count": 25, |
| 1367 | + "execution_count": 26, |
1342 | 1368 | "metadata": {
|
1343 | 1369 | "slideshow": {
|
1344 | 1370 | "slide_type": "fragment"
|
|
1435 | 1461 | },
|
1436 | 1462 | {
|
1437 | 1463 | "cell_type": "code",
|
1438 |
| - "execution_count": 28, |
| 1464 | + "execution_count": 27, |
1439 | 1465 | "metadata": {
|
1440 | 1466 | "slideshow": {
|
1441 | 1467 | "slide_type": "-"
|
|
0 commit comments