Last active
June 5, 2018 00:13
-
-
Save phobson/8d853ddf23d1d692fe4d to your computer and use it in GitHub Desktop.
The split-apply-combine strategy applied to linear regression
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# This file may be used to create an environment using: | |
# $ conda create --name <env> --file <this file> | |
# platform: win-64 | |
cycler=0.10.0=py35_0 | |
decorator=4.0.9=py35_0 | |
ipykernel=4.3.1=py35_0 | |
ipython=4.1.2=py35_0 | |
ipython_genutils=0.1.0=py35_0 | |
ipywidgets=4.1.1=py35_0 | |
jinja2=2.8=py35_0 | |
jpeg=8d=vc14_0 | |
jsonschema=2.4.0=py35_0 | |
jupyter=1.0.0=py35_1 | |
jupyter_client=4.1.1=py35_0 | |
jupyter_console=4.1.0=py35_0 | |
jupyter_core=4.0.6=py35_0 | |
libpng=1.6.17=vc14_1 | |
libtiff=4.0.6=vc14_1 | |
markupsafe=0.23=py35_0 | |
matplotlib=1.5.1=np110py35_0 | |
mistune=0.7.1=py35_0 | |
mkl=11.3.1=0 | |
msvc_runtime=1.0.1=vc14_0 | |
nbconvert=4.1.0=py35_0 | |
nbformat=4.0.1=py35_0 | |
nose=1.3.7=py35_0 | |
notebook=4.1.0=py35_0 | |
numpy=1.10.4=py35_0 | |
pandas=0.17.1=np110py35_0 | |
path.py=8.1.2=py35_1 | |
patsy=0.4.0=np110py35_0 | |
pickleshare=0.5=py35_0 | |
pip=8.0.3=py35_0 | |
pygments=2.1.1=py35_0 | |
pyparsing=2.0.3=py35_0 | |
pyqt=4.11.4=py35_5 | |
pyreadline=2.1=py35_0 | |
python=3.5.1=2 | |
python-dateutil=2.4.2=py35_0 | |
pytz=2015.7=py35_0 | |
pyzmq=15.2.0=py35_0 | |
qt=4.8.7=vc14_6 | |
qtconsole=4.1.1=py35_0 | |
scipy=0.17.0=np110py35_0 | |
seaborn=0.7.0=py35_0 | |
setuptools=20.1.1=py35_0 | |
simplegeneric=0.8.1=py35_0 | |
sip=4.16.9=py35_2 | |
six=1.10.0=py35_0 | |
statsmodels=0.6.1=np110py35_0 | |
tk=8.5.18=vc14_0 | |
tornado=4.3=py35_0 | |
traitlets=4.1.0=py35_0 | |
wheel=0.29.0=py35_0 | |
zlib=1.2.8=vc14_2 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
conc | date | era | location | parameter | days | |
---|---|---|---|---|---|---|
123.52914203946618 | 2013-01-06 | pre | MW-1 | TCE | 0 | |
119.73210230460235 | 2013-01-27 | pre | MW-1 | TCE | 21 | |
126.0641465456202 | 2013-02-17 | pre | MW-1 | TCE | 42 | |
121.76220112945919 | 2013-03-10 | pre | MW-1 | TCE | 63 | |
125.53509980828159 | 2013-03-31 | pre | MW-1 | TCE | 84 | |
117.18050337977171 | 2013-04-21 | pre | MW-1 | TCE | 105 | |
116.61796215874692 | 2013-05-12 | pre | MW-1 | TCE | 126 | |
144.36771295593925 | 2013-06-02 | pre | MW-1 | TCE | 147 | |
114.72394061067713 | 2013-06-23 | pre | MW-1 | TCE | 168 | |
114.96248415858344 | 2013-07-14 | pre | MW-1 | TCE | 189 | |
119.68570549605978 | 2013-08-04 | pre | MW-1 | TCE | 210 | |
114.00579774768289 | 2013-08-25 | pre | MW-1 | TCE | 231 | |
114.84532926260337 | 2013-09-15 | pre | MW-1 | TCE | 252 | |
111.71497466492465 | 2013-10-06 | pre | MW-1 | TCE | 273 | |
112.61841679867288 | 2013-10-27 | pre | MW-1 | TCE | 294 | |
110.32201454467196 | 2013-11-01 | during | MW-1 | TCE | 0 | |
117.38638396586569 | 2013-11-04 | during | MW-1 | TCE | 3 | |
99.99375653980398 | 2013-11-07 | during | MW-1 | TCE | 6 | |
93.56167399155086 | 2013-11-10 | during | MW-1 | TCE | 9 | |
90.93518049345657 | 2013-11-13 | during | MW-1 | TCE | 12 | |
82.35548056772504 | 2013-11-16 | during | MW-1 | TCE | 15 | |
76.02532903262016 | 2013-11-19 | during | MW-1 | TCE | 18 | |
70.30623671971881 | 2013-11-22 | during | MW-1 | TCE | 21 | |
68.21012593160663 | 2013-11-25 | during | MW-1 | TCE | 24 | |
59.92200731876834 | 2013-11-28 | during | MW-1 | TCE | 27 | |
54.25211305348309 | 2013-12-01 | during | MW-1 | TCE | 30 | |
53.48476570046454 | 2013-12-04 | during | MW-1 | TCE | 33 | |
41.83168688691159 | 2013-12-07 | during | MW-1 | TCE | 36 | |
36.37571831374462 | 2013-12-10 | during | MW-1 | TCE | 39 | |
31.01907997862268 | 2013-12-13 | during | MW-1 | TCE | 42 | |
31.855101639323195 | 2014-01-01 | post | MW-1 | TCE | 0 | |
31.206918208495612 | 2014-01-09 | post | MW-1 | TCE | 8 | |
30.437589239720683 | 2014-01-17 | post | MW-1 | TCE | 16 | |
30.45505534573859 | 2014-01-25 | post | MW-1 | TCE | 24 | |
30.013194071942973 | 2014-02-02 | post | MW-1 | TCE | 32 | |
28.884937325151594 | 2014-02-10 | post | MW-1 | TCE | 40 | |
28.45390227278077 | 2014-02-18 | post | MW-1 | TCE | 48 | |
29.82366445760144 | 2014-02-26 | post | MW-1 | TCE | 56 | |
27.68423172367223 | 2014-03-06 | post | MW-1 | TCE | 64 | |
27.173735962083434 | 2014-03-14 | post | MW-1 | TCE | 72 | |
27.544441781603908 | 2014-03-22 | post | MW-1 | TCE | 80 | |
27.425229622929308 | 2014-03-30 | post | MW-1 | TCE | 88 | |
53.39966282386878 | 2014-04-07 | post | MW-1 | TCE | 96 | |
26.0404059137335 | 2014-04-15 | post | MW-1 | TCE | 104 | |
30.360599984430127 | 2014-04-23 | post | MW-1 | TCE | 112 | |
254.19538628430846 | 2013-01-06 | pre | MW-1 | DCE | 0 | |
246.80156981174437 | 2013-01-27 | pre | MW-1 | DCE | 21 | |
247.19146930041813 | 2013-02-17 | pre | MW-1 | DCE | 42 | |
239.66108138506846 | 2013-03-10 | pre | MW-1 | DCE | 63 | |
235.77365576969004 | 2013-03-31 | pre | MW-1 | DCE | 84 | |
235.66088092157042 | 2013-04-21 | pre | MW-1 | DCE | 105 | |
228.75505291316918 | 2013-05-12 | pre | MW-1 | DCE | 126 | |
227.8969778625727 | 2013-06-02 | pre | MW-1 | DCE | 147 | |
222.12973532034013 | 2013-06-23 | pre | MW-1 | DCE | 168 | |
230.98108878819173 | 2013-07-14 | pre | MW-1 | DCE | 189 | |
220.55483902032776 | 2013-08-04 | pre | MW-1 | DCE | 210 | |
211.6497313431593 | 2013-08-25 | pre | MW-1 | DCE | 231 | |
207.8406751019786 | 2013-09-15 | pre | MW-1 | DCE | 252 | |
203.93289115215626 | 2013-10-06 | pre | MW-1 | DCE | 273 | |
200.95013301313168 | 2013-10-27 | pre | MW-1 | DCE | 294 | |
201.16131807432328 | 2013-11-01 | during | MW-1 | DCE | 0 | |
193.90226427657407 | 2013-11-04 | during | MW-1 | DCE | 3 | |
187.71975846546655 | 2013-11-07 | during | MW-1 | DCE | 6 | |
181.9693091301286 | 2013-11-10 | during | MW-1 | DCE | 9 | |
173.98105815607758 | 2013-11-13 | during | MW-1 | DCE | 12 | |
164.9200481236416 | 2013-11-16 | during | MW-1 | DCE | 15 | |
157.4161423423674 | 2013-11-19 | during | MW-1 | DCE | 18 | |
159.07628356780822 | 2013-11-22 | during | MW-1 | DCE | 21 | |
143.55355650003153 | 2013-11-25 | during | MW-1 | DCE | 24 | |
136.44380680523844 | 2013-11-28 | during | MW-1 | DCE | 27 | |
129.4308579352776 | 2013-12-01 | during | MW-1 | DCE | 30 | |
121.59323729047561 | 2013-12-04 | during | MW-1 | DCE | 33 | |
115.19284610399369 | 2013-12-07 | during | MW-1 | DCE | 36 | |
108.04808393510328 | 2013-12-10 | during | MW-1 | DCE | 39 | |
103.58030457256527 | 2013-12-13 | during | MW-1 | DCE | 42 | |
103.94745645630128 | 2014-01-01 | post | MW-1 | DCE | 0 | |
100.94222533228707 | 2014-01-09 | post | MW-1 | DCE | 8 | |
103.85610011001067 | 2014-01-17 | post | MW-1 | DCE | 16 | |
100.37890073711647 | 2014-01-25 | post | MW-1 | DCE | 24 | |
98.7595738367796 | 2014-02-02 | post | MW-1 | DCE | 32 | |
98.44466186868992 | 2014-02-10 | post | MW-1 | DCE | 40 | |
97.01340054490078 | 2014-02-18 | post | MW-1 | DCE | 48 | |
96.00645887661945 | 2014-02-26 | post | MW-1 | DCE | 56 | |
95.46550030079685 | 2014-03-06 | post | MW-1 | DCE | 64 | |
93.97394709401362 | 2014-03-14 | post | MW-1 | DCE | 72 | |
95.19808185882034 | 2014-03-22 | post | MW-1 | DCE | 80 | |
92.6193014157367 | 2014-03-30 | post | MW-1 | DCE | 88 | |
96.14965847766415 | 2014-04-07 | post | MW-1 | DCE | 96 | |
91.92133258624467 | 2014-04-15 | post | MW-1 | DCE | 104 | |
91.75394708807764 | 2014-04-23 | post | MW-1 | DCE | 112 | |
33.05657794132975 | 2013-01-06 | pre | MW-1 | PCE | 0 | |
34.04167325477549 | 2013-01-27 | pre | MW-1 | PCE | 21 | |
30.945761673023867 | 2013-02-17 | pre | MW-1 | PCE | 42 | |
32.344421041935604 | 2013-03-10 | pre | MW-1 | PCE | 63 | |
36.38271167351001 | 2013-03-31 | pre | MW-1 | PCE | 84 | |
31.983092746146017 | 2013-04-21 | pre | MW-1 | PCE | 105 | |
34.818261670612905 | 2013-05-12 | pre | MW-1 | PCE | 126 | |
32.598327131110445 | 2013-06-02 | pre | MW-1 | PCE | 147 | |
33.316405257217504 | 2013-06-23 | pre | MW-1 | PCE | 168 | |
34.94457426998054 | 2013-07-14 | pre | MW-1 | PCE | 189 | |
33.7792878698855 | 2013-08-04 | pre | MW-1 | PCE | 210 | |
34.409571229808414 | 2013-08-25 | pre | MW-1 | PCE | 231 | |
34.547613963090086 | 2013-09-15 | pre | MW-1 | PCE | 252 | |
47.580856465393154 | 2013-10-06 | pre | MW-1 | PCE | 273 | |
37.02442294468243 | 2013-10-27 | pre | MW-1 | PCE | 294 | |
38.35051091891114 | 2013-11-01 | during | MW-1 | PCE | 0 | |
34.462427812677035 | 2013-11-04 | during | MW-1 | PCE | 3 | |
32.48850932067632 | 2013-11-07 | during | MW-1 | PCE | 6 | |
29.86143942985412 | 2013-11-10 | during | MW-1 | PCE | 9 | |
29.00191234554431 | 2013-11-13 | during | MW-1 | PCE | 12 | |
26.70786848625887 | 2013-11-16 | during | MW-1 | PCE | 15 | |
29.10393592446233 | 2013-11-19 | during | MW-1 | PCE | 18 | |
29.36459699583993 | 2013-11-22 | during | MW-1 | PCE | 21 | |
31.025410559927504 | 2013-11-25 | during | MW-1 | PCE | 24 | |
23.714547186778777 | 2013-11-28 | during | MW-1 | PCE | 27 | |
17.922969422690542 | 2013-12-01 | during | MW-1 | PCE | 30 | |
15.765803074570616 | 2013-12-04 | during | MW-1 | PCE | 33 | |
17.870198751063747 | 2013-12-07 | during | MW-1 | PCE | 36 | |
14.359469542553837 | 2013-12-10 | during | MW-1 | PCE | 39 | |
10.180744099439718 | 2013-12-13 | during | MW-1 | PCE | 42 | |
12.571147355035373 | 2014-01-01 | post | MW-1 | PCE | 0 | |
15.635201956700826 | 2014-01-09 | post | MW-1 | PCE | 8 | |
13.917602561416352 | 2014-01-17 | post | MW-1 | PCE | 16 | |
14.522525961276642 | 2014-01-25 | post | MW-1 | PCE | 24 | |
14.886473774542424 | 2014-02-02 | post | MW-1 | PCE | 32 | |
15.627457575715235 | 2014-02-10 | post | MW-1 | PCE | 40 | |
20.911929955149457 | 2014-02-18 | post | MW-1 | PCE | 48 | |
18.62031169313942 | 2014-02-26 | post | MW-1 | PCE | 56 | |
19.80284696815915 | 2014-03-06 | post | MW-1 | PCE | 64 | |
34.02376500041348 | 2014-03-14 | post | MW-1 | PCE | 72 | |
24.59347577099718 | 2014-03-22 | post | MW-1 | PCE | 80 | |
24.406649619260783 | 2014-03-30 | post | MW-1 | PCE | 88 | |
24.82624417824214 | 2014-04-07 | post | MW-1 | PCE | 96 | |
34.951676996083805 | 2014-04-15 | post | MW-1 | PCE | 104 | |
39.146774311787105 | 2014-04-23 | post | MW-1 | PCE | 112 | |
105.26921496969135 | 2013-01-06 | pre | MW-2 | TCE | 0 | |
101.27078821174815 | 2013-01-27 | pre | MW-2 | TCE | 21 | |
95.83452712044419 | 2013-02-17 | pre | MW-2 | TCE | 42 | |
95.495902011684 | 2013-03-10 | pre | MW-2 | TCE | 63 | |
92.82982368718316 | 2013-03-31 | pre | MW-2 | TCE | 84 | |
91.1398924072869 | 2013-04-21 | pre | MW-2 | TCE | 105 | |
92.50201908699808 | 2013-05-12 | pre | MW-2 | TCE | 126 | |
85.05368635218699 | 2013-06-02 | pre | MW-2 | TCE | 147 | |
83.66639878033885 | 2013-06-23 | pre | MW-2 | TCE | 168 | |
83.02459277791118 | 2013-07-14 | pre | MW-2 | TCE | 189 | |
79.49126728783065 | 2013-08-04 | pre | MW-2 | TCE | 210 | |
76.70908514889452 | 2013-08-25 | pre | MW-2 | TCE | 231 | |
79.17088562094061 | 2013-09-15 | pre | MW-2 | TCE | 252 | |
74.47337356239913 | 2013-10-06 | pre | MW-2 | TCE | 273 | |
70.48973996468547 | 2013-10-27 | pre | MW-2 | TCE | 294 | |
72.4437200908659 | 2013-11-01 | during | MW-2 | TCE | 0 | |
71.74711796317351 | 2013-11-04 | during | MW-2 | TCE | 3 | |
65.94537934065 | 2013-11-07 | during | MW-2 | TCE | 6 | |
65.91342570780803 | 2013-11-10 | during | MW-2 | TCE | 9 | |
60.38958896827559 | 2013-11-13 | during | MW-2 | TCE | 12 | |
56.7202673046587 | 2013-11-16 | during | MW-2 | TCE | 15 | |
53.24416411968205 | 2013-11-19 | during | MW-2 | TCE | 18 | |
51.48080601059174 | 2013-11-22 | during | MW-2 | TCE | 21 | |
49.24480858743331 | 2013-11-25 | during | MW-2 | TCE | 24 | |
49.21301320809862 | 2013-11-28 | during | MW-2 | TCE | 27 | |
42.8563441097427 | 2013-12-01 | during | MW-2 | TCE | 30 | |
41.4919714250514 | 2013-12-04 | during | MW-2 | TCE | 33 | |
36.20801643155208 | 2013-12-07 | during | MW-2 | TCE | 36 | |
33.47698747743448 | 2013-12-10 | during | MW-2 | TCE | 39 | |
31.436218152996663 | 2013-12-13 | during | MW-2 | TCE | 42 | |
30.44118738698771 | 2014-01-01 | post | MW-2 | TCE | 0 | |
34.525138778518894 | 2014-01-09 | post | MW-2 | TCE | 8 | |
32.79862302069233 | 2014-01-17 | post | MW-2 | TCE | 16 | |
32.122718141612864 | 2014-01-25 | post | MW-2 | TCE | 24 | |
32.23270177487632 | 2014-02-02 | post | MW-2 | TCE | 32 | |
50.263743270666225 | 2014-02-10 | post | MW-2 | TCE | 40 | |
30.488949182467163 | 2014-02-18 | post | MW-2 | TCE | 48 | |
29.605209507543258 | 2014-02-26 | post | MW-2 | TCE | 56 | |
31.543720400928947 | 2014-03-06 | post | MW-2 | TCE | 64 | |
30.90480511827157 | 2014-03-14 | post | MW-2 | TCE | 72 | |
30.14909563019266 | 2014-03-22 | post | MW-2 | TCE | 80 | |
29.699319211407825 | 2014-03-30 | post | MW-2 | TCE | 88 | |
30.095050744065155 | 2014-04-07 | post | MW-2 | TCE | 96 | |
31.139616933190187 | 2014-04-15 | post | MW-2 | TCE | 104 | |
29.879395204145602 | 2014-04-23 | post | MW-2 | TCE | 112 | |
333.6349969039696 | 2013-01-06 | pre | MW-2 | DCE | 0 | |
298.353415173977 | 2013-01-27 | pre | MW-2 | DCE | 21 | |
296.3260570483836 | 2013-02-17 | pre | MW-2 | DCE | 42 | |
293.6657756425811 | 2013-03-10 | pre | MW-2 | DCE | 63 | |
293.68629157370106 | 2013-03-31 | pre | MW-2 | DCE | 84 | |
289.41830234117765 | 2013-04-21 | pre | MW-2 | DCE | 105 | |
287.98288662353286 | 2013-05-12 | pre | MW-2 | DCE | 126 | |
286.1681389388184 | 2013-06-02 | pre | MW-2 | DCE | 147 | |
283.53612533517287 | 2013-06-23 | pre | MW-2 | DCE | 168 | |
295.2061998318369 | 2013-07-14 | pre | MW-2 | DCE | 189 | |
284.28584962494983 | 2013-08-04 | pre | MW-2 | DCE | 210 | |
285.00417257707875 | 2013-08-25 | pre | MW-2 | DCE | 231 | |
274.8328690831084 | 2013-09-15 | pre | MW-2 | DCE | 252 | |
278.9009625167875 | 2013-10-06 | pre | MW-2 | DCE | 273 | |
273.064857828803 | 2013-10-27 | pre | MW-2 | DCE | 294 | |
274.3243309546276 | 2013-11-01 | during | MW-2 | DCE | 0 | |
260.2560223968513 | 2013-11-04 | during | MW-2 | DCE | 3 | |
239.10085871194988 | 2013-11-07 | during | MW-2 | DCE | 6 | |
223.82720317484262 | 2013-11-10 | during | MW-2 | DCE | 9 | |
211.9893000475949 | 2013-11-13 | during | MW-2 | DCE | 12 | |
191.48820575844078 | 2013-11-16 | during | MW-2 | DCE | 15 | |
186.64591223053304 | 2013-11-19 | during | MW-2 | DCE | 18 | |
163.29173598377534 | 2013-11-22 | during | MW-2 | DCE | 21 | |
145.8428842513852 | 2013-11-25 | during | MW-2 | DCE | 24 | |
130.74339852771737 | 2013-11-28 | during | MW-2 | DCE | 27 | |
113.31216049141679 | 2013-12-01 | during | MW-2 | DCE | 30 | |
98.20742696454394 | 2013-12-04 | during | MW-2 | DCE | 33 | |
87.9517086084528 | 2013-12-07 | during | MW-2 | DCE | 36 | |
74.06650649620592 | 2013-12-10 | during | MW-2 | DCE | 39 | |
97.95581497935035 | 2013-12-13 | during | MW-2 | DCE | 42 | |
51.50319699064526 | 2014-01-01 | post | MW-2 | DCE | 0 | |
51.009549723356585 | 2014-01-09 | post | MW-2 | DCE | 8 | |
51.43836254736396 | 2014-01-17 | post | MW-2 | DCE | 16 | |
51.318975663634575 | 2014-01-25 | post | MW-2 | DCE | 24 | |
52.63868761904332 | 2014-02-02 | post | MW-2 | DCE | 32 | |
54.088809282364885 | 2014-02-10 | post | MW-2 | DCE | 40 | |
53.293925992869106 | 2014-02-18 | post | MW-2 | DCE | 48 | |
58.49111005603868 | 2014-02-26 | post | MW-2 | DCE | 56 | |
53.515980091520824 | 2014-03-06 | post | MW-2 | DCE | 64 | |
53.63932064890161 | 2014-03-14 | post | MW-2 | DCE | 72 | |
53.65439395497007 | 2014-03-22 | post | MW-2 | DCE | 80 | |
53.357068273658506 | 2014-03-30 | post | MW-2 | DCE | 88 | |
53.66087514164254 | 2014-04-07 | post | MW-2 | DCE | 96 | |
54.091875304531015 | 2014-04-15 | post | MW-2 | DCE | 104 | |
62.38785720844364 | 2014-04-23 | post | MW-2 | DCE | 112 | |
65.04842009120831 | 2013-01-06 | pre | MW-2 | PCE | 0 | |
68.83827299553742 | 2013-01-27 | pre | MW-2 | PCE | 21 | |
59.59755443383201 | 2013-02-17 | pre | MW-2 | PCE | 42 | |
59.069319901404185 | 2013-03-10 | pre | MW-2 | PCE | 63 | |
59.293905060814296 | 2013-03-31 | pre | MW-2 | PCE | 84 | |
60.268254042083385 | 2013-04-21 | pre | MW-2 | PCE | 105 | |
60.93232103511965 | 2013-05-12 | pre | MW-2 | PCE | 126 | |
63.61023476156474 | 2013-06-02 | pre | MW-2 | PCE | 147 | |
59.49505368059587 | 2013-06-23 | pre | MW-2 | PCE | 168 | |
71.34655781537072 | 2013-07-14 | pre | MW-2 | PCE | 189 | |
57.676821838516794 | 2013-08-04 | pre | MW-2 | PCE | 210 | |
56.59801014568396 | 2013-08-25 | pre | MW-2 | PCE | 231 | |
55.915875024409985 | 2013-09-15 | pre | MW-2 | PCE | 252 | |
55.89983439124815 | 2013-10-06 | pre | MW-2 | PCE | 273 | |
57.23144074585753 | 2013-10-27 | pre | MW-2 | PCE | 294 | |
55.54286189864905 | 2013-11-01 | during | MW-2 | PCE | 0 | |
57.81710019926078 | 2013-11-04 | during | MW-2 | PCE | 3 | |
59.63507063136525 | 2013-11-07 | during | MW-2 | PCE | 6 | |
47.585265647477925 | 2013-11-10 | during | MW-2 | PCE | 9 | |
49.85527321736887 | 2013-11-13 | during | MW-2 | PCE | 12 | |
42.6003084767801 | 2013-11-16 | during | MW-2 | PCE | 15 | |
42.72338017141761 | 2013-11-19 | during | MW-2 | PCE | 18 | |
45.12237655736989 | 2013-11-22 | during | MW-2 | PCE | 21 | |
36.78795075232477 | 2013-11-25 | during | MW-2 | PCE | 24 | |
32.833000440391594 | 2013-11-28 | during | MW-2 | PCE | 27 | |
30.793113448350372 | 2013-12-01 | during | MW-2 | PCE | 30 | |
28.68879857092062 | 2013-12-04 | during | MW-2 | PCE | 33 | |
26.31284169449277 | 2013-12-07 | during | MW-2 | PCE | 36 | |
23.77938430314763 | 2013-12-10 | during | MW-2 | PCE | 39 | |
21.43712778194844 | 2013-12-13 | during | MW-2 | PCE | 42 | |
22.152973825611664 | 2014-01-01 | post | MW-2 | PCE | 0 | |
20.721100760858352 | 2014-01-09 | post | MW-2 | PCE | 8 | |
21.932608579900688 | 2014-01-17 | post | MW-2 | PCE | 16 | |
32.070671689078225 | 2014-01-25 | post | MW-2 | PCE | 24 | |
22.44795002358588 | 2014-02-02 | post | MW-2 | PCE | 32 | |
22.732393372777373 | 2014-02-10 | post | MW-2 | PCE | 40 | |
28.488361771106085 | 2014-02-18 | post | MW-2 | PCE | 48 | |
22.567274041300344 | 2014-02-26 | post | MW-2 | PCE | 56 | |
30.076192036410987 | 2014-03-06 | post | MW-2 | PCE | 64 | |
23.962639305252196 | 2014-03-14 | post | MW-2 | PCE | 72 | |
25.595094566411134 | 2014-03-22 | post | MW-2 | PCE | 80 | |
25.788246342331707 | 2014-03-30 | post | MW-2 | PCE | 88 | |
29.64100584729982 | 2014-04-07 | post | MW-2 | PCE | 96 | |
25.82284785479302 | 2014-04-15 | post | MW-2 | PCE | 104 | |
25.70642924749875 | 2014-04-23 | post | MW-2 | PCE | 112 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import numpy | |
import pandas | |
import statsmodels.api as sm | |
import seaborn | |
from matplotlib import pyplot | |
from statsmodels.sandbox.regression.predstd import wls_prediction_std | |
def generate_fake_data(dates, startconc, stopconc, **othercols): | |
N = len(dates) | |
noise = numpy.random.lognormal(0.5, 1.25, size=N) | |
conc = noise + numpy.linspace(startconc, stopconc, num=N) | |
data = pandas.DataFrame(dict(date=dates, conc=conc, **othercols)) | |
data['days'] = (data['date'] - data['date'].min()).dt.days | |
return data | |
def plot_raw_data(data, **fgopts): | |
fg = ( | |
seaborn.FacetGrid(aspect=2, data=data, **fgopts) | |
.map(pyplot.scatter, 'date', 'conc') | |
.set_xticklabels(rotation=30, rotation_mode='anchor', ha='right') | |
.add_legend() | |
) | |
return fg | |
def plot_modeled_data(modeled, **fgopts): | |
fg = ( | |
seaborn.FacetGrid(aspect=2, data=modeled, **fgopts) | |
.map(pyplot.fill_between, 'date', 'ci_upper', 'ci_lower', zorder=0, alpha=0.2, label='95% CI') | |
.map(pyplot.plot, 'date', 'fit', label='best-fit') | |
.map(pyplot.scatter, 'date', 'conc', label='raw data') | |
.set_xticklabels(rotation=30, rotation_mode='anchor', ha='right') | |
) | |
return fg |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"cells": [ | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"# Linear regression with 95% confidence intervals\n", | |
"## Setup environment\n", | |
"The cell below imports all of the libraries we need to run the analysis." | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 1, | |
"metadata": { | |
"collapsed": true | |
}, | |
"outputs": [], | |
"source": [ | |
"import numpy\n", | |
"import pandas\n", | |
"import statsmodels.api as sm\n", | |
"import seaborn\n", | |
"from matplotlib import pyplot\n", | |
"from statsmodels.sandbox.regression.predstd import wls_prediction_std\n", | |
"\n", | |
"# small functions I hid to make the notebook more concise\n", | |
"import reg_helpers\n", | |
"\n", | |
"seaborn.set_style('ticks')\n", | |
"%matplotlib inline" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"collapsed": false | |
}, | |
"source": [ | |
"## Generate some fake data" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 2, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
" conc date era days\n", | |
"0 114.955295 2013-01-06 MNA 0\n", | |
"1 98.433102 2013-01-27 MNA 21\n", | |
"2 97.032246 2013-02-17 MNA 42\n", | |
"3 114.285784 2013-03-10 MNA 63\n", | |
"4 99.878136 2013-03-31 MNA 84\n" | |
] | |
}, | |
{ | |
"data": { | |
"image/png": "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\naIn/DzGTsuBtO98nAAAAAElFTkSuQmCC\n", | |
"text/plain": [ | |
"<matplotlib.figure.Figure at 0x72fa0238d0>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"## generate fake data\n", | |
"numpy.random.seed(0)\n", | |
"N = 15\n", | |
"dates = pandas.date_range(start='2013-01-01', freq='3w', periods=N)\n", | |
"data = reg_helpers.generate_fake_data(dates, 100, 40, era='MNA')\n", | |
"\n", | |
"## show the first five rows\n", | |
"print(data.head())\n", | |
"\n", | |
"## plot the data as a timeseries\n", | |
"fg = reg_helpers.plot_raw_data(data, hue='era').add_legend()" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"## Is the concentration decreasing with time?\n", | |
"### And if so, at what rate and what are the confidence levels around that trend?\n", | |
"\n", | |
"We can answer these questions will something as simple as Ordinary Least Squares (OLS).\n", | |
"\n", | |
"In our case, the hypothesis is that concentration is decreasing linearly with time. Mathematically:\n", | |
"\n", | |
"$ \\mathbb{C} = m \\: t + b $\n", | |
"\n", | |
"and \n", | |
"\n", | |
"$ \\frac{d\\mathbb{c}}{dt} = m < 0 $\n", | |
"\n", | |
"## Create and execute an ordinary least-square (OLS) linear model\n", | |
"\n", | |
" - X-variable = elapsed time in days\n", | |
" - Y-variable = concentration\n", | |
" \n", | |
"The `statsmodels` package allows to write out the formula in a pretty general fashion using the names of the colums in our data table. In this case, we thing that the *concentation varies with time*, i.e., `conc ~ days`. We don't need to specify that we want a constant in our linear model. The default behavior includes that for us.\n", | |
"\n", | |
"The cell below executes the regression and prints it's results." | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 3, | |
"metadata": { | |
"collapsed": false, | |
"scrolled": false | |
}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
" OLS Regression Results \n", | |
"==============================================================================\n", | |
"Dep. Variable: conc R-squared: 0.917\n", | |
"Model: OLS Adj. R-squared: 0.910\n", | |
"Method: Least Squares F-statistic: 143.1\n", | |
"Date: Thu, 03 Mar 2016 Prob (F-statistic): 2.17e-08\n", | |
"Time: 09:19:51 Log-Likelihood: -49.480\n", | |
"No. Observations: 15 AIC: 103.0\n", | |
"Df Residuals: 13 BIC: 104.4\n", | |
"Df Model: 1 \n", | |
"Covariance Type: nonrobust \n", | |
"==============================================================================\n", | |
" coef std err t P>|t| [95.0% Conf. Int.]\n", | |
"------------------------------------------------------------------------------\n", | |
"Intercept 111.8870 3.460 32.341 0.000 104.413 119.361\n", | |
"days -0.2396 0.020 -11.962 0.000 -0.283 -0.196\n", | |
"==============================================================================\n", | |
"Omnibus: 6.943 Durbin-Watson: 1.768\n", | |
"Prob(Omnibus): 0.031 Jarque-Bera (JB): 3.777\n", | |
"Skew: 1.126 Prob(JB): 0.151\n", | |
"Kurtosis: 3.983 Cond. No. 329.\n", | |
"==============================================================================\n", | |
"\n", | |
"Warnings:\n", | |
"[1] Standard Errors assume that the covariance matrix of the errors is correctly specified.\n" | |
] | |
}, | |
{ | |
"name": "stderr", | |
"output_type": "stream", | |
"text": [ | |
"C:\\Miniconda3\\envs\\scratch\\lib\\site-packages\\scipy\\stats\\stats.py:1557: UserWarning: kurtosistest only valid for n>=20 ... continuing anyway, n=15\n", | |
" \"anyway, n=%i\" % int(n))\n" | |
] | |
} | |
], | |
"source": [ | |
"# create and fit the model\n", | |
"model = sm.formula.ols(formula='conc ~ days', data=data)\n", | |
"res = model.fit()\n", | |
"\n", | |
"print(res.summary())" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"collapsed": false | |
}, | |
"source": [ | |
"## Estimate 95% confidence intervals around the predicted values\n", | |
"\n", | |
"We can then use another statsmodels function to compute the 95% confidence intervals around the model's predictions.\n", | |
"\n", | |
"The next cell does that and assigns the model results to the dataframe alongside the original data." | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 4, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/html": [ | |
"<div>\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>conc</th>\n", | |
" <th>date</th>\n", | |
" <th>era</th>\n", | |
" <th>days</th>\n", | |
" <th>ci_lower</th>\n", | |
" <th>ci_upper</th>\n", | |
" <th>fit</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>0</th>\n", | |
" <td>114.955295</td>\n", | |
" <td>2013-01-06</td>\n", | |
" <td>MNA</td>\n", | |
" <td>0</td>\n", | |
" <td>94.945784</td>\n", | |
" <td>128.828300</td>\n", | |
" <td>111.887042</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>1</th>\n", | |
" <td>98.433102</td>\n", | |
" <td>2013-01-27</td>\n", | |
" <td>MNA</td>\n", | |
" <td>21</td>\n", | |
" <td>90.234910</td>\n", | |
" <td>123.477921</td>\n", | |
" <td>106.856415</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2</th>\n", | |
" <td>97.032246</td>\n", | |
" <td>2013-02-17</td>\n", | |
" <td>MNA</td>\n", | |
" <td>42</td>\n", | |
" <td>85.479728</td>\n", | |
" <td>118.171850</td>\n", | |
" <td>101.825789</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>3</th>\n", | |
" <td>114.285784</td>\n", | |
" <td>2013-03-10</td>\n", | |
" <td>MNA</td>\n", | |
" <td>63</td>\n", | |
" <td>80.677966</td>\n", | |
" <td>112.912359</td>\n", | |
" <td>96.795162</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>4</th>\n", | |
" <td>99.878136</td>\n", | |
" <td>2013-03-31</td>\n", | |
" <td>MNA</td>\n", | |
" <td>84</td>\n", | |
" <td>75.827617</td>\n", | |
" <td>107.701454</td>\n", | |
" <td>91.764536</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" conc date era days ci_lower ci_upper fit\n", | |
"0 114.955295 2013-01-06 MNA 0 94.945784 128.828300 111.887042\n", | |
"1 98.433102 2013-01-27 MNA 21 90.234910 123.477921 106.856415\n", | |
"2 97.032246 2013-02-17 MNA 42 85.479728 118.171850 101.825789\n", | |
"3 114.285784 2013-03-10 MNA 63 80.677966 112.912359 96.795162\n", | |
"4 99.878136 2013-03-31 MNA 84 75.827617 107.701454 91.764536" | |
] | |
}, | |
"execution_count": 4, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"## estimate the confidence intervals around the fit\n", | |
"prstd, ci_lower, ci_upper = wls_prediction_std(res, alpha=0.05)\n", | |
"\n", | |
"## add the CIs to the dataframe\n", | |
"modeled = data.assign(\n", | |
" fit=res.fittedvalues,\n", | |
" ci_lower=ci_lower,\n", | |
" ci_upper=ci_upper\n", | |
")\n", | |
"\n", | |
"## just show the first 5 rows\n", | |
"modeled.head()" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"### Plot the results and data\n", | |
"\n", | |
"With the model results in the dataframe, we can easily visualize the data." | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 5, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"image/png": "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\n", | |
"text/plain": [ | |
"<matplotlib.figure.Figure at 0x72f54dcdd8>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"fg = reg_helpers.plot_modeled_data(modeled).add_legend()" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"## That was really easy, but what if ...\n", | |
"\n", | |
" - We had lots of locations we wanted to investigate\n", | |
" - and a lot of parameters\n", | |
" - and distinct eras\n", | |
" \n", | |
" each requiring their own analysis?\n", | |
" \n", | |
"It's actually not much harder to generalize this work flow to account for an arbitrary number of variables distinquishing each analytical unit.\n", | |
" \n", | |
"Let's build up a dataset with 3 distinct eras (pre-, during-, and post-remediation), 3 different parameters, and 2 different monitoring locations. \n", | |
"\n", | |
"(I've picked those numbers because they'll be easy to keep in our head, but keep in mind that you can crank those numbers up much higher and this same approach works.)\n", | |
"\n", | |
"This dataset is much larger, so I'll read it in from a file and then show a random selection of 10 rows." | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 6, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/html": [ | |
"<div>\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>conc</th>\n", | |
" <th>date</th>\n", | |
" <th>era</th>\n", | |
" <th>location</th>\n", | |
" <th>parameter</th>\n", | |
" <th>days</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>190</th>\n", | |
" <td>284.285850</td>\n", | |
" <td>2013-08-04</td>\n", | |
" <td>pre</td>\n", | |
" <td>MW-2</td>\n", | |
" <td>DCE</td>\n", | |
" <td>210</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>154</th>\n", | |
" <td>60.389589</td>\n", | |
" <td>2013-11-13</td>\n", | |
" <td>during</td>\n", | |
" <td>MW-2</td>\n", | |
" <td>TCE</td>\n", | |
" <td>12</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>25</th>\n", | |
" <td>54.252113</td>\n", | |
" <td>2013-12-01</td>\n", | |
" <td>during</td>\n", | |
" <td>MW-1</td>\n", | |
" <td>TCE</td>\n", | |
" <td>30</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>157</th>\n", | |
" <td>51.480806</td>\n", | |
" <td>2013-11-22</td>\n", | |
" <td>during</td>\n", | |
" <td>MW-2</td>\n", | |
" <td>TCE</td>\n", | |
" <td>21</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>139</th>\n", | |
" <td>92.829824</td>\n", | |
" <td>2013-03-31</td>\n", | |
" <td>pre</td>\n", | |
" <td>MW-2</td>\n", | |
" <td>TCE</td>\n", | |
" <td>84</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>74</th>\n", | |
" <td>103.580305</td>\n", | |
" <td>2013-12-13</td>\n", | |
" <td>during</td>\n", | |
" <td>MW-1</td>\n", | |
" <td>DCE</td>\n", | |
" <td>42</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>62</th>\n", | |
" <td>187.719758</td>\n", | |
" <td>2013-11-07</td>\n", | |
" <td>during</td>\n", | |
" <td>MW-1</td>\n", | |
" <td>DCE</td>\n", | |
" <td>6</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>109</th>\n", | |
" <td>29.001912</td>\n", | |
" <td>2013-11-13</td>\n", | |
" <td>during</td>\n", | |
" <td>MW-1</td>\n", | |
" <td>PCE</td>\n", | |
" <td>12</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>205</th>\n", | |
" <td>113.312160</td>\n", | |
" <td>2013-12-01</td>\n", | |
" <td>during</td>\n", | |
" <td>MW-2</td>\n", | |
" <td>DCE</td>\n", | |
" <td>30</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>160</th>\n", | |
" <td>42.856344</td>\n", | |
" <td>2013-12-01</td>\n", | |
" <td>during</td>\n", | |
" <td>MW-2</td>\n", | |
" <td>TCE</td>\n", | |
" <td>30</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" conc date era location parameter days\n", | |
"190 284.285850 2013-08-04 pre MW-2 DCE 210\n", | |
"154 60.389589 2013-11-13 during MW-2 TCE 12\n", | |
"25 54.252113 2013-12-01 during MW-1 TCE 30\n", | |
"157 51.480806 2013-11-22 during MW-2 TCE 21\n", | |
"139 92.829824 2013-03-31 pre MW-2 TCE 84\n", | |
"74 103.580305 2013-12-13 during MW-1 DCE 42\n", | |
"62 187.719758 2013-11-07 during MW-1 DCE 6\n", | |
"109 29.001912 2013-11-13 during MW-1 PCE 12\n", | |
"205 113.312160 2013-12-01 during MW-2 DCE 30\n", | |
"160 42.856344 2013-12-01 during MW-2 TCE 30" | |
] | |
}, | |
"execution_count": 6, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"bigdata = pandas.read_csv(\"fakedata.csv\", parse_dates=['date'])\n", | |
"bigdata.sample(10)" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"## Generalizing the modeling \n", | |
"\n", | |
"Recall that when we fit the original OLS model, we used code that looked something like this:\n", | |
"```python\n", | |
"model = sm.formula.ols(formula='conc ~ days', data=data)\n", | |
"res = model.fit()\n", | |
"```\n", | |
"\n", | |
"When we then added it to our dataframe with the following statements:\n", | |
"```python\n", | |
"modeled = data.assign(\n", | |
" fit=res.fittedvalues,\n", | |
" ci_lower=ci_lower,\n", | |
" ci_upper=ci_upper\n", | |
")\n", | |
"```\n", | |
"\n", | |
"Since we have a fairly [tidy dataset](http://vita.had.co.nz/papers/tidy-data.pdf), we can easily generalize this into a function that accepts a dataframe as input, fits an OLS model, and assigns to the values we need to the columns of the model" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 7, | |
"metadata": { | |
"collapsed": true | |
}, | |
"outputs": [], | |
"source": [ | |
"def fit_model(dataframe, formula):\n", | |
" # fit the model\n", | |
" model = sm.formula.ols(formula=formula, data=dataframe)\n", | |
" res = model.fit()\n", | |
" \n", | |
" ## estimate the confidence intervals around the fit\n", | |
" prstd, ci_lower, ci_upper = wls_prediction_std(res, alpha=0.05)\n", | |
" \n", | |
" # add the results to the dataframe\n", | |
" modeled = dataframe.assign(\n", | |
" fit=res.fittedvalues,\n", | |
" ci_lower=ci_lower,\n", | |
" ci_upper=ci_upper\n", | |
" )\n", | |
" \n", | |
" return modeled" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"The function above accepts a dataframe and a formula. This is very simple to use, yet very flexible and allows to use it even if the dataframe has different columns names or to we need try different variables in our model." | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"### Using the generalized approach on all of the scenarios\n", | |
"Now we need to write code that does the following:\n", | |
" - splits our 1 dataframe up into each scenerio defined by the unique combinations of \n", | |
" - parameter\n", | |
" - era\n", | |
" - location\n", | |
" - runs each subset of the data through our `fit_model` function\n", | |
" - recombines all of the data back into a single dataframe.\n", | |
" \n", | |
"This approach in generally referred to as [\"Split-Apply-Combine\"](http://vita.had.co.nz/papers/plyr.pdf). We do it all the time with Excel Pivot Tables, groupby-queries in databases, etc. The `dply` library in R and `pandas` in python were created with this generalized workflow in mind, and make it incredibly simple to accomplish our goals.\n", | |
"\n", | |
"Literally, all we have to tell pandas to do is: group the data on the columns that define each subset, run each group through our function. That sounds like it's only two statements. To put it into code isn't much longer, though we will do a couple of other things like sorting to make the results easier to work with." | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 8, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [], | |
"source": [ | |
"scenario_columns = ['era', 'location', 'parameter']\n", | |
"\n", | |
"modeled = (\n", | |
" bigdata.groupby(scenario_columns, as_index=False) # (1) divide the eras into groups\n", | |
" .apply(fit_model, formula='conc ~ days') # (2) run regression on each groups\n", | |
" .sort_values(by='days') # (3) resort the df by the days column\n", | |
" .reset_index(drop=True) # (4) remove the index created in (2)\n", | |
")" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"Simple as that. Let's just look at a random sample of the results:" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 9, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/html": [ | |
"<div>\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>conc</th>\n", | |
" <th>date</th>\n", | |
" <th>era</th>\n", | |
" <th>location</th>\n", | |
" <th>parameter</th>\n", | |
" <th>days</th>\n", | |
" <th>ci_lower</th>\n", | |
" <th>ci_upper</th>\n", | |
" <th>fit</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>117</th>\n", | |
" <td>41.831687</td>\n", | |
" <td>2013-12-07</td>\n", | |
" <td>during</td>\n", | |
" <td>MW-1</td>\n", | |
" <td>TCE</td>\n", | |
" <td>36</td>\n", | |
" <td>34.861013</td>\n", | |
" <td>50.828175</td>\n", | |
" <td>42.844594</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>24</th>\n", | |
" <td>59.635071</td>\n", | |
" <td>2013-11-07</td>\n", | |
" <td>during</td>\n", | |
" <td>MW-2</td>\n", | |
" <td>PCE</td>\n", | |
" <td>6</td>\n", | |
" <td>47.261760</td>\n", | |
" <td>60.362229</td>\n", | |
" <td>53.811995</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>167</th>\n", | |
" <td>53.515980</td>\n", | |
" <td>2014-03-06</td>\n", | |
" <td>post</td>\n", | |
" <td>MW-2</td>\n", | |
" <td>DCE</td>\n", | |
" <td>64</td>\n", | |
" <td>48.946259</td>\n", | |
" <td>59.629942</td>\n", | |
" <td>54.288101</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>149</th>\n", | |
" <td>20.911930</td>\n", | |
" <td>2014-02-18</td>\n", | |
" <td>post</td>\n", | |
" <td>MW-1</td>\n", | |
" <td>PCE</td>\n", | |
" <td>48</td>\n", | |
" <td>10.899320</td>\n", | |
" <td>29.601707</td>\n", | |
" <td>20.250513</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>130</th>\n", | |
" <td>22.732393</td>\n", | |
" <td>2014-02-10</td>\n", | |
" <td>post</td>\n", | |
" <td>MW-2</td>\n", | |
" <td>PCE</td>\n", | |
" <td>40</td>\n", | |
" <td>17.344390</td>\n", | |
" <td>32.106095</td>\n", | |
" <td>24.725243</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>105</th>\n", | |
" <td>30.013194</td>\n", | |
" <td>2014-02-02</td>\n", | |
" <td>post</td>\n", | |
" <td>MW-1</td>\n", | |
" <td>TCE</td>\n", | |
" <td>32</td>\n", | |
" <td>15.035636</td>\n", | |
" <td>45.335307</td>\n", | |
" <td>30.185472</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>11</th>\n", | |
" <td>103.947456</td>\n", | |
" <td>2014-01-01</td>\n", | |
" <td>post</td>\n", | |
" <td>MW-1</td>\n", | |
" <td>DCE</td>\n", | |
" <td>0</td>\n", | |
" <td>99.384631</td>\n", | |
" <td>106.317326</td>\n", | |
" <td>102.850978</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>42</th>\n", | |
" <td>49.855273</td>\n", | |
" <td>2013-11-13</td>\n", | |
" <td>during</td>\n", | |
" <td>MW-2</td>\n", | |
" <td>PCE</td>\n", | |
" <td>12</td>\n", | |
" <td>41.941285</td>\n", | |
" <td>54.713848</td>\n", | |
" <td>48.327566</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>178</th>\n", | |
" <td>25.595095</td>\n", | |
" <td>2014-03-22</td>\n", | |
" <td>post</td>\n", | |
" <td>MW-2</td>\n", | |
" <td>PCE</td>\n", | |
" <td>80</td>\n", | |
" <td>18.754866</td>\n", | |
" <td>33.638002</td>\n", | |
" <td>26.196434</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>15</th>\n", | |
" <td>110.322015</td>\n", | |
" <td>2013-11-01</td>\n", | |
" <td>during</td>\n", | |
" <td>MW-1</td>\n", | |
" <td>TCE</td>\n", | |
" <td>0</td>\n", | |
" <td>105.500336</td>\n", | |
" <td>122.048898</td>\n", | |
" <td>113.774617</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>176</th>\n", | |
" <td>95.198082</td>\n", | |
" <td>2014-03-22</td>\n", | |
" <td>post</td>\n", | |
" <td>MW-1</td>\n", | |
" <td>DCE</td>\n", | |
" <td>80</td>\n", | |
" <td>91.367831</td>\n", | |
" <td>97.889530</td>\n", | |
" <td>94.628680</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>47</th>\n", | |
" <td>90.935180</td>\n", | |
" <td>2013-11-13</td>\n", | |
" <td>during</td>\n", | |
" <td>MW-1</td>\n", | |
" <td>TCE</td>\n", | |
" <td>12</td>\n", | |
" <td>82.347524</td>\n", | |
" <td>97.915028</td>\n", | |
" <td>90.131276</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>79</th>\n", | |
" <td>32.070672</td>\n", | |
" <td>2014-01-25</td>\n", | |
" <td>post</td>\n", | |
" <td>MW-2</td>\n", | |
" <td>PCE</td>\n", | |
" <td>24</td>\n", | |
" <td>16.611020</td>\n", | |
" <td>31.662513</td>\n", | |
" <td>24.136766</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>108</th>\n", | |
" <td>53.484766</td>\n", | |
" <td>2013-12-04</td>\n", | |
" <td>during</td>\n", | |
" <td>MW-1</td>\n", | |
" <td>TCE</td>\n", | |
" <td>33</td>\n", | |
" <td>40.883628</td>\n", | |
" <td>56.627231</td>\n", | |
" <td>48.755429</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>31</th>\n", | |
" <td>34.525139</td>\n", | |
" <td>2014-01-09</td>\n", | |
" <td>post</td>\n", | |
" <td>MW-2</td>\n", | |
" <td>TCE</td>\n", | |
" <td>8</td>\n", | |
" <td>22.308093</td>\n", | |
" <td>46.393046</td>\n", | |
" <td>34.350570</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" conc date era location parameter days ci_lower \\\n", | |
"117 41.831687 2013-12-07 during MW-1 TCE 36 34.861013 \n", | |
"24 59.635071 2013-11-07 during MW-2 PCE 6 47.261760 \n", | |
"167 53.515980 2014-03-06 post MW-2 DCE 64 48.946259 \n", | |
"149 20.911930 2014-02-18 post MW-1 PCE 48 10.899320 \n", | |
"130 22.732393 2014-02-10 post MW-2 PCE 40 17.344390 \n", | |
"105 30.013194 2014-02-02 post MW-1 TCE 32 15.035636 \n", | |
"11 103.947456 2014-01-01 post MW-1 DCE 0 99.384631 \n", | |
"42 49.855273 2013-11-13 during MW-2 PCE 12 41.941285 \n", | |
"178 25.595095 2014-03-22 post MW-2 PCE 80 18.754866 \n", | |
"15 110.322015 2013-11-01 during MW-1 TCE 0 105.500336 \n", | |
"176 95.198082 2014-03-22 post MW-1 DCE 80 91.367831 \n", | |
"47 90.935180 2013-11-13 during MW-1 TCE 12 82.347524 \n", | |
"79 32.070672 2014-01-25 post MW-2 PCE 24 16.611020 \n", | |
"108 53.484766 2013-12-04 during MW-1 TCE 33 40.883628 \n", | |
"31 34.525139 2014-01-09 post MW-2 TCE 8 22.308093 \n", | |
"\n", | |
" ci_upper fit \n", | |
"117 50.828175 42.844594 \n", | |
"24 60.362229 53.811995 \n", | |
"167 59.629942 54.288101 \n", | |
"149 29.601707 20.250513 \n", | |
"130 32.106095 24.725243 \n", | |
"105 45.335307 30.185472 \n", | |
"11 106.317326 102.850978 \n", | |
"42 54.713848 48.327566 \n", | |
"178 33.638002 26.196434 \n", | |
"15 122.048898 113.774617 \n", | |
"176 97.889530 94.628680 \n", | |
"47 97.915028 90.131276 \n", | |
"79 31.662513 24.136766 \n", | |
"108 56.627231 48.755429 \n", | |
"31 46.393046 34.350570 " | |
] | |
}, | |
"execution_count": 9, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"modeled.sample(15)" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"## Visualizing the results\n", | |
"\n", | |
"In the same way that pandas let's us write one function and then apply it to each subset us of the data, the `seaborn` package facilitates the same strategy for visualizing data. In the top of the notebook, I defined a function that plots concentration vs time, the best-fit line, and the CIs around that line. \n", | |
"\n", | |
"We can now tell searborn that the function should be used, but the data should be subsetting by parameter, location, and era. In this case, each unique parameter/location combination gets its own set of axes in a grid of charts (parameters in rows, locations in columns). Each era will be distinquished by the colors used to plot them." | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 12, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"image/png": "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\ngJPQbMCN0Kiw+UfAc4FrjDHHAm3ArcaYc6y1twMXAduOdAFr7RZgS/U+Y8xGwsmGRERE5kT3GRGZ\nq6ZEmpjrhuMqZyDVvbayTAdA66ZTOP6Kt00Kfc0nbqT7vHMZ3bWbwaqwmV6/nlazifS6dTVhM9Xd\nTay5iQ2XX8Zu16XQ10+8q4NjL3k9frHAsZe8niAIKPT3k+jqYsObLgPX5bi3XI7juOT6+0h2dbHh\nrW/GTaWifokujgs4LjhwwnvexTPf/Bb5g70ku9dw/LveSaKllROvupJnvvp1cgcPkuzuZuP730uy\nvZ1Nf/4hnrj+38kd6CG1di3P+uBVJNraMB/7CI9f+8VJs91u+uiHp97/kT+bcr80ljPTX/56MMbE\ngf8ATiDsmv0xoA/4EhAHHgGutNbOqHHlNwG33XYbGzZsqGubRURkyZi3vlK6z4jITPUMH2Qkn+Gk\nro3TfkxheJjHr/0i2T17iLe1hRP4tLRQyo6y+6bvk+/vI9m5mg1veTOxtmaKmVF2f/u/yPX2kVyz\nmuPe8TYSrW0URjPs+vq3yB3sJdm9mhPe/S4S7W3hsiyeh+t5AOG241SWa5GjUp/caWpI2JwvehMg\nIiIobIrIIpLNj/HM0B7M6pMa3RSpH4XNadLHFyIiIiIi8ySdSOE5esstK5N+80VERERE5tGqlBZZ\nkJVJYVNEREREZB6tbu5sdBNEGkJhU0REREREROpOYVNERERERETqTmFTRERERERE6k5hU0RERERE\nROpOYVNERERERETqTmFTRERERERE6k5hU0REREREROpOYVNERERERETqTmFTRERERERE6k5hU0RE\nREREROpOYVNERERERETqLtboBpQZYxzgX4EzgDHg/dbaJxrbKhEREREREZmNxVTZvBRIWmtfCvwl\n8M8Nbo+IiIiIiIjM0mIKmy8HfgJgrb0beEFjmyMiIiIiIiKztWi60QJtwGDVdtEY41pr/RlcwwPY\nv39/XRsmIiJLx/nnn78R2G2tLc7D5XWfERFZ4eb5PrOsLKawOQS0Vm0fMWgaY7YAn5rq2Dve8Y76\ntkxERJaSJ4ETgafmchHdZ0RE5DDqcp9ZCRZT2LwTeB1wozHmbODBI51srd0CbKneZ4xJAi8E9gGl\nWbaj/MuzVKi9828pthmWZruXWpvV3vk32zbvnusT6z4DLK22lqnNC2eptXuptReWXptXUnvnfJ9Z\nCZwgCBrdBqBmNtrTo13vtdbubEA7Amuts9DPO1tq7/xbim2GpdnupdZmtXf+LcU2H81Sek1Lqa1l\navPCWWrtXmrthaXXZrVXJlo0lU1rbQBc3eh2iIiIiIiIyNwtptloRUREREREZJlQ2BQREREREZG6\nU9ic7K8b3YAZUnvn31JsMyzNdi+1Nqu9828ptvloltJrWkptLVObF85Sa/dSay8svTarvVJj0UwQ\nJCIiIiIiIsuHKpsiIiIiIiJSdwqbIiIiIiIiUncKmyIiIiIiIlJ3CpsiIiIiIiJSdwqbIiIiIiIi\nUncKmyIiIiIiIlJ3CpsiIiIiIiJSd7FGN0BkMTHGXAkMWWu/PY/PcQ7wQ+DRaFcKeAh4r7U2E53z\n58AfAgHgA/9YbpMx5ilgBMgDTnTOfdba9014nk8BT1prvzph/5PAOdbaZ+r0el4HnGyt/Zwx5gNA\nYK39Yj2ufZTnPQf4GfCX1tp/qNp/KfBd4FzgncDD1tp/iY79MfB5YL21dl+071fRNW4/zPPcAGyb\n+HMUEZkN3Wdm9XqW5X3GGHMJsCXafJLw72dwPl+TyEJT2BSp9VLCG8t8+6219lXlDWPMN4C/AT5i\njPk0cAbwCmvtiDFmPXC7MeagtXYb4ZuCi6y1u2b53MFcGz/BWeVrWmv/rc7XPpo9wOXAP1Ttewtw\nIPr+tuj4v0TbrwZuAS4EbjDGpAAD3DnxwsaYdcC/Aa8Cts1H40VkRdJ9ZuaW3X3GGNMK/CtwlrV2\nvzHmr4G/Bv5snl6HSEMobEpDRJ8W/jVQAI4D7gbeb60tGGP+nvANfgfQC7zRWnvAGHMQ+B2wFngR\n4X/Sz462LfBG4Bjg+8ATwHOj838OvAdYBVxmrbXGmBcAnwXS0XN8EDgJeANwnjFmH7CdMGxsILzx\n/qW1dlv0Se7ZUbu/YK29rup1/QTonvByP3y4qlmVO4CLjTHNwJ8Cm621IwDW2j3GmLcCo9G5DnPr\nAu9EbXWAzwHnR6/v69ba/xsd+wfgUsK/ny9aaz8f/Z39HeHPrAP4GPB7wp9dYIx5GthI+Inz30Sf\nRP9t9HxPAB+w1h6MPvH+GuGNuAl4l7X2vuoGzuDn+BjQZow5wVr7tDEmTfj3+Pvo+Dbgn6JrxoFT\ngWuAPwJuIPx7/LW1tjjFz+kdhL9LvUf4WYrIIqX7zCS6z1RZBPeZOHC1tXZ/tP0AcMXhf6QiS5PC\npjTSC4EzrLWPGWO+A1xjjPlvYJO19iUAxpivEL7p/yzQBXzaWnuHMeYVQM5a+7LoZrYNeC1wL3A6\n8G5r7QPGmEcJu/i81BjzV8BVxpiPA18CXmet3W2MeTVwvbX2AmPMD4CfWWv/xxjzLeDL1tofGmOO\nAX5pjDkjanvSWvuciS/IWvuamf4Qohv/ZdFr2EzYvarm02Rr7T0THvYjY0x196Z/sdZ+ZYZP/UFg\ng7X2OdHN8+fGmAeBZuAlhG+wksAdxpj/JLx5vs9au9MYcx7wOWvtGcaY6whv/F+J3iBhjFkDXAe8\nxFq7yxjzUeALwFuj5z5orX1x1N3oE8CbJ7zemfwc/yt6/GeAiwm7jp0XXeegMabPGHMCcCLwK+AX\nwJejx74SuHWqi1prPxO9llfMoC0isrjoPoPuMyzC+4y1th/4QfRa0sDHGa+OiiwbCpvSSL+w1j4W\nff814MpoPMZHozEthvATwceqHvMbgOiNQJ8x5n8R3jhPBlqic/ZZax+Ivt9N2MUF4GngHGAT4aeS\nP4jeQFD12Gp/ABhjzN9G2170OAg/IZ8k+qR0bdWugKk/KX2hMeZewpt4LGrjZwlvvA5HV4/uTa8i\n/NQVa2026mL1B0AC+E70KWwROBPAGPOHwOuMMW8h/HuZ6mdW9iLg7qo2fpHwRlp2S/T1IcI3QDVm\n8HMMgO8A3yB8E/BW4JPRayvbBrwceA5wq7V2zBjzSPSG7hXAh47wOkRkadN9RveZRX2fMca0A98j\nHBP79cO/XJGlSWFTGqm6S4kLFI0xZwLfIuyS8l9AiaqborU2B2CMeQNh96jPAv8OrK46L3+E54Hw\nZv64tbZ8c3OoveFUt+lV1tqB6Lx1QA/hTSs71QuawSelNWNpyowxjwBNxpgN1trdVfvfCnRba/9f\ntGs6bxSOZmIXKYfwZ1Pz84s+rT0I3E74ZuXn0ddvHOXazoTt6v9vxqKvAVO8lpl84mytfcIYEzPG\nnEo4IcNOY0z1KdsIu1K9mPD3BcJPmV9O+In7I9Hf7Y+j9uy11r5uus8vIoua7jMT6D4TWgz3mWjf\nT4CfWms/Mt32iCwlWvpEGunlxph1xhgXeBdwM+Enwj+z4SxzOwgH2ntTPPZ84Ns2nAHvAGE3lfJ5\nR7tB7gA6jTEvj7bfD3wz+r7I+M1qG2GXHowxpxGOp0jP6BXOkLV2jLAb0LUmnDwAY8xG4NOMjw+Z\nq/LPZxvwbmOMa4xpIuxG9jPCcT1vjG6sTYQ3wmcTfqr/V9banxDeVMs/7+qfWdndwIuNMcdH21cx\nv5Ps3ETYZW3rFMduJ/y9cqy15Qkdfgp8APg1gLV2n7X2+dbaMxU0RZYV3Wcm0H1m1up6n4l+J39I\n+DumoCnLliqb0kj7gK8C6wk/AfwSsA74rjHmfsJJA7YTjoGA2tntrge+aYx5M5Aj/M98qvMmzYhn\nrc1HXXT+xRiTBIYI34RAeHP4e2PMAPAnwPXGmO3RsXdYazMTPs2cD58EPgXcFY2XKQEfs9aWu2kF\nwI+jYxDe1DPW2pdPvtSUyj+TfyPs6rWd8P+Cr1lrtwIYY84iHJfkAJ+11v7WGPMl4PfGmEHCn3dT\nNM7kF4Qz7vUwPlvgAWPMVcD3TThhwtPA+yY8fz19B/h7wjcyNc9hrR0yxowQvhko77s/Gu9zC0c3\nH+0VkYWh+8zUdJ+ZuXrfZ95AOCOwE/2OBcDvrLVXzUPbRRrGCQK9j5KFZ8IZ5z41VRcfqQ9zmPXP\nRERWAt1n5p/uMyJyNAte2TTGxICvEE5dXQSuJPxE7QbCabEfstZes9DtElmG9EmSiIjMJ91nROSI\nFryyGQ24v8Ja+zZjzB8QTosdBz4Tzfx2LfCTcjcLERERERERWXoaMUHQTiAWzczWTjhe4kxr7R3R\n8ZsJp8UWERERERGRJaoREwSNEA6w30G4ePLrCdcgKhsmDKEzFnXR3QDsjtZuEhERqRvdZ0RERKav\nEWHzw4TdZD9pjFlPuJZSoup4KzBwtIsYY7YQzqQ2yW233TbVbhERWRnqsT6g7jMiInI4dbnPrASN\nCJv9hF1nIQyVMeA+Y8w51trbgYuYxjpJ1totwJbqfdE6UU/Wsa0iIrJC6T4jIiIyN40Im58D/t0Y\n8wvCiYE+DtwDfClaJ+kR4MYGtEtERERERETqZMHDprU2A7x1ikPnLnBTREREREREZJ40YjZaERER\nERERWeYUNkVERERERKTuFDZFRERERESk7hQ2RUREREREpO4UNkVERERERKTuFDZFRERERESk7hQ2\nRUREREREpO4WfJ1NERERCZX8gB1P9RGPucQ8F9d18DwXz4m+ug4xzyER94jHPGKeg+M4jW62iIjI\ntChsioiINJDrOriOi++D7wcUi6Wa40EQ4PsBfhCA4+A64HkOMdfF9Rw8x8XzHLwoqMZjLokovHqe\nOjCJiEjjKGyKiIgsYo7jhGGyemcAxVIApQDwa873/TCc4oyH05jn4bqMV03LFVTPIe65JBMerhtW\nUkVEROpFYVNERGQZcV0Hd0JoDAMoU1dNg/C4E4XTmOviuuPX8RyXmBd9H3OJuy6J+Hi3X3XrnX+D\nmTzX3bSdnv5R1nY2cfXlZ9DWnGh0s0REjqohYdMY827gPUAApIEzgFcAnyP8iPYha+01jWibiIjI\nSuE4Dp7DpIpmuUtveJueunIaOOAATtSt14sqo5WqaTmsug7xuEci5qp6OkvX3bSdX27fC8CjuwYA\n+It3vbCRTRIRmZaGhE1r7VeArwAYY74AfBn4K+AT1to7jDHXGmMusdZubUT7REREZGpTVU4JoFQK\nKJWCaMd4BbVSPQ0CHMLqqReNU/XcMKiG41ZrQ2o8Gn+qCir09I8ecVtEZLFqaDdaY8wLgNOstX9s\njNlirb0jOnQzcAGgsCkiIrKEVaqn1IbFIAgolqKxp1Mo+QFBVQU17NLr4ETVUtdzcAnHs5Zn6fVc\nh3jMJR7zKqF1OYTUtZ1NlYpmeVtEZClo9JjNvwS2TLF/GGhf2KaIiIjIYuG5DkyooAZAUJ4AqTj5\nMTVjUN3wAU7UTTjs0uviuOA5bqWLrxsF17gbjk2NxbzKscXi6svPAKgZsykishQ0LGwaY9qBTdba\nX0S7qgeFtAIDkx9V8/gtwKfmp3UiIrLSLeb7TCZb4MZtO+kbGqOzLcWbz99Ecyre6GY13OHGoEJ5\nHGr5rYY/xfFweRmfIBqLGs7kWw6pruOEEydFS804lWVoovVQoyVnwvPqW1Fta05ojKaILEmNrGy+\nEritavs+Y8wro/B5EbDtSA+21m5hQlXUGLMReLKurRQRkRVpMd9nbty2k/sf7QVgV88IDvDui5/d\n2EYtca4bdsudpDwelXJ33ymCahB2+fUDoGripMpY1HKX3qgrcHncq+tQ2RfzXGIxNwy2i6yyKiIy\nW40MmwZ4omr7o8D1xpg48AhwY0NaJSIissj1DY0dcVsWlus4MHEt1EhQsybq1MrdfwM/ICAIA6sT\nBdVonGq5yloOsNXdg50owMbcaO3UmFt5/KTJnEREFlDDwqa19jMTth8Fzm1Ma0RERJaOzrYUu3pG\nKttdbakGtkbmqtz9d+IYVagapwpHDKwwucJKdMnqLsHlEOq41FZdHacyEVN1cC3PBqzgKiKz0egJ\ngkRERGSG3nz+JhzCimZXW4o3nb+p0U2SReBIFVYIx61CdZfgw/P9oFJxDYNrUBtInfFxq05lPGtt\npbV8rHxeLBrf6lUtZ1M+R0SWJ4VNERGRJaY5FdcYTZlXYRXz8ME1CKLuv+HWUa8XBAFBtN5qEISP\nCTNm2CXYiboMh12Ix4MrDmFX4iiQjldioyDrOrgQjnX1HGKug+u6VSFYQVakkRQ2RURERGReOdE4\n0yknYYpEGTQMpRx5nGvN46IAWwm0ToAThdg1q9J0tafr8yJEZMYUNkVERERkySoHWY4QZEWkMRQ2\nRUREGmAwk+faG7fz9P5ButrTWitTZJ4N5zK4jkNzoqnRTRFZMRQ2RUREGuC6m7Zz5wN7Adh9IKO1\nMkXmWxBwKDeksCmygBQ2RUREGmDPgZGa7UeePsQNP3qYdDJOUzJGOhkjnQq/Nk38PhnD89wGtXxl\nymQL3LhtJ31DY3S2pVSJXqJG81l838d19e9HZCEobIqIiDTAmo40T+4bqmzn8iW2P9o77ccn4i5N\nyXhNCE0dJpimU7Hw3Oj7RMzVchMzdOO2ndwf/f3s6hlRJXqJch2HQ9lBupo7Gt0UkRVBYVNERKQB\n/vRtZ/Kv0ZjN1e1pLj33ZFwcsrkio7ki2bEC2VyJ0VyBbK4Y7h8rTvp+YDjH/t7MNBafGOe5znjl\nNBGjKQqn6WT4fRha41NXVxOxFbmcRN/Q2BG3ZalwGM6PKGyKLBCFTRERkQZoa07wv//wBex8pp+4\nN76aYWtzYsbX8oOA3IRgerhwWrtdoH9ojNI0l5goSyW8mnAafh+vCa3jFdXa6mo8tjS7L3a2pdjV\nM971uast1cDWyFzkSwVG81maEloSRWS+KWyKiIgsca7jhFXH1Oxu6/liiWwURsOqanFChXXq0No3\nNMbe3tKMnivmOaSjqunEiupU36fLVdZUjGTCw21Q9983n78Jh7Ci2dWW4k3nb2pIO2TuYq7HwNig\nwqbIAmhI2DTGfBx4AxAH/hX4BXAD4AMPWWuvaUS7REREVqJEzCPR4tHekpzxY0t+wFg5mEbhdPz7\nyQG2vJ0ZK9A7MIo/g6Kq40A6EXXznUY4nThuNTaHSZWaU3GN0VxGMgVNFCSyEBY8bBpjzgFeYq19\nqTGmGfgo8M/AJ6y1dxhjrjXGXGKt3brQbRMREZGZ8VyH5nSc5vTMZ2YNgoB8wR/v/nu46mqlqjpe\nZT1waJR8wZ/R87kOOI5DPObS3dlESzpOUypeFVIP3/03EdekSsuJiyYKElkIjahsXgg8ZIz5PtAK\nfAx4v7X2juj4zcAFgMKmiIjIMuY4DsmERzLh0dF69POrlx/ZuK6Ny849GddxKkF1ckV1PJw+vnuQ\nkWwBgoBSvsQz+4dn1FY3mlSpKXn0canppEc6Fa85dyVOqrSYOY7DcD6jsCkyzxoRNlcDxwOvA54F\n/ACo7sMwDLQ3oF0iIiLL3lJeL/Jwy4+0Nh19UqV//tY9YdiMbOhu5n9d/rwJwbRENgqoh5tcaXQs\nnAG4UJphVdV1cIB4zOWYrmZam6oqqqn4+LI1U8wAHPdUVa23TH6U7z1yCyP5UY5pXcOVZ72d1mRL\no5slsuw0Imz2AY9Ya4vATmPMGLCh6ngrMHC0ixhjtgCfmpcWiojIirdc7zNzXS9yLmF1rkF3LsuP\nTJxNdnV7uhL2ZqNQDLv/jkUBdDRXrHw/ccbfJ/cOVYJuKV/iqar1VafD85yaKml119+pJlcqB9em\nZJxksnGTKi0mQRAwWshWtrfuuJWHDlgAnhrYhQN8+KVXNqh1IstXI8LmL4EPAZ81xhwLNAO3GWPO\nsdbeDlwEbDvaRay1W4At1fuMMRuBJ+vcXhERWYGW631mrutFziWszjXozmX5kXrPJhuPubTHkrQ3\nH31Spamqqh984xmHGaNaOExoDb/2Do7hz2BWJQdIHSGY1kyqNLH77xwnVVpMfrXrd3zhrhu46gXv\n4IRV6+kbra1r9GT6GtQykeVtwcOmtfZHxphXGGN+Q/h/4NXAU8CXjDFx4BHgxoVul4iIyEow1/Ui\n5xJW5xp05xIYGzmb7FRV1eZUfFbdl4MgIF/0a7v/HmVipfK+gwMzn1QpHnMr3XnTh6muHq77bzLu\nLZruv53pVZQCnzuf+R0nrFpPZ9Mq9gzvrxxf29zVwNaJLF8NWfrEWvvxKXafu9DtEBERWWnmWuGb\nS1ida9BdqsuP1LOq6jgOybhHMu6xqvXoVdXqrssnrGvlsnNPxnOcIy5PMx5UC5Wq6lAmT0//KMEM\nlqpxHaomUpoQTqdYmqZpwrleHSdV2rz6ZNa3HsNDByxfue9GDmUHaUu20hxvYk1zJ+8/6+11ey4R\nGdeQsCkiIiKNMdfANpfgVO+urEtFI0Py4bout0xjUqWJgiAgly9NHVSPMrHSYF+GQnFmVdVk3KsN\noYcNpl7UDXj8WL5Q4qafPcrASI4N3a1cffkZnHfiS/j6A9/jkd7HKs+xcdV63vKc1+E53ox/PQe+\nTQAAIABJREFUHiJydAqbIiIiMm1zCU5LtTK5lM2l6/LhJnRKzWFSpfGuvYUJa6ge7vsC/UNjjOVL\nM3ouBygXYZ/aFy5z897LzuQbD3yfgPHybN/oADHX49DYIE2J9Kxel4gcnsKmiIiIyDI1l67L8zFz\ncVtzgrbmo1dVxx8Lxx/TyuXnnYLn1nb/nWoG4HJAfWLvYM341J7+UdLxFB3pdvqz45MDdTWtAmC0\nkMX3fVx3eUyIJLJYKGyKiIiILFNz6bq8GGcubprmpEo3/OhhtkePx8sz0n03f3v7L1mVaKU/O0DS\nS2BWP4tLNl8IgItDf3aQ1c0dM3qNInJkCpsiIiIiy9Rcui4vh5mLB0Zy5I79HQPekwxEBc3meJpM\nIcsFJ72S5qjrrOM4jORHFDZF6kx9BURERERkkjefv4nnnbKa49a28LxTVs9q5uJqM525eLaPhfGQ\nveXKl9C5pnZiooQXduO9a/e9NfvzpSKZ/OiMnkdEjkyVTRERERGZZLnMXNzd3MUT/U9Xtte3HUPR\nL3LP3ge58ORXVsJnzHUZyA7SnGia9XOJSC2FTRERkQYpryJYLPnRDJkOAQFu4OA44LgODmEXP5Gl\nZrHMXHzlWW/HAfYNH6A10cKlp17Inc/8lm1P/or79z3CizacUTk3o4mCROpKYVNERKRBXNfh1I1d\nBEFAEIAfBARBQMkP//ilgKLv4wcBBOE6h375qx/g+xAQRNvl4+G1ytcr+T7g4BDgw3iQdRxcVyFW\nlr/WZAsffumVDI+N0JPpxXUcXrzhefz8qV/z69338ML1p1c+0PEcl77sAGuaOxvcapHlQWFTRESk\nwRwnDIBuVOuc3nyb0+f7QSWo+r5PsTrI+mFwLZ9XKn9fFXyDYPwaAVAq+QQTA6zr4DqqwsrS0J5q\n49Q1p/DwgZ3sGtzL8avWA+Hv73B+RGFTpE4UNkVERJa5sILp4IVbJOtwzUp1NYCS71Ms+mFFNggI\nyuHWrwqrlfPHq7DV+ykHV5yw6qrgKvPsJRvO5OEDO/n17nsrYROgVCoxksvQkmxuYOtElgeFTRER\nEZkxx3HwvDDAxnEhMftrjVddg0pwLZb8quA6HkpLlcAaRNXWqLtwVG0NL0gYVl0HV4FVIjE3hh/4\nuE74sctJnSewpqmTB/bv4OJN59MSTQzkuS4DY0MKmyJ10LCwaYy5BxiMNp8EPg3cAPjAQ9baaxrU\nNBEREVlAjuPgOeC5zpyCq18VRAulqNoaBVZ/QkgNA2o0BjaqyE6ssLoKq8tKOpEi4SXwgxIQ/t6d\nfdyZ/Lf9Kb/b8wDnnnh25dzRQpZCqUjcU11GZC4a8i/IGJMEsNa+qmrfVuAT1to7jDHXGmMusdZu\nbUT7REREZOlxXScc9+pBIu7N+PHVFdZisUSxFFDw/ZqwWiwGBFRVWaNqbLlLcdhhOQqqmoBp0WlP\ntdI3eqjyIcKZ657DTx69nbt338crN74I1wlnoY25HoeyA3S3rG5kc0WWvEZ9XHMG0GyMuQXwgE8C\nZ1pr74iO3wxcAChsioiIyIKoqbDGZr70RSWQlnwKUVdg3x8PpqVSGFTDimptt2CCgAAHlzA0a7zq\n/FiVaqNv9FBlOx1P8fx1p/GbPdv54u++SaFUpLNpFZduvpAAWBN06e9CZA4aFTZHgX+01n7ZGHMK\nYbis/pc8DLQ3pGUiIiIis1CurMY8l9QMuwKHVVKffNEPq6r+ePffUk0VtfZrEITrs7qaDXhaHMeh\nNdlMJj9a2Xf2cWfymz3beWpgNwB7hvfjAG99zhsYzo3QlmptUGtFlr5Ghc2dwGMA1tpHjTF9wJlV\nx1uBgSNdwBizBfjUfDVQRERWNt1nZCF5roPnesRj4ZRL01Ge8bdcSS1UVVKLpah7bxAuc1OeFbi8\nLwC8KKSutIDale5gcGyYmBt2tT62dS0JN07eL1TO6RsdiCYKGlbYFJmDRoXNPwKeC1xjjDkWaANu\nNcacY629HbgI2HakC1hrtwBbqvcZYzYSTjYkIiIyJ7rPyGJXmRHYc0nOoJJaXUUtFEqUSuPV04kB\nNdwm7OYbOHjLYCxqzIvRnGgiV8xV9nW3rGb30L7KdlfTKgDGijlyxRzJWD0WDBJZeRoVNr8M/Icx\n5g7C2WffA/QBXzLGxIFHgBsb1DYRmYbBTJ7rbtpOT/8oazubuPryM2hrnsPaByIisiBqqqipo1dR\nqyuo+XIFNaqilqL9YYAdX77GL3fvXaRrpnalV/HM4D5yxTG27riVQrGAE43oenb3KVyy+UIAYq7L\noewgx7R2N7K5IktWQ8KmtbYAvHOKQ+cucFNEZJauu2k7v9y+F4BHd4W93v/iXS9sZJNERGQezKaC\nWqmeFkrki1EwjUJpOaCWw2nR9yEIIFi4WXxT8RQpL8F3HvoBD/TsqDl26ppTaE6kK9sj+VGCIFh0\ngVlkKdDiQSIyKz39o0fcFhGRlau6eto8jfNLJX9S5bQ8g2/J9yd09Q1n73WduY05bUu30jc6eYqQ\nu3bdy1nHPrdm38DYEB1pzV0pMlMKmyIyK2s7myoVzfK2iIjIbHieO+3KaRCEEyAViiXyhdJ4CI0C\narlqWvJ9nCNUSduTrXQ2rWLP8P7KvtZEC7uG9rF7cB8b2tcB4DoOQ2PDCpsis6CwKSKzcvXlZwDU\njNkUERGZb47jEI+Fa6E2TWPM6ZGu887T38jXt3+X/uwAXU2reHa34VsPbuWu3ffxpihsAuRKBcYK\nY6TiqXq8BJEVQ2FTRGalrTlx1DGaR5tUIhn36GxPH/EaIiIi8+X4Vcfy1ue+vrIMih8E3PrY7dy/\n//e8dtN5NMXTZPKjbN1xKwPZIY5tP4Yrz3o7rcmWBrdcZGlQ2BSRaTncem7lrkuHW3g8AJyAKSd9\n8P2gMS9GREQE8FyPlkQTY9EyKK7j8OINz+fHj/6Me/Y+yCtOeBFbd9xamUTomaG9OMCHX3plA1st\nsnQobIqsQEEwPhtgoeBT8GsrjkcLjo4brrV2JK7j4HqauU9ERBa3zmgZlJjrAnDWsadz6+N3cNeu\n+3jZ8S+cNIlQT6avEc0UWZIUNkWWsCmrjRMW5y4HSz9aA616gW6H6U0zvxDBMQgChnIjtKda5/V5\nREREqpWXQSkGRQCaE2nOOOZU7tn7II/1PTlpEqG1zV2NaqrIkqOwKbII+H6AH4yHxmIpnOa9UlUM\nqquOEPgBpWC82ki5m+o0Fs72XBdvQV7VzO0b7qE10YwbfbosIiKyENrSrfRm+nCd8P7zkg1ncs/e\nB/n17nt502kX4wB9owN0pNt5+3MvaWxjRZYQhU2ROilXEEvVgdEPaiqLtV/Lj5l5pRGWZzdVB4f9\nmV6Obe1udFNkAQVBgF8s4sVnP6ukiMhctCdb6Rs9VJkMqG90gFQsySMHH+OLv/sm3S1d/NGZb6U5\nkaZQKjW6uSJLhsKmSKTcJdUPAopFn0IprDSW91e6ogbhItN+MEVgZHxM43SqjLC4K42NkMllyKay\npOOapXYlKIyMkOs5QKylBW+tPmQQkcZwHIe2RCvfeuD7lcmAynoyB+nJHMQBrjj9UrKFLIVigXhM\nH5CJHI3Cpiwb40HQp+gHFIsliqVyQKwNk351hbHcHTXqj+oDHk4UGKdXOVRgrB/Pddk/0svGVRum\nFdZlaSoVCuR6eiiOjuK6HujvWkQarCPdNmkyoGrlYzHPoz87wNrWNQvVNJElq2Fh0xjTDfwO+AOg\nBNwA+MBD1tprGtUuWXhBEIZBP5rQpjipCypRGKwNiuFjovMIz3EcZ0bjFyHsunm0mVVlYZX8Ioey\nA3Q2dTS6KVJnQRCQ7+sj33cIx3PDoCkisgjEvBirmztrJgOq1tW0qvL9cD7DmqCrMsZTRKbWkLBp\njIkB1wGj0a5/Bj5hrb3DGHOtMeYSa+3WRrRNpq8SBqNKYqkUdSctBQSMB8hyNbFmVtQoNIITfQ0r\nim7gzKgLKtVBUf/fLxuu49KfHaQ12UrcUweM5aKQyZDr6SEolnA8/YMVkcXnqrOu4Nrffo1D2UHa\nky3kSwUeO/Q0TfE0l2y+sObcwbFhOtLtDWqpyNLQqHdxnwGuBf4ScIAzrbV3RMduBi4AFDbrqLp6\nWK4GlkoBRd8Pg2DUjdQPqsMhNVXEIKg9JyAgnAo1Cocz6HYaPiY8d7lNciP14ToOB0YOsr59XaOb\nInPkF4uM7d9PMTOK63k4mm1YRBapNS1dvPt5b6IUjE8C9O/3foedfU8wmBuiORHOJ+A6jsKmyDQs\neNg0xrwHOGCt/R9jzCei3dXvPIaBFfsvtxwKg6gSWCz6lfUSS/74/uoxiOVupESVw6D8eB98ascj\nBkHYbdSZcTgctxxnQZXFabQ4xkguQ0uyudFNkVkIgoBcbx+F/qjLrKcusyKy+LWn2ugdHV8G5ezj\nns/Ovie4a9d9vPG011TOy5fyjOazNCU0oZ3I4TSisvlewDfGXACcAXwVqB5h3QocfnR2xBizBfjU\nfDTwSCaFwVK5Ukg0I2lY7SuPNYTJgbA8g+nkaqEPOAQTQ6Ezk26ltTQeUZYyz3E5kOmlKZHWuJgl\npjAyQu7AQYJi8YhdZouZDLtv+h6FwUHS69dz0tVXEW9tXcCWHl6j7jMi0ljtqVZ6s/2V7c2rT2JV\nqo379j3Ma085l1Q8BUDM9TiUHVDYFDmCaYVNY8x5wN9Za19mjDGEXV3faa391Uyf0Fp7TtV1twEf\nBP7RGPNKa+0vgIuAbdO4zhZgy4R2bgSenGmbjuTpfUPki6VKIAxDYLlSOB4GHYdZVQnLwmqhPvWX\nlWl4bIQv3fMtnhncQ2dTB5duvrDSVSkIAg5m+ljboln/loJSoUBu/36K2Syue/Qus7tv+h6D2x8A\nYPSppwHY/LGPzHs7p2Oh7jMisrg4jkNroplMPpxaxHVczt7wfH7y2O3cs+8hXnb8CyrnZgpZiqUi\nMc0vIDKl6ZYK/gn4AIC11gKvBf6lju34KPA3xpg7gThwYx2vPSclP8CJxhfGXJe45xLzPOIxj3jM\nJea5eLPsjiqykpWiNUwBvnTvt/j17nvZM9zDgz072Lrjlsp5juMwNDbMWCHXqKbKNARBwFjPATJP\nPoWfy097ltl8f3/N9tiBnvlonojIjHSmOyj64+M2X7D+DDzH467d91XuXVCubg42ookiS8J0P4ZJ\nWWsfKm9Ya3cYY+a8kq219lVVm+fO9XoisjBKfsBYrkg2Xwy/5oqM5UqV7bF8iWx5f75INleK9o9/\nXyj5vOi0tfx/7zubnkxfzfUnrnPmuR49Iwc5oWPDQr5MmabC4CBjB3shCHBnOPlPorOT7K7dle1U\n99p6N09EZMbiXoymeJp8KQ9AS6KJ04/ZzH37HubxQ09zcufGyrmD+WFWB51aG1pkCtMNmzuMMf8A\nfC3afhuwc36aJCLzaWJQrA6J2XxtKAxDZFVIjM7LF/0ZP2/Mc0glY6QTMdqa4wyO5Hl89yD/8NXf\n0nZ87Ri96rXMygp+gf7sAJ3pycekMUrZLGM9B/HzubC77CzeaG24/DKAmjGbIiKLwap0O3uHeohF\nH6I9b+1p3LfvYb6+/Xuc0nXi+JCPIGAwN8yqVFuDWyyy+Ew3bL4P+DvgW0AB+AVw5Xw1Shonky1w\n47ad9A2N0dmW4s3nb6I5NecittSJ7wdR4KsOiBMrh+Hx8vfZqNJYPjdfmHlQ9NxyUPRoa24inYyR\nSsRIJz1SiVh4LDlhO+FVwmUqGSMeG694feVHD7PnYIaRbIFfbt/LWWzCST6M4zhsXv2sSWuZQbT2\n5ugArYkWrb3ZYEGpxFhPD8WREZxpjMs8klhzMxvf9U5ibW2kujUuV0QWj5ZEEwkvhh+E983f7Q3H\nl48VczzYswMHuOL0S3Edl6GswqbIVKb1js1aewi4Zp7bIovAjdt2cv+jvQDs6hnBAd598bMb26hl\nwg8CcpNCYm0wPFJX1LFciVyhdPQnmsB1nUrwW9PUNCkgphJeFBRj0X6PdCLaTobbcc+ta/egvqGx\nmu2h/gTveM1lfH37d0l4icrkQJNei9bebKggCMj395Pv68dxXZxpjssUEVmq2pItHMoO4jgO/RPG\nZlYP+Rgr5RkrjFVmqhWR0HRno30P8BmgI9rlAIG1Vu80lpmJIWDi9krlBwH5cvibUFksfz/e5bRU\nExDLx3L5WQRFhzDwJWKsXpWoBMOJQbE6JFaORdvxWH2DYj10tqXY1TNS2V7b2cTFp7ycnz/5K+7f\n/3tOX3sqp3WfMuVjM4UxhnIjtCVbFqq5AhSGh8kd7A2XMplDJVNEZClZlW6nLzuAh0Nn0yr2DO+v\nHOtMjy8LH3Nd+rIDrI8f04hmiixa0+2L9lfAudWTBMnyNDEEdLUtzCd089l9NwgCcoVSGPwOM1ax\nekzipK6nUVAMjv5UNRyHMAQmPLraUuOVwqqAWB0Kq7uelgNjYhEGxXp48/mbcIBDwzmOW9vK1Zef\ngeu6XHbqa/jX33yN7z1yCyd2HEd6ik+IY2649mZLvGnGk9HIzJVyOcb2H6CUm95SJodTXk8z399P\norOTDZdfRqy5uc6tFRGpL9dxaUk0ky1kuXTzhTjA4/3PkCmMsmn1STXnZvKjlPwSnnp9iFRMN2zu\nUdBcGcohoG9ojK62FG86f9OCPO/huu8GQUC+4FcFxCgMVo1BPOz4xPL3+SLBDJOiAySjUNjRlprU\n1bS6K+pvf7+fp/cPVx572sYO/vC1p5GMe/MeFOcS0hs5Prc5FefdFz+bdNJjfXc4OVAQBDTHm1jd\n1EFPppfP3/Uf/PGL3zNll1ongP2ZXo5t7V6Q9q5EQanE2IGDFIYGcb3YtJcyOZzq9TTLs89ufNc7\n59xOEZH51plu5+ncCM2JNFecfikHM33806+u5759D/HC9adXzvMcl/7RQda0dDawtVIt8H1KuRyl\nbJZ4WxtubHnM+WCMSQJfBo4FioRz6fwAGCBcnvIk4NVAO/BDa+3fNKip0w6b9xhjbgRuBSr9Kq21\nX52XVi1xS3mSnXIIqIcgCMgX/UlLXkw1VnHnrtqlLh58oo9PXnsnY/ki/kxLikAqqhCuakmSSjZV\nqojlrqfjE9d445PbVHVFTSS8aa+devfD+2q2h7MFUonp/dOa6+/KXMbYLsbxuT/ceRs9mbBNh8YG\n+fr2m/jACycHEsdxyOQyZJLZw47vlJkpDA3x+HXXM9bTQ6JjFesufi3x1lbcOk3GNHE9zYnbIiKL\nVTKWJBVLUvSLAKxp7uLkzo081v8UPSO9rG1ZDUTrQueHWR10LMteSYtVOVD6Yzn8Qh6/UCQoFvDz\nBYJSOITJcRy8ZHLZhE3CcLndWvtOY8wLgP8DtFhrzzDGuMCfW2svMMYkgIeBRR8224Fh4CVV+wJA\nYXMKi/FN/EwFQUCh6I9XDqvHKlbPepqfvDxGZbxivoQ/m6RIOBFMW0uC7kTTYUPilGMVEzGSCQ/X\nnf5/8lMFvukGTZhb1+O5/q7MZYztYhyfeyhb+6HDM4N7GSvmSMWSk871XJeezEFOjB+nm3odPH7d\n9fTd+SsAMoCfL9S18jhxPc1Epz75F5Gloz3VysFMH64TDiU4+7jn81j/U9y1+14u2fzqynlB4GsZ\nlHngF4v4uRylXI6gWMQvFPALBSiW8IvhhwCOV9ujzHEcnChclkPnMnIqcLYx5qJouwg8CmCt9Y0x\nLcaYrxHmt4ZWvKY7G+17jTFxwESPechaW5zXljXYYCbPdTdt55n9w3S0JWdUcVoMb+ILUUWxMvPp\nFGsojnc1rV1DsXxeaRZBMRF3SSdjtDYl6O44zPjEKWY99Qm45ddPMTCSY3V7mjfNsMI3lwrhXAPf\nXLoez/V3ZS5Bt1Hjc4+kI93OnuGeynYp8Ll558+47LTXTHl+4PscyPSytkVLZsxFcTTL6K5dNfvq\nXXksr6dZPWbTLxbpv+s3HPj5z+k+7zw2vlvdakVkcWpLttI7eggIx2Zu3/d7PMfl7t3384rjX0xn\nUzhZkJZBmZ1KmMznCQpF/GKRoOqPXyrhui6ON3lIxzKqVs6EBe631l5vjDkeuBh4PYAx5gzgTGvt\nG4wxJwJvaWA7pz0b7VnATUAf4AJrjTGXWWvvns/GNdJ1N23nl9v3AvBMz/CMAshc38QXo4piuWI4\nZUg8zFjF7FiB0dzMxyhCFBQTMVrScVa3p6pCYThGsWZ7iq6oqUQMbwYVxYne94bnzvqxcwmMcw18\nc+l6PNfflbkE3UaNzz2S1226ANdxOTDSx2ghy2hxjLv33M8pXc/iOWsnt89xHAbHwplp03F1p52p\nUqFArqeH4sgoiY4Oss+MB856Vx7L62lC2HNicPsD7PvxT8j39eEmkyTXavytiCxejuPQmmhmJJ9h\n645befCArRz7xgPf5U/Ofm9lezEtg1IZInGgh1T3Wk66+irira0L2oagVKKUz+Pnoy6upXKILIXf\nF4r4vn/YMOm4Lp4mBJzoi8B/GGOuAJqBPycKm4QVzjZjzK+BEWCfMabZWptpREOn+1HA54G3lsOl\nMeZs4P8BL5qvhjVaT/9ozfZ0A0ix5PPal55IPl+if3iMlnSc057VxW8e3l87E2q+VFtVrDpWLM08\nKcZjLqlEjGIpqAmanW1JTj95TW031InjFaMZUz1vbv+QGzlWdS6BsZEVvrkGvrkE3XqOz62X8uQL\n33zg+zzQs6Oy/zsP/zendP0JyVhi0mNirsv+kV42rtqg7rTTFJRK5Hp7yQ8M4noebsybsvI4H0Ye\ne4y9P7yZ7K5d4LqsfvnLWHvB+aSOPXZenk9EpF4606sYHBuuWV8ToCfTRxAElXvQYloGpWaIxKOP\nA7D5Yx+py7WDUtiF1c/nayqRfrEEpRKBXyIoFAmiN6YTu7mWOZ6HN0XIlMOz1o4Bb5+w+7XRsVHg\n3IVu0+FMN2y2VFcxrbV3GWMa/3HNPFrb2cSjVZPW+H7ArXc/XTNesRwSq7uhFop+zXV6yPL4nqEj\nPlfccyvdSztbU2EITMQOExBrZ0ItnxOLguI/f+uemuDUnI5zyStPOtxT11Ujx6rOJTA2ssK3GAPf\nYjDxRp4vFbjlsdt5w+YLpjy/5JfozfSzpqVrIZq3ZAVBQL6vj/yhQ4CDW3Vzr648zofs3n3s+9GP\nGd4RVgNWPe8MjrnoNSRX6+9MRJaGmBcjHU9NWm+z6Bd5amA3J3YcV9mXyY9SLBWJ1WmStdkaO9Bz\nxO1qge/XBMigVIr++GEFsuSPh8hiaTxEuu5hl8VyPA99DLyyTfdfQL8x5hJr7VYAY8ylhF1qZyWa\nJel6wjGgPvBBIAfcEG0/ZK29ZrbXr4cPvvF07npoX6XKuOdghj0HJ1efY55TqQ6uak1OWCKjuqvp\nhJBYdSwWq/0HWq4Q7u0dCSuELz5h2hXCRlbpGjlWdS6BUYFv8Zl4I096CX696x5OX7uZjVU38zLX\ncdgztI+v3H8jvdlDdDd3ceVZb6c12bKQzV7UCoODjB3sA78067UyZyN/6BD7f3Irh+65F4KAlpNP\nYt3Fr6Xp+Ml/jyIii92qdDuv23QBDnBgpI/h/AiZQpb/fPAHfOjsP6rMkB5zPQ5lBxf8Q9AgCKAc\nGgsFEh2dZHi8cjze1s7onr0EfqlyHn4QTbITQODguA44zhHvFQqRMl3TDZtXAT80xnyZcAnCAHjp\nHJ739UBgrX25MeYc4NPRdT9hrb3DGHNtdbhthPaWJB9/1wt56Ik+kvFovOKksYox4rH6v2mbS4Ww\nkVW6RgZdBcblpbxwdt/oAF1Nqzhz3XP5yv3/xY2/v5k/Pfu9xL3JH778cOdtla63T/Q/jQN8+KVX\nLmzDF6HCyAi5gwcJ8oVwLMwCBc3i6CgHbttG7y9/RVAsklp3DOsufi2tm426O4vIktWSaKIj3VoZ\n8rG/5yAAg7lhbnz4R7z7+W+qnDuYH2Z10Dmn//NK2SyF4RGCwA/DYRCAHxD44TZBQBD4YdUxOh4E\nAQ5hxXHda1+Dn8tVhkisv+T1+NnspOep5yQ7xUyG3Td9r2ZYRqy5uW7Xl6Vlur9ZFwGjwJmEi4R+\nm7Av8M7ZPKm1dqsx5r+jzROAQ8AfWGvviPbdDFwANCxsArz4OetY09E06+U7ZmsuFcJGhq7FOOGM\nLE3lsZuZ/Chbd9zK/zx+B51NHfSO9vM/j/+S1246b9JjphpDs5KVslnGDhyklBvDdb0pJ12YD36h\nQO8v7+TAbT8LF9HuWMUxr7mQjjOfv6AVVRGR+dKaaGFgbHDSfWf30P7aE4OAwbFhVqVnPzNtIZOh\nOHTk4VgQTmDEFNXGeGvrvA6RmMrum77H4PYHACpLXtWzDQqzS8tMKpsvigacPhDNTns34UxIsxKt\nAXMDcCnwZsJwWTZMuLbnYRljtgCfmu3zL2aLcUmK6VB1UeaqvH5Z2dYdt9ZMFOQAv3j6bk7u3Mj6\ntrVs3XFrOHNtcYx8MV/z2LXNK3MsYCmXI9fbS2lkFMdzcd2FCZmB73Pod/ey/5ZbKQwM4KXTrHv9\nxax+2Utx4w1d4mvWlvN9RkRmryPdzqGxwUlDPsaKY5R8vzJzquu4DI4NzSlsLkUTl86q91Ja8x1m\npb6mGzbjQPU7uTxhV9o5sda+xxjTDfwWqF63oBUYmPpRlcduAbZU7zPGbASenGu7Gk0VQlks/CCc\n3TgofyXAccCJetO7rovjhGMmHccJj1W2w6+uGx4Lh4CUzwnHhKTi40HIcRw60qsYGBuohM6JnxqX\n/9P5xgPf45SujTx0YHLninQsySldz+J9Z75tvn4si5JfLJI72EthaAjX83DmOLv0dAVBwPCOHez7\n0c2M7duPE4ux5rxz6X7VucSamhakDfNlOd9nRGT2XNelKZ6qGfIxWshyaGyQf7rzi6xvP4ZLN19I\ncyJN3i8wms/SlFjay3PNpJqY6OyshMDydj3Nd5iV+ppu2Pw+sM0Y851o+43MoYurMeabiTkxAAAg\nAElEQVSdwAZr7f8BxoAS8DtjzDnW2tsJu+1um+31lzpVCGUmgqpAGPb4DgMhOJSHiXiug+OUgyG4\nrgMOeFFIdN3xMAjh8XCfg+c6eJ5LzCsHytpz62l1cwejhVGKfhGYPFFQWa6U5+mBPVNeozPdwdue\n+wZypULd27cYBb4fhsyBARzPq5lhdr6NPrOLvT/8EZnHnwDHoeOFL+CYC19NomPVgrVBRKQROtOr\nGMlnueL0SwH493u/zaGxQfrHBugfG8ABrjj9UjzH5VB2YMmHzZlUE+d7Ka35DrNSX9MKm9bavzDG\nvAk4BygAn7fWfn8Oz/tdwoVIb4/a8CFgB/AlY0wceAS4cQ7XF1m0KtVCP8B3AsL6U1QJdB1cwqrf\neGWwtnLoueMBsRwYPTcMg57nThkel5J1rWt5emA3ruNUPjV+tPdJsqVc5Zy4G2M4P/XaxF1Nq3Ad\nh4HsAK2JZlLx5AK1fGEFQUCut4/CQLiMyUKNyQTI9fay78c/qbzxaD11M+suvoj0unUL1gYRkUZK\nxVMkvTiloARAJl876U51z5xMIUuhVCTe4GVQ5mIm1cT5XkprodaFXiiv/8jW44DnA3f99z9dcqDR\n7am3af/WW2tvpE4BMBr7+dYpDp1bj+uL1Fu5ahj4AQEBRF1Jy9W/MAgGuK4zHgarQl+5K6njOniO\nUwmGnusu6WA4H+JejDXNXRzI9FZNFJRl645bKrPTPqd78//P3p3HyVXV+f9/3aW23tOddCcBTFjk\nBJRdRVFBBGVTER1lcJ0ZRYfx52/GbRa+3xnjzODX33dmcHQcwWFw3FcQEUEBAdlUEFA2w2FNCJB0\nkt73Wu79/XFvVVd3ek1XV3V33s/HI4/ue+vWrVOdpG+97znnc/jOwz8m7adoTjYyWhijLlHHmvpV\nnLvpDAA812PH4C42thy4on62YRiS7ekh29UNYVjVoju5gUE6b/4FXb/+DQQBdS86iHXnnE3DYdVZ\ny1dEZClpSjfSNdyD6zh7jcRpqxsf4eG7Ht3DPXQ0rqlFMytiKfUmzjXMhoUC+cFBcv39FEbHSK3t\nqELr5ufNn7j2AuDzQAew7c2fuPYD1/3bubcs5JzGmPcT1cRpBNqAfwI+Q1TYdYxoyckrgeJf4l9a\nax9ZyGvOZPneYhGZg7mExFLPoRv3GuJM6D0sBkjfd/FdBzcOiJ67cgLMUtOcbmQoO8xIbgTHcUqh\nEyhVqK1LZBjOjfDKA4/nzBefMuV5CkGB3UNdtDesrmbzF81YTw/Zrp7xtTKrFKILY2Psvv0Odv/y\ndoKxLMnVbaw7+yyajz5qRQV5EZH5aEk30TXcA0RLdoVhyB92PwHAWS9+/YRjB3PDLL2oM3dLqTcx\nyGbJ9Q+Q6+8nPxB/nbA9QH6gn/zQMITjJWbcVJKO1+9dzb7GPgalfxobgE8ACwqbsTpr7elxbZx7\nARf4jLX2IWPM54BfWGu/Yow5DPgf4LUVeM0pKWzKkhYEIUEYEjBxuKlXNqewfH6h4zh43nhPoec6\n+J6L74/3IiokLg9rG9ewtWf7XvsnV6i9feuvOW7dkXQ07H3H2HUcekcHaEzVk0ks3/kyub4+xvZ0\nERbikFml3sywUKDrnnvpvOlm8gOD+A0NrDvnbNpeeWJVh+2KiCxFjuPQkKxjODdCfTLDe445j+vt\nrdz57L185bff4qCW9aVCQeWhZzla7KGxYRhSGBkh398fh8UoPOb6B6J9AwOlx4KxsRnP5aZS+I2N\n1Le3k2hqwm9qJNHcTMvRRy1a+xcgOcv2vrodwFq7yxjTA2xifMnKo4BTjTHnExX6X1Wh15ySwqYs\nqiAMo8BYFhbdeCipEw8fjcLheNVSrxgiPQffjYKi72m46f7GdVw6Gtp5oX9nqYw8TF2h9oeP3sBF\nL3/vhOOKfNdl5+BuNrQcuNfSKktdrn+AsT17CHM5HM+r2pDZMAzpe/gRdt7wM8Z278FNJul44+ms\nOeVkvPTyWIpJRKQaVmWa6R8bxI+Xmdo9HK3x3DvWT29nf6lQ0P5qfChr1Ns4HiTLeiT7+sj1988a\nyL36OpKtrfiNjSSaGqMgGX/vNzXh+D67brmVXF/fhIq5+aEhnrvqR2y55HOk163j0Is+RKKxsUo/\ngVn9BDiCKGQOAddU6LwnABhjOoAmYBcQxI9tAe6z1n7PGLMG+ECFXnNKCpsyq1LvYhiWlq3wynsV\n46Go5T2HrhuFyURcuMb33Wj4qcKizEN9MkNzupH+sUHc+N/N5HkxLekmnuvfwV3P3sspG1855XmC\nIGDXYBdrl8l8mVz/AGNdewhzeRzXrWov4uDTz7Djp9czvO1ZcF3aTnoVHW88fSldmEVEloyUnyLt\np0pV1AfGJhavm3yDdKUIcrnxsFjW6zhhaOvAAPnBoZlDZPEaV3ZMqqODNa99Nd33PcDw1q2l/Q2H\nHTZj7+rWb3yL/kceBSZWzH3u6mvoe+hhAIaejlau2vTXn9jXt15R1/3buf/w5k9c+xhwJHDPdf92\n7nUVOvU6Y8wviILmRcDlZY99FrjSGPNhonmdmyv0mlNS2NxPFOcuBkFx3iITexjd8aGpnhtVNPW9\nssBY1ruoYahSTWvq2xjOjRCE0Q258nXN2upaeMOhJ/OV+77FzU/dyZFrXsya+ra9zuE4DgNjgzQk\n62hITb0u2FKQ6x8g291FYSwbrZVZxeI/ozt3suP6n9H/hy0ANB99FOvOPhOvrm7KtdWmW3NtPmux\niYisBE3pRvYMdeE67oyFgpa60lDW4rzH0pDW8iAZFdwJRkdnPJebSkZDWdesiXsfmyb2SDY1kmhs\nxKur44kvfmlC8SE3maDtVa+k6557J5xztvU0p6uYO3n/6K7OWX8W1XTdv537nUU47S+ttReXbR9S\n/MZa2w1UbdKtwuYyM1VoLJ/D6Lkurhctn+F54z2QnueQiANjMTSqh1GWA8dxWNfQzrN9L+C57oRi\nQUXnbnoj337ox1z16A18+OXvnnK4rOe67BzazSGJDG4VQ9xc5AYHye7pojA2hlvltTKzvb103ngz\n3b+9D8KQ+kMOZt2bzqF+w4uA6E7xVGurTbfm2nzWYhMRWQmaU43sGY4CzVs3nQFhyJY9T1IIAk4/\nZNHqrsxZGAR7D2WdoqBOrn+AMJ+f8VxefT3JlpYoLJYCZFNpKGuisQG/qQkvtfeyY1PdjHRcd9pK\nt/OtgDvX86Tbl3OppuVHYbOGgjAkDEIKhFFohHg5jIlVUF0n2ud50b6E55aCo0Kj7A9SiRRtdS10\nj/ROGSSP6tjEUe2Gh3dZbn/mN+wY3EXXcC+tdS3jxRkAF4edg7tY37S22m9hSrUMmYWRETpvuY09\nd95FmM+TXtvBunPOovGIIyb8TpnrneLZ9ouIrFSO49CYqGcoN0x9MsO7jzmP257+FTc+dQf/ff93\n2bDqQM41b6z46wa53N7zHwf2HtqaHxycdShrorGR9Lq1JBrj0Dh5TmRjE35jA66/79FhupuR01W6\nnW8F3BnPE4bkBwdLczZXMmvt12vdhnIKmxVSLIQThiHEcxonD1H1XLfU2+i4UfGbpO/i+14pYIrI\n1FrrVjGQHaYQTH3X9S2b3shTPc9y01N3RsvcAM8P7NyrOMNgdoS+kX6aM03VaPaUcgMDZLvGh8tW\nM2QG+Txdd/+Kzl/cSmF4mERzM2vPfCOrXnbClMN253vHeSmtxSYiUi2tmRb6Rgfw49/nz/XvAKA/\nO8jDnY9BCEevO2Je58wPD9N9z72M7ewsq8w6HigLIyMzPt9NJvAbm6jfuCHudWyMh682lXomE03R\nUNZqTNuY7mbkdJVu51sBd6bzbHjPu8gceICmddSAwuYsgjCkEASl4jcKjiK1s76xg229z5WKBZVr\nTNXzFnM633tk4tz6ycUZfNdl93A3dck6El51fwVOnpNZzZAZBgE9D/yOnT+/iVxPD246zbpzzmL1\na1+Dm0hM+7z53nHel7XYwjBc9ssCiMj+LeEnyCQy5IIsAL2jAxMe7x6Zf6Gg7d//IS/8+Cd77ffq\n6kg0N5E58MC413G8Imt5j6SbSk07+q0S8+7nO0dfNyP3TwqbszhkfbOCo8gSkfB8Vte1snuoa8pl\nTo5ZeyTXP3EbA2ODpX1TFWdwHYcXBjrZ0HLAora3qFhdNsjmqh8yw5AB+zg7rr+B0Rd24Hgea045\nmfbTTp3THd753nGez53oMAjAcUi0NJNq27uwk4jIctKcbqBzcA+eu3ehoNbM/AoF5fr7GX7ueZJt\n0VIfHW84nXR7O35T45RDWaecDznDNKtKzLuf7xz9fbkZKcufwuYsFDRFlpaWTBMD2UFyhdxejzmO\nwweOO5//uOd/CMIQs/oQzt10xpTnyRWy7BnqYXX94q1lnOvrY6yrmzAfLWFSzZAJMLz9OXZcfwOD\nTzwJjsOqE45n7ZlnkGxd1PWbZxUGAbguybZWkq2tmncuIitCY6qB3WWFghxgy+4nyQV5dg7u4tJf\nXcGFJ1xAY6ph1nM9dfkV9N53PwDZrm667/3tjEFuvsGvEvPu5ztHf77DYmVlqHrYNMb4wFeBjUQL\nmF4C/AH4GtFio49Yaz9S7XaJyPKxrqGdrdMMp13buIbzjjyTqx69gSAMqEukpzyH67j0jPRQn8yQ\nmeaYfTXW00Oup5cwl8OpwhImk+9ot5/6Onbffge9v/s9AI3mcNa96Wwy69cvajtmExYKOL5Pcs1q\nki0tCpkisqI4jkNDso6h7HCpcvp/3vN1tvfvYPdwN7uHu3GAj5104aznmrw8RzHITTd0db7BrxLz\n7jUsdukzxqSAx6y1B8/h2EuBS621z8127HzUomfzPcAea+37jDEtwIPA74GLrbV3GmMuM8aca629\ntgZtE5FlwPd81tS1smua4bQnrDuKh3Zu4fGuZ7h/x8O8bP3RU57Hcz12Du5iQ8uBU1a5nY8wDMn2\n9pLt6oGggFNcqLoKJt/R7nvoYQhDMgcewLo3nUPjiw+rSjumExYKOIkEqdVtJFuWz5pzIiLz1ZpZ\nRf/oAJ4b/f4vBMGExzuHuuZ0nnR7B0NPPFXaLga56Xow5xv8KjHvXsNiK+Od37/oIOA44Dc/OP+y\nXRU+vQPMqSiCtfbjFX5toDZh8wfAD+PvPSAPHG+tvTPe9zPgDYDCpohMqzkeTpudZjjt2444k8//\n+kp+am/h8NaDaUo3TnmeIAjYObiH9Y3t+9SOMAjIdneT7e2FIIx6Mau8jufYnj0Tth3X5aALzqfl\nmKOn7FWdb1GHfRUGAY7vk25fQ6KpdtV/RUSqJeH5pP3xQkFt9at4YXC8l7Kjfm7z04vLc4w8/zyJ\n5uYJwa5ccXu+wa8S8+41LHbh3vn9iy4APg90ANve+f2LPvCD8y+7ZSHnNMbUA98GWoCnAMcYcxvw\nYWvt48aYD8ev93Xgp8Buovx1NvBh4ALgYKAdeBHwMWvtzcaYNwGfAXrjPw9aa/9xtvZUPWxaa4cB\njDGNRKHzfwH/WnbIANBc7XaJyPKzdobhtC2ZZs4+/FSu2XIj12y5kfcd+/Yph206jsPA2CC5ulUk\nvOmrsk6lkM0y9MxWHMeJQ2Z1h4WGhQLd9/6Wsc6JN0IbjzyCVccdO+3z5ju3Z76CQgE3mSDd3k6i\naeqQLyKyUpUXCirO3ewa7uVFLev54AkXzOkcicZGNv31Jxjds4d8b19p/3Q9mAp+y9bHiIIfwAbg\nE8CCwibw58DD1tq/N8a8Ang90/dutgPHWmsLxpizyvaPWmvPNsacDnzcGHML8AXgRGvtHmPMt+ba\nmJoUCDLGHAT8CPiStfZ7xpj/W/ZwI1Fanu0cm4FPL04LRWQ58D2fNfVtdA7uwZ+iB+/lBxzLgzu3\nsGXPkzy4cwvHrjtyyvM4pZU55ycMAgjDqg2XLb1uGNL/yKPsuOHnjO3aFQ1RbW/HSfikVq+e9Y72\nfOf2zFVQKOClkmRWSMjUdUZE9kV5oaDi3M0wDDm0beOCz62hqytOcpbtfXE4UY8l1tp7jTGTh4CV\n3xl/xlpbmOIcv4u/bgfSwBqg31pbHEp1J+MheUa1KBDUAdwIfMRae1u8+3fGmJOttXcAZwG3znYe\na+1mYPOkc28Enqlke0VkaWtONzIwNjDlcFrXcXj7kWfz77++kp/Ymzm0dQONqeW9oPPQM1t54afX\nM7x1G7guba86kY43vmHKYarTDZetdFGHlRYyi3SdEZF94TgOjcl6BrNDFT+3ejDHb/SGQUAIpVFL\njudGo4wcBxwXx/XAJZ5O4uAkK5HjKu4nwBFEIXMIuKYC5/wDcBJwnTHmOCABjALrgceB44Hih4Dy\ne+3lIXTyPfhdQIMxps1a2wW8kjleC2vRs/l3RGOI/94Y8w9Eb+Yvgf8wxiSALcBVNWiXiCxTaxva\neaZ3O96kIj9D2WFufPKX1CXS9I0N8MNHf0raT9E13EtrXQtv3XQG9clMjVo9P6Odu9hxw8/of+RR\nAJqPeilrzz6TdPv0c02nGy5bqTvjpZDZ0U6iceWETBGRhVqVaaF3tB/fre7Il+UkDILoTxhG01G8\nqLCe47jgeuA6pYrupSAZLyPm+D5uIlEKl4td9X2x/OD8y/7hnd+/6DHgSOCeH5x/2XUVOO3lwDeM\nMXcAjxEFzS8CXzbGbAOeLzs2nOL7vQZ7WWtDY8xHgRuMMX2ASxRcZ1WLOZt/BfzVFA+9rspNEZEV\nIqpO28buSdVpr33sJh7qfKy0/XjX+E245wd24gDvOvqt1WzqvOX6+th508103/NbCEPqNm5k/ZvO\npv7gjbM+d7rhsgu9Mx4GAW4yseJ6MkVEKiXh+WTKCgXtD8rDo+s6hI6L63s4nh+FxmKY9Dwc14vC\nYsLH9X1w3f12OawfnH/Zdyp5PmvtGHD+FA/9fIp9J5U97/Xxt/9Yts8SzfkEOBZ4jbU2Z4z5JtEQ\n21nVZM6miEiltWSa6M8OkC/kS/u6hmee/j3b47VUGB1l122/ZPftdxLmcqQ62ll39lk0veTIOV+Q\nKz1cNgwCnISvwj8iInNQXihoOQvDkLAwPq3PSRTDox/1Mnoejh/3NiaTeMnkfh0eV7AB4B5jzDDR\nENrvz+VJCpsismKsa+hgW1l12ta6Fp4f2Fl6PO0lGS2M32Vuq1t6az4G+Txdv/oNnTf/gsLwMH5T\nE2vf+hZaX/6yeRciqtRw2eI6mVrCRERk7soLBS1VYRhCEBAEQTSUNe5pdDw/CpBeNFzVTUUhstoF\n8WTpsNb+J/Cf832ewqaIrBgJz6e1roWuoZ4JJed3DXYxkh8l6SbJjvYQhAEbWw7g3E1nVPT1F7J+\nZRgE9P7+QXb+7Eay3d246TRrzzqTNSe/BjcuajDf81diuKzjeaTXdpBo1opUIiLzsZiFguaqvFfS\n8dxoyKofB8r4j5dK4aVSCpKyKBQ2RWRFac20MDg2RD7Il0rOf+ehH0+Yu+kA3SN9U67PuRD7un7l\nwONPsOP6Gxh57nkcz2P1ya+h47TT8BsmBsnFXh+zKAwCcD2Sa1aTWrWq4ucXEdlfrMq00DvSv6hD\nacMgICwEOC5xkEyO91AmfLx0Wr2SUjMKmyKy4qxtWMO23udLF/fJczMbkg30jw1y/eO38kcvObti\nrzvf9SsHnnyKZ7/5bfKDgwA0H30U6950Dl46NWUP5mKtj1kUhUyH5Oo2kqtWab6NiMgCJTyfTCJD\ntjC2oPOUB0onkRyvxur7uMkEXiYTbev3tiwxCpsisuIk/WRcdj7qvZw8d/PAxg6e6ctx3wsPsWe4\nhwuOektlXneOBXmy3d3s+NmN9D7wu4kPOA6ptla2fuNbU/ZgVrrgT1EYhkBIYtUqUqvb9GFFRKSC\nmtL17Boc2afnepk6CMOo8I4CpSxDCpsisiK11bUwkB0kDIPS3M2u4V7a6lrIFwqM5qO7zFt7t/Pj\nLTfxkg6z4NecriBPca7l2O7dBNkcuZ6eUtGdMJcrPb/YUzldD2alCv6UCwsBiZZmUmtWL9t1ykRE\nlrKmVCOdQ1379NxEfR2J+roKt0hkesaYC4GvWmsLsx48BwqbIrIiOY7D2obVbO/bWZq7WfQfv/na\nhGOf7XuOSpiuIM/2H15N/8OPjLctmeBF57+D3kcepf+hh0v7iz2V0/VgLrTgT7mgUCDR1ERqzeqo\nYISIiCwKx3FYndH8d5na3ee+/SDgOOA3r7726l21bg9wMfB1QGFTRGQmmUSG5lQDg9mhCcOOJg+r\nHcqNsLVnO4evPmRO58319/PU5VcwumMnXn09B73jbVNWhQ0LBbrvu5/+P2yZsD/V3s6qE46ncZPh\nOcfZq6dyMXowy9vk1deT6WjHSyQqdl4REZle6xJcaktq7+5z334B8HmgA9h297lv/8Crr736loWc\n0xjzfuCtQCPQBvwT0A/8MzACdAF/BiSJ1sp0gDTw58DLgLXA94C3LaQdRQqbIrKirWloY6hneMK+\n8mG1dYk0o/ksSS8553M+dfkVdN39q9L2c64zoccxDEP6/7CFHdf/jLHOTpg0vybV1gZM31NZyR7M\noiAo4KUyZA5YjZfJVPTcIiIisk8+RhQ0ATYAnwAWFDZjddba040x7cC9RL2Ur7bW7jTGfBT4e+A2\nYA/wPuAlQL219qvGmP8NnF+BNgAKmyKywrmOS3v9anYM7sJzojmJk4fV5oM865s6pjvFXkZ3dU7Y\nLp9jObRtGzt+egNDTz8DjkPrK17O6pNfQ+fNtyxKT+VswiDATSTIrFtLYo5rfoqIiEhVTL7TPfc7\n3zO7HcBau8sYMwh41trikK47gUustZ8yxrwY+AmQJer5hKins2JVqGoWNo0xJwKfs9aeaow5FPga\nEACPWGs/Uqt2icjK05Cqp24sw1h+YaXni9LtHQw98VRpO9nayuiuXey84ef0xXMzm448gnXnnEV6\n7VpgcdbDnEkYBDieR3ptB4mmpqq+toiIiMzJT4AjiELmEHBNhc57AoAxpgOoA0JjzNo4cJ4CPG6M\neR2ww1p7hjHmlcBngdOI8ljFKgbWJGwaYz4FvBcYjHddClxsrb3TGHOZMeZca+21tWibiKxMHfWr\n2dr7HG4FSsYfetGHABjdsRMnlcRNJrD/cikEAXUbXsS6c86m4dC5zf+stDAMCcOQlNbKFBERWdJe\nfe3V/3D3uW9/DDgSuOfV1159XYVOvc4Y8wugiWguZh74kTGmAPQAfxIf9z1jzEWAB3wm3ncncAPw\n+ko0pFY9m08C5wHfjLdPsNbeGX//M+ANgMKmiFSM7/m01rXQNdSDV7bEx1B2mGu23MhwboT2htVc\neMIFNKYaZjxXorER84m/Ytu3v8uO664nyGZJrVnN2rPPovmol9Ys4IVBgURzi5YxERERWSZefe3V\n31mE0/7SWnvxpH0nTXHcGyfvsNb+SSUbUpOwaa29xhizoWxX+SezAaC5yk0Skf1Aa6aFgbFBCsF4\nNe9rH7uJR3ZZAJ7ueRYH+NhJF856ru77HuD5q6/Bb2hg3ZvPoe3EV+B43mI1fUZhoYDfUE+yXRVm\nRUREZOlYKgWCgrLvG4He2Z5gjNkMfHqxGiQiK1NH/Rq29z2P50bBsGt44q+buS68veqE4zj8bz6J\nX19fs8I7QaGAl06TOWC9KswuAl1nRERkubHWfr3WbSi3VMLmA8aYk621dwBnAbfO9gRr7WZgc/k+\nY8xG4JlFaJ+IrBDpRIqmdCODY9Ham5PX3Oyob5vTeVzfZ9XxxzG8ddtiNXVaYRDg+D6Z9nYSTY1V\nf/39ha4zIiIiC7NUwuYngSuMMQlgC3BVjdsjIivYmvo2hrLR2ptv3XQGYRgynBuho2E1Hzzhghq3\nbnoq/iMiIiLLSc3CprV2G/FEVWvtE8DratUWEdm/uI7Lmvo2dg7uoT6Z4Y+PejMbV72IpLd05zsG\nhQLJlmZSa9ao+I+IiIgsC0ulZ1NEpKoaUw30jQ6QLWRr3ZQZBYU8fl0dmfZ2vFSq1s0RERERmTPd\nHheR/VZHwxoKYTD7gTUQBgF4LpkDD6TuoIMUNEVERGTZUc+miOy3Ep7PqnQLXcNzq0BbDaV5mWtW\nk1q1qtbNEREREdlnCpsisl9rq2uhZ2TW1ZaqQvMyRUREZCVR2BSR/ZrjOKxr6sCldpVdg6CAn86Q\n6dC8TBEREVk5FDZFZL/XkKyryeuGQYDjeWTWrSPRqPUyRUREZGVR2BQRqYGwEJBoXUVqdZvWyxQR\nEZEVSWFTRKSKgnwBv6Ge9NoOXF+/gkVERGTl0icdEZEqCIMAJ+FTt349fl2m1s0RERERWXQKmyIi\niywMA5JaykRERET2MwqbIiKLJCwU8JsaSbe343herZsjIiIiUlUKmyIiFRYWCrjJFJkD1uNlNGRW\nRERE9k9LJmwaYxzgy8AxwCjwQWvt07VtlYjI/IRhQLJ9jYbMioiIyH7PrXUDyrwVSFlrTwL+Dri0\nxu0REZmzsBDg1WVoOOQQBU0RERERllbYfA3wcwBr7T3Ay2rbHBGROQgCHM8jc9CBZNav19xMERER\nkdhSCptNQF/Zdt4Ys5TaJyIygeO6pNrbqT94o5YzEREREZlkyczZBPqBxrJt11obTHewMWYz8OnF\nbpSIyHS8ZBJvdVutmyGLRNcZERGRhVlKYfNu4E3AVcaYVwIPz3SwtXYzsLl8nzFmI/DM4jRPRET2\nJ7rOiIiILMxSCpvXAG8wxtwdb/9pLRsjIiIiIiIi+27JhE1rbQhcVOt2iIiIiIiIyMKpAI+IiIiI\niIhUnMKmiIiIiIiIVJzCpoiIiIiIiFScwqaIiIiIiIhUnMKmiIiIiIiIVJzCpoiIiIiIiFScwqaI\niIiIiIhUnMKmiIiIiIiIVJzCpoiIiIiIiFScwqaIiIiIiIhUnMKmiIiIiIiIVJxfqxc2xpwH/JG1\n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\nH+HLF0vAHf3ecVz/mGsTQtfFDQZxQyF7vMrKxY9LWvPHKxCLUkoppSpHk02llNpLNqmyI4a4fuIY\ncHECQT9pDOCGQ7jhsF1XopXylFJKKbWIaLKplFJ7KRCJUHdoa6XDUEoppZSal6pnXpZSSimllFJK\nqaqhyaZSSimllFJKqTmnyaZSSimllFJKqTmnyaZSSimllFJKqTmnyaZSSimllFJKqTmnyaZSSiml\nlFJKqTmnyaZSSimllFJKqTmnyaZSSimllFJKqTmnyaZSSimllFJKqTkXrHQAeSLiAF8HjgaSwLuM\nMU9XNiqllFJKKaWUUntjPo1sngVEjDEnAp8ArqpwPEoppZRSSiml9tJ8SjZfCvwKwBjzAHBcZcNR\nSimllFJKKbW35s00WqAO6Cm4nRER1xiTm8VzBAB27do1p4EppZSqHqeeeuoaYIcxJlOCp9d+Riml\nFrkS9zMLynxKNnuBRMHtKRNNEbkC+MxE9731rW+d28iUUkpVk63AgcC2fXkS7WeUUkpNYk76mcVg\nPiWb9wKvB24SkRcDj011sjHmCuCKwmMiEgGOB54HsnsZR/7NUy003tKrxpihOuOutpg13tLb25h3\n7OsP1n4GqK5Y8zTm8qm2uKstXqi+mBdTvPvczywGjud5lY4BKKpGe5R/6GJjzMYKxOEZY5xy/9y9\npfGWXjXGDNUZd7XFrPGWXjXGPJ1q+p2qKdY8jbl8qi3uaosXqi9mjVeNNW9GNo0xHnBZpeNQSiml\nlFJKKbXv5lM1WqWUUkoppZRSC4Qmm0oppZRSSiml5pwmm+N9ttIBzJLGW3rVGDNUZ9zVFrPGW3rV\nGPN0qul3qqZY8zTm8qm2uKstXqi+mDVeVWTeFAhSSimllFJKKbVw6MimUkoppZRSSqk5p8mmUkop\npZRSSqk5p8mmUkoppZRSSqk5p8mmUkoppZRSSqk5p8mmUkoppZRSSqk5p8nmGCLiVDoGNT+ISKzS\nMaj5TUS0DS0REQn6Xxdcm7wQfye1d7SfUdPRfqZ0FnI/M5/oGxgQkVNE5LMishYIVjqe6YjIOhEJ\n+d/P+z8QETlCRL4mIpeLyIGVjmc6IhIUkauAa0Tk8krHMxsi0igiNf73VfH3LSJnicirKh3HTInI\nShH5OYAxJlfpeKYjIqdUOobZEBFXRD4F/L9KxzKXtJ8pnWrrY0D7mXLTfqa0tJ9RU6mKRqKURORz\n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\nSQZXdQAAAABJRU5ErkJggg==\n", | |
"text/plain": [ | |
"<matplotlib.figure.Figure at 0x72faf67400>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"fg = reg_helpers.plot_modeled_data(\n", | |
" modeled, \n", | |
" row='parameter', row_order=['DCE', 'PCE', 'TCE'],\n", | |
" col='location', col_order=['MW-1', 'MW-2'],\n", | |
" hue='era', hue_order=['pre', 'during', 'post'],\n", | |
" sharey='row'\n", | |
").add_legend()" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"## Conclusion\n", | |
"Using modern analytical tools with the split-apply-combine strategy facilitates taking a one-off analysis and scaling it up to much larger datasets. Additionally, the libaries that facilitate this generalized workflow are typically quite performant. On my machine, esimated the best-fit and the confidence intervals for all of the groups takes a total of ~100 milliseconds (see final cell below). This entire notebook takes only a couple of seconds to execute." | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 11, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"1 loop, best of 3: 99.1 ms per loop\n" | |
] | |
} | |
], | |
"source": [ | |
"%%timeit\n", | |
"modeled = (\n", | |
" bigdata.groupby(scenario_columns, as_index=False) # (1) divide the eras into groups\n", | |
" .apply(fit_model, formula='conc ~ days') # (2) run regression on each groups\n", | |
" .sort_values(by='days') # (3) resort the df by the days column\n", | |
" .reset_index(drop=True) # (4) remove the index created in (2)\n", | |
")" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"### Further reading\n", | |
"\n", | |
"|Topic | Source |\n", | |
"|------|--------|\n", | |
"|Tidy data | http://vita.had.co.nz/papers/tidy-data.pdf |\n", | |
"| Split-apply-combine | http://vita.had.co.nz/papers/plyr.pdf |\n", | |
"| Pandas | http://pandas.pydata.org/ |\n", | |
"| Seaborn | http://stanford.edu/~mwaskom/software/seaborn/ |" | |
] | |
} | |
], | |
"metadata": { | |
"kernelspec": { | |
"display_name": "Python 3", | |
"language": "python", | |
"name": "python3" | |
}, | |
"language_info": { | |
"codemirror_mode": { | |
"name": "ipython", | |
"version": 3 | |
}, | |
"file_extension": ".py", | |
"mimetype": "text/x-python", | |
"name": "python", | |
"nbconvert_exporter": "python", | |
"pygments_lexer": "ipython3", | |
"version": "3.5.1" | |
} | |
}, | |
"nbformat": 4, | |
"nbformat_minor": 0 | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment