├── .github └── workflows │ └── python-app.yml ├── .gitignore ├── .travis.yml ├── LICENSE.txt ├── README.md ├── examples ├── ADS.csv ├── CPIAUCSL.csv ├── DFF_2_Vintages_Starting_2009_09_28.txt ├── GDP.csv ├── MIDASExamples.ipynb ├── USREC.csv ├── Weights.ipynb ├── cpi-fed.csv ├── gdp-pay.csv └── usbcind.csv ├── midas ├── __init__.py ├── adl.py ├── fit.py ├── mix.py └── weights.py ├── poetry.lock ├── pyproject.toml ├── setup.cfg ├── setup.py └── tests ├── conftest.py ├── data ├── gdp.csv └── pay.csv ├── test_midas.py ├── test_mix.py └── test_weights.py /.github/workflows/python-app.yml: -------------------------------------------------------------------------------- 1 | # This workflow will install Python dependencies, run tests and lint with a single version of Python 2 | # For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-python 3 | 4 | name: Python application 5 | 6 | on: 7 | push: 8 | branches: [ "master" ] 9 | pull_request: 10 | branches: [ "master" ] 11 | 12 | permissions: 13 | contents: read 14 | 15 | jobs: 16 | build: 17 | 18 | runs-on: ubuntu-latest 19 | 20 | steps: 21 | - uses: actions/checkout@v4 22 | - name: Set up Python 3.11 23 | uses: actions/setup-python@v3 24 | with: 25 | python-version: "3.11" 26 | 27 | #---------------------------------------------- 28 | # ----- install & configure poetry ----- 29 | #---------------------------------------------- 30 | - name: Install Poetry 31 | uses: snok/install-poetry@v1 32 | with: 33 | virtualenvs-create: true 34 | virtualenvs-in-project: true 35 | virtualenvs-path: .venv 36 | installer-parallel: true 37 | 38 | #---------------------------------------------- 39 | # load cached venv if cache exists 40 | #---------------------------------------------- 41 | - name: Load cached venv 42 | id: cached-poetry-dependencies 43 | uses: actions/cache@v4 44 | with: 45 | path: .venv 46 | key: venv-${{ runner.os }}-${{ steps.setup-python.outputs.python-version }}-${{ hashFiles('**/poetry.lock') }} 47 | #---------------------------------------------- 48 | # install dependencies if cache does not exist 49 | #---------------------------------------------- 50 | - name: Install dependencies 51 | if: steps.cached-poetry-dependencies.outputs.cache-hit != 'true' 52 | run: poetry install --no-interaction --no-root 53 | #---------------------------------------------- 54 | # install your root project, if required 55 | #---------------------------------------------- 56 | - name: Install project 57 | run: poetry install --no-interaction 58 | - name: Run Ruff 59 | run: | 60 | source .venv/bin/activate 61 | ruff check --output-format=github midas/ 62 | - name: Test with pytest 63 | run: | 64 | source .venv/bin/activate 65 | pytest tests/ 66 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Byte-compiled / optimized / DLL files 2 | __pycache__/ 3 | *.py[cod] 4 | *$py.class 5 | 6 | .idea 7 | 8 | # Unit test / coverage reports 9 | htmlcov/ 10 | .tox/ 11 | .coverage 12 | .coverage.* 13 | .cache 14 | nosetests.xml 15 | coverage.xml 16 | *.cover 17 | .hypothesis/ 18 | 19 | # Sphinx documentation 20 | docs/_build/ 21 | 22 | # Jupyter Notebook 23 | .ipynb_checkpoints 24 | 25 | # pyenv 26 | .python-version 27 | 28 | # virtualenv 29 | .venv 30 | venv/ 31 | ENV/ 32 | 33 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | language: python 2 | python: 3 | - "3.6" 4 | - "3.5" 5 | - "3.4" 6 | install: 7 | - sudo apt-get update 8 | 9 | - wget https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh -O miniconda.sh 10 | - bash miniconda.sh -b -p $HOME/miniconda 11 | - export PATH="$HOME/miniconda/bin:$PATH" 12 | - hash -r 13 | - conda config --set always_yes yes --set changeps1 no 14 | - conda update -q conda 15 | # Useful for debugging any issues with conda 16 | - conda info -a 17 | 18 | # Replace dep1 dep2 ... with your dependencies 19 | - conda create -q -n test-environment python=$TRAVIS_PYTHON_VERSION scipy pandas pytest 20 | - source activate test-environment 21 | - python setup.py install 22 | script: 23 | - source activate test-environment 24 | - pytest 25 | -------------------------------------------------------------------------------- /LICENSE.txt: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2017 Michael W. Mull 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | 23 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # midaspy 2 | 3 | [![Build Status](https://travis-ci.org/mikemull/midaspy.svg?branch=master)](https://travis-ci.org/mikemull/midaspy) 4 | 5 | Python version of Mixed Data Sampling (MIDAS) regression 6 | 7 | This is a work-in-progress. If you have cases that I can test, feel free to add an issue or a PR 8 | 9 | -------------------------------------------------------------------------------- /examples/CPIAUCSL.csv: -------------------------------------------------------------------------------- 1 | DATE,CPIAUCSL 2 | 1947-01-01,21.48 3 | 1947-02-01,21.62 4 | 1947-03-01,22.0 5 | 1947-04-01,22.0 6 | 1947-05-01,21.95 7 | 1947-06-01,22.08 8 | 1947-07-01,22.23 9 | 1947-08-01,22.4 10 | 1947-09-01,22.84 11 | 1947-10-01,22.91 12 | 1947-11-01,23.06 13 | 1947-12-01,23.41 14 | 1948-01-01,23.68 15 | 1948-02-01,23.67 16 | 1948-03-01,23.5 17 | 1948-04-01,23.82 18 | 1948-05-01,24.01 19 | 1948-06-01,24.15 20 | 1948-07-01,24.4 21 | 1948-08-01,24.43 22 | 1948-09-01,24.36 23 | 1948-10-01,24.31 24 | 1948-11-01,24.16 25 | 1948-12-01,24.05 26 | 1949-01-01,24.01 27 | 1949-02-01,23.91 28 | 1949-03-01,23.91 29 | 1949-04-01,23.92 30 | 1949-05-01,23.91 31 | 1949-06-01,23.92 32 | 1949-07-01,23.7 33 | 1949-08-01,23.7 34 | 1949-09-01,23.75 35 | 1949-10-01,23.67 36 | 1949-11-01,23.7 37 | 1949-12-01,23.61 38 | 1950-01-01,23.51 39 | 1950-02-01,23.61 40 | 1950-03-01,23.64 41 | 1950-04-01,23.65 42 | 1950-05-01,23.77 43 | 1950-06-01,23.88 44 | 1950-07-01,24.07 45 | 1950-08-01,24.2 46 | 1950-09-01,24.34 47 | 1950-10-01,24.5 48 | 1950-11-01,24.6 49 | 1950-12-01,24.98 50 | 1951-01-01,25.38 51 | 1951-02-01,25.83 52 | 1951-03-01,25.88 53 | 1951-04-01,25.92 54 | 1951-05-01,25.99 55 | 1951-06-01,25.93 56 | 1951-07-01,25.91 57 | 1951-08-01,25.86 58 | 1951-09-01,26.03 59 | 1951-10-01,26.16 60 | 1951-11-01,26.32 61 | 1951-12-01,26.47 62 | 1952-01-01,26.45 63 | 1952-02-01,26.41 64 | 1952-03-01,26.39 65 | 1952-04-01,26.46 66 | 1952-05-01,26.47 67 | 1952-06-01,26.53 68 | 1952-07-01,26.68 69 | 1952-08-01,26.69 70 | 1952-09-01,26.63 71 | 1952-10-01,26.69 72 | 1952-11-01,26.69 73 | 1952-12-01,26.71 74 | 1953-01-01,26.64 75 | 1953-02-01,26.59 76 | 1953-03-01,26.63 77 | 1953-04-01,26.69 78 | 1953-05-01,26.7 79 | 1953-06-01,26.77 80 | 1953-07-01,26.79 81 | 1953-08-01,26.85 82 | 1953-09-01,26.89 83 | 1953-10-01,26.95 84 | 1953-11-01,26.85 85 | 1953-12-01,26.87 86 | 1954-01-01,26.94 87 | 1954-02-01,26.99 88 | 1954-03-01,26.93 89 | 1954-04-01,26.86 90 | 1954-05-01,26.93 91 | 1954-06-01,26.94 92 | 1954-07-01,26.86 93 | 1954-08-01,26.85 94 | 1954-09-01,26.81 95 | 1954-10-01,26.72 96 | 1954-11-01,26.78 97 | 1954-12-01,26.77 98 | 1955-01-01,26.77 99 | 1955-02-01,26.82 100 | 1955-03-01,26.79 101 | 1955-04-01,26.79 102 | 1955-05-01,26.77 103 | 1955-06-01,26.71 104 | 1955-07-01,26.76 105 | 1955-08-01,26.72 106 | 1955-09-01,26.85 107 | 1955-10-01,26.82 108 | 1955-11-01,26.88 109 | 1955-12-01,26.87 110 | 1956-01-01,26.83 111 | 1956-02-01,26.86 112 | 1956-03-01,26.89 113 | 1956-04-01,26.93 114 | 1956-05-01,27.03 115 | 1956-06-01,27.15 116 | 1956-07-01,27.29 117 | 1956-08-01,27.31 118 | 1956-09-01,27.35 119 | 1956-10-01,27.51 120 | 1956-11-01,27.51 121 | 1956-12-01,27.63 122 | 1957-01-01,27.67 123 | 1957-02-01,27.8 124 | 1957-03-01,27.86 125 | 1957-04-01,27.93 126 | 1957-05-01,28.0 127 | 1957-06-01,28.11 128 | 1957-07-01,28.19 129 | 1957-08-01,28.28 130 | 1957-09-01,28.32 131 | 1957-10-01,28.32 132 | 1957-11-01,28.41 133 | 1957-12-01,28.47 134 | 1958-01-01,28.64 135 | 1958-02-01,28.7 136 | 1958-03-01,28.87 137 | 1958-04-01,28.94 138 | 1958-05-01,28.94 139 | 1958-06-01,28.91 140 | 1958-07-01,28.89 141 | 1958-08-01,28.94 142 | 1958-09-01,28.91 143 | 1958-10-01,28.91 144 | 1958-11-01,28.95 145 | 1958-12-01,28.97 146 | 1959-01-01,29.01 147 | 1959-02-01,29.0 148 | 1959-03-01,28.97 149 | 1959-04-01,28.98 150 | 1959-05-01,29.04 151 | 1959-06-01,29.11 152 | 1959-07-01,29.15 153 | 1959-08-01,29.18 154 | 1959-09-01,29.25 155 | 1959-10-01,29.35 156 | 1959-11-01,29.35 157 | 1959-12-01,29.41 158 | 1960-01-01,29.37 159 | 1960-02-01,29.41 160 | 1960-03-01,29.41 161 | 1960-04-01,29.54 162 | 1960-05-01,29.57 163 | 1960-06-01,29.61 164 | 1960-07-01,29.55 165 | 1960-08-01,29.61 166 | 1960-09-01,29.61 167 | 1960-10-01,29.75 168 | 1960-11-01,29.78 169 | 1960-12-01,29.81 170 | 1961-01-01,29.84 171 | 1961-02-01,29.84 172 | 1961-03-01,29.84 173 | 1961-04-01,29.81 174 | 1961-05-01,29.84 175 | 1961-06-01,29.84 176 | 1961-07-01,29.92 177 | 1961-08-01,29.94 178 | 1961-09-01,29.98 179 | 1961-10-01,29.98 180 | 1961-11-01,29.98 181 | 1961-12-01,30.01 182 | 1962-01-01,30.04 183 | 1962-02-01,30.11 184 | 1962-03-01,30.17 185 | 1962-04-01,30.21 186 | 1962-05-01,30.24 187 | 1962-06-01,30.21 188 | 1962-07-01,30.22 189 | 1962-08-01,30.28 190 | 1962-09-01,30.42 191 | 1962-10-01,30.38 192 | 1962-11-01,30.38 193 | 1962-12-01,30.38 194 | 1963-01-01,30.44 195 | 1963-02-01,30.48 196 | 1963-03-01,30.51 197 | 1963-04-01,30.48 198 | 1963-05-01,30.51 199 | 1963-06-01,30.61 200 | 1963-07-01,30.69 201 | 1963-08-01,30.75 202 | 1963-09-01,30.72 203 | 1963-10-01,30.75 204 | 1963-11-01,30.78 205 | 1963-12-01,30.88 206 | 1964-01-01,30.94 207 | 1964-02-01,30.91 208 | 1964-03-01,30.94 209 | 1964-04-01,30.95 210 | 1964-05-01,30.98 211 | 1964-06-01,31.01 212 | 1964-07-01,31.02 213 | 1964-08-01,31.05 214 | 1964-09-01,31.08 215 | 1964-10-01,31.12 216 | 1964-11-01,31.21 217 | 1964-12-01,31.25 218 | 1965-01-01,31.28 219 | 1965-02-01,31.28 220 | 1965-03-01,31.31 221 | 1965-04-01,31.38 222 | 1965-05-01,31.48 223 | 1965-06-01,31.61 224 | 1965-07-01,31.58 225 | 1965-08-01,31.55 226 | 1965-09-01,31.62 227 | 1965-10-01,31.65 228 | 1965-11-01,31.75 229 | 1965-12-01,31.85 230 | 1966-01-01,31.88 231 | 1966-02-01,32.08 232 | 1966-03-01,32.18 233 | 1966-04-01,32.28 234 | 1966-05-01,32.35 235 | 1966-06-01,32.38 236 | 1966-07-01,32.45 237 | 1966-08-01,32.65 238 | 1966-09-01,32.75 239 | 1966-10-01,32.85 240 | 1966-11-01,32.88 241 | 1966-12-01,32.92 242 | 1967-01-01,32.9 243 | 1967-02-01,33.0 244 | 1967-03-01,33.0 245 | 1967-04-01,33.1 246 | 1967-05-01,33.1 247 | 1967-06-01,33.3 248 | 1967-07-01,33.4 249 | 1967-08-01,33.5 250 | 1967-09-01,33.6 251 | 1967-10-01,33.7 252 | 1967-11-01,33.9 253 | 1967-12-01,34.0 254 | 1968-01-01,34.1 255 | 1968-02-01,34.2 256 | 1968-03-01,34.3 257 | 1968-04-01,34.4 258 | 1968-05-01,34.5 259 | 1968-06-01,34.7 260 | 1968-07-01,34.9 261 | 1968-08-01,35.0 262 | 1968-09-01,35.1 263 | 1968-10-01,35.3 264 | 1968-11-01,35.4 265 | 1968-12-01,35.6 266 | 1969-01-01,35.7 267 | 1969-02-01,35.8 268 | 1969-03-01,36.1 269 | 1969-04-01,36.3 270 | 1969-05-01,36.4 271 | 1969-06-01,36.6 272 | 1969-07-01,36.8 273 | 1969-08-01,36.9 274 | 1969-09-01,37.1 275 | 1969-10-01,37.3 276 | 1969-11-01,37.5 277 | 1969-12-01,37.7 278 | 1970-01-01,37.9 279 | 1970-02-01,38.1 280 | 1970-03-01,38.3 281 | 1970-04-01,38.5 282 | 1970-05-01,38.6 283 | 1970-06-01,38.8 284 | 1970-07-01,38.9 285 | 1970-08-01,39.0 286 | 1970-09-01,39.2 287 | 1970-10-01,39.4 288 | 1970-11-01,39.6 289 | 1970-12-01,39.8 290 | 1971-01-01,39.9 291 | 1971-02-01,39.9 292 | 1971-03-01,40.0 293 | 1971-04-01,40.1 294 | 1971-05-01,40.3 295 | 1971-06-01,40.5 296 | 1971-07-01,40.6 297 | 1971-08-01,40.7 298 | 1971-09-01,40.8 299 | 1971-10-01,40.9 300 | 1971-11-01,41.0 301 | 1971-12-01,41.1 302 | 1972-01-01,41.2 303 | 1972-02-01,41.4 304 | 1972-03-01,41.4 305 | 1972-04-01,41.5 306 | 1972-05-01,41.6 307 | 1972-06-01,41.7 308 | 1972-07-01,41.8 309 | 1972-08-01,41.9 310 | 1972-09-01,42.1 311 | 1972-10-01,42.2 312 | 1972-11-01,42.4 313 | 1972-12-01,42.5 314 | 1973-01-01,42.7 315 | 1973-02-01,43.0 316 | 1973-03-01,43.4 317 | 1973-04-01,43.7 318 | 1973-05-01,43.9 319 | 1973-06-01,44.2 320 | 1973-07-01,44.2 321 | 1973-08-01,45.0 322 | 1973-09-01,45.2 323 | 1973-10-01,45.6 324 | 1973-11-01,45.9 325 | 1973-12-01,46.3 326 | 1974-01-01,46.8 327 | 1974-02-01,47.3 328 | 1974-03-01,47.8 329 | 1974-04-01,48.1 330 | 1974-05-01,48.6 331 | 1974-06-01,49.0 332 | 1974-07-01,49.3 333 | 1974-08-01,49.9 334 | 1974-09-01,50.6 335 | 1974-10-01,51.0 336 | 1974-11-01,51.5 337 | 1974-12-01,51.9 338 | 1975-01-01,52.3 339 | 1975-02-01,52.6 340 | 1975-03-01,52.8 341 | 1975-04-01,53.0 342 | 1975-05-01,53.1 343 | 1975-06-01,53.5 344 | 1975-07-01,54.0 345 | 1975-08-01,54.2 346 | 1975-09-01,54.6 347 | 1975-10-01,54.9 348 | 1975-11-01,55.3 349 | 1975-12-01,55.6 350 | 1976-01-01,55.8 351 | 1976-02-01,55.9 352 | 1976-03-01,56.0 353 | 1976-04-01,56.1 354 | 1976-05-01,56.4 355 | 1976-06-01,56.7 356 | 1976-07-01,57.0 357 | 1976-08-01,57.3 358 | 1976-09-01,57.6 359 | 1976-10-01,57.9 360 | 1976-11-01,58.1 361 | 1976-12-01,58.4 362 | 1977-01-01,58.7 363 | 1977-02-01,59.3 364 | 1977-03-01,59.6 365 | 1977-04-01,60.0 366 | 1977-05-01,60.2 367 | 1977-06-01,60.5 368 | 1977-07-01,60.8 369 | 1977-08-01,61.1 370 | 1977-09-01,61.3 371 | 1977-10-01,61.6 372 | 1977-11-01,62.0 373 | 1977-12-01,62.3 374 | 1978-01-01,62.7 375 | 1978-02-01,63.0 376 | 1978-03-01,63.4 377 | 1978-04-01,63.9 378 | 1978-05-01,64.5 379 | 1978-06-01,65.0 380 | 1978-07-01,65.5 381 | 1978-08-01,65.9 382 | 1978-09-01,66.5 383 | 1978-10-01,67.1 384 | 1978-11-01,67.5 385 | 1978-12-01,67.9 386 | 1979-01-01,68.5 387 | 1979-02-01,69.2 388 | 1979-03-01,69.9 389 | 1979-04-01,70.6 390 | 1979-05-01,71.4 391 | 1979-06-01,72.2 392 | 1979-07-01,73.0 393 | 1979-08-01,73.7 394 | 1979-09-01,74.4 395 | 1979-10-01,75.2 396 | 1979-11-01,76.0 397 | 1979-12-01,76.9 398 | 1980-01-01,78.0 399 | 1980-02-01,79.0 400 | 1980-03-01,80.1 401 | 1980-04-01,80.9 402 | 1980-05-01,81.7 403 | 1980-06-01,82.5 404 | 1980-07-01,82.6 405 | 1980-08-01,83.2 406 | 1980-09-01,83.9 407 | 1980-10-01,84.7 408 | 1980-11-01,85.6 409 | 1980-12-01,86.4 410 | 1981-01-01,87.2 411 | 1981-02-01,88.0 412 | 1981-03-01,88.6 413 | 1981-04-01,89.1 414 | 1981-05-01,89.7 415 | 1981-06-01,90.5 416 | 1981-07-01,91.5 417 | 1981-08-01,92.2 418 | 1981-09-01,93.1 419 | 1981-10-01,93.4 420 | 1981-11-01,93.8 421 | 1981-12-01,94.1 422 | 1982-01-01,94.4 423 | 1982-02-01,94.7 424 | 1982-03-01,94.7 425 | 1982-04-01,95.0 426 | 1982-05-01,95.9 427 | 1982-06-01,97.0 428 | 1982-07-01,97.5 429 | 1982-08-01,97.7 430 | 1982-09-01,97.7 431 | 1982-10-01,98.1 432 | 1982-11-01,98.0 433 | 1982-12-01,97.7 434 | 1983-01-01,97.9 435 | 1983-02-01,98.0 436 | 1983-03-01,98.1 437 | 1983-04-01,98.8 438 | 1983-05-01,99.2 439 | 1983-06-01,99.4 440 | 1983-07-01,99.8 441 | 1983-08-01,100.1 442 | 1983-09-01,100.4 443 | 1983-10-01,100.8 444 | 1983-11-01,101.1 445 | 1983-12-01,101.4 446 | 1984-01-01,102.1 447 | 1984-02-01,102.6 448 | 1984-03-01,102.9 449 | 1984-04-01,103.3 450 | 1984-05-01,103.5 451 | 1984-06-01,103.7 452 | 1984-07-01,104.1 453 | 1984-08-01,104.4 454 | 1984-09-01,104.7 455 | 1984-10-01,105.1 456 | 1984-11-01,105.3 457 | 1984-12-01,105.5 458 | 1985-01-01,105.7 459 | 1985-02-01,106.3 460 | 1985-03-01,106.8 461 | 1985-04-01,107.0 462 | 1985-05-01,107.2 463 | 1985-06-01,107.5 464 | 1985-07-01,107.7 465 | 1985-08-01,107.9 466 | 1985-09-01,108.1 467 | 1985-10-01,108.5 468 | 1985-11-01,109.0 469 | 1985-12-01,109.5 470 | 1986-01-01,109.9 471 | 1986-02-01,109.7 472 | 1986-03-01,109.1 473 | 1986-04-01,108.7 474 | 1986-05-01,109.0 475 | 1986-06-01,109.4 476 | 1986-07-01,109.5 477 | 1986-08-01,109.6 478 | 1986-09-01,110.0 479 | 1986-10-01,110.2 480 | 1986-11-01,110.4 481 | 1986-12-01,110.8 482 | 1987-01-01,111.4 483 | 1987-02-01,111.8 484 | 1987-03-01,112.2 485 | 1987-04-01,112.7 486 | 1987-05-01,113.0 487 | 1987-06-01,113.5 488 | 1987-07-01,113.8 489 | 1987-08-01,114.3 490 | 1987-09-01,114.7 491 | 1987-10-01,115.0 492 | 1987-11-01,115.4 493 | 1987-12-01,115.6 494 | 1988-01-01,116.0 495 | 1988-02-01,116.2 496 | 1988-03-01,116.5 497 | 1988-04-01,117.2 498 | 1988-05-01,117.5 499 | 1988-06-01,118.0 500 | 1988-07-01,118.5 501 | 1988-08-01,119.0 502 | 1988-09-01,119.5 503 | 1988-10-01,119.9 504 | 1988-11-01,120.3 505 | 1988-12-01,120.7 506 | 1989-01-01,121.2 507 | 1989-02-01,121.6 508 | 1989-03-01,122.2 509 | 1989-04-01,123.1 510 | 1989-05-01,123.7 511 | 1989-06-01,124.1 512 | 1989-07-01,124.5 513 | 1989-08-01,124.5 514 | 1989-09-01,124.8 515 | 1989-10-01,125.4 516 | 1989-11-01,125.9 517 | 1989-12-01,126.3 518 | 1990-01-01,127.5 519 | 1990-02-01,128.0 520 | 1990-03-01,128.6 521 | 1990-04-01,128.9 522 | 1990-05-01,129.1 523 | 1990-06-01,129.9 524 | 1990-07-01,130.5 525 | 1990-08-01,131.6 526 | 1990-09-01,132.5 527 | 1990-10-01,133.4 528 | 1990-11-01,133.7 529 | 1990-12-01,134.2 530 | 1991-01-01,134.7 531 | 1991-02-01,134.8 532 | 1991-03-01,134.8 533 | 1991-04-01,135.1 534 | 1991-05-01,135.6 535 | 1991-06-01,136.0 536 | 1991-07-01,136.2 537 | 1991-08-01,136.6 538 | 1991-09-01,137.0 539 | 1991-10-01,137.2 540 | 1991-11-01,137.8 541 | 1991-12-01,138.2 542 | 1992-01-01,138.3 543 | 1992-02-01,138.6 544 | 1992-03-01,139.1 545 | 1992-04-01,139.4 546 | 1992-05-01,139.7 547 | 1992-06-01,140.1 548 | 1992-07-01,140.5 549 | 1992-08-01,140.8 550 | 1992-09-01,141.1 551 | 1992-10-01,141.7 552 | 1992-11-01,142.1 553 | 1992-12-01,142.3 554 | 1993-01-01,142.8 555 | 1993-02-01,143.1 556 | 1993-03-01,143.3 557 | 1993-04-01,143.8 558 | 1993-05-01,144.2 559 | 1993-06-01,144.3 560 | 1993-07-01,144.5 561 | 1993-08-01,144.8 562 | 1993-09-01,145.0 563 | 1993-10-01,145.6 564 | 1993-11-01,146.0 565 | 1993-12-01,146.3 566 | 1994-01-01,146.3 567 | 1994-02-01,146.7 568 | 1994-03-01,147.1 569 | 1994-04-01,147.2 570 | 1994-05-01,147.5 571 | 1994-06-01,147.9 572 | 1994-07-01,148.4 573 | 1994-08-01,149.0 574 | 1994-09-01,149.3 575 | 1994-10-01,149.4 576 | 1994-11-01,149.8 577 | 1994-12-01,150.1 578 | 1995-01-01,150.5 579 | 1995-02-01,150.9 580 | 1995-03-01,151.2 581 | 1995-04-01,151.8 582 | 1995-05-01,152.1 583 | 1995-06-01,152.4 584 | 1995-07-01,152.6 585 | 1995-08-01,152.9 586 | 1995-09-01,153.1 587 | 1995-10-01,153.5 588 | 1995-11-01,153.7 589 | 1995-12-01,153.9 590 | 1996-01-01,154.7 591 | 1996-02-01,155.0 592 | 1996-03-01,155.5 593 | 1996-04-01,156.1 594 | 1996-05-01,156.4 595 | 1996-06-01,156.7 596 | 1996-07-01,157.0 597 | 1996-08-01,157.2 598 | 1996-09-01,157.7 599 | 1996-10-01,158.2 600 | 1996-11-01,158.7 601 | 1996-12-01,159.1 602 | 1997-01-01,159.4 603 | 1997-02-01,159.7 604 | 1997-03-01,159.8 605 | 1997-04-01,159.9 606 | 1997-05-01,159.9 607 | 1997-06-01,160.2 608 | 1997-07-01,160.4 609 | 1997-08-01,160.8 610 | 1997-09-01,161.2 611 | 1997-10-01,161.5 612 | 1997-11-01,161.7 613 | 1997-12-01,161.8 614 | 1998-01-01,162.0 615 | 1998-02-01,162.0 616 | 1998-03-01,162.0 617 | 1998-04-01,162.2 618 | 1998-05-01,162.6 619 | 1998-06-01,162.8 620 | 1998-07-01,163.2 621 | 1998-08-01,163.4 622 | 1998-09-01,163.5 623 | 1998-10-01,163.9 624 | 1998-11-01,164.1 625 | 1998-12-01,164.4 626 | 1999-01-01,164.7 627 | 1999-02-01,164.7 628 | 1999-03-01,164.8 629 | 1999-04-01,165.9 630 | 1999-05-01,166.0 631 | 1999-06-01,166.0 632 | 1999-07-01,166.7 633 | 1999-08-01,167.1 634 | 1999-09-01,167.8 635 | 1999-10-01,168.1 636 | 1999-11-01,168.4 637 | 1999-12-01,168.8 638 | 2000-01-01,169.3 639 | 2000-02-01,170.0 640 | 2000-03-01,171.0 641 | 2000-04-01,170.9 642 | 2000-05-01,171.2 643 | 2000-06-01,172.2 644 | 2000-07-01,172.7 645 | 2000-08-01,172.7 646 | 2000-09-01,173.6 647 | 2000-10-01,173.9 648 | 2000-11-01,174.2 649 | 2000-12-01,174.6 650 | 2001-01-01,175.6 651 | 2001-02-01,176.0 652 | 2001-03-01,176.1 653 | 2001-04-01,176.4 654 | 2001-05-01,177.3 655 | 2001-06-01,177.7 656 | 2001-07-01,177.4 657 | 2001-08-01,177.4 658 | 2001-09-01,178.1 659 | 2001-10-01,177.6 660 | 2001-11-01,177.5 661 | 2001-12-01,177.4 662 | 2002-01-01,177.7 663 | 2002-02-01,178.0 664 | 2002-03-01,178.5 665 | 2002-04-01,179.3 666 | 2002-05-01,179.5 667 | 2002-06-01,179.6 668 | 2002-07-01,180.0 669 | 2002-08-01,180.5 670 | 2002-09-01,180.8 671 | 2002-10-01,181.2 672 | 2002-11-01,181.5 673 | 2002-12-01,181.8 674 | 2003-01-01,182.600 675 | 2003-02-01,183.600 676 | 2003-03-01,183.900 677 | 2003-04-01,183.200 678 | 2003-05-01,182.900 679 | 2003-06-01,183.100 680 | 2003-07-01,183.700 681 | 2003-08-01,184.5 682 | 2003-09-01,185.100 683 | 2003-10-01,184.9 684 | 2003-11-01,185.000 685 | 2003-12-01,185.500 686 | 2004-01-01,186.300 687 | 2004-02-01,186.700 688 | 2004-03-01,187.100 689 | 2004-04-01,187.400 690 | 2004-05-01,188.200 691 | 2004-06-01,188.900 692 | 2004-07-01,189.100 693 | 2004-08-01,189.200 694 | 2004-09-01,189.800 695 | 2004-10-01,190.8 696 | 2004-11-01,191.700 697 | 2004-12-01,191.700 698 | 2005-01-01,191.600 699 | 2005-02-01,192.400 700 | 2005-03-01,193.100 701 | 2005-04-01,193.700 702 | 2005-05-01,193.600 703 | 2005-06-01,193.700 704 | 2005-07-01,194.900 705 | 2005-08-01,196.100 706 | 2005-09-01,198.800 707 | 2005-10-01,199.100 708 | 2005-11-01,198.100 709 | 2005-12-01,198.100 710 | 2006-01-01,199.300 711 | 2006-02-01,199.400 712 | 2006-03-01,199.700 713 | 2006-04-01,200.700 714 | 2006-05-01,201.300 715 | 2006-06-01,201.800 716 | 2006-07-01,202.900 717 | 2006-08-01,203.800 718 | 2006-09-01,202.800 719 | 2006-10-01,201.900 720 | 2006-11-01,202.000 721 | 2006-12-01,203.100 722 | 2007-01-01,203.437 723 | 2007-02-01,204.226 724 | 2007-03-01,205.288 725 | 2007-04-01,205.904 726 | 2007-05-01,206.755 727 | 2007-06-01,207.234 728 | 2007-07-01,207.603 729 | 2007-08-01,207.667 730 | 2007-09-01,208.547 731 | 2007-10-01,209.190 732 | 2007-11-01,210.834 733 | 2007-12-01,211.445 734 | 2008-01-01,212.174 735 | 2008-02-01,212.687 736 | 2008-03-01,213.448 737 | 2008-04-01,213.942 738 | 2008-05-01,215.208 739 | 2008-06-01,217.463 740 | 2008-07-01,219.016 741 | 2008-08-01,218.690 742 | 2008-09-01,218.877 743 | 2008-10-01,216.995 744 | 2008-11-01,213.153 745 | 2008-12-01,211.398 746 | 2009-01-01,211.933 747 | 2009-02-01,212.705 748 | 2009-03-01,212.495 749 | 2009-04-01,212.709 750 | 2009-05-01,213.022 751 | 2009-06-01,214.790 752 | 2009-07-01,214.726 753 | 2009-08-01,215.445 754 | 2009-09-01,215.861 755 | 2009-10-01,216.509 756 | 2009-11-01,217.234 757 | 2009-12-01,217.347 758 | 2010-01-01,217.488 759 | 2010-02-01,217.281 760 | 2010-03-01,217.353 761 | 2010-04-01,217.403 762 | 2010-05-01,217.290 763 | 2010-06-01,217.199 764 | 2010-07-01,217.605 765 | 2010-08-01,217.923 766 | 2010-09-01,218.275 767 | 2010-10-01,219.035 768 | 2010-11-01,219.590 769 | 2010-12-01,220.472 770 | 2011-01-01,221.187 771 | 2011-02-01,221.898 772 | 2011-03-01,223.046 773 | 2011-04-01,224.093 774 | 2011-05-01,224.806 775 | 2011-06-01,224.806 776 | 2011-07-01,225.395 777 | 2011-08-01,226.106 778 | 2011-09-01,226.597 779 | 2011-10-01,226.750 780 | 2011-11-01,227.169 781 | 2011-12-01,227.223 782 | 2012-01-01,227.842 783 | 2012-02-01,228.329 784 | 2012-03-01,228.807 785 | 2012-04-01,229.187 786 | 2012-05-01,228.713 787 | 2012-06-01,228.524 788 | 2012-07-01,228.590 789 | 2012-08-01,229.918 790 | 2012-09-01,231.015 791 | 2012-10-01,231.638 792 | 2012-11-01,231.249 793 | 2012-12-01,231.221 794 | 2013-01-01,231.612 795 | 2013-02-01,232.985 796 | 2013-03-01,232.299 797 | 2013-04-01,231.795 798 | 2013-05-01,231.916 799 | 2013-06-01,232.374 800 | 2013-07-01,232.889 801 | 2013-08-01,233.323 802 | 2013-09-01,233.632 803 | 2013-10-01,233.718 804 | 2013-11-01,234.121 805 | 2013-12-01,234.723 806 | 2014-01-01,235.385 807 | 2014-02-01,235.672 808 | 2014-03-01,235.978 809 | 2014-04-01,236.471 810 | 2014-05-01,236.832 811 | 2014-06-01,237.029 812 | 2014-07-01,237.424 813 | 2014-08-01,237.256 814 | 2014-09-01,237.486 815 | 2014-10-01,237.506 816 | 2014-11-01,237.118 817 | 2014-12-01,236.290 818 | 2015-01-01,234.913 819 | 2015-02-01,235.489 820 | 2015-03-01,235.989 821 | 2015-04-01,236.201 822 | 2015-05-01,236.891 823 | 2015-06-01,237.419 824 | 2015-07-01,237.876 825 | 2015-08-01,237.811 826 | 2015-09-01,237.467 827 | 2015-10-01,237.792 828 | 2015-11-01,238.153 829 | 2015-12-01,237.846 830 | 2016-01-01,238.106 831 | 2016-02-01,237.808 832 | 2016-03-01,238.078 833 | 2016-04-01,238.908 834 | 2016-05-01,239.362 835 | 2016-06-01,239.842 836 | 2016-07-01,239.898 837 | 2016-08-01,240.389 838 | 2016-09-01,241.006 839 | 2016-10-01,241.694 840 | 2016-11-01,242.199 841 | 2016-12-01,242.821 842 | 2017-01-01,244.158 843 | 2017-02-01,244.456 844 | 2017-03-01,243.752 845 | 2017-04-01,244.158 846 | 2017-05-01,243.846 847 | 2017-06-01,243.790 848 | 2017-07-01,244.048 849 | -------------------------------------------------------------------------------- /examples/GDP.csv: -------------------------------------------------------------------------------- 1 | DATE,GDP 2 | 1947-01-01,243.1 3 | 1947-04-01,246.3 4 | 1947-07-01,250.1 5 | 1947-10-01,260.3 6 | 1948-01-01,266.2 7 | 1948-04-01,272.9 8 | 1948-07-01,279.5 9 | 1948-10-01,280.7 10 | 1949-01-01,275.4 11 | 1949-04-01,271.7 12 | 1949-07-01,273.3 13 | 1949-10-01,271.0 14 | 1950-01-01,281.2 15 | 1950-04-01,290.7 16 | 1950-07-01,308.5 17 | 1950-10-01,320.3 18 | 1951-01-01,336.4 19 | 1951-04-01,344.5 20 | 1951-07-01,351.8 21 | 1951-10-01,356.6 22 | 1952-01-01,360.2 23 | 1952-04-01,361.4 24 | 1952-07-01,368.1 25 | 1952-10-01,381.2 26 | 1953-01-01,388.5 27 | 1953-04-01,392.3 28 | 1953-07-01,391.7 29 | 1953-10-01,386.5 30 | 1954-01-01,385.9 31 | 1954-04-01,386.7 32 | 1954-07-01,391.6 33 | 1954-10-01,400.3 34 | 1955-01-01,413.8 35 | 1955-04-01,422.2 36 | 1955-07-01,430.9 37 | 1955-10-01,437.8 38 | 1956-01-01,440.5 39 | 1956-04-01,446.8 40 | 1956-07-01,452.0 41 | 1956-10-01,461.3 42 | 1957-01-01,470.6 43 | 1957-04-01,472.8 44 | 1957-07-01,480.3 45 | 1957-10-01,475.7 46 | 1958-01-01,468.4 47 | 1958-04-01,472.8 48 | 1958-07-01,486.7 49 | 1958-10-01,500.4 50 | 1959-01-01,511.1 51 | 1959-04-01,524.2 52 | 1959-07-01,525.2 53 | 1959-10-01,529.3 54 | 1960-01-01,543.3 55 | 1960-04-01,542.7 56 | 1960-07-01,546.0 57 | 1960-10-01,541.1 58 | 1961-01-01,545.9 59 | 1961-04-01,557.4 60 | 1961-07-01,568.2 61 | 1961-10-01,581.6 62 | 1962-01-01,595.2 63 | 1962-04-01,602.6 64 | 1962-07-01,609.6 65 | 1962-10-01,613.1 66 | 1963-01-01,622.7 67 | 1963-04-01,631.8 68 | 1963-07-01,645.0 69 | 1963-10-01,654.8 70 | 1964-01-01,671.1 71 | 1964-04-01,680.8 72 | 1964-07-01,692.8 73 | 1964-10-01,698.4 74 | 1965-01-01,719.2 75 | 1965-04-01,732.4 76 | 1965-07-01,750.2 77 | 1965-10-01,773.1 78 | 1966-01-01,797.3 79 | 1966-04-01,807.2 80 | 1966-07-01,820.8 81 | 1966-10-01,834.9 82 | 1967-01-01,846.0 83 | 1967-04-01,851.1 84 | 1967-07-01,866.6 85 | 1967-10-01,883.2 86 | 1968-01-01,911.1 87 | 1968-04-01,936.3 88 | 1968-07-01,952.3 89 | 1968-10-01,970.1 90 | 1969-01-01,995.4 91 | 1969-04-01,1011.4 92 | 1969-07-01,1032.0 93 | 1969-10-01,1040.7 94 | 1970-01-01,1053.5 95 | 1970-04-01,1070.1 96 | 1970-07-01,1088.5 97 | 1970-10-01,1091.5 98 | 1971-01-01,1137.8 99 | 1971-04-01,1159.4 100 | 1971-07-01,1180.3 101 | 1971-10-01,1193.6 102 | 1972-01-01,1233.8 103 | 1972-04-01,1270.1 104 | 1972-07-01,1293.8 105 | 1972-10-01,1332.0 106 | 1973-01-01,1380.7 107 | 1973-04-01,1417.6 108 | 1973-07-01,1436.8 109 | 1973-10-01,1479.1 110 | 1974-01-01,1494.7 111 | 1974-04-01,1534.2 112 | 1974-07-01,1563.4 113 | 1974-10-01,1603.0 114 | 1975-01-01,1619.6 115 | 1975-04-01,1656.4 116 | 1975-07-01,1713.8 117 | 1975-10-01,1765.9 118 | 1976-01-01,1824.5 119 | 1976-04-01,1856.9 120 | 1976-07-01,1890.5 121 | 1976-10-01,1938.4 122 | 1977-01-01,1992.5 123 | 1977-04-01,2060.2 124 | 1977-07-01,2122.4 125 | 1977-10-01,2168.7 126 | 1978-01-01,2208.7 127 | 1978-04-01,2336.6 128 | 1978-07-01,2398.9 129 | 1978-10-01,2482.2 130 | 1979-01-01,2531.6 131 | 1979-04-01,2595.9 132 | 1979-07-01,2670.4 133 | 1979-10-01,2730.7 134 | 1980-01-01,2796.5 135 | 1980-04-01,2799.9 136 | 1980-07-01,2860.0 137 | 1980-10-01,2993.5 138 | 1981-01-01,3131.8 139 | 1981-04-01,3167.3 140 | 1981-07-01,3261.2 141 | 1981-10-01,3283.5 142 | 1982-01-01,3273.8 143 | 1982-04-01,3331.3 144 | 1982-07-01,3367.1 145 | 1982-10-01,3407.8 146 | 1983-01-01,3480.3 147 | 1983-04-01,3583.8 148 | 1983-07-01,3692.3 149 | 1983-10-01,3796.1 150 | 1984-01-01,3912.8 151 | 1984-04-01,4015.0 152 | 1984-07-01,4087.4 153 | 1984-10-01,4147.6 154 | 1985-01-01,4237.0 155 | 1985-04-01,4302.3 156 | 1985-07-01,4394.6 157 | 1985-10-01,4453.1 158 | 1986-01-01,4516.3 159 | 1986-04-01,4555.2 160 | 1986-07-01,4619.6 161 | 1986-10-01,4669.4 162 | 1987-01-01,4736.2 163 | 1987-04-01,4821.5 164 | 1987-07-01,4900.5 165 | 1987-10-01,5022.7 166 | 1988-01-01,5090.6 167 | 1988-04-01,5207.7 168 | 1988-07-01,5299.5 169 | 1988-10-01,5412.7 170 | 1989-01-01,5527.4 171 | 1989-04-01,5628.4 172 | 1989-07-01,5711.6 173 | 1989-10-01,5763.4 174 | 1990-01-01,5890.8 175 | 1990-04-01,5974.7 176 | 1990-07-01,6029.5 177 | 1990-10-01,6023.3 178 | 1991-01-01,6054.9 179 | 1991-04-01,6143.6 180 | 1991-07-01,6218.4 181 | 1991-10-01,6279.3 182 | 1992-01-01,6380.8 183 | 1992-04-01,6492.3 184 | 1992-07-01,6586.5 185 | 1992-10-01,6697.6 186 | 1993-01-01,6748.2 187 | 1993-04-01,6829.6 188 | 1993-07-01,6904.2 189 | 1993-10-01,7032.8 190 | 1994-01-01,7136.3 191 | 1994-04-01,7269.8 192 | 1994-07-01,7352.3 193 | 1994-10-01,7476.7 194 | 1995-01-01,7545.3 195 | 1995-04-01,7604.9 196 | 1995-07-01,7706.5 197 | 1995-10-01,7799.5 198 | 1996-01-01,7893.1 199 | 1996-04-01,8061.5 200 | 1996-07-01,8159.0 201 | 1996-10-01,8287.1 202 | 1997-01-01,8402.1 203 | 1997-04-01,8551.9 204 | 1997-07-01,8691.8 205 | 1997-10-01,8788.3 206 | 1998-01-01,8889.7 207 | 1998-04-01,8994.7 208 | 1998-07-01,9146.5 209 | 1998-10-01,9325.7 210 | 1999-01-01,9447.1 211 | 1999-04-01,9557.0 212 | 1999-07-01,9712.3 213 | 1999-10-01,9926.1 214 | 2000-01-01,10031.0 215 | 2000-04-01,10278.3 216 | 2000-07-01,10357.4 217 | 2000-10-01,10472.3 218 | 2001-01-01,10508.1 219 | 2001-04-01,10638.4 220 | 2001-07-01,10639.5 221 | 2001-10-01,10701.3 222 | 2002-01-01,10834.4 223 | 2002-04-01,10934.8 224 | 2002-07-01,11037.1 225 | 2002-10-01,11103.8 226 | 2003-01-01,11230.1 227 | 2003-04-01,11370.7 228 | 2003-07-01,11625.1 229 | 2003-10-01,11816.8 230 | 2004-01-01,11988.4 231 | 2004-04-01,12181.4 232 | 2004-07-01,12367.7 233 | 2004-10-01,12562.2 234 | 2005-01-01,12813.7 235 | 2005-04-01,12974.1 236 | 2005-07-01,13205.4 237 | 2005-10-01,13381.6 238 | 2006-01-01,13648.9 239 | 2006-04-01,13799.8 240 | 2006-07-01,13908.5 241 | 2006-10-01,14066.4 242 | 2007-01-01,14233.2 243 | 2007-04-01,14422.3 244 | 2007-07-01,14569.7 245 | 2007-10-01,14685.3 246 | 2008-01-01,14668.4 247 | 2008-04-01,14813.0 248 | 2008-07-01,14843.0 249 | 2008-10-01,14549.9 250 | 2009-01-01,14383.9 251 | 2009-04-01,14340.4 252 | 2009-07-01,14384.1 253 | 2009-10-01,14566.5 254 | 2010-01-01,14681.1 255 | 2010-04-01,14888.6 256 | 2010-07-01,15057.7 257 | 2010-10-01,15230.2 258 | 2011-01-01,15238.4 259 | 2011-04-01,15460.9 260 | 2011-07-01,15587.1 261 | 2011-10-01,15785.3 262 | 2012-01-01,15973.9 263 | 2012-04-01,16121.9 264 | 2012-07-01,16227.9 265 | 2012-10-01,16297.3 266 | 2013-01-01,16475.4 267 | 2013-04-01,16541.4 268 | 2013-07-01,16749.3 269 | 2013-10-01,16999.9 270 | 2014-01-01,17025.2 271 | 2014-04-01,17285.6 272 | 2014-07-01,17569.4 273 | 2014-10-01,17692.2 274 | 2015-01-01,17783.6 275 | 2015-04-01,17998.3 276 | 2015-07-01,18141.9 277 | 2015-10-01,18222.8 278 | 2016-01-01,18281.6 279 | 2016-04-01,18450.1 280 | 2016-07-01,18675.3 281 | 2016-10-01,18869.4 282 | 2017-01-01,19027.6 283 | -------------------------------------------------------------------------------- /examples/USREC.csv: -------------------------------------------------------------------------------- 1 | DATE,USREC 2 | 1854-12-01,1 3 | 1855-01-01,0 4 | 1855-02-01,0 5 | 1855-03-01,0 6 | 1855-04-01,0 7 | 1855-05-01,0 8 | 1855-06-01,0 9 | 1855-07-01,0 10 | 1855-08-01,0 11 | 1855-09-01,0 12 | 1855-10-01,0 13 | 1855-11-01,0 14 | 1855-12-01,0 15 | 1856-01-01,0 16 | 1856-02-01,0 17 | 1856-03-01,0 18 | 1856-04-01,0 19 | 1856-05-01,0 20 | 1856-06-01,0 21 | 1856-07-01,0 22 | 1856-08-01,0 23 | 1856-09-01,0 24 | 1856-10-01,0 25 | 1856-11-01,0 26 | 1856-12-01,0 27 | 1857-01-01,0 28 | 1857-02-01,0 29 | 1857-03-01,0 30 | 1857-04-01,0 31 | 1857-05-01,0 32 | 1857-06-01,0 33 | 1857-07-01,1 34 | 1857-08-01,1 35 | 1857-09-01,1 36 | 1857-10-01,1 37 | 1857-11-01,1 38 | 1857-12-01,1 39 | 1858-01-01,1 40 | 1858-02-01,1 41 | 1858-03-01,1 42 | 1858-04-01,1 43 | 1858-05-01,1 44 | 1858-06-01,1 45 | 1858-07-01,1 46 | 1858-08-01,1 47 | 1858-09-01,1 48 | 1858-10-01,1 49 | 1858-11-01,1 50 | 1858-12-01,1 51 | 1859-01-01,0 52 | 1859-02-01,0 53 | 1859-03-01,0 54 | 1859-04-01,0 55 | 1859-05-01,0 56 | 1859-06-01,0 57 | 1859-07-01,0 58 | 1859-08-01,0 59 | 1859-09-01,0 60 | 1859-10-01,0 61 | 1859-11-01,0 62 | 1859-12-01,0 63 | 1860-01-01,0 64 | 1860-02-01,0 65 | 1860-03-01,0 66 | 1860-04-01,0 67 | 1860-05-01,0 68 | 1860-06-01,0 69 | 1860-07-01,0 70 | 1860-08-01,0 71 | 1860-09-01,0 72 | 1860-10-01,0 73 | 1860-11-01,1 74 | 1860-12-01,1 75 | 1861-01-01,1 76 | 1861-02-01,1 77 | 1861-03-01,1 78 | 1861-04-01,1 79 | 1861-05-01,1 80 | 1861-06-01,1 81 | 1861-07-01,0 82 | 1861-08-01,0 83 | 1861-09-01,0 84 | 1861-10-01,0 85 | 1861-11-01,0 86 | 1861-12-01,0 87 | 1862-01-01,0 88 | 1862-02-01,0 89 | 1862-03-01,0 90 | 1862-04-01,0 91 | 1862-05-01,0 92 | 1862-06-01,0 93 | 1862-07-01,0 94 | 1862-08-01,0 95 | 1862-09-01,0 96 | 1862-10-01,0 97 | 1862-11-01,0 98 | 1862-12-01,0 99 | 1863-01-01,0 100 | 1863-02-01,0 101 | 1863-03-01,0 102 | 1863-04-01,0 103 | 1863-05-01,0 104 | 1863-06-01,0 105 | 1863-07-01,0 106 | 1863-08-01,0 107 | 1863-09-01,0 108 | 1863-10-01,0 109 | 1863-11-01,0 110 | 1863-12-01,0 111 | 1864-01-01,0 112 | 1864-02-01,0 113 | 1864-03-01,0 114 | 1864-04-01,0 115 | 1864-05-01,0 116 | 1864-06-01,0 117 | 1864-07-01,0 118 | 1864-08-01,0 119 | 1864-09-01,0 120 | 1864-10-01,0 121 | 1864-11-01,0 122 | 1864-12-01,0 123 | 1865-01-01,0 124 | 1865-02-01,0 125 | 1865-03-01,0 126 | 1865-04-01,0 127 | 1865-05-01,1 128 | 1865-06-01,1 129 | 1865-07-01,1 130 | 1865-08-01,1 131 | 1865-09-01,1 132 | 1865-10-01,1 133 | 1865-11-01,1 134 | 1865-12-01,1 135 | 1866-01-01,1 136 | 1866-02-01,1 137 | 1866-03-01,1 138 | 1866-04-01,1 139 | 1866-05-01,1 140 | 1866-06-01,1 141 | 1866-07-01,1 142 | 1866-08-01,1 143 | 1866-09-01,1 144 | 1866-10-01,1 145 | 1866-11-01,1 146 | 1866-12-01,1 147 | 1867-01-01,1 148 | 1867-02-01,1 149 | 1867-03-01,1 150 | 1867-04-01,1 151 | 1867-05-01,1 152 | 1867-06-01,1 153 | 1867-07-01,1 154 | 1867-08-01,1 155 | 1867-09-01,1 156 | 1867-10-01,1 157 | 1867-11-01,1 158 | 1867-12-01,1 159 | 1868-01-01,0 160 | 1868-02-01,0 161 | 1868-03-01,0 162 | 1868-04-01,0 163 | 1868-05-01,0 164 | 1868-06-01,0 165 | 1868-07-01,0 166 | 1868-08-01,0 167 | 1868-09-01,0 168 | 1868-10-01,0 169 | 1868-11-01,0 170 | 1868-12-01,0 171 | 1869-01-01,0 172 | 1869-02-01,0 173 | 1869-03-01,0 174 | 1869-04-01,0 175 | 1869-05-01,0 176 | 1869-06-01,0 177 | 1869-07-01,1 178 | 1869-08-01,1 179 | 1869-09-01,1 180 | 1869-10-01,1 181 | 1869-11-01,1 182 | 1869-12-01,1 183 | 1870-01-01,1 184 | 1870-02-01,1 185 | 1870-03-01,1 186 | 1870-04-01,1 187 | 1870-05-01,1 188 | 1870-06-01,1 189 | 1870-07-01,1 190 | 1870-08-01,1 191 | 1870-09-01,1 192 | 1870-10-01,1 193 | 1870-11-01,1 194 | 1870-12-01,1 195 | 1871-01-01,0 196 | 1871-02-01,0 197 | 1871-03-01,0 198 | 1871-04-01,0 199 | 1871-05-01,0 200 | 1871-06-01,0 201 | 1871-07-01,0 202 | 1871-08-01,0 203 | 1871-09-01,0 204 | 1871-10-01,0 205 | 1871-11-01,0 206 | 1871-12-01,0 207 | 1872-01-01,0 208 | 1872-02-01,0 209 | 1872-03-01,0 210 | 1872-04-01,0 211 | 1872-05-01,0 212 | 1872-06-01,0 213 | 1872-07-01,0 214 | 1872-08-01,0 215 | 1872-09-01,0 216 | 1872-10-01,0 217 | 1872-11-01,0 218 | 1872-12-01,0 219 | 1873-01-01,0 220 | 1873-02-01,0 221 | 1873-03-01,0 222 | 1873-04-01,0 223 | 1873-05-01,0 224 | 1873-06-01,0 225 | 1873-07-01,0 226 | 1873-08-01,0 227 | 1873-09-01,0 228 | 1873-10-01,0 229 | 1873-11-01,1 230 | 1873-12-01,1 231 | 1874-01-01,1 232 | 1874-02-01,1 233 | 1874-03-01,1 234 | 1874-04-01,1 235 | 1874-05-01,1 236 | 1874-06-01,1 237 | 1874-07-01,1 238 | 1874-08-01,1 239 | 1874-09-01,1 240 | 1874-10-01,1 241 | 1874-11-01,1 242 | 1874-12-01,1 243 | 1875-01-01,1 244 | 1875-02-01,1 245 | 1875-03-01,1 246 | 1875-04-01,1 247 | 1875-05-01,1 248 | 1875-06-01,1 249 | 1875-07-01,1 250 | 1875-08-01,1 251 | 1875-09-01,1 252 | 1875-10-01,1 253 | 1875-11-01,1 254 | 1875-12-01,1 255 | 1876-01-01,1 256 | 1876-02-01,1 257 | 1876-03-01,1 258 | 1876-04-01,1 259 | 1876-05-01,1 260 | 1876-06-01,1 261 | 1876-07-01,1 262 | 1876-08-01,1 263 | 1876-09-01,1 264 | 1876-10-01,1 265 | 1876-11-01,1 266 | 1876-12-01,1 267 | 1877-01-01,1 268 | 1877-02-01,1 269 | 1877-03-01,1 270 | 1877-04-01,1 271 | 1877-05-01,1 272 | 1877-06-01,1 273 | 1877-07-01,1 274 | 1877-08-01,1 275 | 1877-09-01,1 276 | 1877-10-01,1 277 | 1877-11-01,1 278 | 1877-12-01,1 279 | 1878-01-01,1 280 | 1878-02-01,1 281 | 1878-03-01,1 282 | 1878-04-01,1 283 | 1878-05-01,1 284 | 1878-06-01,1 285 | 1878-07-01,1 286 | 1878-08-01,1 287 | 1878-09-01,1 288 | 1878-10-01,1 289 | 1878-11-01,1 290 | 1878-12-01,1 291 | 1879-01-01,1 292 | 1879-02-01,1 293 | 1879-03-01,1 294 | 1879-04-01,0 295 | 1879-05-01,0 296 | 1879-06-01,0 297 | 1879-07-01,0 298 | 1879-08-01,0 299 | 1879-09-01,0 300 | 1879-10-01,0 301 | 1879-11-01,0 302 | 1879-12-01,0 303 | 1880-01-01,0 304 | 1880-02-01,0 305 | 1880-03-01,0 306 | 1880-04-01,0 307 | 1880-05-01,0 308 | 1880-06-01,0 309 | 1880-07-01,0 310 | 1880-08-01,0 311 | 1880-09-01,0 312 | 1880-10-01,0 313 | 1880-11-01,0 314 | 1880-12-01,0 315 | 1881-01-01,0 316 | 1881-02-01,0 317 | 1881-03-01,0 318 | 1881-04-01,0 319 | 1881-05-01,0 320 | 1881-06-01,0 321 | 1881-07-01,0 322 | 1881-08-01,0 323 | 1881-09-01,0 324 | 1881-10-01,0 325 | 1881-11-01,0 326 | 1881-12-01,0 327 | 1882-01-01,0 328 | 1882-02-01,0 329 | 1882-03-01,0 330 | 1882-04-01,1 331 | 1882-05-01,1 332 | 1882-06-01,1 333 | 1882-07-01,1 334 | 1882-08-01,1 335 | 1882-09-01,1 336 | 1882-10-01,1 337 | 1882-11-01,1 338 | 1882-12-01,1 339 | 1883-01-01,1 340 | 1883-02-01,1 341 | 1883-03-01,1 342 | 1883-04-01,1 343 | 1883-05-01,1 344 | 1883-06-01,1 345 | 1883-07-01,1 346 | 1883-08-01,1 347 | 1883-09-01,1 348 | 1883-10-01,1 349 | 1883-11-01,1 350 | 1883-12-01,1 351 | 1884-01-01,1 352 | 1884-02-01,1 353 | 1884-03-01,1 354 | 1884-04-01,1 355 | 1884-05-01,1 356 | 1884-06-01,1 357 | 1884-07-01,1 358 | 1884-08-01,1 359 | 1884-09-01,1 360 | 1884-10-01,1 361 | 1884-11-01,1 362 | 1884-12-01,1 363 | 1885-01-01,1 364 | 1885-02-01,1 365 | 1885-03-01,1 366 | 1885-04-01,1 367 | 1885-05-01,1 368 | 1885-06-01,0 369 | 1885-07-01,0 370 | 1885-08-01,0 371 | 1885-09-01,0 372 | 1885-10-01,0 373 | 1885-11-01,0 374 | 1885-12-01,0 375 | 1886-01-01,0 376 | 1886-02-01,0 377 | 1886-03-01,0 378 | 1886-04-01,0 379 | 1886-05-01,0 380 | 1886-06-01,0 381 | 1886-07-01,0 382 | 1886-08-01,0 383 | 1886-09-01,0 384 | 1886-10-01,0 385 | 1886-11-01,0 386 | 1886-12-01,0 387 | 1887-01-01,0 388 | 1887-02-01,0 389 | 1887-03-01,0 390 | 1887-04-01,1 391 | 1887-05-01,1 392 | 1887-06-01,1 393 | 1887-07-01,1 394 | 1887-08-01,1 395 | 1887-09-01,1 396 | 1887-10-01,1 397 | 1887-11-01,1 398 | 1887-12-01,1 399 | 1888-01-01,1 400 | 1888-02-01,1 401 | 1888-03-01,1 402 | 1888-04-01,1 403 | 1888-05-01,0 404 | 1888-06-01,0 405 | 1888-07-01,0 406 | 1888-08-01,0 407 | 1888-09-01,0 408 | 1888-10-01,0 409 | 1888-11-01,0 410 | 1888-12-01,0 411 | 1889-01-01,0 412 | 1889-02-01,0 413 | 1889-03-01,0 414 | 1889-04-01,0 415 | 1889-05-01,0 416 | 1889-06-01,0 417 | 1889-07-01,0 418 | 1889-08-01,0 419 | 1889-09-01,0 420 | 1889-10-01,0 421 | 1889-11-01,0 422 | 1889-12-01,0 423 | 1890-01-01,0 424 | 1890-02-01,0 425 | 1890-03-01,0 426 | 1890-04-01,0 427 | 1890-05-01,0 428 | 1890-06-01,0 429 | 1890-07-01,0 430 | 1890-08-01,1 431 | 1890-09-01,1 432 | 1890-10-01,1 433 | 1890-11-01,1 434 | 1890-12-01,1 435 | 1891-01-01,1 436 | 1891-02-01,1 437 | 1891-03-01,1 438 | 1891-04-01,1 439 | 1891-05-01,1 440 | 1891-06-01,0 441 | 1891-07-01,0 442 | 1891-08-01,0 443 | 1891-09-01,0 444 | 1891-10-01,0 445 | 1891-11-01,0 446 | 1891-12-01,0 447 | 1892-01-01,0 448 | 1892-02-01,0 449 | 1892-03-01,0 450 | 1892-04-01,0 451 | 1892-05-01,0 452 | 1892-06-01,0 453 | 1892-07-01,0 454 | 1892-08-01,0 455 | 1892-09-01,0 456 | 1892-10-01,0 457 | 1892-11-01,0 458 | 1892-12-01,0 459 | 1893-01-01,0 460 | 1893-02-01,1 461 | 1893-03-01,1 462 | 1893-04-01,1 463 | 1893-05-01,1 464 | 1893-06-01,1 465 | 1893-07-01,1 466 | 1893-08-01,1 467 | 1893-09-01,1 468 | 1893-10-01,1 469 | 1893-11-01,1 470 | 1893-12-01,1 471 | 1894-01-01,1 472 | 1894-02-01,1 473 | 1894-03-01,1 474 | 1894-04-01,1 475 | 1894-05-01,1 476 | 1894-06-01,1 477 | 1894-07-01,0 478 | 1894-08-01,0 479 | 1894-09-01,0 480 | 1894-10-01,0 481 | 1894-11-01,0 482 | 1894-12-01,0 483 | 1895-01-01,0 484 | 1895-02-01,0 485 | 1895-03-01,0 486 | 1895-04-01,0 487 | 1895-05-01,0 488 | 1895-06-01,0 489 | 1895-07-01,0 490 | 1895-08-01,0 491 | 1895-09-01,0 492 | 1895-10-01,0 493 | 1895-11-01,0 494 | 1895-12-01,0 495 | 1896-01-01,1 496 | 1896-02-01,1 497 | 1896-03-01,1 498 | 1896-04-01,1 499 | 1896-05-01,1 500 | 1896-06-01,1 501 | 1896-07-01,1 502 | 1896-08-01,1 503 | 1896-09-01,1 504 | 1896-10-01,1 505 | 1896-11-01,1 506 | 1896-12-01,1 507 | 1897-01-01,1 508 | 1897-02-01,1 509 | 1897-03-01,1 510 | 1897-04-01,1 511 | 1897-05-01,1 512 | 1897-06-01,1 513 | 1897-07-01,0 514 | 1897-08-01,0 515 | 1897-09-01,0 516 | 1897-10-01,0 517 | 1897-11-01,0 518 | 1897-12-01,0 519 | 1898-01-01,0 520 | 1898-02-01,0 521 | 1898-03-01,0 522 | 1898-04-01,0 523 | 1898-05-01,0 524 | 1898-06-01,0 525 | 1898-07-01,0 526 | 1898-08-01,0 527 | 1898-09-01,0 528 | 1898-10-01,0 529 | 1898-11-01,0 530 | 1898-12-01,0 531 | 1899-01-01,0 532 | 1899-02-01,0 533 | 1899-03-01,0 534 | 1899-04-01,0 535 | 1899-05-01,0 536 | 1899-06-01,0 537 | 1899-07-01,1 538 | 1899-08-01,1 539 | 1899-09-01,1 540 | 1899-10-01,1 541 | 1899-11-01,1 542 | 1899-12-01,1 543 | 1900-01-01,1 544 | 1900-02-01,1 545 | 1900-03-01,1 546 | 1900-04-01,1 547 | 1900-05-01,1 548 | 1900-06-01,1 549 | 1900-07-01,1 550 | 1900-08-01,1 551 | 1900-09-01,1 552 | 1900-10-01,1 553 | 1900-11-01,1 554 | 1900-12-01,1 555 | 1901-01-01,0 556 | 1901-02-01,0 557 | 1901-03-01,0 558 | 1901-04-01,0 559 | 1901-05-01,0 560 | 1901-06-01,0 561 | 1901-07-01,0 562 | 1901-08-01,0 563 | 1901-09-01,0 564 | 1901-10-01,0 565 | 1901-11-01,0 566 | 1901-12-01,0 567 | 1902-01-01,0 568 | 1902-02-01,0 569 | 1902-03-01,0 570 | 1902-04-01,0 571 | 1902-05-01,0 572 | 1902-06-01,0 573 | 1902-07-01,0 574 | 1902-08-01,0 575 | 1902-09-01,0 576 | 1902-10-01,1 577 | 1902-11-01,1 578 | 1902-12-01,1 579 | 1903-01-01,1 580 | 1903-02-01,1 581 | 1903-03-01,1 582 | 1903-04-01,1 583 | 1903-05-01,1 584 | 1903-06-01,1 585 | 1903-07-01,1 586 | 1903-08-01,1 587 | 1903-09-01,1 588 | 1903-10-01,1 589 | 1903-11-01,1 590 | 1903-12-01,1 591 | 1904-01-01,1 592 | 1904-02-01,1 593 | 1904-03-01,1 594 | 1904-04-01,1 595 | 1904-05-01,1 596 | 1904-06-01,1 597 | 1904-07-01,1 598 | 1904-08-01,1 599 | 1904-09-01,0 600 | 1904-10-01,0 601 | 1904-11-01,0 602 | 1904-12-01,0 603 | 1905-01-01,0 604 | 1905-02-01,0 605 | 1905-03-01,0 606 | 1905-04-01,0 607 | 1905-05-01,0 608 | 1905-06-01,0 609 | 1905-07-01,0 610 | 1905-08-01,0 611 | 1905-09-01,0 612 | 1905-10-01,0 613 | 1905-11-01,0 614 | 1905-12-01,0 615 | 1906-01-01,0 616 | 1906-02-01,0 617 | 1906-03-01,0 618 | 1906-04-01,0 619 | 1906-05-01,0 620 | 1906-06-01,0 621 | 1906-07-01,0 622 | 1906-08-01,0 623 | 1906-09-01,0 624 | 1906-10-01,0 625 | 1906-11-01,0 626 | 1906-12-01,0 627 | 1907-01-01,0 628 | 1907-02-01,0 629 | 1907-03-01,0 630 | 1907-04-01,0 631 | 1907-05-01,0 632 | 1907-06-01,1 633 | 1907-07-01,1 634 | 1907-08-01,1 635 | 1907-09-01,1 636 | 1907-10-01,1 637 | 1907-11-01,1 638 | 1907-12-01,1 639 | 1908-01-01,1 640 | 1908-02-01,1 641 | 1908-03-01,1 642 | 1908-04-01,1 643 | 1908-05-01,1 644 | 1908-06-01,1 645 | 1908-07-01,0 646 | 1908-08-01,0 647 | 1908-09-01,0 648 | 1908-10-01,0 649 | 1908-11-01,0 650 | 1908-12-01,0 651 | 1909-01-01,0 652 | 1909-02-01,0 653 | 1909-03-01,0 654 | 1909-04-01,0 655 | 1909-05-01,0 656 | 1909-06-01,0 657 | 1909-07-01,0 658 | 1909-08-01,0 659 | 1909-09-01,0 660 | 1909-10-01,0 661 | 1909-11-01,0 662 | 1909-12-01,0 663 | 1910-01-01,0 664 | 1910-02-01,1 665 | 1910-03-01,1 666 | 1910-04-01,1 667 | 1910-05-01,1 668 | 1910-06-01,1 669 | 1910-07-01,1 670 | 1910-08-01,1 671 | 1910-09-01,1 672 | 1910-10-01,1 673 | 1910-11-01,1 674 | 1910-12-01,1 675 | 1911-01-01,1 676 | 1911-02-01,1 677 | 1911-03-01,1 678 | 1911-04-01,1 679 | 1911-05-01,1 680 | 1911-06-01,1 681 | 1911-07-01,1 682 | 1911-08-01,1 683 | 1911-09-01,1 684 | 1911-10-01,1 685 | 1911-11-01,1 686 | 1911-12-01,1 687 | 1912-01-01,1 688 | 1912-02-01,0 689 | 1912-03-01,0 690 | 1912-04-01,0 691 | 1912-05-01,0 692 | 1912-06-01,0 693 | 1912-07-01,0 694 | 1912-08-01,0 695 | 1912-09-01,0 696 | 1912-10-01,0 697 | 1912-11-01,0 698 | 1912-12-01,0 699 | 1913-01-01,0 700 | 1913-02-01,1 701 | 1913-03-01,1 702 | 1913-04-01,1 703 | 1913-05-01,1 704 | 1913-06-01,1 705 | 1913-07-01,1 706 | 1913-08-01,1 707 | 1913-09-01,1 708 | 1913-10-01,1 709 | 1913-11-01,1 710 | 1913-12-01,1 711 | 1914-01-01,1 712 | 1914-02-01,1 713 | 1914-03-01,1 714 | 1914-04-01,1 715 | 1914-05-01,1 716 | 1914-06-01,1 717 | 1914-07-01,1 718 | 1914-08-01,1 719 | 1914-09-01,1 720 | 1914-10-01,1 721 | 1914-11-01,1 722 | 1914-12-01,1 723 | 1915-01-01,0 724 | 1915-02-01,0 725 | 1915-03-01,0 726 | 1915-04-01,0 727 | 1915-05-01,0 728 | 1915-06-01,0 729 | 1915-07-01,0 730 | 1915-08-01,0 731 | 1915-09-01,0 732 | 1915-10-01,0 733 | 1915-11-01,0 734 | 1915-12-01,0 735 | 1916-01-01,0 736 | 1916-02-01,0 737 | 1916-03-01,0 738 | 1916-04-01,0 739 | 1916-05-01,0 740 | 1916-06-01,0 741 | 1916-07-01,0 742 | 1916-08-01,0 743 | 1916-09-01,0 744 | 1916-10-01,0 745 | 1916-11-01,0 746 | 1916-12-01,0 747 | 1917-01-01,0 748 | 1917-02-01,0 749 | 1917-03-01,0 750 | 1917-04-01,0 751 | 1917-05-01,0 752 | 1917-06-01,0 753 | 1917-07-01,0 754 | 1917-08-01,0 755 | 1917-09-01,0 756 | 1917-10-01,0 757 | 1917-11-01,0 758 | 1917-12-01,0 759 | 1918-01-01,0 760 | 1918-02-01,0 761 | 1918-03-01,0 762 | 1918-04-01,0 763 | 1918-05-01,0 764 | 1918-06-01,0 765 | 1918-07-01,0 766 | 1918-08-01,0 767 | 1918-09-01,1 768 | 1918-10-01,1 769 | 1918-11-01,1 770 | 1918-12-01,1 771 | 1919-01-01,1 772 | 1919-02-01,1 773 | 1919-03-01,1 774 | 1919-04-01,0 775 | 1919-05-01,0 776 | 1919-06-01,0 777 | 1919-07-01,0 778 | 1919-08-01,0 779 | 1919-09-01,0 780 | 1919-10-01,0 781 | 1919-11-01,0 782 | 1919-12-01,0 783 | 1920-01-01,0 784 | 1920-02-01,1 785 | 1920-03-01,1 786 | 1920-04-01,1 787 | 1920-05-01,1 788 | 1920-06-01,1 789 | 1920-07-01,1 790 | 1920-08-01,1 791 | 1920-09-01,1 792 | 1920-10-01,1 793 | 1920-11-01,1 794 | 1920-12-01,1 795 | 1921-01-01,1 796 | 1921-02-01,1 797 | 1921-03-01,1 798 | 1921-04-01,1 799 | 1921-05-01,1 800 | 1921-06-01,1 801 | 1921-07-01,1 802 | 1921-08-01,0 803 | 1921-09-01,0 804 | 1921-10-01,0 805 | 1921-11-01,0 806 | 1921-12-01,0 807 | 1922-01-01,0 808 | 1922-02-01,0 809 | 1922-03-01,0 810 | 1922-04-01,0 811 | 1922-05-01,0 812 | 1922-06-01,0 813 | 1922-07-01,0 814 | 1922-08-01,0 815 | 1922-09-01,0 816 | 1922-10-01,0 817 | 1922-11-01,0 818 | 1922-12-01,0 819 | 1923-01-01,0 820 | 1923-02-01,0 821 | 1923-03-01,0 822 | 1923-04-01,0 823 | 1923-05-01,0 824 | 1923-06-01,1 825 | 1923-07-01,1 826 | 1923-08-01,1 827 | 1923-09-01,1 828 | 1923-10-01,1 829 | 1923-11-01,1 830 | 1923-12-01,1 831 | 1924-01-01,1 832 | 1924-02-01,1 833 | 1924-03-01,1 834 | 1924-04-01,1 835 | 1924-05-01,1 836 | 1924-06-01,1 837 | 1924-07-01,1 838 | 1924-08-01,0 839 | 1924-09-01,0 840 | 1924-10-01,0 841 | 1924-11-01,0 842 | 1924-12-01,0 843 | 1925-01-01,0 844 | 1925-02-01,0 845 | 1925-03-01,0 846 | 1925-04-01,0 847 | 1925-05-01,0 848 | 1925-06-01,0 849 | 1925-07-01,0 850 | 1925-08-01,0 851 | 1925-09-01,0 852 | 1925-10-01,0 853 | 1925-11-01,0 854 | 1925-12-01,0 855 | 1926-01-01,0 856 | 1926-02-01,0 857 | 1926-03-01,0 858 | 1926-04-01,0 859 | 1926-05-01,0 860 | 1926-06-01,0 861 | 1926-07-01,0 862 | 1926-08-01,0 863 | 1926-09-01,0 864 | 1926-10-01,0 865 | 1926-11-01,1 866 | 1926-12-01,1 867 | 1927-01-01,1 868 | 1927-02-01,1 869 | 1927-03-01,1 870 | 1927-04-01,1 871 | 1927-05-01,1 872 | 1927-06-01,1 873 | 1927-07-01,1 874 | 1927-08-01,1 875 | 1927-09-01,1 876 | 1927-10-01,1 877 | 1927-11-01,1 878 | 1927-12-01,0 879 | 1928-01-01,0 880 | 1928-02-01,0 881 | 1928-03-01,0 882 | 1928-04-01,0 883 | 1928-05-01,0 884 | 1928-06-01,0 885 | 1928-07-01,0 886 | 1928-08-01,0 887 | 1928-09-01,0 888 | 1928-10-01,0 889 | 1928-11-01,0 890 | 1928-12-01,0 891 | 1929-01-01,0 892 | 1929-02-01,0 893 | 1929-03-01,0 894 | 1929-04-01,0 895 | 1929-05-01,0 896 | 1929-06-01,0 897 | 1929-07-01,0 898 | 1929-08-01,0 899 | 1929-09-01,1 900 | 1929-10-01,1 901 | 1929-11-01,1 902 | 1929-12-01,1 903 | 1930-01-01,1 904 | 1930-02-01,1 905 | 1930-03-01,1 906 | 1930-04-01,1 907 | 1930-05-01,1 908 | 1930-06-01,1 909 | 1930-07-01,1 910 | 1930-08-01,1 911 | 1930-09-01,1 912 | 1930-10-01,1 913 | 1930-11-01,1 914 | 1930-12-01,1 915 | 1931-01-01,1 916 | 1931-02-01,1 917 | 1931-03-01,1 918 | 1931-04-01,1 919 | 1931-05-01,1 920 | 1931-06-01,1 921 | 1931-07-01,1 922 | 1931-08-01,1 923 | 1931-09-01,1 924 | 1931-10-01,1 925 | 1931-11-01,1 926 | 1931-12-01,1 927 | 1932-01-01,1 928 | 1932-02-01,1 929 | 1932-03-01,1 930 | 1932-04-01,1 931 | 1932-05-01,1 932 | 1932-06-01,1 933 | 1932-07-01,1 934 | 1932-08-01,1 935 | 1932-09-01,1 936 | 1932-10-01,1 937 | 1932-11-01,1 938 | 1932-12-01,1 939 | 1933-01-01,1 940 | 1933-02-01,1 941 | 1933-03-01,1 942 | 1933-04-01,0 943 | 1933-05-01,0 944 | 1933-06-01,0 945 | 1933-07-01,0 946 | 1933-08-01,0 947 | 1933-09-01,0 948 | 1933-10-01,0 949 | 1933-11-01,0 950 | 1933-12-01,0 951 | 1934-01-01,0 952 | 1934-02-01,0 953 | 1934-03-01,0 954 | 1934-04-01,0 955 | 1934-05-01,0 956 | 1934-06-01,0 957 | 1934-07-01,0 958 | 1934-08-01,0 959 | 1934-09-01,0 960 | 1934-10-01,0 961 | 1934-11-01,0 962 | 1934-12-01,0 963 | 1935-01-01,0 964 | 1935-02-01,0 965 | 1935-03-01,0 966 | 1935-04-01,0 967 | 1935-05-01,0 968 | 1935-06-01,0 969 | 1935-07-01,0 970 | 1935-08-01,0 971 | 1935-09-01,0 972 | 1935-10-01,0 973 | 1935-11-01,0 974 | 1935-12-01,0 975 | 1936-01-01,0 976 | 1936-02-01,0 977 | 1936-03-01,0 978 | 1936-04-01,0 979 | 1936-05-01,0 980 | 1936-06-01,0 981 | 1936-07-01,0 982 | 1936-08-01,0 983 | 1936-09-01,0 984 | 1936-10-01,0 985 | 1936-11-01,0 986 | 1936-12-01,0 987 | 1937-01-01,0 988 | 1937-02-01,0 989 | 1937-03-01,0 990 | 1937-04-01,0 991 | 1937-05-01,0 992 | 1937-06-01,1 993 | 1937-07-01,1 994 | 1937-08-01,1 995 | 1937-09-01,1 996 | 1937-10-01,1 997 | 1937-11-01,1 998 | 1937-12-01,1 999 | 1938-01-01,1 1000 | 1938-02-01,1 1001 | 1938-03-01,1 1002 | 1938-04-01,1 1003 | 1938-05-01,1 1004 | 1938-06-01,1 1005 | 1938-07-01,0 1006 | 1938-08-01,0 1007 | 1938-09-01,0 1008 | 1938-10-01,0 1009 | 1938-11-01,0 1010 | 1938-12-01,0 1011 | 1939-01-01,0 1012 | 1939-02-01,0 1013 | 1939-03-01,0 1014 | 1939-04-01,0 1015 | 1939-05-01,0 1016 | 1939-06-01,0 1017 | 1939-07-01,0 1018 | 1939-08-01,0 1019 | 1939-09-01,0 1020 | 1939-10-01,0 1021 | 1939-11-01,0 1022 | 1939-12-01,0 1023 | 1940-01-01,0 1024 | 1940-02-01,0 1025 | 1940-03-01,0 1026 | 1940-04-01,0 1027 | 1940-05-01,0 1028 | 1940-06-01,0 1029 | 1940-07-01,0 1030 | 1940-08-01,0 1031 | 1940-09-01,0 1032 | 1940-10-01,0 1033 | 1940-11-01,0 1034 | 1940-12-01,0 1035 | 1941-01-01,0 1036 | 1941-02-01,0 1037 | 1941-03-01,0 1038 | 1941-04-01,0 1039 | 1941-05-01,0 1040 | 1941-06-01,0 1041 | 1941-07-01,0 1042 | 1941-08-01,0 1043 | 1941-09-01,0 1044 | 1941-10-01,0 1045 | 1941-11-01,0 1046 | 1941-12-01,0 1047 | 1942-01-01,0 1048 | 1942-02-01,0 1049 | 1942-03-01,0 1050 | 1942-04-01,0 1051 | 1942-05-01,0 1052 | 1942-06-01,0 1053 | 1942-07-01,0 1054 | 1942-08-01,0 1055 | 1942-09-01,0 1056 | 1942-10-01,0 1057 | 1942-11-01,0 1058 | 1942-12-01,0 1059 | 1943-01-01,0 1060 | 1943-02-01,0 1061 | 1943-03-01,0 1062 | 1943-04-01,0 1063 | 1943-05-01,0 1064 | 1943-06-01,0 1065 | 1943-07-01,0 1066 | 1943-08-01,0 1067 | 1943-09-01,0 1068 | 1943-10-01,0 1069 | 1943-11-01,0 1070 | 1943-12-01,0 1071 | 1944-01-01,0 1072 | 1944-02-01,0 1073 | 1944-03-01,0 1074 | 1944-04-01,0 1075 | 1944-05-01,0 1076 | 1944-06-01,0 1077 | 1944-07-01,0 1078 | 1944-08-01,0 1079 | 1944-09-01,0 1080 | 1944-10-01,0 1081 | 1944-11-01,0 1082 | 1944-12-01,0 1083 | 1945-01-01,0 1084 | 1945-02-01,0 1085 | 1945-03-01,1 1086 | 1945-04-01,1 1087 | 1945-05-01,1 1088 | 1945-06-01,1 1089 | 1945-07-01,1 1090 | 1945-08-01,1 1091 | 1945-09-01,1 1092 | 1945-10-01,1 1093 | 1945-11-01,0 1094 | 1945-12-01,0 1095 | 1946-01-01,0 1096 | 1946-02-01,0 1097 | 1946-03-01,0 1098 | 1946-04-01,0 1099 | 1946-05-01,0 1100 | 1946-06-01,0 1101 | 1946-07-01,0 1102 | 1946-08-01,0 1103 | 1946-09-01,0 1104 | 1946-10-01,0 1105 | 1946-11-01,0 1106 | 1946-12-01,0 1107 | 1947-01-01,0 1108 | 1947-02-01,0 1109 | 1947-03-01,0 1110 | 1947-04-01,0 1111 | 1947-05-01,0 1112 | 1947-06-01,0 1113 | 1947-07-01,0 1114 | 1947-08-01,0 1115 | 1947-09-01,0 1116 | 1947-10-01,0 1117 | 1947-11-01,0 1118 | 1947-12-01,0 1119 | 1948-01-01,0 1120 | 1948-02-01,0 1121 | 1948-03-01,0 1122 | 1948-04-01,0 1123 | 1948-05-01,0 1124 | 1948-06-01,0 1125 | 1948-07-01,0 1126 | 1948-08-01,0 1127 | 1948-09-01,0 1128 | 1948-10-01,0 1129 | 1948-11-01,0 1130 | 1948-12-01,1 1131 | 1949-01-01,1 1132 | 1949-02-01,1 1133 | 1949-03-01,1 1134 | 1949-04-01,1 1135 | 1949-05-01,1 1136 | 1949-06-01,1 1137 | 1949-07-01,1 1138 | 1949-08-01,1 1139 | 1949-09-01,1 1140 | 1949-10-01,1 1141 | 1949-11-01,0 1142 | 1949-12-01,0 1143 | 1950-01-01,0 1144 | 1950-02-01,0 1145 | 1950-03-01,0 1146 | 1950-04-01,0 1147 | 1950-05-01,0 1148 | 1950-06-01,0 1149 | 1950-07-01,0 1150 | 1950-08-01,0 1151 | 1950-09-01,0 1152 | 1950-10-01,0 1153 | 1950-11-01,0 1154 | 1950-12-01,0 1155 | 1951-01-01,0 1156 | 1951-02-01,0 1157 | 1951-03-01,0 1158 | 1951-04-01,0 1159 | 1951-05-01,0 1160 | 1951-06-01,0 1161 | 1951-07-01,0 1162 | 1951-08-01,0 1163 | 1951-09-01,0 1164 | 1951-10-01,0 1165 | 1951-11-01,0 1166 | 1951-12-01,0 1167 | 1952-01-01,0 1168 | 1952-02-01,0 1169 | 1952-03-01,0 1170 | 1952-04-01,0 1171 | 1952-05-01,0 1172 | 1952-06-01,0 1173 | 1952-07-01,0 1174 | 1952-08-01,0 1175 | 1952-09-01,0 1176 | 1952-10-01,0 1177 | 1952-11-01,0 1178 | 1952-12-01,0 1179 | 1953-01-01,0 1180 | 1953-02-01,0 1181 | 1953-03-01,0 1182 | 1953-04-01,0 1183 | 1953-05-01,0 1184 | 1953-06-01,0 1185 | 1953-07-01,0 1186 | 1953-08-01,1 1187 | 1953-09-01,1 1188 | 1953-10-01,1 1189 | 1953-11-01,1 1190 | 1953-12-01,1 1191 | 1954-01-01,1 1192 | 1954-02-01,1 1193 | 1954-03-01,1 1194 | 1954-04-01,1 1195 | 1954-05-01,1 1196 | 1954-06-01,0 1197 | 1954-07-01,0 1198 | 1954-08-01,0 1199 | 1954-09-01,0 1200 | 1954-10-01,0 1201 | 1954-11-01,0 1202 | 1954-12-01,0 1203 | 1955-01-01,0 1204 | 1955-02-01,0 1205 | 1955-03-01,0 1206 | 1955-04-01,0 1207 | 1955-05-01,0 1208 | 1955-06-01,0 1209 | 1955-07-01,0 1210 | 1955-08-01,0 1211 | 1955-09-01,0 1212 | 1955-10-01,0 1213 | 1955-11-01,0 1214 | 1955-12-01,0 1215 | 1956-01-01,0 1216 | 1956-02-01,0 1217 | 1956-03-01,0 1218 | 1956-04-01,0 1219 | 1956-05-01,0 1220 | 1956-06-01,0 1221 | 1956-07-01,0 1222 | 1956-08-01,0 1223 | 1956-09-01,0 1224 | 1956-10-01,0 1225 | 1956-11-01,0 1226 | 1956-12-01,0 1227 | 1957-01-01,0 1228 | 1957-02-01,0 1229 | 1957-03-01,0 1230 | 1957-04-01,0 1231 | 1957-05-01,0 1232 | 1957-06-01,0 1233 | 1957-07-01,0 1234 | 1957-08-01,0 1235 | 1957-09-01,1 1236 | 1957-10-01,1 1237 | 1957-11-01,1 1238 | 1957-12-01,1 1239 | 1958-01-01,1 1240 | 1958-02-01,1 1241 | 1958-03-01,1 1242 | 1958-04-01,1 1243 | 1958-05-01,0 1244 | 1958-06-01,0 1245 | 1958-07-01,0 1246 | 1958-08-01,0 1247 | 1958-09-01,0 1248 | 1958-10-01,0 1249 | 1958-11-01,0 1250 | 1958-12-01,0 1251 | 1959-01-01,0 1252 | 1959-02-01,0 1253 | 1959-03-01,0 1254 | 1959-04-01,0 1255 | 1959-05-01,0 1256 | 1959-06-01,0 1257 | 1959-07-01,0 1258 | 1959-08-01,0 1259 | 1959-09-01,0 1260 | 1959-10-01,0 1261 | 1959-11-01,0 1262 | 1959-12-01,0 1263 | 1960-01-01,0 1264 | 1960-02-01,0 1265 | 1960-03-01,0 1266 | 1960-04-01,0 1267 | 1960-05-01,1 1268 | 1960-06-01,1 1269 | 1960-07-01,1 1270 | 1960-08-01,1 1271 | 1960-09-01,1 1272 | 1960-10-01,1 1273 | 1960-11-01,1 1274 | 1960-12-01,1 1275 | 1961-01-01,1 1276 | 1961-02-01,1 1277 | 1961-03-01,0 1278 | 1961-04-01,0 1279 | 1961-05-01,0 1280 | 1961-06-01,0 1281 | 1961-07-01,0 1282 | 1961-08-01,0 1283 | 1961-09-01,0 1284 | 1961-10-01,0 1285 | 1961-11-01,0 1286 | 1961-12-01,0 1287 | 1962-01-01,0 1288 | 1962-02-01,0 1289 | 1962-03-01,0 1290 | 1962-04-01,0 1291 | 1962-05-01,0 1292 | 1962-06-01,0 1293 | 1962-07-01,0 1294 | 1962-08-01,0 1295 | 1962-09-01,0 1296 | 1962-10-01,0 1297 | 1962-11-01,0 1298 | 1962-12-01,0 1299 | 1963-01-01,0 1300 | 1963-02-01,0 1301 | 1963-03-01,0 1302 | 1963-04-01,0 1303 | 1963-05-01,0 1304 | 1963-06-01,0 1305 | 1963-07-01,0 1306 | 1963-08-01,0 1307 | 1963-09-01,0 1308 | 1963-10-01,0 1309 | 1963-11-01,0 1310 | 1963-12-01,0 1311 | 1964-01-01,0 1312 | 1964-02-01,0 1313 | 1964-03-01,0 1314 | 1964-04-01,0 1315 | 1964-05-01,0 1316 | 1964-06-01,0 1317 | 1964-07-01,0 1318 | 1964-08-01,0 1319 | 1964-09-01,0 1320 | 1964-10-01,0 1321 | 1964-11-01,0 1322 | 1964-12-01,0 1323 | 1965-01-01,0 1324 | 1965-02-01,0 1325 | 1965-03-01,0 1326 | 1965-04-01,0 1327 | 1965-05-01,0 1328 | 1965-06-01,0 1329 | 1965-07-01,0 1330 | 1965-08-01,0 1331 | 1965-09-01,0 1332 | 1965-10-01,0 1333 | 1965-11-01,0 1334 | 1965-12-01,0 1335 | 1966-01-01,0 1336 | 1966-02-01,0 1337 | 1966-03-01,0 1338 | 1966-04-01,0 1339 | 1966-05-01,0 1340 | 1966-06-01,0 1341 | 1966-07-01,0 1342 | 1966-08-01,0 1343 | 1966-09-01,0 1344 | 1966-10-01,0 1345 | 1966-11-01,0 1346 | 1966-12-01,0 1347 | 1967-01-01,0 1348 | 1967-02-01,0 1349 | 1967-03-01,0 1350 | 1967-04-01,0 1351 | 1967-05-01,0 1352 | 1967-06-01,0 1353 | 1967-07-01,0 1354 | 1967-08-01,0 1355 | 1967-09-01,0 1356 | 1967-10-01,0 1357 | 1967-11-01,0 1358 | 1967-12-01,0 1359 | 1968-01-01,0 1360 | 1968-02-01,0 1361 | 1968-03-01,0 1362 | 1968-04-01,0 1363 | 1968-05-01,0 1364 | 1968-06-01,0 1365 | 1968-07-01,0 1366 | 1968-08-01,0 1367 | 1968-09-01,0 1368 | 1968-10-01,0 1369 | 1968-11-01,0 1370 | 1968-12-01,0 1371 | 1969-01-01,0 1372 | 1969-02-01,0 1373 | 1969-03-01,0 1374 | 1969-04-01,0 1375 | 1969-05-01,0 1376 | 1969-06-01,0 1377 | 1969-07-01,0 1378 | 1969-08-01,0 1379 | 1969-09-01,0 1380 | 1969-10-01,0 1381 | 1969-11-01,0 1382 | 1969-12-01,0 1383 | 1970-01-01,1 1384 | 1970-02-01,1 1385 | 1970-03-01,1 1386 | 1970-04-01,1 1387 | 1970-05-01,1 1388 | 1970-06-01,1 1389 | 1970-07-01,1 1390 | 1970-08-01,1 1391 | 1970-09-01,1 1392 | 1970-10-01,1 1393 | 1970-11-01,1 1394 | 1970-12-01,0 1395 | 1971-01-01,0 1396 | 1971-02-01,0 1397 | 1971-03-01,0 1398 | 1971-04-01,0 1399 | 1971-05-01,0 1400 | 1971-06-01,0 1401 | 1971-07-01,0 1402 | 1971-08-01,0 1403 | 1971-09-01,0 1404 | 1971-10-01,0 1405 | 1971-11-01,0 1406 | 1971-12-01,0 1407 | 1972-01-01,0 1408 | 1972-02-01,0 1409 | 1972-03-01,0 1410 | 1972-04-01,0 1411 | 1972-05-01,0 1412 | 1972-06-01,0 1413 | 1972-07-01,0 1414 | 1972-08-01,0 1415 | 1972-09-01,0 1416 | 1972-10-01,0 1417 | 1972-11-01,0 1418 | 1972-12-01,0 1419 | 1973-01-01,0 1420 | 1973-02-01,0 1421 | 1973-03-01,0 1422 | 1973-04-01,0 1423 | 1973-05-01,0 1424 | 1973-06-01,0 1425 | 1973-07-01,0 1426 | 1973-08-01,0 1427 | 1973-09-01,0 1428 | 1973-10-01,0 1429 | 1973-11-01,0 1430 | 1973-12-01,1 1431 | 1974-01-01,1 1432 | 1974-02-01,1 1433 | 1974-03-01,1 1434 | 1974-04-01,1 1435 | 1974-05-01,1 1436 | 1974-06-01,1 1437 | 1974-07-01,1 1438 | 1974-08-01,1 1439 | 1974-09-01,1 1440 | 1974-10-01,1 1441 | 1974-11-01,1 1442 | 1974-12-01,1 1443 | 1975-01-01,1 1444 | 1975-02-01,1 1445 | 1975-03-01,1 1446 | 1975-04-01,0 1447 | 1975-05-01,0 1448 | 1975-06-01,0 1449 | 1975-07-01,0 1450 | 1975-08-01,0 1451 | 1975-09-01,0 1452 | 1975-10-01,0 1453 | 1975-11-01,0 1454 | 1975-12-01,0 1455 | 1976-01-01,0 1456 | 1976-02-01,0 1457 | 1976-03-01,0 1458 | 1976-04-01,0 1459 | 1976-05-01,0 1460 | 1976-06-01,0 1461 | 1976-07-01,0 1462 | 1976-08-01,0 1463 | 1976-09-01,0 1464 | 1976-10-01,0 1465 | 1976-11-01,0 1466 | 1976-12-01,0 1467 | 1977-01-01,0 1468 | 1977-02-01,0 1469 | 1977-03-01,0 1470 | 1977-04-01,0 1471 | 1977-05-01,0 1472 | 1977-06-01,0 1473 | 1977-07-01,0 1474 | 1977-08-01,0 1475 | 1977-09-01,0 1476 | 1977-10-01,0 1477 | 1977-11-01,0 1478 | 1977-12-01,0 1479 | 1978-01-01,0 1480 | 1978-02-01,0 1481 | 1978-03-01,0 1482 | 1978-04-01,0 1483 | 1978-05-01,0 1484 | 1978-06-01,0 1485 | 1978-07-01,0 1486 | 1978-08-01,0 1487 | 1978-09-01,0 1488 | 1978-10-01,0 1489 | 1978-11-01,0 1490 | 1978-12-01,0 1491 | 1979-01-01,0 1492 | 1979-02-01,0 1493 | 1979-03-01,0 1494 | 1979-04-01,0 1495 | 1979-05-01,0 1496 | 1979-06-01,0 1497 | 1979-07-01,0 1498 | 1979-08-01,0 1499 | 1979-09-01,0 1500 | 1979-10-01,0 1501 | 1979-11-01,0 1502 | 1979-12-01,0 1503 | 1980-01-01,0 1504 | 1980-02-01,1 1505 | 1980-03-01,1 1506 | 1980-04-01,1 1507 | 1980-05-01,1 1508 | 1980-06-01,1 1509 | 1980-07-01,1 1510 | 1980-08-01,0 1511 | 1980-09-01,0 1512 | 1980-10-01,0 1513 | 1980-11-01,0 1514 | 1980-12-01,0 1515 | 1981-01-01,0 1516 | 1981-02-01,0 1517 | 1981-03-01,0 1518 | 1981-04-01,0 1519 | 1981-05-01,0 1520 | 1981-06-01,0 1521 | 1981-07-01,0 1522 | 1981-08-01,1 1523 | 1981-09-01,1 1524 | 1981-10-01,1 1525 | 1981-11-01,1 1526 | 1981-12-01,1 1527 | 1982-01-01,1 1528 | 1982-02-01,1 1529 | 1982-03-01,1 1530 | 1982-04-01,1 1531 | 1982-05-01,1 1532 | 1982-06-01,1 1533 | 1982-07-01,1 1534 | 1982-08-01,1 1535 | 1982-09-01,1 1536 | 1982-10-01,1 1537 | 1982-11-01,1 1538 | 1982-12-01,0 1539 | 1983-01-01,0 1540 | 1983-02-01,0 1541 | 1983-03-01,0 1542 | 1983-04-01,0 1543 | 1983-05-01,0 1544 | 1983-06-01,0 1545 | 1983-07-01,0 1546 | 1983-08-01,0 1547 | 1983-09-01,0 1548 | 1983-10-01,0 1549 | 1983-11-01,0 1550 | 1983-12-01,0 1551 | 1984-01-01,0 1552 | 1984-02-01,0 1553 | 1984-03-01,0 1554 | 1984-04-01,0 1555 | 1984-05-01,0 1556 | 1984-06-01,0 1557 | 1984-07-01,0 1558 | 1984-08-01,0 1559 | 1984-09-01,0 1560 | 1984-10-01,0 1561 | 1984-11-01,0 1562 | 1984-12-01,0 1563 | 1985-01-01,0 1564 | 1985-02-01,0 1565 | 1985-03-01,0 1566 | 1985-04-01,0 1567 | 1985-05-01,0 1568 | 1985-06-01,0 1569 | 1985-07-01,0 1570 | 1985-08-01,0 1571 | 1985-09-01,0 1572 | 1985-10-01,0 1573 | 1985-11-01,0 1574 | 1985-12-01,0 1575 | 1986-01-01,0 1576 | 1986-02-01,0 1577 | 1986-03-01,0 1578 | 1986-04-01,0 1579 | 1986-05-01,0 1580 | 1986-06-01,0 1581 | 1986-07-01,0 1582 | 1986-08-01,0 1583 | 1986-09-01,0 1584 | 1986-10-01,0 1585 | 1986-11-01,0 1586 | 1986-12-01,0 1587 | 1987-01-01,0 1588 | 1987-02-01,0 1589 | 1987-03-01,0 1590 | 1987-04-01,0 1591 | 1987-05-01,0 1592 | 1987-06-01,0 1593 | 1987-07-01,0 1594 | 1987-08-01,0 1595 | 1987-09-01,0 1596 | 1987-10-01,0 1597 | 1987-11-01,0 1598 | 1987-12-01,0 1599 | 1988-01-01,0 1600 | 1988-02-01,0 1601 | 1988-03-01,0 1602 | 1988-04-01,0 1603 | 1988-05-01,0 1604 | 1988-06-01,0 1605 | 1988-07-01,0 1606 | 1988-08-01,0 1607 | 1988-09-01,0 1608 | 1988-10-01,0 1609 | 1988-11-01,0 1610 | 1988-12-01,0 1611 | 1989-01-01,0 1612 | 1989-02-01,0 1613 | 1989-03-01,0 1614 | 1989-04-01,0 1615 | 1989-05-01,0 1616 | 1989-06-01,0 1617 | 1989-07-01,0 1618 | 1989-08-01,0 1619 | 1989-09-01,0 1620 | 1989-10-01,0 1621 | 1989-11-01,0 1622 | 1989-12-01,0 1623 | 1990-01-01,0 1624 | 1990-02-01,0 1625 | 1990-03-01,0 1626 | 1990-04-01,0 1627 | 1990-05-01,0 1628 | 1990-06-01,0 1629 | 1990-07-01,0 1630 | 1990-08-01,1 1631 | 1990-09-01,1 1632 | 1990-10-01,1 1633 | 1990-11-01,1 1634 | 1990-12-01,1 1635 | 1991-01-01,1 1636 | 1991-02-01,1 1637 | 1991-03-01,1 1638 | 1991-04-01,0 1639 | 1991-05-01,0 1640 | 1991-06-01,0 1641 | 1991-07-01,0 1642 | 1991-08-01,0 1643 | 1991-09-01,0 1644 | 1991-10-01,0 1645 | 1991-11-01,0 1646 | 1991-12-01,0 1647 | 1992-01-01,0 1648 | 1992-02-01,0 1649 | 1992-03-01,0 1650 | 1992-04-01,0 1651 | 1992-05-01,0 1652 | 1992-06-01,0 1653 | 1992-07-01,0 1654 | 1992-08-01,0 1655 | 1992-09-01,0 1656 | 1992-10-01,0 1657 | 1992-11-01,0 1658 | 1992-12-01,0 1659 | 1993-01-01,0 1660 | 1993-02-01,0 1661 | 1993-03-01,0 1662 | 1993-04-01,0 1663 | 1993-05-01,0 1664 | 1993-06-01,0 1665 | 1993-07-01,0 1666 | 1993-08-01,0 1667 | 1993-09-01,0 1668 | 1993-10-01,0 1669 | 1993-11-01,0 1670 | 1993-12-01,0 1671 | 1994-01-01,0 1672 | 1994-02-01,0 1673 | 1994-03-01,0 1674 | 1994-04-01,0 1675 | 1994-05-01,0 1676 | 1994-06-01,0 1677 | 1994-07-01,0 1678 | 1994-08-01,0 1679 | 1994-09-01,0 1680 | 1994-10-01,0 1681 | 1994-11-01,0 1682 | 1994-12-01,0 1683 | 1995-01-01,0 1684 | 1995-02-01,0 1685 | 1995-03-01,0 1686 | 1995-04-01,0 1687 | 1995-05-01,0 1688 | 1995-06-01,0 1689 | 1995-07-01,0 1690 | 1995-08-01,0 1691 | 1995-09-01,0 1692 | 1995-10-01,0 1693 | 1995-11-01,0 1694 | 1995-12-01,0 1695 | 1996-01-01,0 1696 | 1996-02-01,0 1697 | 1996-03-01,0 1698 | 1996-04-01,0 1699 | 1996-05-01,0 1700 | 1996-06-01,0 1701 | 1996-07-01,0 1702 | 1996-08-01,0 1703 | 1996-09-01,0 1704 | 1996-10-01,0 1705 | 1996-11-01,0 1706 | 1996-12-01,0 1707 | 1997-01-01,0 1708 | 1997-02-01,0 1709 | 1997-03-01,0 1710 | 1997-04-01,0 1711 | 1997-05-01,0 1712 | 1997-06-01,0 1713 | 1997-07-01,0 1714 | 1997-08-01,0 1715 | 1997-09-01,0 1716 | 1997-10-01,0 1717 | 1997-11-01,0 1718 | 1997-12-01,0 1719 | 1998-01-01,0 1720 | 1998-02-01,0 1721 | 1998-03-01,0 1722 | 1998-04-01,0 1723 | 1998-05-01,0 1724 | 1998-06-01,0 1725 | 1998-07-01,0 1726 | 1998-08-01,0 1727 | 1998-09-01,0 1728 | 1998-10-01,0 1729 | 1998-11-01,0 1730 | 1998-12-01,0 1731 | 1999-01-01,0 1732 | 1999-02-01,0 1733 | 1999-03-01,0 1734 | 1999-04-01,0 1735 | 1999-05-01,0 1736 | 1999-06-01,0 1737 | 1999-07-01,0 1738 | 1999-08-01,0 1739 | 1999-09-01,0 1740 | 1999-10-01,0 1741 | 1999-11-01,0 1742 | 1999-12-01,0 1743 | 2000-01-01,0 1744 | 2000-02-01,0 1745 | 2000-03-01,0 1746 | 2000-04-01,0 1747 | 2000-05-01,0 1748 | 2000-06-01,0 1749 | 2000-07-01,0 1750 | 2000-08-01,0 1751 | 2000-09-01,0 1752 | 2000-10-01,0 1753 | 2000-11-01,0 1754 | 2000-12-01,0 1755 | 2001-01-01,0 1756 | 2001-02-01,0 1757 | 2001-03-01,0 1758 | 2001-04-01,1 1759 | 2001-05-01,1 1760 | 2001-06-01,1 1761 | 2001-07-01,1 1762 | 2001-08-01,1 1763 | 2001-09-01,1 1764 | 2001-10-01,1 1765 | 2001-11-01,1 1766 | 2001-12-01,0 1767 | 2002-01-01,0 1768 | 2002-02-01,0 1769 | 2002-03-01,0 1770 | 2002-04-01,0 1771 | 2002-05-01,0 1772 | 2002-06-01,0 1773 | 2002-07-01,0 1774 | 2002-08-01,0 1775 | 2002-09-01,0 1776 | 2002-10-01,0 1777 | 2002-11-01,0 1778 | 2002-12-01,0 1779 | 2003-01-01,0 1780 | 2003-02-01,0 1781 | 2003-03-01,0 1782 | 2003-04-01,0 1783 | 2003-05-01,0 1784 | 2003-06-01,0 1785 | 2003-07-01,0 1786 | 2003-08-01,0 1787 | 2003-09-01,0 1788 | 2003-10-01,0 1789 | 2003-11-01,0 1790 | 2003-12-01,0 1791 | 2004-01-01,0 1792 | 2004-02-01,0 1793 | 2004-03-01,0 1794 | 2004-04-01,0 1795 | 2004-05-01,0 1796 | 2004-06-01,0 1797 | 2004-07-01,0 1798 | 2004-08-01,0 1799 | 2004-09-01,0 1800 | 2004-10-01,0 1801 | 2004-11-01,0 1802 | 2004-12-01,0 1803 | 2005-01-01,0 1804 | 2005-02-01,0 1805 | 2005-03-01,0 1806 | 2005-04-01,0 1807 | 2005-05-01,0 1808 | 2005-06-01,0 1809 | 2005-07-01,0 1810 | 2005-08-01,0 1811 | 2005-09-01,0 1812 | 2005-10-01,0 1813 | 2005-11-01,0 1814 | 2005-12-01,0 1815 | 2006-01-01,0 1816 | 2006-02-01,0 1817 | 2006-03-01,0 1818 | 2006-04-01,0 1819 | 2006-05-01,0 1820 | 2006-06-01,0 1821 | 2006-07-01,0 1822 | 2006-08-01,0 1823 | 2006-09-01,0 1824 | 2006-10-01,0 1825 | 2006-11-01,0 1826 | 2006-12-01,0 1827 | 2007-01-01,0 1828 | 2007-02-01,0 1829 | 2007-03-01,0 1830 | 2007-04-01,0 1831 | 2007-05-01,0 1832 | 2007-06-01,0 1833 | 2007-07-01,0 1834 | 2007-08-01,0 1835 | 2007-09-01,0 1836 | 2007-10-01,0 1837 | 2007-11-01,0 1838 | 2007-12-01,0 1839 | 2008-01-01,1 1840 | 2008-02-01,1 1841 | 2008-03-01,1 1842 | 2008-04-01,1 1843 | 2008-05-01,1 1844 | 2008-06-01,1 1845 | 2008-07-01,1 1846 | 2008-08-01,1 1847 | 2008-09-01,1 1848 | 2008-10-01,1 1849 | 2008-11-01,1 1850 | 2008-12-01,1 1851 | 2009-01-01,1 1852 | 2009-02-01,1 1853 | 2009-03-01,1 1854 | 2009-04-01,1 1855 | 2009-05-01,1 1856 | 2009-06-01,1 1857 | 2009-07-01,0 1858 | 2009-08-01,0 1859 | 2009-09-01,0 1860 | 2009-10-01,0 1861 | 2009-11-01,0 1862 | 2009-12-01,0 1863 | 2010-01-01,0 1864 | 2010-02-01,0 1865 | 2010-03-01,0 1866 | 2010-04-01,0 1867 | 2010-05-01,0 1868 | 2010-06-01,0 1869 | 2010-07-01,0 1870 | 2010-08-01,0 1871 | 2010-09-01,0 1872 | 2010-10-01,0 1873 | 2010-11-01,0 1874 | 2010-12-01,0 1875 | 2011-01-01,0 1876 | 2011-02-01,0 1877 | 2011-03-01,0 1878 | 2011-04-01,0 1879 | 2011-05-01,0 1880 | 2011-06-01,0 1881 | 2011-07-01,0 1882 | 2011-08-01,0 1883 | 2011-09-01,0 1884 | 2011-10-01,0 1885 | 2011-11-01,0 1886 | 2011-12-01,0 1887 | 2012-01-01,0 1888 | 2012-02-01,0 1889 | 2012-03-01,0 1890 | 2012-04-01,0 1891 | 2012-05-01,0 1892 | 2012-06-01,0 1893 | 2012-07-01,0 1894 | 2012-08-01,0 1895 | 2012-09-01,0 1896 | 2012-10-01,0 1897 | 2012-11-01,0 1898 | 2012-12-01,0 1899 | 2013-01-01,0 1900 | 2013-02-01,0 1901 | 2013-03-01,0 1902 | 2013-04-01,0 1903 | 2013-05-01,0 1904 | 2013-06-01,0 1905 | 2013-07-01,0 1906 | 2013-08-01,0 1907 | 2013-09-01,0 1908 | 2013-10-01,0 1909 | 2013-11-01,0 1910 | 2013-12-01,0 1911 | 2014-01-01,0 1912 | 2014-02-01,0 1913 | 2014-03-01,0 1914 | 2014-04-01,0 1915 | 2014-05-01,0 1916 | 2014-06-01,0 1917 | 2014-07-01,0 1918 | 2014-08-01,0 1919 | 2014-09-01,0 1920 | 2014-10-01,0 1921 | 2014-11-01,0 1922 | 2014-12-01,0 1923 | 2015-01-01,0 1924 | 2015-02-01,0 1925 | 2015-03-01,0 1926 | 2015-04-01,0 1927 | 2015-05-01,0 1928 | 2015-06-01,0 1929 | 2015-07-01,0 1930 | 2015-08-01,0 1931 | 2015-09-01,0 1932 | 2015-10-01,0 1933 | 2015-11-01,0 1934 | 2015-12-01,0 1935 | 2016-01-01,0 1936 | 2016-02-01,0 1937 | 2016-03-01,0 1938 | 2016-04-01,0 1939 | 2016-05-01,0 1940 | 2016-06-01,0 1941 | 2016-07-01,0 1942 | 2016-08-01,0 1943 | 2016-09-01,0 1944 | 2016-10-01,0 1945 | 2016-11-01,0 1946 | 2016-12-01,0 1947 | 2017-01-01,0 1948 | 2017-02-01,0 1949 | 2017-03-01,0 1950 | 2017-04-01,0 1951 | 2017-05-01,0 1952 | -------------------------------------------------------------------------------- /examples/Weights.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "markdown", 5 | "metadata": {}, 6 | "source": [ 7 | "## MIDAS Weights" 8 | ] 9 | }, 10 | { 11 | "cell_type": "code", 12 | "execution_count": 1, 13 | "metadata": { 14 | "collapsed": false 15 | }, 16 | "outputs": [], 17 | "source": [ 18 | "%matplotlib inline\n", 19 | "\n", 20 | "import numpy as np\n", 21 | "import pandas as pd\n", 22 | "\n", 23 | "from midas.weights import BetaWeights, ExpAlmonWeights" 24 | ] 25 | }, 26 | { 27 | "cell_type": "markdown", 28 | "metadata": {}, 29 | "source": [ 30 | "### Beta Weights" 31 | ] 32 | }, 33 | { 34 | "cell_type": "code", 35 | "execution_count": 2, 36 | "metadata": { 37 | "collapsed": false 38 | }, 39 | "outputs": [ 40 | { 41 | "data": { 42 | "text/plain": [ 43 | "" 44 | ] 45 | }, 46 | "execution_count": 2, 47 | "metadata": {}, 48 | "output_type": "execute_result" 49 | }, 50 | { 51 | "data": { 52 | "image/png": "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\nFmxoDcMCUgAAAABJRU5ErkJggg==\n", 53 | "text/plain": [ 54 | "" 55 | ] 56 | }, 57 | "metadata": {}, 58 | "output_type": "display_data" 59 | } 60 | ], 61 | "source": [ 62 | "nlags=20\n", 63 | "bw1 = BetaWeights(1., 5.)\n", 64 | "bw2 = BetaWeights(1., 3.)\n", 65 | "bw3 = BetaWeights(1.5, 5.)\n", 66 | "\n", 67 | "pd.DataFrame({'w1': bw1.weights(nlags),\n", 68 | " 'w2': bw2.weights(nlags),\n", 69 | " 'w3': bw3.weights(nlags)}).plot()" 70 | ] 71 | }, 72 | { 73 | "cell_type": "markdown", 74 | "metadata": {}, 75 | "source": [ 76 | "### Exponential Almon Weights" 77 | ] 78 | }, 79 | { 80 | "cell_type": "code", 81 | "execution_count": 3, 82 | "metadata": { 83 | "collapsed": false 84 | }, 85 | "outputs": [ 86 | { 87 | "data": { 88 | "text/plain": [ 89 | "" 90 | ] 91 | }, 92 | "execution_count": 3, 93 | "metadata": {}, 94 | "output_type": "execute_result" 95 | }, 96 | { 97 | "data": { 98 | "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXcAAAEACAYAAABI5zaHAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3Xd4VMX+x/H3hARIIARQipQQmpRIVzokgEhCqD+Q3hFR\nQeXqtRdQr16uile9qIhUEQQFkV5EiEgTULpAQu8lQOiBJDu/PyYhIQSySXZzdjff1/Och92zZ3e/\nWeCzkzlzZpTWGiGEEJ7Fy+oChBBCOJ6EuxBCeCAJdyGE8EAS7kII4YEk3IUQwgNJuAshhAeyK9yV\nUmFKqT1KqSil1CvpPF5FKbVOKRWnlHoh1f4ySqmVSqldSqkdSqnnHFm8EEKI9KmMxrkrpbyAKKAV\ncALYBPTQWu9Jdcz9QDmgE3BBa/1J0v6SQEmt9ValVEHgT6Bj6ucKIYRwPHta7vWBaK31Ya11PDAT\n6Jj6AK11jNb6TyAhzf5TWuutSbevALuB0g6pXAghxF3ZE+6lgaOp7h8jCwGtlAoCagN/ZPa5Qggh\nMidHTqgmdcnMBp5PasELIYRwIm87jjkOBKa6XyZpn12UUt6YYJ+mtZ53j+NkkhshhMgkrbVKb789\nLfdNQCWlVDmlVF6gBzD/HsenfaNJwN9a68/sKFI2J20jR460vAZP3uTzlc/Xiu1eMmy5a60TlVLD\ngeWYL4OJWuvdSqmh5mE9XilVAtgM+AM2pdTzQHWgFtAb2KGU2gJo4HWt9dKM3lcIIUTW2dMtQ1IY\nV0mz7+tUt08DZdN56logT3YKFEIIkXlyhWouERoaanUJHk0+X+eSzzfzMryIKacopbSr1CKEEO5A\nKYXOxglVIYRwKUFBQSilcs0WFBSU6c9IWu5CCLeT1GK1uowcc7efV1ruQgiRy0i4CyGEB5JwF0II\nDyThLoQQHkjCXQghLPD2229Ts2ZNfHx8ePfddx3++i4V7u/+9i4rD67k6s2rVpcihBBOVblyZT76\n6CPatWvnlNd3qXC/cvMKb616i+IfF+fh8Q8zYukIftz1Iycun7C6NCGEsMuUKVPo0KHDrfuVK1em\ne/fut+4HBgayfft2+vbtS5s2bShYsKBT6rBrbpmc8mHrDwGIS4hj84nNrD2ylmnbp/HUoqcIyBdA\nk8AmNCnbhKaBTalerDpeyqW+m4QQgpCQEF54wSwlffLkSeLj41m/fj0ABw4c4OrVq9SsWdPpdbhU\nuCfL752fpoFNaRrYFACbtrE3Zi9rj65l7dG1jFk/hphrMTQq04imgU1pUrYJj5R+BD8fP4srF0K4\nApXuZT2Zl5XrpMqXL4+/vz9bt25l7969tGnThm3bthEVFcW6deto1qyZY4rLgEuGe1peyotqxapR\nrVg1nqj7BACnr5xm3dF1rDmyhldWvMKOMztoWKYhIxqMIOLBCGnVC5GLWX3xakhICKtWrWLfvn2E\nhoZSpEgRIiMjWb9+PSEhITlSg9smYImCJehcrTNj2oxhwxMbiHkphifqPME7v71D9S+qM/7P8VyP\nv251mUKIXKh58+ZERkayZs0aQkJCaN68Ob/99hurV6+WcM8sXx9fetboyaYhm/i63dcsiFpA+c/K\n807kO5y9etbq8oQQuUhyy/369euUKlWKZs2asXTpUs6dO0edOnUASEhIIC4uDpvNRnx8PDdu3MBm\nszmsBo8J92RKKUKCQljQcwGr+q/i+OXjPDj2QZ5a+BR7Y/ZaXZ4QIheoXLky/v7+NG/eHAB/f38q\nVqxI06ZNUUknBIYMGYKfnx8zZ87kgw8+wM/Pj++++85hNeSKWSHPXD3DFxu/YNyf42hYpiEvNnqR\nZoHNbn3IQgj3IrNC3rY/3SDLFeGe7Hr8db7d9i1j1o8hIH8A/2z0T7pU74K3l1ucVxZCJJFwv22/\nhHsym7axMGohH6/7mCMXjzCi4QgG1xmMfz7/HHl/IUT2SLjftl/CPT0bj29kzPox/HrgVwbXGcyz\nDZ6lTKEyOV6HEMJ+Eu637ZfFOtJTv3R9ZnWdxaYhm7iReIOaX9XkxWUvyvw2Qgi3lutb7mmdvXqW\nfyz7B+uPrefrdl/zaIVHrS5JCJGGtNxv2y/dMpmxOHoxTy96mlblWzHmsTEU8S1idUlCiCQS7rft\nl26ZzGhbuS07n95JAZ8CBH8ZzOy/Z+eqf0xCCPcmLXc7rDu6jsHzB1P1/qp80fYLSvmXsrokIXI1\nabnftl9a7lnVuGxjtg7dSo3iNag1rhbj/xyPTTvuMmEhhHA0CXc75fPOx7st3mVlv5VM+GsCrb5t\nxb7z+6wuSwjhhs6ePUuvXr0oXbo0RYoUoVmzZmzcuNGh72FXuCulwpRSe5RSUUqpV9J5vIpSap1S\nKk4p9UJmnutuapSowfrB6+nwYAcaTmjIh2s/JMGWYHVZQgg3cuXKFerXr8+WLVs4f/48/fr1IyIi\ngmvXrjnsPTIMd6WUFzAWaAMEAz2VUlXTHHYOeBb4KAvPdTt5vPLwj0b/YNOQTfxy4Bfqf1OfLSe3\nWF2WEMIF2LPM3uXLlxkxYgTFixdHKcWQIUO4efMme/c6bnJDe1ru9YForfVhrXU8MBPomPoArXWM\n1vpPIG0TNsPnurPyRcqzvM9ynmvwHG2+a8OrK16VOeSFyOVCQkJYs2YNYP8ye1u3biU+Pp5KlSo5\nrA57ZswqDRxNdf8YJrTtkZ3nugWlFANqDyCsUhjPLXmOWuNq8U37bwgJypkJ+YUQd1LvOGbGVz0y\n8yNyMrvM3qVLl+jXrx+jRo3C399x81vJdIgOUrJgSX54/Afm7ZlH75960/7B9nzS5hN8fXytLk2I\nXCcroexI9i6zFxcXR4cOHWjcuDEvv/yyQ2uwJ9yPA4Gp7pdJ2mePTD131KhRt26HhoYSGhpq59u4\njo5VOxIaFMpTi56i2eRm/NT9JwIDAjN+ohDCYzRv3pwFCxZw6NAh3njjDQICApg+fTobNmzg2Wef\nBeDmzZt06tSJwMBAxo0bZ9frRkZGEhkZadexGV7EpJTKA+wFWgEngY1AT6317nSOHQlc0VqPycJz\nXfYipqzQWjNm/RjGrB/DzC4zpZtGCAdy9YuYoqOjqVevHiVLliQqKorLly8TFBREYmIiFy5cIDEx\nkc6dO+Pj48Ps2bPx8rr36c+sXMSUYctda52olBoOLMecgJ2otd6tlBpqHtbjlVIlgM2AP2BTSj0P\nVNdaX0nvuRm9pydQSvHPxv+kVoladJvdjbeav8WwR4bJ6k9C5AJ3W2YveXTMunXrWLx4Mb6+vgQE\nBAAmM5YsWUKTJk0cUoNMP5ADDlw4QKeZnahXqh5fRXxFfu/8VpckhFtz9Za7o8n0Ay6qQpEKrB+8\nnqs3r9J8cnOOXTpmdUlCCA8n4Z5DCuQtwKyus+hSrQv1v6nP74d/t7okIYQHk24ZCyzbt4x+P/dj\nZMhInn74aemHFyKTpFvmtv2yWIcr2Xd+H51mdqJhmYZ80fYL8nnns7okIdyGhPtt+6XP3ZVUKlqJ\nDU9sIDYulpApIRy/ZO+lA0IIkTEJdwsVzFuQHx//kQ5VOlB/Qn3WHllrdUlCCA8h3TIuYkn0Evr/\n3J/3WrzH0IeHWl2OEC5NumVu2y997q4u+lw0nWZ1oknZJvwv/H/SDy/EXUi437Zf+txdXeX7KrNh\n8AZirsXQYmoLTlw+YXVJQgg3JeHuYvzz+TO722zaVm5L/W/q88exP6wuSQjhBC1btqR48eIEBARQ\nvXp1vvnmG4e+vnTLuLAFexcweP5gpnaaSnjlcKvLEcJleEK3zI4dO6hatSo+Pj5s3LiR5s2bs23b\nNqpUqXLHsdIt42HaV2nPvB7zGDhvINO3T7e6HCGEHexZZm/79u3UqFEDHx+fW/sLFixIoUKFHFaH\nhLuLa1S2Eb/2+5VXf32Vz//43OpyhBAZyMwye+3bt8fX15cWLVowadIkHnjgAYfVIeHuBoKLB7Nm\n4Bq+2PQFb618y+1/HRXC6ZRyzJYFqZfZW716NW3atKFUqVJERUWxevXq25bZW7BgAVeuXGHq1KkM\nGDCAo0eP3uOVM0fC3U2UK1yONQPXsGTfEp5e9DSJtkSrSxLCdWntmC2LkpfZW7169a1V5SIjI/nt\nt99uW2YPIE+ePHTt2pUGDRowd+7c7P7kt0i4u5FiBYqxsv9Kos9H02NOD24k3LC6JCFEOpo3b05k\nZCRr1qwhJCSE5s2b89tvv7F69eo7wj1ZQkICfn5+DqtBRsu4obiEOHr/1JuLcReZ230u/vkct2K6\nEO7A1UfLZLTMXlRUFAcPHiQ0NBRvb29mzpzJs88+y7Zt2wgMvHPNZRktk0vk987PD11/oEKRCrT6\nthUx12KsLkkIkcrdltlr2rTpraAeNWoUJUqUoGTJkkyYMIFFixalG+xZJS13N6a15s2VbzJn9xyW\n911OYIDj/mEI4cpcveXuaNJyz2WUUrzf6n2eevgpmk5qyu6zuWLtcSGEHbytLkBk34iGI7jP9z5a\nTG3BvB7zaFCmgdUlCSEsJi13D9G3Vl8mdphI++/bs3z/cqvLEUJYTMLdg0Q8GMHc7nPpO7cvs3bO\nsrocIYSFpFvGwzQJbMKKvisInx7OuevneOaRZ6wuSQhhARkt46EOXjjIY989Ru8avRkZMhKVxUup\nhXBFMlrmtv3p/ueWlruHKl+kPGsGriF8ejgx12L4PPxzvJT0wgnPUK5cuVzVYClXrlymnyMtdw93\nMe4iHWZ2oEKRCkxoP4E8XnmsLkkI4SAyzj0XC8gfwOJeizkce5iB8wbKhGNC5BIS7rlAgbwFWNhr\nISevnKT/z/1JsCVYXZIQwsnsCnelVJhSao9SKkop9cpdjvlcKRWtlNqqlKqdav9rSqldSqntSqnp\nSqm8jipe2M/Px4/5PeZz9tpZ+s7tKwEvhIfLMNyVUl7AWKANEAz0VEpVTXNMOFBRa10ZGAqMS9pf\nDhgC1NFa18ScwO3h0J9A2M3Xx5d5PeYRGxdLrzm9iE+Mt7okIYST2NNyrw9Ea60Pa63jgZlAxzTH\ndAS+BdBa/wEEKKVKAJeAm0ABpZQ34AeccFTxIvPye+dnbve5XI2/Ss85PSXghfBQ9oR7aSD12k/H\nkvbd65jjQGmt9QVgDHAkaV+s1npF1ssVjpDfOz8/dfuJm4k36Ta7GzcTb1pdkhDCwZw6zl0pVQH4\nB1AOuAjMVkr10lrPSO/4UaNG3bqdvDSVcI583vmY3W023Wd3p+sPXfnx8R/J553P6rKEEPcQGRlJ\nZGSkXcdmOM5dKdUQGKW1Dku6/yqgtdb/SXXMOGCV1npW0v09QEjS1lprPSRpf1+ggdZ6eDrvI+Pc\nLRCfGH9ryb7Z3WaT3zu/1SUJIeyU3XHum4BKSqlySSNdegDz0xwzH+iX9GYNMd0vp4G9QEOlVH5l\nLidrBcik4y7EJ48PM7vMxM/Hj86zOhOXEGd1SUIIB7DrClWlVBjwGebLYKLWerRSaiimBT8+6Zix\nQBhwFRiotf4raf9LwAAgEdgCPJF0Yjbte0jLHcyK61evQkwMnD0LNhvcfz8UKwb+/uCkS64TbAn0\n+akPF+Iu8HP3n/H18XXK+wghHOdeLXeZfsDZbDa4cMEE9dmzKaGd9nbq+0qZMC9WDLy8Uh67eTMl\n6JO31PfTPla0KOSxf7qBBFsC/X/uz5mrZ5jXYx5+Po5biV0I4XgS7jlBa9i/H37/3WybN8OpUybY\n/f3vHcRpQ9nvLqF6/boJ+bt9KaS9HRsLhQtD8eJQpw40a2a2atXMl0Y6Em2JDJw3kOOXjzO/x3wK\n5C3gxA9NCJEdEu7OkJgI27enhPmaNaaVnBygDRtC6dKm9ezjY12N58+bL5mNG1NqjY2FJk1Saq1b\nF/KmXDicaEvkiQVPcPDCQRb2WkjBvAWtqV8IcU8S7o4QF2cCcs0aE5Dr18MDD6QEZLNmUK6c0/rE\nHerEiZSf4/ffzW8cjzwCTZuan6NRI2wF/BgyfwjR56NZ1GsR/vn8ra5aCJGGhHtWxMbCunUpAbh1\nK1SvbsKvaVOzFStmdZWOkfyzJgf+li1QrRq6aVO+8t3J4hKXmPHULxTKV8jqSoUQqUi422vnTpg6\nFX75JaU1m7qbpWAu6Z6Ii4NNm+D339G/r+b676s46+9FyY59yDfwCahf3z1+QxHCw0m430tsLHz/\nPUyebLor+veHDh1MP7RVfeUuRickMPqr3hReuY4nd+QlT958MGgQ9O0LJUpYXZ4QuZaEe1o2G6xc\nCZMmweLF0KYNDBwIrVtnauhgbqK1Zvji4Ww5+Rcryo/Cb/os+OknCAkxn11EhHwZCpHDJNyTHTwI\nU6aY7b77TOuzZ09zW2TIpm08s+gZdp7ZydI+Syl4E/jxR/MlGR0NvXubzzQ42OpShcgVcne4X7sG\nc+aYbpcdO6BXL9PSrF074+eKO9i0jaELhhJ1PorFvRanjIOPjjZfmlOnQqlSJuR79DDj7IUQTpH7\nwl1r+OMP06KcPRsaNTJh064d5JOZD7PLpm0Mnj+YQ7GHWNRr0e1XsiYmmhPSkybB8uWmu2bgQGjZ\n8q4XTgkhsib3hPupUzBtmgkWm82ESr9+piUpHCr5StYTl0+woOeC9OeiOXcOZswwvzWdP29OVg8Y\nAOXL53i9Qngizw/3qCh47z1YuBC6dDGh3rixDNdzskRbIv1+7kfMtRjm9Zh37+mCt241IT9jhvlN\nauRIqFcv54oVwgNld8pf1xUdbVrmTZpA1apw+DBMmGDuS7A7XR6vPEztNJWivkXpPKszNxJu3P3g\n2rXhs8/g6FF47DEz3LRjR3PBlBDC4dwz3PftM7/iN24MDz5o7r/xBhSSKyhzmreXN9M6T8M/rz9d\nfuhy74AHyJ8fhg83F4m1amXOg3TqZFr2QgiHca9w37/fdLk0agQVK5pQf/NNCAiwurJczdvLm+n/\nN528efLavyZr/vzw3HPm77BFC2jbFjp3hm3bnF+wELmAe4T7/v1mtEuDBhAUZLpj3n5bQt2F+OTx\nYWbXmSgUPWb3ID7xjvVY0ufrC88/b/6OQ0IgPNycN9m+3bkFC+HhXDvcDxyAwYNNqAcGmlbeyJEy\ndtpF5c2Tlx8e/4F4Wzw95/S0P+DBhPyIEebvuEkTc9Vw164S8kJkkWuG+8GD8ETSBFWlS5uW+qhR\nEupuIG+evMx+fDbX4q/RZ24fEmwJmXsBPz944QXTkm/UyJx8ffxxcwGaEMJurhXuhw7BkCHw8MNm\nrvSoKHj3XShSxOrKRCbk887HT91/IjYuln5z+5FoS8z8i/j5wYsvmpBv0MDM+9OtG+za5fiChfBA\nrhXu9eqZWQajo8249aJFra5IZFF+7/z83P1nzlw9w4B5A7IW8AAFCsA//5kyBXPLltC9u4S8EBlw\nrYuYYmJkEi8Pcy3+Gu1mtCMwIJBJHSfhpbLZnrhyBb78EsaMMSde//UvaQSIXMt9LmKSYPc4fj5+\nLOi5gIOxBxkyfwg2bcveCxYsCC+/DLt3mwvVqlWDb74x000IIW5xrZa7i9QiHO/KzSuETw+n2v3V\nGNduXPZb8Mm2bIFhwyAhAb74wnTdCJFLuE/LXXisgnkLsrjXYnad3cWwRcOy34JPVqeOWft12DAz\npcGTT0JMjGNeWwg3JuEucox/Pn+W9F7CttPbHBvwXl5mOordu814+erV4auvzPTDQuRSbtcto7X5\nDTw+3vyZvMXHm8e8vVM2H5+U215eMpeYq7h04xJh34VRq0Qtvoj4wnFdNMm2bzfz11y9CmPHmvHy\nQnggt5nyt1IlfVtYpw3vhARz3iy98Pb2NuGdmHjn85ODP+3xd7vv52fO2/n7my317bT307tdoIB8\nkWTE6QGvtZle+OWXzdWuo0dD8eKOfQ8hLOY24R4VpTMM36y2wG22O78o0rsfH29W5rtyBS5fTtnu\ndT/tYzdumKC//34oVixlS3s/9ZYbvxCcHvAAly7BO+/At9+a+Yieftr8YxLCA2Q73JVSYcCnmD76\niVrr/6RzzOdAOHAVGKC13pq0PwCYADwE2IBBWus/0nm+x4yWSUw0mRITA2fP2rdB+qFfsiSULZuy\nlSplvuQ8xaUblwifHk7N4jWdF/BgLnp69lmzOtQXX0DTps55HyFyULbCXSnlBUQBrYATwCagh9Z6\nT6pjwoHhWusIpVQD4DOtdcOkx6YAv2mtJyulvAE/rfWldN7HY8I9s7Q23cPpfRmcPGnWt0jezpwx\noZ868NNuJUu613KlyQFfo3gNvoz40nkBrzX88IO54jU0FD780ExzIYSbym64NwRGaq3Dk+6/CujU\nrXel1DhgldZ6VtL93UAocB3YorWuaEeRuTbcMyMhAU6cMEF/7NjtwZ+8XbhgMit14FesCJUqQeXK\nZi42Vwv/HAt4MP1o770HEyearpphwyBPHue9nxBOkt1w7wK00Vo/mXS/D1Bfa/1cqmMWAP/WWq9L\nur8CeBlIBMYDfwO1gM3A81rr6+m8j4S7g9y4AceP3x74+/eb2XSjo034V6iQEvap/yxTxrrgz9GA\nB9izx4yLT0w0i6pXqeLc9xPCwe4V7s4+s+QN1AWGaa03K6U+BV4FRqZ38KhRo27dDg0NJTQ01Mnl\neaZ8+Ux4V6iQ/uNXr94e9ps3w/ffm/vnz0P58ukHf9myzg3+QvkKsbT3UsKmh/HMomecH/BVq0Jk\npOmDb9IEXn0V/vEPacULlxUZGUlkZKRdx9rbLTNKax2WdN+ebpk9QEjSw+u11hWS9jcFXtFat0/n\nfaTl7gKuXjVrpERHm7BP/gLYt8+ci6xaFYKD4aGHUv4MDHRs6F++cZmw6WE514KHlIVhrl83rfjq\n1Z3/nkJkU3a7ZfIAezEnVE8CG4GeWuvdqY5pi2mdRyR9GXya6oTqb8AQrXWUUmok5oTqK+m8j4S7\ni7tyxVwEunOnGXyS/GdsrMnC1KEfHGz69rM6vDM54B8q9hBftfsqZwLeZoOvv4a33jJzyb/0kgyb\nFC7NUUMhPyNlKORopdRQTAt+fNIxY4EwzFDIgVrrv5L218IMhfQBDiQ9djGd95Bwd1OxsfD333eG\nflzcna384GBzLZE9oW9JwAMcPmxWAouNhcmTTeFCuCC3uYjJVWoRjhETc3vY79xptrx5oW5ds9Wp\nY/4MCko/8C0LeK3NaJrXXoPnnjP98Z50gYHwCBLuwmVobYZw/vVXyrZli7kqODnok0O/cmVzbvPy\njcuETw8nuFhwzgY8mKFGTz4Jp06ZVnzt2jn33kJkQMJduLzTp03Ipw79s2ehVi0T9tVqX2b81XAe\nDgzm6w45HPBaw9SpZp6ap5+GN94wv34IYTEJd+GWLlyArVtTwn7T9svsbxhO0cRgOvt8RcMGXjRo\nYBZjypGx+SdOwNChpk9+8mSz5q8QFpJwFx7j5PnLtPk2nILXqxO0cxwb//Di7FmzAFPDhmZr0MBM\n0eAUWsP06WY0zeDBMHKkubBACAtIuAuPcvnGZSJmRFC+SHkmdpjIhXPebNwIGzbAH3/Axo1mOd4G\nDVLCvnZtB2fwqVPwzDOwd69pxdev78AXF8I+Eu7C41yLv0bnWZ3xz+vPjC4zyJsnpQ/cZjOZmxz2\nGzaYC7Fq1EgJ+4YN7z5Cx27JE5E9/zwMHGimFpa+eJGDJNyFR7qRcIOec3oSlxDHnG5z8PXxveux\nV67An3+mhP2GDWYStkaNoFkzMwNw3bpZzObTp2HIEDOyZto0GRcvcoyEu/BYCbYEBvw8gGOXjrGg\n5wL88/nb9bzkIZnr1pn1tX//3Uyx8MgjKWHfqJFZWcvuF0weF//aazBihOtNvSk8joS78Gg2beOZ\nRc+w5dQWlvReQlHfoll6nYsXbw/7v/4yE0Umh33Tpmau/Hvavx/69TMd/FOmmIl3hHASCXfh8bTW\nvPTLS/xy4BeW91lOiYIlsv2aN26YGTPXrDHb2rXmRG1y2DdrZmbLvKPfPjERPvoIxoyBTz6BPn1y\n3xqKIkdIuItcQWvNu7+9y/c7v+eXvr9QNqCsQ1/fZjNz6Pz+e0rr/uZNE/QhIWZxp+DgVL0xW7ea\nYK9WDcaNM98MQjiQhLvIVcasG8PYTWNZ0XcFFYtmuAhYthw5YkI+MtJssbEm5ENDoUULqFY+DvXm\nGzBzJkyYAOHhTq1H5C4S7iLX+Xrz17y3+j2W911O9WI5Nzf70aMpQb9qlZkfPzQUepdaRfisAXh3\naIsa8zEUKJBjNQnPJeEucqXvtn/HS7+8xKJei6j7QF1Lajh8OCXoN/96kbfPPUcz7/VsGDaNhwY1\nSL/PXgg7SbiLXGvu7rkMXTiUn3v8TOOyjS2tRWs4dAgOfjSbepOHMdlnKJ/6v0XTFj60aGG6ce62\nNKIQ6ZFwF7nasn3L6Du3L993+Z5WFVpZXY5x8iR68GBuHD3D/Me/Y97eqqxcCfnzw6OPmq1lSyfO\nkSM8goS7yPVWH15N1x+6MrHDRNpXuWMJX2tonbKs39tvo58Zxt97vPj1V1ixAn77zbTkk8O+WTPw\n87O6aOFKJNyFADYd30T779vzWdhndH+ou9XlpIiOhr59oVAhMwlZ6dIAxMfDpk0m6FesMBdVPfJI\nStjXqydLvOZ2Eu5CJNlxegdh08N4r8V7DKozyOpyUiQkwL//DWPHwuefQ/c7v3yuXIHVq1PC/sgR\nMxInOeyrVJGTs7mNhLsQqUSdi6L1tNa82OhFnmvwnNXl3G7TJtOKf/hhE/SFC9/10FOnYOXKlLC3\n2UzIt25ttuLFc7BuYQkJdyHSOBx7mEenPUq/mv14s/mbKFdq8l67Zpb0mz/fzE/TsmWGT9Ha9O6s\nWAG//GKGXlaoAI89Bm3aQOPGsqaIJ5JwFyIdJy+fJGJGBA+XepgvI77E28vFOrCXLoUnnjBdNO+/\nb4bS2Ck+3kxvvHw5LFsGu3dD8+Ym7B97TLpwPIWEuxB3cfnGZbrN7oZCMavrLLunDM4x586ZdVv3\n7oXvvjMrhmfB+fPw668m6JctM/PfJLfqW7WCIkUcXLfIERLuQtxDgi2Bpxc+zZ8n/2Rhr4WU8i9l\ndUm309p78zNmAAAWaUlEQVQE+wsvwEsvmfVb8+TJ1svt2WNa9cuXm7lxgoNTwr5+fRmF4y4k3IXI\ngNaaf6/5N+P/HM+iXosILh5sdUl3OnzYzBUPMHWqWSfQAW7cMNMZL1tmwv7QIdPN36YNhIXJlPSu\nTMJdCDt9t/07Xlz+IjO7zKRF+RZWl3OnxET473/hww/h44/NyBoHd56fPm1Oyi5dagK/eHET8mFh\n5kKqTHT9CyeTcBciE1YdXEX32d35b5v/0rtmb6vLSd/27dC7tzkzOm4c3H+/U97GZjMXTy1darbt\n203AJ4d95cpOeVthJwl3ITJp15ldRMyI4Ml6T/Ja09dca6hksrg4M3XB99+bueLDwpz+lhcumOGW\nyWHv65sS9KGhULCg00sQqWQ73JVSYcCngBcwUWv9n3SO+RwIB64CA7TWW1M95gVsBo5prTvc5T0k\n3IVLOXH5BBEzInik1COuOVQyWWQk9O8P7dqZ5f1yaAIarWHnzpSg37gRGjRICfvgYBlu6WzZCvek\nYI4CWgEngE1AD631nlTHhAPDtdYRSqkGwGda64apHv8HUA8oJOEu3InLD5VMFhsLzz5rEnbaNDPk\nJYddvmwunlq6FJYsMWPtw8LM4lOPPgoBATlekse7V7h7pbczjfpAtNb6sNY6HpgJdExzTEfgWwCt\n9R9AgFKqRNKblwHaAhOyWL8QlvHP58/8HvMp7V+akCkhnLx80uqS0le4sAn1996DDh3gjTfMMJgc\n5O9v3vrLL+HAATM1Qo0a8M03UKaMWWd29GjYts20+oVz2RPupYGjqe4fS9p3r2OOpzrmv8BLgPx1\nCrfkk8eH8e3H06VaFxpNbMSuM7usLunuunUzC3Pv2mWmkNyyxZIylIIHH4Tnnzct+dOn4ZVX4Phx\n6NLFTHw5aBD8+KP5pUM4nlM7EZVSEcBprfVWpVQocM8euFGjRt26HRoaSmhoqDPLE8JuSineaP4G\ngQGBtJjaglldZ7nmUEmAkiVh7lxz4VObNjBsGLz+Ovj4WFaSnx+0bWs2MPPgLFkCkyaZkK9d23Tf\nhIeb29JXn77IyEgiIyPtOtaePveGwCitdVjS/VcBnfqkqlJqHLBKaz0r6f4eIAR4HugDJAC+gD/w\nk9a6XzrvI33uwi2sPLiSHrN7uPZQyWTHj8OQIWYKyalTTT+Ji7l+3ZwTXrLEbFeupPTVt24tUyPc\nS3ZPqOYB9mJOqJ4ENgI9tda7Ux3TFhiWdEK1IfBp6hOqSceEAC/KCVXhCXae2UnEjAiG1hvqukMl\nk2ltmsivvpoyhYELzy+wb19K0P/+u5lOJ3Wr3suezuRcwlFDIT8jZSjkaKXUUEwLfnzSMWOBMMxQ\nyIFa67/SvIaEu/AobjNUMtmRIzB4MFy6ZKYSrlbN6ooydP26WW4wOewvXUpp1T/2mLTq5SImIZwk\neajk9fjrzOo6ixIFS1hd0r1pba5ofesteO01GDEiW5OQ5bT9+29v1deokdKqr1Mn97XqJdyFcKJE\nWyKjIkcxZdsUfuj6A43KNrK6pIwdOGDOZCYkmHVb3XAegbi421v1Fy/mvla9hLsQOWD+3vk8Mf8J\nRoWO4umHn3btfngwE8f8739mbPzbb8Pw4W7d9D1wICXoV6/OHa16CXchckj0uWi6/NCF2iVrM67d\nOPx8cmYqgGyJioIBA8w6fJMmQfnyVleUbXFxJuCTwz421owKTW7VFy1qdYWOIeEuRA66evMqTy58\nkl1ndjGn2xwqFq1odUkZS0yETz6B//wH/vUvs/qTq//mkQkHD5qQX7rUdOVUr26CPizMrEXurq16\nCXchcpjWmrEbx/Le6veY3HEyEQ9GWF2Sff7+27TiCxeG8eMdtiCIK7lxw5yMTZ4D58wZ05pPbtUX\nL251hfaTcBfCImuPrKX77O4MrjOYt0PeJo+XG4xMSUgws0uOGWPGxo8Y4dLj4rPryJGUmS1XroRK\nlVJa9Q0auPaPLuEuhIVOXTlF99nd8fPxY/r/Taeor5t0+O7bB089ZVbXHj/e9F94uJs3Yf36lC6c\nI0fMjJbh4abPvpSLLa8r4S6ExeIT43l1xavM3TOXOd3mUOeBOlaXZB+tzWyTL70EvXqZkTW5aEWO\nEyfMUoNLlphFSgIDTYu+TRto0gTy5rW2Pgl3IVzErJ2zGL5kOB+3/pj+tftbXY79YmLgxRfNJDBj\nx0L79lZXlOMSEuCPP1LWlt2zx0xjnBz2lSrlfE0S7kK4kF1ndvF/P/wfLYNa8mnYp+Tzzmd1Sfb7\n9VfTVVO7Nnz+OTzwgNUVWSYmxiwkvmyZ2fz8TMi3aQMtW5r57Z1Nwl0IF3PpxiUG/DyA45ePM/vx\n2ZQNKGt1Sfa7ft0Mlxw/3nTTPPmk+44ldBCtYccOE/LJSw7Wq5cS9s6a8EzCXQgXpLXmw7Uf8ukf\nnzL9/6bTsnxLq0vKnB07UoJ9/HizaKoA4OpV04OV3KqPjTXDLNu0cexwSwl3IVzYrwd+pc/cPoxo\nMIKXmryEl3KjVrDNZiYiGznSdNe88Qbkz291VS7n4MGUoF+1CipWNCHfurU5MZsviz1zEu5CuLij\nF4/S66deeCkvpnScQvkibjYFwPHj8NxzpjX/9dfQwkVXqXIB8fGwYQMsX2767P/+2wR8ctgHB9t/\ncbCEuxBuINGWyKcbPmX02tG83/J9htQd4vqTj6U1f76ZgKxVK/j4Y7jvPqsrcnkXLpiLp375xQR+\nXJwJ+datzRj7kiXv/lwJdyHcyK4zu+j/c3+KFSjGhPYTKF0o7Xr0Lu7yZXjzTZg1Cz78EPr0yfUn\nXDNj//6UVv2qVWZsfXKrvlkz8PVNOVbCXQg3E58Yz7/X/JuxG8fySZtP6F2jt/u14jduhGeeMdfv\nf/opNGyY8XPEbRISYNOmlFb9tm3mY2zd2gR+nToS7kK4pb9O/kW/uf2ocn8Vvor4iuIF3GhWKzAn\nXKdNg9dfN/3wo0dDmTJWV+W2Ll0yo3CSW/ZRUXcPd/ldSQgXVveBuvz55J9UKlKJWuNqMXf3XKtL\nyhwvL+jfH/buNTNM1qoF77wD165ZXZlbKlQIOnQwFwnv3XvvY6XlLoSbWHd0Hf1/7k/DMg35POxz\nivi64Tpyhw7BK6+Y2blGj4aePT1q3vicdq8+d2m5C+EmGpdtzNahWymcrzA1x9Vk2b5lVpeUeUFB\n5kTrjBlmcZDGjc2ELcLhpOUuhBv69cCvDJo/iPBK4XzU+iP88+XARCaOZrPB1KnmwqdWrUxLvrSb\njQyymLTchfAwrSq0YvtT27mZeJNa42qx+vBqq0vKPC8vGDjQdB4HBkLNmvDuu9If7yDSchfCzS3Y\nu4ChC4fS46EevN/yfXx9fDN+kis6eND0x2/YYNZy7dFD+uMzIOPchfBw566d45nFz7D99HYmdZhE\no7KNrC4p61avNkv75c9vxsfXr291RS5Lwl2IXOKHXT/wwrIXCA0KZfSjoylTyE3HlCcmmv74N980\n1+C//z6UdaNpkXOI9LkLkUt0C+7GnuF7CCocRO1xtXnvt/e4Hn/d6rIyL08eGDTI9MeXKWPGxw8b\nBseOWV2Z25BwF8LDFMxbkH+1/Bebhmxi+5ntVP2iKrN2zsItfzP294cPPjBr2vn6mpOuzz5rFjcV\n92RXuCulwpRSe5RSUUqpV+5yzOdKqWil1FalVO2kfWWUUiuVUruUUjuUUs85snghxN2VL1KeHx//\nkW87fcvotaNpPqU5f538y+qysqZ4cTPL5N9/g48PPPSQ6Zc/edLqylxWhuGulPICxgJtgGCgp1Kq\nappjwoGKWuvKwFBgXNJDCcALWutgoBEwLO1zhRDOFRIUwuYhm+lXsx9tp7dl8LzBnLpyyuqysqZk\nSXPx065d5n5wMLzwApw+bW1dLsielnt9IFprfVhrHQ/MBDqmOaYj8C2A1voPIEApVUJrfUprvTVp\n/xVgNyBXKQiRw/J45WFIvSHsHb6XIr5FeOjLh/hw7YfcSLhhdWlZ88ADZiTNzp1m6sRq1eCf/4Qz\nZ6yuzGXYE+6lgaOp7h/jzoBOe8zxtMcopYKA2oBcayyERQLyB/DxYx+zfvB61hxZQ/CXwfy852f3\n7I8HKFUKPv/crAAVFwdVq8LLL8PZs1ZXZrkcOaGqlCoIzAaeT2rBCyEsVPm+yszvOZ8vI77kjZVv\n0Hpaa3ac3mF1WVlXurSZKnHbNrhyxYT8q69CTIzVlVnG245jjgOBqe6XSdqX9piy6R2jlPLGBPs0\nrfW8e73RqFGjbt0ODQ0lNDTUjvKEEFn1WMXH2PbUNsZtHkerb1vxePXHeafFO9zvd7/VpWVN2bLw\n5Zcm2D/4AKpUgaFD4cUXPWLJv8jISCIjI+06NsOLmJRSeYC9QCvgJLAR6Km13p3qmLbAMK11hFKq\nIfCp1rph0mPfAjFa6xcyeB+5iEkIC527do5RkaOYtWsWbzR7g6cefop83vmsLit7Dh82F0DNmQNP\nP23Wd73XoqRuJlsXMWmtE4HhwHJgFzBTa71bKTVUKfVk0jGLgYNKqX3A18DTSW/cBOgNtFRKbVFK\n/aWUCnPITyWEcKj7/O7jf23/x6r+q1h+YDkVP6/IJ+s/4cpNN+5JLVcOxo+HzZtNF021atCvH/z5\np9WVOZ1MPyCESNdfJ/9i9JrRRB6KZNgjw3i2wbMU9S1qdVnZc/48TJxo+ufLlIHnn4fOnc3YeTck\nc8sIIbJsb8xePlz7IXP3zGVwncG80OgFHvB/wOqysichAebNg88+M7NRPvMMPPmk2/XLy9wyQogs\nq3J/FSZ2nMi2p7YRb4sn+Mtgnlr4FAcuHLC6tKzz9oYuXcwMlPPnQ1QUVKoEQ4aYYZUeQMJdCGGX\nsgFl+TTsU/YO30sxv2LU/6Y+vX/q7d5DKAHq1IHJk80kZeXKQVgYtGxpWvaJiVZXl2XSLSOEyJJL\nNy4xbvM4/rvhvzxS6hFeb/Y6Dcs0tLqs7Lt5E2bPNl02Z8+aETaDBkHhwlZXdgfpcxdCOM31+OtM\n3jqZj9Z9RFDhIF5v+jqPVngU5QmrKG3YYK6AXbIEevWC554zY+ddhIS7EMLp4hPjmbVrFv9e8298\nvX15vdnrdKraCS/lAb2/x4/DV1+ZYZU1a5rhlJ07mymJLSThLoTIMTZtY8HeBXyw5gMuXL/A4DqD\n6VurL6X8S1ldWvbFxZm++O++g99/h4gI6NMHWrc2J2lzmIS7ECLHaa3ZcGwDk7dOZvbfs2lctjGD\n6gyi3YPtyJsnr9XlZd/ZszBrlgn6Q4fMgt59+0Ldujm2sLeEuxDCUldvXmXO7jlM2jKJv8/+Te8a\nvRlUZxA1StSwujTHiIqC6dNN0OfNa0K+Vy8ICnLq20q4CyFcxv7z+5mydQpTtk2hZMGSDKo9iJ41\nelI4v+uNRsk0rWH9epg2DX78EapXN0H/+ONOGW0j4S6EcDmJtkRWHFjBpK2TWLZvGW0rt2VQnUG0\nLN/SM07C3rwJixeb1vwvv5h++b59ITzctO4dQMJdCOHSzl07x/c7v2fSlkmcv36eAbUHMKD2AIIK\nB1ldmmNcuGDGzn/3nVki8PHHzRWyzZtnK+gl3IUQbmPLyS1M3jqZGTtmUKtkLQbVHkSnqp0okLeA\n1aU5xuHDMGOGmfZg925zNWxEBLRta5YPzAQJdyGE24lLiGP+3vlM3jqZtUfW0jSwKe0ebEf7B9tT\nNqBsxi/gDs6ehaVLYeFCWL4cKlY0Qd+uHdSrB1737p6ScBdCuLWLcRdZtn8ZC6IWsCR6CWUKlaH9\ng+1pX6U9D5d62DP66OPjYd06E/SLFpnpicPDTdg/9hgUKnTHUyTchRAeI9GWyPpj61mwdwELohZw\n/vp5IipH0L5Ke1pXaO053TcHD5qQX7gQ1q6F+vVN0EdEwIMPglIS7kIIz7X//H4WRi1kQdQCNh7f\n6JndN1evwq+/prTqfX2hXTvUZ59JuAshPN/FuIss37+cBVELWBy92DO7b7SGbdtg0SLUm29KuAsh\ncpfU3TcLoxcScy2GZoHNaFK2CU0Cm1CnZB188rjn8nrJpFtGCJHrHY49zJoja1h7dC1rj65l//n9\n1CtVz4R92SY0LtuYIr5FrC4zUyTchRAijYtxF9lwbAPrjq5j7dG1bDy+kbIBZW+FfZPAJlQsUtGl\n56WXcBdCiAwk2BLYfno7a4+svdW6v5l4k8ZlG98K/LoP1CWfdz6rS71Fwl0IIbLgyMUjt4V99Llo\napSowUPFHjJ/Fn+Ih4o/RPECxS2pT8JdCCEc4PKNy2w5tYVdZ3ax88xOdp7dyY7TO/D28r4V9Mlb\ncLFgAvIHOLUeCXchhHASrTUnr5w0YZ9q+/vs3xT1LXqrpZ8c+lXvr4qvj69D3lvCXQghcphN2zgU\ne+i2wN9xZgf7zu8jMCCQSkUrERQQRPki5QkqHERQ4SDKFy5PUd+idp/ElXAXQggXcTPxJtHnojlw\n4QAHYw9yKPYQh2IP3bqdYEu4FfSpQz/5durhmhLuQgjhJmLjYm8F/qHYQxy8cJBDF1NueymvW0E/\nr+e87IW7UioM+BTwAiZqrf+TzjGfA+HAVWCA1nqrvc9NOk7CXQgh7kFrzYW4C7eCvmtw17uGe4YT\nLSilvICxQBsgGOiplKqa5phwoKLWujIwFBhn73NFzoiMjLS6BI8mn69zyedrKKUo6luUug/UpUv1\nLvc81p5ZdOoD0Vrrw1rreGAm0DHNMR2BbwG01n8AAUqpEnY+V+QA+c/hXPL5Opd8vplnT7iXBo6m\nun8saZ89x9jzXCGEEA7mrPkvXXcyBiGEyAUyPKGqlGoIjNJahyXdfxXQqU+MKqXGAau01rOS7u8B\nQoDyGT031WvI2VQhhMiku51Q9bbjuZuASkqpcsBJoAfQM80x84FhwKykL4NYrfVppVSMHc+9Z4FC\nCCEyL8Nw11onKqWGA8tJGc64Wyk11Dysx2utFyul2iql9mGGQg6813Od9tMIIYQAXOgiJiGEEI5j\n+YKCSqkwpdQepVSUUuoVq+vxNEqpQ0qpbUqpLUqpjVbX4wmUUhOVUqeVUttT7SuilFqulNqrlFqm\nlHLudIAe7C6f70il1DGl1F9JW5iVNboDS8NdLnLKETYgVGtdR2td3+piPMRkzL/Z1F4FVmitqwAr\ngddyvCrPkd7nC/CJ1rpu0rY0p4tyN1a33OUiJ+dTWP/37FG01muAC2l2dwSmJt2eCnTK0aI8yF0+\nX5Ah1pli9X96ucjJ+TTwi1Jqk1JqiNXFeLDiWuvTAFrrU4A1S/N4tuFKqa1KqQnS7ZUxq8NdOF8T\nrXVdoC0wTCnV1OqCcgkZqeBYXwIVtNa1gVPAJxbX4/KsDvfjQGCq+2WS9gkH0VqfTPrzLDAX0xUm\nHO900nxKKKVKAmcsrsejaK3Pppo29hvgESvrcQdWh/utC6SUUnkxFznNt7gmj6GU8lNKFUy6XQB4\nDNhpbVUeQ3F7H/B8YEDS7f7AvJwuyMPc9vkmfWEm+z/k33GG7LlC1WnkIienKwHMTZrawRuYrrVe\nbnFNbk8pNQMIBe5TSh0BRgKjgR+VUoOAw0A36yp0b3f5fFsopWpjRn8dwkwtLu5BLmISQggPZHW3\njBBCCCeQcBdCCA8k4S6EEB5Iwl0IITyQhLsQQnggCXchhPBAEu5CCOGBJNyFEMID/T/jIENcjyop\nJAAAAABJRU5ErkJggg==\n", 99 | "text/plain": [ 100 | "" 101 | ] 102 | }, 103 | "metadata": {}, 104 | "output_type": "display_data" 105 | } 106 | ], 107 | "source": [ 108 | "nlags=20\n", 109 | "eaw1 = ExpAlmonWeights(0.01, -0.0025)\n", 110 | "eaw2 = ExpAlmonWeights(0.01, -0.0099)\n", 111 | "eaw3 = ExpAlmonWeights(0.099, -0.0099)\n", 112 | "\n", 113 | "pd.DataFrame({'w1': eaw1.weights(nlags),\n", 114 | " 'w2': eaw2.weights(nlags),\n", 115 | " 'w3': eaw3.weights(nlags)}).plot()" 116 | ] 117 | }, 118 | { 119 | "cell_type": "markdown", 120 | "metadata": {}, 121 | "source": [ 122 | "### Beta Weights with Non-Zero Last Lag" 123 | ] 124 | }, 125 | { 126 | "cell_type": "code", 127 | "execution_count": 4, 128 | "metadata": { 129 | "collapsed": false 130 | }, 131 | "outputs": [ 132 | { 133 | "data": { 134 | "text/plain": [ 135 | "" 136 | ] 137 | }, 138 | "execution_count": 4, 139 | "metadata": {}, 140 | "output_type": "execute_result" 141 | }, 142 | { 143 | "data": { 144 | "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXcAAAEACAYAAABI5zaHAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3Xt8jvX/wPHXZza2mc1xDsMccz7FkLBFMkpIhCQSKodS\nlI5U3186hyRRfTuiQqEoSXPIMefDDnwnxJxyHjt/fn98NmZtdm+77133fe/9fDyux33f1677ut73\n0vv+7H19DkprjRBCCPfiYXUAQggh7E+SuxBCuCFJ7kII4YYkuQshhBuS5C6EEG5IkrsQQrghm5K7\nUipcKRWllIpRSj2Tzc/rKaXWK6USlFJPZtpfVSm1Sim1Vym1Wyk11p7BCyGEyJ7KrZ+7UsoDiAE6\nA8eALUB/rXVUpmPKA8FAL+Cs1vrd9P2VgEpa6x1KKT9gK9Az83uFEELYny0t99bAfq31Ia11MjAf\n6Jn5AK31aa31ViAly/7jWusd6c8vAZFAkF0iF0IIkSNbknsQcCTT67/JR4JWStUAmgOb8vpeIYQQ\neVMoN1TTSzILgMfTW/BCCCEcyNOGY44C1TO9rpq+zyZKKU9MYv9Sa734BsfJJDdCCJFHWmuV3X5b\nWu5bgDpKqWClVHGgP7DkBsdnvdCnwD6t9TQbgpTNQdukSZMsj8GdN/n9yu/Xiu1Gcm25a61TlVKj\ngRWYL4NPtNaRSqmR5sd6tlKqIvAnUApIU0o9DjQEmgH3A7uVUtsBDTyntf45t+sKIYTIP1vKMqQn\n43pZ9n2U6fkJoFo2b/0DKFaQAIUQQuSdjFAtIsLCwqwOwa3J79ex5Pebd7kOYiosSintLLEIIYQr\nUEqhC3BDVQghnEqNGjVQShWZrUaNGnn+HUnLXQjhctJbrFaHUWhy+rzSchdCiCJGkrsQQrghSe5C\nCOGGJLkLIYQbkuQuhBAWeOmll2jatCleXl688sordj+/JHchhLBA3bp1eeutt7jrrrsccn5J7kII\nYUefffYZd99999XXdevW5b777rv6unr16uzatYsHHniArl274ufn55A4JLkLIYQdhYaGsm7dOgDi\n4uJITk5mw4YNAMTGxhIfH0/Tpk0dHodNE4cJIYQrUdkO68m7/IyTqlmzJqVKlWLHjh1ER0fTtWtX\ndu7cSUxMDOvXr6dDhw72CS4XktyFEG7H6sGroaGh/P777xw4cICwsDDKlClDREQEGzZsIDQ0tFBi\nkLKMEELYWceOHYmIiGDdunWEhobSsWNHVq9ezZo1ayS5CyGEq8pouV+5coUqVarQoUMHfv75Z/75\n5x9atGgBQEpKCgkJCaSlpZGcnExiYiJpaWl2i0GSuxBC2FndunUpVaoUHTt2BKBUqVLUrl2b9u3b\no9JvCAwfPhxfX1/mz5/Pa6+9hq+vL1999ZXdYpBZIYUQLkdmhbxuv8wKKYQQRYUkdyGEcENOldyL\n0F9ZQgjhUE6V3FessDoCIYRwD06V3F97zeoIhBDCPThVcj9yBNavtzoKIYRwfU6V3CdMgClTrI5C\nCCFcn1P1c79yRVOzpqm9N2lidURCCGcl/dyv2+/8/dy9veGJJ+D1162ORAghXJtTJXeARx+FX36B\n2FirIxFCCMc4deoUAwcOJCgoiDJlytChQwc2b95s12s4XXL394eRI+Gtt6yORAghHOPSpUu0bt2a\n7du3c+bMGQYPHsydd97J5cuX7XYNp0vuAI8/Dt98A3FxVkcihBB5Y8syexcvXuSJJ54gMDAQpRTD\nhw8nKSmJ6Ohou8XhlMk9MBAGDYL33rM6EiGEyJv8LLO3Y8cOkpOTqVOnjt3icNqVmMaPhxYt4Nln\noUwZq6MRQrgS9bJ91tnTk/LeIyevy+xduHCBwYMHM3nyZEqVKmWXuMHJukJmjWXIEKhTB154wZqY\nhBDOydm7Qg4ePJgWLVpw4MAB2rdvz86dO6lVqxYbNmygadOmjBs3DoCEhATCw8OpX78+s2bNyvF8\nLt8VMqtnnoH33wc73mMQQgiHs2WZvaSkJHr16kX16tVvmNjzy6lb7gD33ANhYTB2bOHHJIRwTs7e\nct+/fz8tW7akUqVKxMTEcPHiRWrUqEFqaipnz54lNTWV3r174+XlxYIFC/DwuHE7Oz8td6etuWd4\n9lno0wceeQSKF7c6GiGEyF1Oy+xl9I5Zv349y5Ytw8fHh4CAAMAk6uXLl3PrrbfaJQanb7kDdOkC\nAwfC0KGFHJQQwik5e8vd3vLTcneJ5L5qFTz2GOzdC8WKFXJgQginI8n9uv2ud0M1w223QUAA/PCD\n1ZEIIYRrcInkrpSpvU+ZIkvxCSGELVwiuQPcfTdcuQIrV1odiRBCOD+bkrtSKlwpFaWUilFKPZPN\nz+sppdYrpRKUUk/m5b02B+ph+r3LYh5CCJG7XG+oKqU8gBigM3AM2AL011pHZTqmPBAM9ALOaq3f\ntfW9mc6R4w3VDMnJULcuzJ8Pbdva/BmFEG5Gbqhetz/fN1RbA/u11oe01snAfKBn5gO01qe11luB\nlLy+Ny+8vGQpPiGEsIUtyT0IOJLp9d/p+2xRkPdm66GHYNMm2LOnIGcRQgj35lQjVCdPnnz1eVhY\nGGFhYf86xsfHzPf+xhvw5ZeFF5sQQlgtIiKCiIgIm461pebeFpistQ5Pfz0R0FrrN7I5dhJwMVPN\nPS/vzbXmnuH8eahVC/78E2rWtOktQgg34g41906dOrFnzx4SExMJCgpi3LhxDB8+PNtjHVVz3wLU\nUUoFK6WKA/2BJTc4PvOF8vpemwQEwIgR8PbbBT2TEEJYY9q0aRw9epTz58/z2WefMWbMmMJdiUlr\nnQqMBlYAe4H5WutIpdRIpdQIAKVURaXUEWAc8LxS6rBSyi+n99oj8CeegHnz4MQJe5xNCCHsw5Zl\n9nbt2kWTJk3w8vK6ut/Pzw9/f3+7xeESc8vkZNQos6C29J4Romhx5rLMwYMHadmyJWfOnCEuLo5b\nbrmFtLQ0Dh8+TGxsLCEhIfzzzz8A9OjRg5UrV+Lh4cG8efOu+1LIzG3nlsnJhAkwezacO2d1JEII\np6KUfbZ8yLzM3po1a+jatStVqlQhJiaGNWvWXLfM3tKlS7l06RKff/45Q4YM4ciRIzc4c964dHKv\nUQPuvBNmzrQ6EiGEU9HaPls+hYaG8vvvv7NmzZqrPf8iIiJYvXr11ZWYMhQrVox7772XNm3a8P33\n3xf0k1/l0skdzJQE06fLUnxCCOdhyzJ7WaWkpODr62u3GFy65p6hVy+4/XYYPdrOQQkhnJIz19wh\n92X2YmJiOHjwIGFhYXh6ejJ//nzGjBnDzp07qV69+r/O55bL7Nni2Wfhvvtg5EgzRYEQQlgpt2X2\ntNZMnjyZyMhIvLy8aNy4MT/99FO2iT2/3KLlDtCpEwwZAoMH2y8mIYRzcvaWu7257TJ7tli1ygxs\n2rdPFtIWwt1Jcr9uv/t1hcysUye46SbpOSOEEOBGLXcwC2jfdhtERUHZsnYKTAjhdKTlft1+9y7L\nZHjkEfD1hXfftUNQQginJMn9uv1FI7mfOAGNGsHGjVCnjh0CE0I4HUnu1+1375p7hooV4cknYeJE\nqyMRQgjruEU/96zGjYN69WDdOmjf3upohBD2FhwcjMrn3C+uKDg4OM/vcbuyTIavvjLTEmzcCB5u\n9/eJEEIUsbJMhoEDzbw/8+dbHYkQQhQ+t225A6xdC4MGma6RPj52PbUQQliuSLbcATp0gJYtYdo0\nqyMRQojC5dYtd4D9++GWW8y0BIGBdj+9EEJYpkj1c8/OE09AUpJMTSCEcC9FPrmfOWO6Rq5ZAw0a\nOOQSQghR6IpszT1D2bJmzvcJE6yORAghCkeRSO4Ao0ZBZCT89pvVkQghhOMVmeReogS88QY89RSk\nplodjRBCOFaRSe4AffqAnx98/rnVkQghhGMViRuqmW3eDL17Q3S0SfRCCOGqivwN1cxat4bQUHj7\nbasjEUIIxylyLXeAQ4fg5pth926oUqVQLimEEHZX5Pu5Z2fiRDh5Ej79tNAuKYQQdiXJPRvnz5uB\nTT//DM2bF9plhRDCbqTmno2AAHjpJRg/3kwNLIQQ7qTIJneAESPg6FFYtszqSIQQwr6KdHL39DS9\nZsaPh+Rkq6MRQgj7KdLJHaB7dwgKgjlzrI5ECCHsp8jeUM1s507o2hWiI9MI+HqmmZ+ga1dzx7UI\nLcIrhHAt0lvGBo8NusDoTQ/QMPA0NGxoutEUKwbh4Wbr1An8/S2LTwghspLknpuoKJLv6sWXf3ei\n066p1LipuOlCExlpkvzPP8OGDWbkU0ayb9YMPIp8VUsIYSFJ7jeyZAkMGwavv87kI8OIiYG5c7M5\n7vJlWL36WrI/d86UbsLDoUsXqFCh0EMXQhRtktyzk5YGr7wCn3wCCxZAmzbEx8NNN5mXt9ySy/sP\nHoRffjGJ/vffzRszWvVt2piuOEII4UCS3LM6fx4GD4Z//jGZvFKlqz/69luYNAm2bwdvbxvPl5Rk\nyjYZrfq//jLdcN5557pzCyGEPckI1cyiokzLOigIVq36V/Lt1w8aNzYJ3mbFi5upJqdMMd8KkZFQ\ns6ap0a9cad/4hRDCBjYld6VUuFIqSikVo5R6Jodjpiul9iuldiilmmfa/6xSaq9SapdS6mulVPGc\nrjN+xXgSUxLz/ilstWQJdOxoFlOdOdMk5Wx88IFZ0GPTpnxep1Il+M9/4Msv4cEH4cUXISUl/3EL\nIUQe5ZrclVIewAygK9AIGKCUqp/lmG5Aba11XWAkMCt9fzAwHGihtW4KeAL9c7rWwXMHCZkTwu4T\nu/P5cXKQlgaTJ5uFVJcuNTdQbyAwEKZPhyFDICGhANft3Bm2bjUlm86d4dixApxMCCFsZ0vLvTWw\nX2t9SGudDMwHemY5pifwBYDWehMQoJSqCFwAkoCSSilPwBfIMcMt6LuAcW3H0emLTkzdOJU0nZb3\nT5TV+fPQq5cpj2zZYkoyNshXeSY7lSqZG6+33w4tW5rnQgjhYLYk9yDgSKbXf6fvu9ExR4EgrfVZ\n4B3gcPq+c1rrHIvQSimGthjKxmEb+Xbvt3T9qitHLxy15XNkL6O+Xq1atvX13BS4PJOhWDFTmpk/\n3/zV8OyzUqYRQjiUQ2+oKqVqAeOAYKAK4KeUGpjb+2qXrc2aoWvoWL0jN8++mQX7FuT94osXQ4cO\n8PTTJkvnUF+/EbuVZzKEhsK2bWYLC4MjR3J9ixBC5IctnbGPAtUzva6avi/rMdWyOSYU+ENrfQZA\nKbUIaAdkN0yIyZMnX30eFhbGi2Ev0rVOVwYtGsTSmKW83+19/EvkMgVAWhq8/LJZYumnn8yiqQXQ\nrx98950pz7zxRoFOZQQGwvLl5mQhIaaf/Z132uHEQgh3FxERQUREhG0Ha61vuAHFgAOY1ndxYAfQ\nIMsx3YGf0p+3BTamP28G7Aa8AQV8BozK4To6J5cSL+mRS0fqGlNr6LWH1uZ4nD53TusePbRu317r\nuLicj8ujEye0rlhR6w0b7HZKY+1aratV03r8eK2Tkux8ciGEu0vPm9nm7lzLMlrrVGA0sALYC8zX\nWkcqpUYqpUakH7MMOKiUOgB8BDyWvn8n5kbrVmBneoKfbdvXzjUli5dk1l2zmB4+nb7f9eX5354n\nKTXp+oOOHbtWX//tN7sOHsoozwwdaqfyTIb27U2JZt8+00Xz0CE7nlwIUZS53AjVE5dOMGzJMI5f\nOs5X93xF/fLpvTI//hh+/RW++cZhMfbtC7Vq2ak8k1lamhnN+vbbMHs29MzaGUkIIf7NrUaoVvSr\nyNIBS3n45ofp8N8OfLjlQ1PWiYoyI0IdKKP3zMaNdj6xh4cZWPXDDzB2LIwbZ6Y0EEKIfHK5lntm\n0aejuX/R/VTyq8TCzxMo8dgYh7d68zX3TF6cOWPqP3Fx5q+QmjUdcBEhhDtwq5Z7ZvXK12PDsA00\nr9ScuK0RrCxegD7xNrLb4KaclC1rWvADBph7CD/+6KALCSHcmUu33K9KSCCtdAANp1QlpEY7poVP\no6xPWfsGmMnJk9C0qcnBbds67DKm/tO7tynyDx7swAsJIVyR27bcr9q/H49atdk6ahflfMrR5MMm\nLI5a7LDLBQbC++87oPdMVm3bmpG1L7xguusIIYSN3KPl/t13MG8eLFoEwNpDa3loyUO0DmrN9PDp\nlPMtZ8dIr3FY75ms/vrLrPY0aBC89JIs2i2EAIpCyz0qCupfm6iyQ3AHdj6yk0DfQJp82IQfon5w\nyGUd1nsmqxo1YO1a8+U1bpzpOimEEDfglskdwNfLl/fC3+Pbvt/y9K9PM3DhQE5fPm3XyxZaeQbM\noKyICDOz5bBhMvGYEOKG3Da5Z2hfvT07HtlBZb/KNP2wKYsiF9n10n37Orj3TGZlysCKFWY0br9+\nkOjAhU2EEC7N9WvuaWng7w9Hj0JAwA0PXX9kPUMXD6VFpRbM6D6D8r7l8xnt9Qqt90yGxERTfz93\nDr7/Hvz8CuGiQghn494196NHTXLPJbEDtKvWjh0jd1DVvypNPmySv6mEs1Go5RmAEiXM3PDBweZG\n65kzhXBRIYQrcf3kfoOSTHZ8vHx4+463WdhvIS+seoF+3/XjVPypAofRty80aVJI5RkwC4DMmQO3\n3mrmiY+LK6QLCyFcQZFL7hnaVWvH9pHbqVG6Bk0+bMJ3e78rcCgzZhRS75kMSsFbb0H//mZhkoMH\nC+nCQghnV2STO5hW/Jtd3uSH/j/wUsRL9P2uLyfjT+Y7lEIvz4BJ8M8/b7pIduxopg8WQhR5rp/c\nIyOhQYMCnaJt1bZsH7mdWqVr0fTDpny962vye6M5ozzz0ksFCinvRo2C11+HTp1Md0khRJHm+r1l\nqlQxK1hXq5b7sTbYfHQzI5aOILBkIB/e+SG1y9bO8zlOnYLmzU1JvHt3u4Rlu6VLTT/4b78167QK\nIdyW+/aWOX8eLlyAoCC7nbJ1UGu2DN9Cl1pdaPNxG6asnfLvVZ9yUaGCmRFhyBCIibFbaLbp0cMk\n9n79TKIXQhRJrp3co6OhXj2z2IUdeRXzYsKtE/hzxJ+sPbyWlrNbsv7I+jydo107+M9/oFcv8/1T\nqMLCYNkyGD4cvvqqkC8uhHAGrp3cC3Az1RY1Stfgp4E/8WLHF7n323t55MdHOJdwzub3jxhh7nEO\nHmzBdDCtWpkZJZ991kyCI4QoUiS550IpRb9G/dg3ah8eyoOGHzTkmz3f2HzDdfp0OH0aXn3VoWFm\nr2FDM+HYe+8VwtSVQghn4to3VO+5x6xY1LevY4LKxoYjGxjx4wiq+ldlZveZ1CyT+zJ4x49DSIjp\nB2/J2tfHjkHnzqY/vEwZLITbcN8bqoXQcs/qlmq3sG3ENkKDQwmZE8Kbf7xJcmryDd9TqRIsXAgP\nP2xRN/QqVcyMkgsWmD7xTvKFLoRwHNdtuScnQ6lSZvIsh6xUnbvYs7E8+tOjHL90nI/u+oi2VW88\na9h//wtTpsDmzVC6dCEFmdnp03DHHeaG6zvvSAteCBd3o5a76yb3mBjo1g3+9z/HBWUDrTXz98zn\nyRVPck/9e3it82sEeOc8idnYsXDggOmlWKxYIQaa4exZCA+Hli1NncjOPY2EEIXHPcsyFpRksqOU\nYkCTAex9bC/Jack0mtmIBfsW5HjD9Z134PJlC0awZihTBn79FXbtMt15UlMtCkQI4UiS3O2krE9Z\nZveYzfx75zMpYhI95vXgf2f+/VeFl5cZ4PT116YEbgl/f/j5Z4iNNSOtZFUnIdyO6yZ3O8wp4wjt\nq7dn+8jttK/enjYft+GFVS8QnxR/3TEVKpjlUB99FHbvtihQPz/48Uez0sjAgeYehhDCbbhucney\nlntmxYsVZ2L7iex4ZAexZ2Np8EGDf/WNv/lmmDrVjGC1bK0NX19YvBiuXDHdSWXZPiHchmveUNUa\nypaF/fuhvH2WynOkNYfWMGb5GMr6lGV6+HSaVGxy9Wfjx5vy97Jl4OlpUYBJSWa8wJUrps+mj49F\ngQgh8sL9bqiePGm6mrhAYgfoGNyRrSO20rdhXzp/0Zmxy8dy9spZwMzSqzU895yFARYvDt98Y/pn\n9ugB8fG5v0cI4dRcM7k7cUkmJ54enjwW8hj7Ru0jKTWJBh80YM7WOSiPVObPNzdX582zMkBP+PJL\nM3Vyt25w8aKFwQghCso1yzIffWQWpPj4Y8cG5UDb47YzZvkYElISmNF9Bj7/tOX222HFCmjRwsLA\n0tLMnd5du2D5cotGWwkhbOF+ZRkXbLln1aJyC9YOXcsTbZ+gz7d9eO/gEP5v2nF69zaLfVjGwwNm\nzYLWrc18NP/8Y2EwQoj8kuRuIaUUg5oOImpUFBVLVuS5vxtTa9A79O2fbG3PRKVMV57Onc2yfSfz\nv66sEMIaktydQKkSpXijyxv88dAfFK+/kj9DmtLv2V+tDUopM01wz55mLpq4OGvjEULkievV3C9f\nhnLlzA0/y/oOOo7WmnnblvLgvHE0q9iM7x5+x6ZphR3q//4PPv8cfvvNbmvVCiEKzr1q7vv3Q+3a\nbpnYwfzHGtjybjYN3kvkby1p/mErnvrlKc5csWqkE2aa4Ixlpfbvty4OIYTNXC+5u1lJJic3N/Vm\n/qjnKfHxXo6ciKf+jPq8s/4dElMsGkU6frzpjB8aCtu3WxODEMJmrpfcIyOLRHIHM55oxuuVWDdx\nFh+3X83qQ6up/0F95u2eR5ou7EVZMQtuv/8+dO1qFv8QQjgt16u59+9vst799zs+KCcxdy5MmGBK\n3se9I5jw6wQA3u7yNqE1Qgs/oFWr4L77YM4cMzmOEMIS7lVzLyJlmcwGDjQrON1+O1RJCmPTw5t4\nsu2TPPjDg9w9724iT0UWbkCdOpkBTo8+Cp9+WrjXFkLYxKbkrpQKV0pFKaVilFLP5HDMdKXUfqXU\nDqVU80z7A5RS3ymlIpVSe5VSbfIdbVqaWYGpXr18n8JVDR4Mr7xiup4fjPVgQJMBRI2OomNwRzp+\n1pFHfnyE45eOF15ArVrB6tUmqDffLLzrCiFskmtyV0p5ADOArkAjYIBSqn6WY7oBtbXWdYGRwKxM\nP54GLNNaNwCaAflvZh4+bLpB+vnl+xSu7KGH4MUXTcP54EHw9vRmfLvxRI+OxtfLl0YzG/HK6lf+\nNX+8w9x0E6xbZ7pJTpggC28L4URsabm3BvZrrQ9prZOB+UDPLMf0BL4A0FpvAgKUUhWVUv5AB631\nf9N/lqK1vpDvaItgSSarESPgmWdMgj90yOwr61OWd7u+y5bhW9h3ah83zbiJj7d9TGpaISyhV7Uq\nrFljkvxDD8mqTkI4CVuSexBwJNPrv9P33eiYo+n7agKnlVL/VUptU0rNVkrlf7JwSe4APPYYjBtn\nEvyRTL/1WmVqMf/e+Xx/3/d8sfMLms1qxrL9y3Jcz9VuypWDlSvNKNY+fcy88EIISzl6JJAncDMw\nSmv9p1JqKjARmJTdwZMnT776PCwsjLCwsOsPiIqCJk0QMHasaSR36mR6JQZl+rptHdSa1UNWsyR6\nCU/+8iTvbHiHKZ2n0DqoteMCKlkSliyBBx+E8HDzPCDAcdcTogiKiIggwtZuyFrrG25AW+DnTK8n\nAs9kOWYWcF+m11FAxfQtNtP+9sDSHK6jcxUaqvXKlbkfV4S88YbW9eppfexY9j9PSknSs7bM0lXf\nrap7zO2ht8dtd2xAqalajxqldfPmWh8/7thrCVHEpefNbHO3LWWZLUAdpVSwUqo40B9YkuWYJcBg\nAKVUW+Cc1vqE1voEcEQpdVP6cZ2BfbZ97WRDyjL/8vTT8MADphfNiRP//rlXMS9GthrJ/jH76Vyz\nM92+7sa9397L3pN7HROQh4cZ6NSrF9x6q7nzK4QodDYNYlJKhWN6vXgAn2itX1dKjcR8a8xOP2YG\nEA7EA0O11tvS9zcDPga8gNj0n53P5hr6hrGcPQvVq8OFC2bGQnGdl1+G776D33+HChVyPi4+KZ6Z\nW2by1vq36FK7C5NCJ3FTuZtyfkNBzJwJr71m+sRLOU0Iu7vRICbXGaG6cSOMGWNWYBL/orXpJrl0\nqRlAWq7cjY+/mHiRaZumMXXjVHrU68FLHV9yzOyT33xjbhAsXAjt29v//EIUYe4xQrUIzSmTH0rB\nq6+a5U+7dDF/6NxIqRKleKHjC+wfs5+qparSak4rHvnxEY6cP3LjN+bVffeZtVl794affrLvuYUQ\nOXKd5B4VBQ0aWB2FU1PKTFNw221wxx1w7lzu7ynjU4ZXO71K9OhoAkoE0GxWM8YuH0vcRTsuznHH\nHfDjjzBsGHz1lf3OK4TIkWsld2m550opePttaNfO9Ei8YOOQsfK+5XmjyxvsG7UPD+VBo5mNmLBi\nAqfi7bSga5s2pl703HNmhScnKQcK4a4kubuhjCVQW7Y0ZZqLF21/byW/SkwNn8quR3cRnxxP/Q/q\n88KqFzh7JZc6jy0aNoT1682d3wcekMFOQjiQayT3pCQz1r52basjcRlKmR6JjRpB9+62t+AzVPWv\nysw7Z7J1xFbiLsZR9/26vBzxcsGTfMZ0BampZmWno0cLdj4hRLZcI7n/73+mG2SJElZH4lI8PGDW\nLGjaFG65xfwa86pG6Rp80vMTNgzbwMFzB6k9vTZP//p0wWryvr5mkvo+faB1a9MTSghhV66R3KUk\nk28eHjBjBowaZcYUrVqVv/PULVeXz3p9xvaR20lISaDhzIY8+uOjxJ6Nzd8JlYKJE+Gjj+Duu83M\nkkIIu5HkXgQoZSYbmzvXLPzxwQf5v58ZXDqY6d2mEz06mrI+ZQmZE8KgRYPYc3JP/k54111mcpxX\nX4WnnpJZJYWwE0nuRUinTvDHH2bg6KOPmlsZ+RVYMpD/6/x/xI6NpXFgY27/4nZ6zu/Jxr/zUWJp\n2BA2b4Zdu0yyz62TvhAiV5Lci5jatWHDBjh2zAx2OlXAno4B3gFMbD+Rg48f5I5ad3Dfgvvo9Hkn\nVsauzNtUw2XLmmkK6tc33SajogoWmBBFnPNPP6A1lC4NsbG5j6kXNktLgxdegHnzYPFic9PVHpJT\nk5m3Zx7iC9lkAAAVJElEQVRT1k3Br7gfz7V/jp71e+Kh8tCO+PRTU4//7DPT1UcIkS3XnlsmLg6a\nNYOTJws/qCJg3jwz9cvs2WaGAHtJ02ksjlrMa+teIz4pnontJzKg8QC8innZdoL16+Hee+GJJ8wS\nfjJZnBD/4trJfdUqmDzZ9I0WDvHnnyaxjxhhWvP2zKNaa1bGrmTKuinEno1lQrsJPNTiIXy8bFiQ\n68gRM3VwgwYwZw745H8RLyHckWtPHCZzyjhcq1bmfuZPP5l5vuLtuL62Uooutbuw6sFVzL93Piti\nVxA8NZjnf3ueoxdyGcBUrRqsXWsGPIWGyoAnIfLANZK73Ex1uMqVTY9Eb2/o0AEOH7b/NdpWbcvi\n/ov546E/uJh0kSYfNuH+Rfez+ejmnN+UMeCpd29zo3XTJvsHJoQbkuQurvL2NmOJBg6Etm1N2dsR\n6pary/Ru04l9PJaWlVvS77t+tPukHd/u/ZaUtGz6uSsFzz4LH34IPXrAF184JjAh3Ijz19yrV4fV\nq6GmAxaSEDlatgyGDDETOA4d6thrpaSlsCR6CVM3TuWvc38xuvVoHr75Ycr6lP33wXv3Qs+eZnv9\ndfCy8QatEG7IdW+oXroEgYFmWsNixawJrAiLijIzA9x1F7z5Jnh6Ov6aW49tZdqmaSyNWcqAxgMY\n22Ys9ctn+cvtzBkYNMh00v/yS/nLThRZrntDNSYG6taVxG6R+vVNiXvPHrjzzsIZONqySku+6P0F\n+x7bRwXfCoR+Fkq3r7vxy4Ffrg2KKlvW3P0dNsws3Tdjhum4L4S4yrlb7nPnmhE233xjTVACMNO9\njB9v1mf95BMICyu8ayekJDBv9zymbppKcmoyj7d5nAeaPYCvl685ICbGzA1furQZ/BQUVHjBCWEx\n1225y81Up+DpaRb/mDrVVEMeeSTv88Pnl7enN0NbDGXHyB180P0Dlh1YRvDUYCaunMjBswfhppvM\nhDm33go33ywNASHSSXIXNuvRw5RoUlOhcWNz07WwKKW4reZtLO6/mI3DNpKYkkjInBC6ftWVhTGL\nSX7+WbNO66RJcP/9MvmYKPKcuyzTtKnpm9eihTVBiRz99hsMH24azFOnWjPtT0JKAgv3LWT2ttlE\nn45maPOhDK9/P7Xe+MiU8z79FG6/vfADE6KQuGZZJjUV9u83f3YLp9O5M+zebZJ648ZmWdTCbid4\ne3pzf9P7WT1kNRFDIkhKTaLNvNu4o3U0a18YjB4yxMxNI2u1iiLIeVvu//ufmYD80CHrghI2Wb/e\ndFxp0MAsBFK5snWxJKQk8H3k98zeNpu4Q3v5ZlU5GsQlU3zet6YmL4Qbcc2Wu9TbXUa7drB9u0nu\nzZqZmXqtajN4e3ozoMkAfn/wdxY/tpYvn+3O2JYnORvWlt1j+5OUeNmawIQoZM7bcn/nHTMr4NSp\n1gUl8mz7dnjoIahY0SyPGhxsdUSQmJLILxEfU3XsC6RevsRvLw+hz11PU7dcXatDE6JApOUuCk2L\nFmaGyY4doWVLU6axenxRCc8S3H37KG7e8w/BI55m9ONfM+uRlnT67Dbm7p7L5WRpzQv347wt9w4d\nzKLJhTliRthVZKSpxXt6wscfO9G98X37SLv/fuICPJjQN4Dll7bTs15PBjUdxG01bqOYh4yIFq5B\nWu7CEg0amOnY+/Qxdfk33zSjXS3XsCEemzYRdGs4cyfv5lDKWFqWbczElROpPrU6E1ZMYOfxnVZH\nKUSBOGfL/fRpqFPHDESR5dXcQmys6Rd/4QLMnAkhIVZHlC4qCp5+2sw2+cYb7OvYgK93z+Wr3V8R\nUCKAQU0HMbDJQKr6V7U6UiH+xfVmhfzjD3jqKdi40dqghF1pDf/9L7z0kqnHT57sROPTfvvN/Jvz\n84N33yUtpBXrDq/jy51fsjByIS0qt2BQk0H0adgH/xL+VkcrBOCKZRkpybglpUxPmgMHzBCG7t1N\nyWb3bqsjw4zK2rrVBNirFx4PDKajqsGcu+dw7KljPNbqMRZHL6bae9Xov6A/P8b8SHJqstVRC5Ej\nSe6i0Hl7w+OPm3Fq7dpBly5m7dZ9+ywOrFgxk9xjYqBWLfNnxYsv4p2QQp+Gffih/w/Ejo0lNDiU\nKeumEPRuEGOWjWHT35twlr+AhcggyV1YxtfXVEIOHDCDR8PCzJxf0dEWB+bnB6+8Ajt2wF9/mW4+\nn3wCqamU8y3HoyGP8sdDf7Bh2AYqlKzAA98/QK3ptXjql6dYf2Q9aVrmlhfWc86ae926ZvJwSfBF\nyoUL8P77ZtzanXfCiy9C7dpWRwVs2QJPPmkCfPddU8LJRGvN7pO7WbhvIQsjF3Lmyhl61+9Nn4Z9\n6BjcEU+PQljCShRJrnVDNSHBLLxw8aKsj1lEnT9vEvz770OvXvDCC1CjhsVBaQ2LFpmeNQ0bwltv\n5dj4iD4dzaLIRSyMXMih84e4+6a76dOwD51rdqaEZ4lCDly4M9dK7nv2wL33mtKMKNLOnjUN5Zkz\noW9feP55qFbN4qASE82yfq+/Dv37m/njy5fP8fBD5w5dTfR7T+2le93u9GnQh/A64ddWkxIin1yr\nt0xUlBn9Ioq8MmXMIOXoaPPHXLNmMHo0HDtmYVAlSpgbBZGR5nWDBmYepISEbA8PLh3MuFvGse6h\ndex7bB/tq7Vn5paZVH6nMn2+7cPc3XO5kFhIy1qJIsX5Wu7/+Q/Ex8OUKVaHJJzMyZNmlOunn5pl\nU0eNcoIpDaKi4JlnzJiMESPg0UehSpVc3/bP5X9YEr2EhZELWXNoDR2CO3BP/XvoVrcbVUrl/n4h\nwNXKMoMGmb5xDz5odUjCSR0/Du+9ZxbpuukmM3/NvfdCyZIWBhUdbW4SzJ1rOvA/8QS0amXTWy8k\nXuCnmJ/4IfoHfv3fr1QPqE63Ot3oVrcbt1S9Ba9icu9JZK/AyV0pFQ5MxZRxPtFav5HNMdOBbkA8\nMERrvSPTzzyAP4G/tdZ353ANk9xbtTJTCbZpY8NHE0VZcrJZNvWTT8yCIX37mkQfEmLhrBVnz5qA\nZsyAoCCT5Hv3NrOn2SAlLYVNf29i+YHlLD+wnNizsXSu2ZludboRXiecIP8gB38A4UoKlNzTE3MM\n0Bk4BmwB+mutozId0w0YrbW+UynVBpimtW6b6efjgJaA/w2Te1oa+PubedxLl87bpxRF2tGjpiX/\n6afg42OS/KBBN7zX6VgpKWYd12nTTF/50aPh4YehbNk8neb4peP8cuAXlh9Yzq+xv1LVv6pp1dfp\nRrtq7aRVX8QVNLm3BSZprbulv54I6Mytd6XULOB3rfU36a8jgTCt9QmlVFXgv8D/AU/eMLkfOWKa\nXXFxef+UQmDmjl+zxjSely6FO+4wif72280AVEts22aS/JIlpofN2LH56jSQkpbC5qObWb7ftOoP\nnDlA51rXWvUyuVnRU9DeMkHAkUyv/07fd6NjjmY65j1gApB7/UdGpooC8vAwI12//NI0mMPC4Lnn\nzGwCkyaZfYXu5pvNnxWRkRAYCLfdBuHh8PPPeVrJxNPDk3bV2vFqp1f5c8SfxIyJoVe9Xqw6uIrm\ns5rT5MMmPP3r06yMXUl8UrwDP5BwBba03PsAXbXWI9JfDwJaa63HZjpmKTBFa70+/fVK4GmgMtBN\naz1aKRUGPKW17pHDdfSkbt1Ml4i77iIsLIwwWahD2MmOHaY1P2+emTJm2DAzQMrb24JgEhJg/nzT\nmr9yxUy0M3hwge4Ip6alsuXYFpbvX85vB39jx/EdNK3YlNDgUMJqhNGuWjtKlShlxw8hrBAREUFE\nRMTV1y+//HKByzKTtdbh6a9tKctEAaHA48AgIAXwAUoBi7TWg7O5jtajRpmpBx5/PA8fVwjbJSTA\n99+bRL9jh7kJe+edpjFd6L1ttDY1pKlTzaomQ4aYGdRatSrwHeHLyZfZcGQDqw+tZvWh1Ww9tpVG\ngY0IDQ4lNDiU9tXbE+AdYJ/PISxT0Jp7MSAac0M1DtgMDNBaR2Y6pjswKv2GaltgauYbqunHhGJa\n7jnX3Dt3hgkToGvXPHw8IfLn4EFYsACWLzfTx9xyi+nF2K2b6WJZqD1uDh6EOXNg4ULTmu/dG+65\nB9q3t8vNgoSUBDb9vYmIvyJYfWg1m49upn75+ibZ1wilQ/UOlPEpY4cPIgqTvbpCTuNaV8jXlVIj\nMS342enHzADCMV0hh2qtt2U5R+7JvUoV06ctODgPH0+IgrtwwazXsXw5LFsGxYtfS/S33WZmsCwU\nWpva/KJFZvv7b+jZ0yT6Tp3MCFk7SExJZMuxLaz+azURhyLY+PdGapepfTXZdwzuSHlfq7oaCVu5\nziAmX18zYZiH882KIIqOjCmOMhL9tm1m3vlu3UzCr1u3EIM5eNDUkRYtMksBdu9uEn14uF3rSEmp\nSWw9tvVqGeePw39Qya8SIUEhtK7SmpCgEFpUaoGPl4/drikKznWSe/PmsH271aEIcZ3z52HlymvJ\n3tf3WqIPCzP96gtFXJzpO79wIWzaZKYevuceuOsuMxGPHaWmpRJ5OpLNRzez5egWNh/bTOSpSOqV\nr0frKq1pHWQSfsMKDWVKYwu5TnIfMMAM3xbCSWkNu3ZdS/Tbt5uyeIcOZohGq1Z2z7PZO3PGdORf\ntAh+/93cMLjnHtMFqGJFh1wyISWBHcd3XE32W45u4ejFozSv1Pxq6751UGtqlq6JkoXtC4XrJPeX\nXzarJwvhIs6dM636DRvgzz9NCadSJZPkQ0LM1qKFWdzJYS5dMt82ixaZxzp1TLLP2GrUcNjd4XMJ\n59h6bCtbjm0xrfxjW7iSfIWQoBBCqoTQsnJLmlRsQo3SNfBQUm61N9dJ7t98A/36WR2KEPmWmmrG\n4v35p+mBs2WLqd/XrHl9wm/a1EF97BMTzUU3bDAzVW7YYAZKtW17Ldm3auXQO8RxF+OuJvttcdvY\nc3IPZ66coWGFhjQKbETjCo1pHGi2KqWqSCu/AFwnue/caf7VC+FGkpJMgs+c8GNizAwEGaWckBBo\n1Mjm+cVspzUcPnx9st+zx4wEz9y6r1nToX0/zyecZ9+pfew5uYc9J/ew99Re9pzcQ0JKwtVE3ziw\nMY0qNKJxYGMqlKzgsFjciesk98uXC/HulBDWuXLFDKLasuVa0j90yFRQ6tS5fqtb16xAZbfEf+WK\nqR9lJPsNG8xEZ1lb94UwqutU/KmriX7vyb3sOWWSf/Fixa9L9vXK1aNWmVpUKVWFYh5WTRLkfFwn\nuTtJLEJY4fJliI2F/fvhwIHrtxMnzPCPrEm/Th2zv0DLDWttZmLNnOx37YLKla+/UMbzmjXNQAAH\n0Vpz7OKxq0l/z8k97D+zn9izsfxz+R+CSwdTq0wtapWuZR7Tt5plauJfwt9hcTkjSe5CuLgrV0yX\n94xkn/kL4Ngx07LPyL/BweambsWK1x7Ll8/jQNekJDPLWtaL7d9vvgiqVPl30q9Tx8zQZqeBVtm5\nknyFv879RezZ2GvbuWvPfb18ryX8LMm/qn9Vt2v1S3IXwo0lJl6fh48cMatVnThhHo8fN331y5e/\nPuFnfsz8vGzZXMrvycmmhpSR9DMn/8OHzUkykn7NmmYmzAoVrt/8/Oxe49dacyL+xPWJP9N2Mv4k\ngSUDqeRXicqlKlOpZKVrz/0qXd0q+1V2mcFaktyFKOKSk82Eq5kTfsbzrI/x8Sb/lilj1s4JCDCP\nmZ9nt8/fHwJ8kwk4fxifowdQB/abb51Tp/69pab+O+HfaPP3L/AcO4kpiZyIP8HxS8eJuxjH8UvH\nr25xl65/XcKzxNVEnznpV/KrRIWSFQgoEYB/CX8CvM1jqeKlLPmrQJK7EMJmCQnmi+D8ebNduHBt\ny/w6p+cXLpi/Jvz9oVQp0+UzYytRwjz6e14mUJ2iAqcol3aKMimnKJ18ioDkU/gnnKJUwilKXj6F\nz+XT+Fw6heeVi2iv4qSW8CXVuySpJXxJ8/Ylzack2tsX7eOL9i2J9vE1N4J9fc3mVxJV0hcPv5Io\nXx9UcS/w9ER5mQ1PTzyKX/+IZzEucZnTSWc5nXyGk4n/cCLxNMcTTnM88RQnr5zmQtJFzide4HyS\n2S4mXcK3eElKlfDH3yfAPHoHEOBTGv/i174EAkoEXH3u7emNp4cnXh5eeBXzyvbR08Mzx58ppSS5\nCyEKV3KymSbq4kWT6BMSct5y+3lCAiQnaTySEvBMuoxnYvzVR6/ky3glX6Z4snleIiWe4inpj6mX\n8U69jHdqPCVSL+OTFk8xnYIHqXjqFIqRQjGdcvX51cesz7NsxUhFoW+4eWRZmygNhQa04rrHG1I6\n12N8UpHkLoQQBaH1tS3zvqzHXPc805t0Wpbntlwwxx9pklOSCQgMkOQuhBDupqBrqAohhHAxktyF\nEMINSXIvIjIvqivsT36/jiW/37yT5F5EyP8cjiW/X8eS32/eSXIXQgg3JMldCCHckFN1hbQ6BiGE\ncDVO389dCCGE/UhZRggh3JAkdyGEcEOWJ3elVLhSKkopFaOUesbqeNyNUuovpdROpdR2pdRmq+Nx\nB0qpT5RSJ5RSuzLtK6OUWqGUilZK/aKUCrAyRleWw+93klLqb6XUtvQt3MoYXYGlyV0p5QHMALoC\njYABSqn6VsbkhtKAMK11C611a6uDcRP/xfybzWwisFJrXQ9YBTxb6FG5j+x+vwDvaq1vTt9+Luyg\nXI3VLffWwH6t9SGtdTIwH+hpcUzuRmH9f2e3orVeB5zNsrsn8Hn688+BXoUalBvJ4fcL5t+ysJHV\n/9MHAUcyvf47fZ+wHw38qpTaopQabnUwbixQa30CQGt9HAi0OB53NFoptUMp9bGUvXJndXIXjner\n1vpmoDswSinV3uqAigjpY2xfM4FaWuvmwHHgXYvjcXpWJ/ejQPVMr6um7xN2orWOS388BXyPKYUJ\n+zuhlKoIoJSqBJy0OB63orU+lWnBhzlAiJXxuAKrk/sWoI5SKlgpVRzoDyyxOCa3oZTyVUr5pT8v\nCdwB7LE2KrehuL4GvAQYkv78QWBxYQfkZq77/aZ/YWa4B/l3nCtPKy+utU5VSo0GVmC+aD7RWkda\nGZObqQh8nz61gyfwtdZ6hcUxuTyl1FwgDCinlDoMTAJeB75TSj0EHAL6WReha8vh93ubUqo5pvfX\nX8BIywJ0ETL9gBBCuCGryzJCCCEcQJK7EEK4IUnuQgjhhiS5CyGEG5LkLoQQbkiSuxBCuCFJ7kII\n4YYkuQshhBv6f6JrmFi4aEmcAAAAAElFTkSuQmCC\n", 145 | "text/plain": [ 146 | "" 147 | ] 148 | }, 149 | "metadata": {}, 150 | "output_type": "display_data" 151 | } 152 | ], 153 | "source": [ 154 | "nlags=20\n", 155 | "bw1 = BetaWeights(1., 5., 0.1)\n", 156 | "bw2 = BetaWeights(1., 3., 0.1)\n", 157 | "bw3 = BetaWeights(1.5, 5., 0.1)\n", 158 | "\n", 159 | "pd.DataFrame({'w1': bw1.weights(nlags),\n", 160 | " 'w2': bw2.weights(nlags),\n", 161 | " 'w3': bw3.weights(nlags)}).plot()" 162 | ] 163 | }, 164 | { 165 | "cell_type": "code", 166 | "execution_count": null, 167 | "metadata": { 168 | "collapsed": true 169 | }, 170 | "outputs": [], 171 | "source": [] 172 | } 173 | ], 174 | "metadata": { 175 | "kernelspec": { 176 | "display_name": "Python 3", 177 | "language": "python", 178 | "name": "python3" 179 | }, 180 | "language_info": { 181 | "codemirror_mode": { 182 | "name": "ipython", 183 | "version": 3 184 | }, 185 | "file_extension": ".py", 186 | "mimetype": "text/x-python", 187 | "name": "python", 188 | "nbconvert_exporter": "python", 189 | "pygments_lexer": "ipython3", 190 | "version": "3.4.5" 191 | } 192 | }, 193 | "nbformat": 4, 194 | "nbformat_minor": 0 195 | } 196 | -------------------------------------------------------------------------------- /examples/gdp-pay.csv: -------------------------------------------------------------------------------- 1 | observation_date,PAYEMS_20091002,GDP_20090930 2 | 1/1/1947,43545.0, 3 | 2/1/1947,43563.0, 4 | 3/1/1947,43605.0, 5 | 4/1/1947,43491.0,240.4 6 | 5/1/1947,43637.0, 7 | 6/1/1947,43808.0, 8 | 7/1/1947,43742.0,244.5 9 | 8/1/1947,43958.0, 10 | 9/1/1947,44201.0, 11 | 10/1/1947,44415.0,254.3 12 | 11/1/1947,44486.0, 13 | 12/1/1947,44578.0, 14 | 1/1/1948,44686.0,260.3 15 | 2/1/1948,44537.0, 16 | 3/1/1948,44680.0, 17 | 4/1/1948,44369.0,267.3 18 | 5/1/1948,44795.0, 19 | 6/1/1948,45032.0, 20 | 7/1/1948,45160.0,273.8 21 | 8/1/1948,45175.0, 22 | 9/1/1948,45294.0, 23 | 10/1/1948,45250.0,275.1 24 | 11/1/1948,45194.0, 25 | 12/1/1948,45028.0, 26 | 1/1/1949,44675.0,269.9 27 | 2/1/1949,44500.0, 28 | 3/1/1949,44238.0, 29 | 4/1/1949,44230.0,266.2 30 | 5/1/1949,43982.0, 31 | 6/1/1949,43739.0, 32 | 7/1/1949,43530.0,267.6 33 | 8/1/1949,43621.0, 34 | 9/1/1949,43784.0, 35 | 10/1/1949,42950.0,265.2 36 | 11/1/1949,43244.0, 37 | 12/1/1949,43516.0, 38 | 1/1/1950,43530.0,275.2 39 | 2/1/1950,43298.0, 40 | 3/1/1950,43952.0, 41 | 4/1/1950,44376.0,284.5 42 | 5/1/1950,44717.0, 43 | 6/1/1950,45084.0, 44 | 7/1/1950,45453.0,301.9 45 | 8/1/1950,46187.0, 46 | 9/1/1950,46442.0, 47 | 10/1/1950,46712.0,313.3 48 | 11/1/1950,46778.0, 49 | 12/1/1950,46855.0, 50 | 1/1/1951,47289.0,329.0 51 | 2/1/1951,47577.0, 52 | 3/1/1951,47871.0, 53 | 4/1/1951,47856.0,336.6 54 | 5/1/1951,47952.0, 55 | 6/1/1951,48067.0, 56 | 7/1/1951,48061.0,343.5 57 | 8/1/1951,48008.0, 58 | 9/1/1951,47955.0, 59 | 10/1/1951,48009.0,347.9 60 | 11/1/1951,48149.0, 61 | 12/1/1951,48308.0, 62 | 1/1/1952,48299.0,351.2 63 | 2/1/1952,48522.0, 64 | 3/1/1952,48504.0, 65 | 4/1/1952,48616.0,352.1 66 | 5/1/1952,48645.0, 67 | 6/1/1952,48286.0, 68 | 7/1/1952,48144.0,358.5 69 | 8/1/1952,48922.0, 70 | 9/1/1952,49319.0, 71 | 10/1/1952,49598.0,371.4 72 | 11/1/1952,49816.0, 73 | 12/1/1952,50164.0, 74 | 1/1/1953,50145.0,378.4 75 | 2/1/1953,50339.0, 76 | 3/1/1953,50474.0, 77 | 4/1/1953,50432.0,382.0 78 | 5/1/1953,50491.0, 79 | 6/1/1953,50522.0, 80 | 7/1/1953,50536.0,381.1 81 | 8/1/1953,50487.0, 82 | 9/1/1953,50365.0, 83 | 10/1/1953,50242.0,375.9 84 | 11/1/1953,49906.0, 85 | 12/1/1953,49702.0, 86 | 1/1/1954,49467.0,375.2 87 | 2/1/1954,49381.0, 88 | 3/1/1954,49158.0, 89 | 4/1/1954,49177.0,376.0 90 | 5/1/1954,48965.0, 91 | 6/1/1954,48896.0, 92 | 7/1/1954,48834.0,380.8 93 | 8/1/1954,48825.0, 94 | 9/1/1954,48881.0, 95 | 10/1/1954,48944.0,389.4 96 | 11/1/1954,49179.0, 97 | 12/1/1954,49331.0, 98 | 1/1/1955,49497.0,402.6 99 | 2/1/1955,49644.0, 100 | 3/1/1955,49963.0, 101 | 4/1/1955,50246.0,410.9 102 | 5/1/1955,50512.0, 103 | 6/1/1955,50790.0, 104 | 7/1/1955,50985.0,419.4 105 | 8/1/1955,51112.0, 106 | 9/1/1955,51262.0, 107 | 10/1/1955,51431.0,426.0 108 | 11/1/1955,51592.0, 109 | 12/1/1955,51805.0, 110 | 1/1/1956,51975.0,428.3 111 | 2/1/1956,52167.0, 112 | 3/1/1956,52295.0, 113 | 4/1/1956,52375.0,434.2 114 | 5/1/1956,52506.0, 115 | 6/1/1956,52583.0, 116 | 7/1/1956,51954.0,439.2 117 | 8/1/1956,52632.0, 118 | 9/1/1956,52600.0, 119 | 10/1/1956,52781.0,448.1 120 | 11/1/1956,52822.0, 121 | 12/1/1956,52930.0, 122 | 1/1/1957,52888.0,457.2 123 | 2/1/1957,53098.0, 124 | 3/1/1957,53156.0, 125 | 4/1/1957,53238.0,459.2 126 | 5/1/1957,53149.0, 127 | 6/1/1957,53066.0, 128 | 7/1/1957,53122.0,466.4 129 | 8/1/1957,53128.0, 130 | 9/1/1957,52932.0, 131 | 10/1/1957,52765.0,461.5 132 | 11/1/1957,52557.0, 133 | 12/1/1957,52385.0, 134 | 1/1/1958,52077.0,453.9 135 | 2/1/1958,51576.0, 136 | 3/1/1958,51300.0, 137 | 4/1/1958,51026.0,458.0 138 | 5/1/1958,50913.0, 139 | 6/1/1958,50912.0, 140 | 7/1/1958,51037.0,471.7 141 | 8/1/1958,51233.0, 142 | 9/1/1958,51506.0, 143 | 10/1/1958,51485.0,485.0 144 | 11/1/1958,51943.0, 145 | 12/1/1958,52088.0, 146 | 1/1/1959,52481.0,495.5 147 | 2/1/1959,52687.0, 148 | 3/1/1959,53016.0, 149 | 4/1/1959,53320.0,508.5 150 | 5/1/1959,53549.0, 151 | 6/1/1959,53678.0, 152 | 7/1/1959,53803.0,509.3 153 | 8/1/1959,53337.0, 154 | 9/1/1959,53428.0, 155 | 10/1/1959,53359.0,513.2 156 | 11/1/1959,53635.0, 157 | 12/1/1959,54175.0, 158 | 1/1/1960,54274.0,527.0 159 | 2/1/1960,54513.0, 160 | 3/1/1960,54458.0, 161 | 4/1/1960,54812.0,526.2 162 | 5/1/1960,54472.0, 163 | 6/1/1960,54347.0, 164 | 7/1/1960,54303.0,529.0 165 | 8/1/1960,54272.0, 166 | 9/1/1960,54228.0, 167 | 10/1/1960,54144.0,523.7 168 | 11/1/1960,53962.0, 169 | 12/1/1960,53743.0, 170 | 1/1/1961,53683.0,528.0 171 | 2/1/1961,53556.0, 172 | 3/1/1961,53662.0, 173 | 4/1/1961,53626.0,539.0 174 | 5/1/1961,53783.0, 175 | 6/1/1961,53977.0, 176 | 7/1/1961,54124.0,549.5 177 | 8/1/1961,54299.0, 178 | 9/1/1961,54387.0, 179 | 10/1/1961,54521.0,562.6 180 | 11/1/1961,54743.0, 181 | 12/1/1961,54871.0, 182 | 1/1/1962,54891.0,576.1 183 | 2/1/1962,55187.0, 184 | 3/1/1962,55276.0, 185 | 4/1/1962,55601.0,583.2 186 | 5/1/1962,55626.0, 187 | 6/1/1962,55644.0, 188 | 7/1/1962,55746.0,590.0 189 | 8/1/1962,55838.0, 190 | 9/1/1962,55977.0, 191 | 10/1/1962,56041.0,593.3 192 | 11/1/1962,56055.0, 193 | 12/1/1962,56027.0, 194 | 1/1/1963,56116.0,602.5 195 | 2/1/1963,56231.0, 196 | 3/1/1963,56322.0, 197 | 4/1/1963,56580.0,611.2 198 | 5/1/1963,56616.0, 199 | 6/1/1963,56658.0, 200 | 7/1/1963,56795.0,623.9 201 | 8/1/1963,56910.0, 202 | 9/1/1963,57078.0, 203 | 10/1/1963,57284.0,633.5 204 | 11/1/1963,57255.0, 205 | 12/1/1963,57360.0, 206 | 1/1/1964,57487.0,649.6 207 | 2/1/1964,57752.0, 208 | 3/1/1964,57898.0, 209 | 4/1/1964,57923.0,658.9 210 | 5/1/1964,58089.0, 211 | 6/1/1964,58221.0, 212 | 7/1/1964,58412.0,670.5 213 | 8/1/1964,58620.0, 214 | 9/1/1964,58903.0, 215 | 10/1/1964,58794.0,675.6 216 | 11/1/1964,59217.0, 217 | 12/1/1964,59420.0, 218 | 1/1/1965,59583.0,695.7 219 | 2/1/1965,59800.0, 220 | 3/1/1965,60003.0, 221 | 4/1/1965,60258.0,708.1 222 | 5/1/1965,60492.0, 223 | 6/1/1965,60690.0, 224 | 7/1/1965,60963.0,725.2 225 | 8/1/1965,61228.0, 226 | 9/1/1965,61490.0, 227 | 10/1/1965,61718.0,747.5 228 | 11/1/1965,61997.0, 229 | 12/1/1965,62321.0, 230 | 1/1/1966,62528.0,770.8 231 | 2/1/1966,62796.0, 232 | 3/1/1966,63191.0, 233 | 4/1/1966,63436.0,779.9 234 | 5/1/1966,63711.0, 235 | 6/1/1966,64110.0, 236 | 7/1/1966,64301.0,793.1 237 | 8/1/1966,64507.0, 238 | 9/1/1966,64645.0, 239 | 10/1/1966,64854.0,806.9 240 | 11/1/1966,65019.0, 241 | 12/1/1966,65199.0, 242 | 1/1/1967,65407.0,817.8 243 | 2/1/1967,65427.0, 244 | 3/1/1967,65530.0, 245 | 4/1/1967,65467.0,822.3 246 | 5/1/1967,65618.0, 247 | 6/1/1967,65750.0, 248 | 7/1/1967,65887.0,837.0 249 | 8/1/1967,66142.0, 250 | 9/1/1967,66163.0, 251 | 10/1/1967,66225.0,852.7 252 | 11/1/1967,66703.0, 253 | 12/1/1967,66900.0, 254 | 1/1/1968,66805.0,879.8 255 | 2/1/1968,67214.0, 256 | 3/1/1968,67296.0, 257 | 4/1/1968,67555.0,904.1 258 | 5/1/1968,67652.0, 259 | 6/1/1968,67904.0, 260 | 7/1/1968,68126.0,919.3 261 | 8/1/1968,68328.0, 262 | 9/1/1968,68487.0, 263 | 10/1/1968,68720.0,936.2 264 | 11/1/1968,68985.0, 265 | 12/1/1968,69245.0, 266 | 1/1/1969,69438.0,960.9 267 | 2/1/1969,69698.0, 268 | 3/1/1969,69906.0, 269 | 4/1/1969,70072.0,976.1 270 | 5/1/1969,70328.0, 271 | 6/1/1969,70636.0, 272 | 7/1/1969,70730.0,996.3 273 | 8/1/1969,71005.0, 274 | 9/1/1969,70918.0, 275 | 10/1/1969,71119.0,1004.5 276 | 11/1/1969,71088.0, 277 | 12/1/1969,71240.0, 278 | 1/1/1970,71176.0,1017.1 279 | 2/1/1970,71302.0, 280 | 3/1/1970,71453.0, 281 | 4/1/1970,71348.0,1033.1 282 | 5/1/1970,71122.0, 283 | 6/1/1970,71028.0, 284 | 7/1/1970,71055.0,1050.5 285 | 8/1/1970,70932.0, 286 | 9/1/1970,70949.0, 287 | 10/1/1970,70519.0,1052.7 288 | 11/1/1970,70409.0, 289 | 12/1/1970,70790.0, 290 | 1/1/1971,70866.0,1098.1 291 | 2/1/1971,70805.0, 292 | 3/1/1971,70859.0, 293 | 4/1/1971,71037.0,1118.8 294 | 5/1/1971,71247.0, 295 | 6/1/1971,71253.0, 296 | 7/1/1971,71316.0,1139.1 297 | 8/1/1971,71368.0, 298 | 9/1/1971,71620.0, 299 | 10/1/1971,71642.0,1151.4 300 | 11/1/1971,71844.0, 301 | 12/1/1971,72108.0, 302 | 1/1/1972,72445.0,1190.1 303 | 2/1/1972,72652.0, 304 | 3/1/1972,72945.0, 305 | 4/1/1972,73163.0,1225.6 306 | 5/1/1972,73467.0, 307 | 6/1/1972,73760.0, 308 | 7/1/1972,73709.0,1249.3 309 | 8/1/1972,74137.0, 310 | 9/1/1972,74268.0, 311 | 10/1/1972,74672.0,1286.6 312 | 11/1/1972,74965.0, 313 | 12/1/1972,75270.0, 314 | 1/1/1973,75620.0,1335.1 315 | 2/1/1973,76017.0, 316 | 3/1/1973,76286.0, 317 | 4/1/1973,76456.0,1371.5 318 | 5/1/1973,76646.0, 319 | 6/1/1973,76886.0, 320 | 7/1/1973,76911.0,1390.7 321 | 8/1/1973,77166.0, 322 | 9/1/1973,77281.0, 323 | 10/1/1973,77605.0,1431.8 324 | 11/1/1973,77909.0, 325 | 12/1/1973,78035.0, 326 | 1/1/1974,78104.0,1446.5 327 | 2/1/1974,78253.0, 328 | 3/1/1974,78295.0, 329 | 4/1/1974,78384.0,1484.8 330 | 5/1/1974,78547.0, 331 | 6/1/1974,78602.0, 332 | 7/1/1974,78634.0,1513.7 333 | 8/1/1974,78619.0, 334 | 9/1/1974,78614.0, 335 | 10/1/1974,78627.0,1552.8 336 | 11/1/1974,78259.0, 337 | 12/1/1974,77657.0, 338 | 1/1/1975,77297.0,1569.4 339 | 2/1/1975,76919.0, 340 | 3/1/1975,76649.0, 341 | 4/1/1975,76463.0,1605.0 342 | 5/1/1975,76623.0, 343 | 6/1/1975,76519.0, 344 | 7/1/1975,76768.0,1662.4 345 | 8/1/1975,77154.0, 346 | 9/1/1975,77232.0, 347 | 10/1/1975,77535.0,1713.9 348 | 11/1/1975,77679.0, 349 | 12/1/1975,78017.0, 350 | 1/1/1976,78506.0,1771.9 351 | 2/1/1976,78817.0, 352 | 3/1/1976,79049.0, 353 | 4/1/1976,79293.0,1804.2 354 | 5/1/1976,79311.0, 355 | 6/1/1976,79376.0, 356 | 7/1/1976,79546.0,1837.7 357 | 8/1/1976,79704.0, 358 | 9/1/1976,79892.0, 359 | 10/1/1976,79905.0,1884.5 360 | 11/1/1976,80237.0, 361 | 12/1/1976,80448.0, 362 | 1/1/1977,80692.0,1938.5 363 | 2/1/1977,80987.0, 364 | 3/1/1977,81391.0, 365 | 4/1/1977,81730.0,2005.2 366 | 5/1/1977,82089.0, 367 | 6/1/1977,82488.0, 368 | 7/1/1977,82836.0,2066.0 369 | 8/1/1977,83074.0, 370 | 9/1/1977,83532.0, 371 | 10/1/1977,83794.0,2110.8 372 | 11/1/1977,84173.0, 373 | 12/1/1977,84408.0, 374 | 1/1/1978,84595.0,2149.1 375 | 2/1/1978,84948.0, 376 | 3/1/1978,85461.0, 377 | 4/1/1978,86163.0,2274.7 378 | 5/1/1978,86509.0, 379 | 6/1/1978,86951.0, 380 | 7/1/1978,87205.0,2335.2 381 | 8/1/1978,87481.0, 382 | 9/1/1978,87618.0, 383 | 10/1/1978,87954.0,2416.0 384 | 11/1/1978,88391.0, 385 | 12/1/1978,88674.0, 386 | 1/1/1979,88811.0,2463.3 387 | 2/1/1979,89054.0, 388 | 3/1/1979,89480.0, 389 | 4/1/1979,89418.0,2526.4 390 | 5/1/1979,89790.0, 391 | 6/1/1979,90108.0, 392 | 7/1/1979,90214.0,2599.7 393 | 8/1/1979,90296.0, 394 | 9/1/1979,90323.0, 395 | 10/1/1979,90480.0,2659.4 396 | 11/1/1979,90574.0, 397 | 12/1/1979,90669.0, 398 | 1/1/1980,90800.0,2724.1 399 | 2/1/1980,90879.0, 400 | 3/1/1980,90991.0, 401 | 4/1/1980,90846.0,2728.0 402 | 5/1/1980,90415.0, 403 | 6/1/1980,90095.0, 404 | 7/1/1980,89832.0,2785.2 405 | 8/1/1980,90092.0, 406 | 9/1/1980,90205.0, 407 | 10/1/1980,90485.0,2915.3 408 | 11/1/1980,90741.0, 409 | 12/1/1980,90936.0, 410 | 1/1/1981,91031.0,3051.4 411 | 2/1/1981,91098.0, 412 | 3/1/1981,91202.0, 413 | 4/1/1981,91276.0,3084.3 414 | 5/1/1981,91286.0, 415 | 6/1/1981,91482.0, 416 | 7/1/1981,91594.0,3177.0 417 | 8/1/1981,91558.0, 418 | 9/1/1981,91471.0, 419 | 10/1/1981,91371.0,3194.7 420 | 11/1/1981,91162.0, 421 | 12/1/1981,90884.0, 422 | 1/1/1982,90557.0,3184.9 423 | 2/1/1982,90551.0, 424 | 3/1/1982,90422.0, 425 | 4/1/1982,90141.0,3240.9 426 | 5/1/1982,90096.0, 427 | 6/1/1982,89853.0, 428 | 7/1/1982,89510.0,3274.4 429 | 8/1/1982,89352.0, 430 | 9/1/1982,89171.0, 431 | 10/1/1982,88894.0,3312.5 432 | 11/1/1982,88770.0, 433 | 12/1/1982,88756.0, 434 | 1/1/1983,88981.0,3381.0 435 | 2/1/1983,88903.0, 436 | 3/1/1983,89076.0, 437 | 4/1/1983,89352.0,3482.2 438 | 5/1/1983,89629.0, 439 | 6/1/1983,90007.0, 440 | 7/1/1983,90425.0,3587.1 441 | 8/1/1983,90117.0, 442 | 9/1/1983,91231.0, 443 | 10/1/1983,91502.0,3688.1 444 | 11/1/1983,91854.0, 445 | 12/1/1983,92210.0, 446 | 1/1/1984,92657.0,3807.4 447 | 2/1/1984,93136.0, 448 | 3/1/1984,93411.0, 449 | 4/1/1984,93774.0,3906.3 450 | 5/1/1984,94082.0, 451 | 6/1/1984,94461.0, 452 | 7/1/1984,94773.0,3976.0 453 | 8/1/1984,95014.0, 454 | 9/1/1984,95325.0, 455 | 10/1/1984,95611.0,4034.0 456 | 11/1/1984,95960.0, 457 | 12/1/1984,96087.0, 458 | 1/1/1985,96353.0,4117.2 459 | 2/1/1985,96477.0, 460 | 3/1/1985,96823.0, 461 | 4/1/1985,97018.0,4175.7 462 | 5/1/1985,97292.0, 463 | 6/1/1985,97437.0, 464 | 7/1/1985,97626.0,4258.3 465 | 8/1/1985,97819.0, 466 | 9/1/1985,98023.0, 467 | 10/1/1985,98210.0,4318.7 468 | 11/1/1985,98419.0, 469 | 12/1/1985,98587.0, 470 | 1/1/1986,98710.0,4382.4 471 | 2/1/1986,98817.0, 472 | 3/1/1986,98910.0, 473 | 4/1/1986,99098.0,4423.2 474 | 5/1/1986,99223.0, 475 | 6/1/1986,99130.0, 476 | 7/1/1986,99448.0,4491.3 477 | 8/1/1986,99561.0, 478 | 9/1/1986,99907.0, 479 | 10/1/1986,100094.0,4543.3 480 | 11/1/1986,100280.0, 481 | 12/1/1986,100484.0, 482 | 1/1/1987,100655.0,4611.1 483 | 2/1/1987,100887.0, 484 | 3/1/1987,101136.0, 485 | 4/1/1987,101474.0,4686.7 486 | 5/1/1987,101701.0, 487 | 6/1/1987,101872.0, 488 | 7/1/1987,102218.0,4764.5 489 | 8/1/1987,102388.0, 490 | 9/1/1987,102617.0, 491 | 10/1/1987,103109.0,4883.1 492 | 11/1/1987,103340.0, 493 | 12/1/1987,103634.0, 494 | 1/1/1988,103728.0,4948.6 495 | 2/1/1988,104180.0, 496 | 3/1/1988,104456.0, 497 | 4/1/1988,104701.0,5059.3 498 | 5/1/1988,104928.0, 499 | 6/1/1988,105291.0, 500 | 7/1/1988,105514.0,5142.8 501 | 8/1/1988,105635.0, 502 | 9/1/1988,105975.0, 503 | 10/1/1988,106243.0,5251.0 504 | 11/1/1988,106582.0, 505 | 12/1/1988,106871.0, 506 | 1/1/1989,107133.0,5360.3 507 | 2/1/1989,107391.0, 508 | 3/1/1989,107583.0, 509 | 4/1/1989,107756.0,5453.6 510 | 5/1/1989,107874.0, 511 | 6/1/1989,107991.0, 512 | 7/1/1989,108030.0,5532.9 513 | 8/1/1989,108077.0, 514 | 9/1/1989,108326.0, 515 | 10/1/1989,108437.0,5581.7 516 | 11/1/1989,108714.0, 517 | 12/1/1989,108809.0, 518 | 1/1/1990,109151.0,5708.1 519 | 2/1/1990,109396.0, 520 | 3/1/1990,109611.0, 521 | 4/1/1990,109651.0,5797.4 522 | 5/1/1990,109800.0, 523 | 6/1/1990,109817.0, 524 | 7/1/1990,109775.0,5850.6 525 | 8/1/1990,109567.0, 526 | 9/1/1990,109485.0, 527 | 10/1/1990,109324.0,5846.0 528 | 11/1/1990,109180.0, 529 | 12/1/1990,109120.0, 530 | 1/1/1991,109001.0,5880.2 531 | 2/1/1991,108695.0, 532 | 3/1/1991,108535.0, 533 | 4/1/1991,108324.0,5962.0 534 | 5/1/1991,108196.0, 535 | 6/1/1991,108283.0, 536 | 7/1/1991,108236.0,6033.7 537 | 8/1/1991,108251.0, 538 | 9/1/1991,108286.0, 539 | 10/1/1991,108298.0,6092.5 540 | 11/1/1991,108240.0, 541 | 12/1/1991,108263.0, 542 | 1/1/1992,108312.0,6190.7 543 | 2/1/1992,108246.0, 544 | 3/1/1992,108296.0, 545 | 4/1/1992,108454.0,6295.2 546 | 5/1/1992,108580.0, 547 | 6/1/1992,108640.0, 548 | 7/1/1992,108711.0,6389.7 549 | 8/1/1992,108852.0, 550 | 9/1/1992,108887.0, 551 | 10/1/1992,109064.0,6493.6 552 | 11/1/1992,109204.0, 553 | 12/1/1992,109415.0, 554 | 1/1/1993,109725.0,6544.5 555 | 2/1/1993,109967.0, 556 | 3/1/1993,109916.0, 557 | 4/1/1993,110225.0,6622.7 558 | 5/1/1993,110490.0, 559 | 6/1/1993,110663.0, 560 | 7/1/1993,110958.0,6688.3 561 | 8/1/1993,111119.0, 562 | 9/1/1993,111360.0, 563 | 10/1/1993,111637.0,6813.8 564 | 11/1/1993,111898.0, 565 | 12/1/1993,112206.0, 566 | 1/1/1994,112474.0,6916.3 567 | 2/1/1994,112675.0, 568 | 3/1/1994,113137.0, 569 | 4/1/1994,113490.0,7044.3 570 | 5/1/1994,113821.0, 571 | 6/1/1994,114136.0, 572 | 7/1/1994,114499.0,7131.8 573 | 8/1/1994,114799.0, 574 | 9/1/1994,115153.0, 575 | 10/1/1994,115360.0,7248.2 576 | 11/1/1994,115783.0, 577 | 12/1/1994,116057.0, 578 | 1/1/1995,116378.0,7307.7 579 | 2/1/1995,116587.0, 580 | 3/1/1995,116809.0, 581 | 4/1/1995,116971.0,7355.8 582 | 5/1/1995,116955.0, 583 | 6/1/1995,117186.0, 584 | 7/1/1995,117265.0,7452.5 585 | 8/1/1995,117536.0, 586 | 9/1/1995,117781.0, 587 | 10/1/1995,117928.0,7542.5 588 | 11/1/1995,118076.0, 589 | 12/1/1995,118207.0, 590 | 1/1/1996,118188.0,7638.2 591 | 2/1/1996,118622.0, 592 | 3/1/1996,118885.0, 593 | 4/1/1996,119046.0,7800.0 594 | 5/1/1996,119369.0, 595 | 6/1/1996,119647.0, 596 | 7/1/1996,119879.0,7892.7 597 | 8/1/1996,120075.0, 598 | 9/1/1996,120295.0, 599 | 10/1/1996,120538.0,8023.0 600 | 11/1/1996,120834.0, 601 | 12/1/1996,121001.0, 602 | 1/1/1997,121231.0,8137.0 603 | 2/1/1997,121532.0, 604 | 3/1/1997,121844.0, 605 | 4/1/1997,122135.0,8276.8 606 | 5/1/1997,122391.0, 607 | 6/1/1997,122644.0, 608 | 7/1/1997,122927.0,8409.9 609 | 8/1/1997,122909.0, 610 | 9/1/1997,123417.0, 611 | 10/1/1997,123756.0,8505.7 612 | 11/1/1997,124059.0, 613 | 12/1/1997,124358.0, 614 | 1/1/1998,124628.0,8600.6 615 | 2/1/1998,124817.0, 616 | 3/1/1998,124961.0, 617 | 4/1/1998,125238.0,8698.6 618 | 5/1/1998,125639.0, 619 | 6/1/1998,125851.0, 620 | 7/1/1998,125970.0,8847.2 621 | 8/1/1998,126322.0, 622 | 9/1/1998,126540.0, 623 | 10/1/1998,126733.0,9027.5 624 | 11/1/1998,127017.0, 625 | 12/1/1998,127359.0, 626 | 1/1/1999,127480.0,9148.6 627 | 2/1/1999,127890.0, 628 | 3/1/1999,127996.0, 629 | 4/1/1999,128372.0,9252.6 630 | 5/1/1999,128585.0, 631 | 6/1/1999,128851.0, 632 | 7/1/1999,129142.0,9405.1 633 | 8/1/1999,129334.0, 634 | 9/1/1999,129536.0, 635 | 10/1/1999,129944.0,9607.7 636 | 11/1/1999,130238.0, 637 | 12/1/1999,130532.0, 638 | 1/1/2000,130781.0,9709.5 639 | 2/1/2000,130902.0, 640 | 3/1/2000,131374.0, 641 | 4/1/2000,131660.0,9949.1 642 | 5/1/2000,131885.0, 643 | 6/1/2000,131839.0, 644 | 7/1/2000,132002.0,10017.5 645 | 8/1/2000,132005.0, 646 | 9/1/2000,132127.0, 647 | 10/1/2000,132116.0,10129.8 648 | 11/1/2000,132347.0, 649 | 12/1/2000,132485.0, 650 | 1/1/2001,132469.0,10165.1 651 | 2/1/2001,132530.0, 652 | 3/1/2001,132500.0, 653 | 4/1/2001,132219.0,10301.3 654 | 5/1/2001,132175.0, 655 | 6/1/2001,132047.0, 656 | 7/1/2001,131922.0,10305.2 657 | 8/1/2001,131762.0, 658 | 9/1/2001,131518.0, 659 | 10/1/2001,131193.0,10373.1 660 | 11/1/2001,130901.0, 661 | 12/1/2001,130723.0, 662 | 1/1/2002,130591.0,10498.7 663 | 2/1/2002,130444.0, 664 | 3/1/2002,130420.0, 665 | 4/1/2002,130335.0,10601.9 666 | 5/1/2002,130328.0, 667 | 6/1/2002,130373.0, 668 | 7/1/2002,130276.0,10701.7 669 | 8/1/2002,130260.0, 670 | 9/1/2002,130205.0, 671 | 10/1/2002,130331.0,10766.9 672 | 11/1/2002,130339.0, 673 | 12/1/2002,130183.0, 674 | 1/1/2003,130266.0,10888.4 675 | 2/1/2003,130108.0, 676 | 3/1/2003,129896.0, 677 | 4/1/2003,129847.0,11008.1 678 | 5/1/2003,129841.0, 679 | 6/1/2003,129839.0, 680 | 7/1/2003,129864.0,11255.7 681 | 8/1/2003,129822.0, 682 | 9/1/2003,129925.0, 683 | 10/1/2003,130128.0,11416.5 684 | 11/1/2003,130146.0, 685 | 12/1/2003,130270.0, 686 | 1/1/2004,130420.0,11597.2 687 | 2/1/2004,130463.0, 688 | 3/1/2004,130801.0, 689 | 4/1/2004,131051.0,11778.4 690 | 5/1/2004,131361.0, 691 | 6/1/2004,131442.0, 692 | 7/1/2004,131489.0,11950.5 693 | 8/1/2004,131610.0, 694 | 9/1/2004,131770.0, 695 | 10/1/2004,132121.0,12144.9 696 | 11/1/2004,132185.0, 697 | 12/1/2004,132317.0, 698 | 1/1/2005,132499.0,12379.5 699 | 2/1/2005,132720.0, 700 | 3/1/2005,132841.0, 701 | 4/1/2005,133153.0,12516.8 702 | 5/1/2005,133365.0, 703 | 6/1/2005,133624.0, 704 | 7/1/2005,133946.0,12741.6 705 | 8/1/2005,134136.0, 706 | 9/1/2005,134223.0, 707 | 10/1/2005,134321.0,12915.6 708 | 11/1/2005,134701.0, 709 | 12/1/2005,134861.0, 710 | 1/1/2006,135155.0,13183.5 711 | 2/1/2006,135429.0, 712 | 3/1/2006,135711.0, 713 | 4/1/2006,135862.0,13347.8 714 | 5/1/2006,135886.0, 715 | 6/1/2006,135956.0, 716 | 7/1/2006,136142.0,13452.9 717 | 8/1/2006,136291.0, 718 | 9/1/2006,136438.0, 719 | 10/1/2006,136520.0,13611.5 720 | 11/1/2006,136781.0, 721 | 12/1/2006,137000.0, 722 | 1/1/2007,137180.0,13795.6 723 | 2/1/2007,137216.0, 724 | 3/1/2007,137400.0, 725 | 4/1/2007,137435.0,13997.2 726 | 5/1/2007,137591.0, 727 | 6/1/2007,137645.0, 728 | 7/1/2007,137580.0,14179.9 729 | 8/1/2007,137552.0, 730 | 9/1/2007,137652.0, 731 | 10/1/2007,137817.0,14337.9 732 | 11/1/2007,138032.0, 733 | 12/1/2007,138152.0, 734 | 1/1/2008,138080.0,14373.9 735 | 2/1/2008,137936.0, 736 | 3/1/2008,137814.0, 737 | 4/1/2008,137654.0,14497.8 738 | 5/1/2008,137517.0, 739 | 6/1/2008,137356.0, 740 | 7/1/2008,137228.0,14546.7 741 | 8/1/2008,137053.0, 742 | 9/1/2008,136732.0, 743 | 10/1/2008,136352.0,14347.3 744 | 11/1/2008,135755.0, 745 | 12/1/2008,135074.0, 746 | 1/1/2009,134333.0,14178.0 747 | 2/1/2009,133652.0, 748 | 3/1/2009,133000.0, 749 | 4/1/2009,132481.0,14151.2 750 | 5/1/2009,132178.0, 751 | 6/1/2009,131715.0, 752 | 7/1/2009,131411.0, 753 | 8/1/2009,131210.0, 754 | 9/1/2009,130947.0, 755 | -------------------------------------------------------------------------------- /midas/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mikemull/midaspy/0c9c2ad4f72d340eb2f9aa3e179823d332f29491/midas/__init__.py -------------------------------------------------------------------------------- /midas/adl.py: -------------------------------------------------------------------------------- 1 | import numpy as np 2 | import pandas as pd 3 | 4 | from scipy.optimize import least_squares 5 | 6 | from midas.weights import polynomial_weights 7 | 8 | from .mix import mix_freq 9 | from .fit import ssr, jacobian 10 | 11 | 12 | def estimate(y, yl, x, poly='beta'): 13 | """ 14 | Fit MIDAS model 15 | 16 | Args: 17 | y (Series): Low-frequency data 18 | yl (DataFrame): Lags of low-frequency data 19 | x (DataFrame): High-frequency regressors 20 | 21 | Returns: 22 | scipy.optimize.OptimizeResult 23 | """ 24 | 25 | weight_method = polynomial_weights(poly) 26 | 27 | xw, w = weight_method.x_weighted(x, weight_method.init_params()) 28 | 29 | # First we do OLS to get initial parameters 30 | c = np.linalg.lstsq(np.concatenate([np.ones((len(xw), 1)), xw.reshape((len(xw), 1)), yl], axis=1), y)[0] 31 | 32 | def fun(v): 33 | return ssr(v, x.values, y.values, yl.values, weight_method) 34 | 35 | def jac(v): 36 | return jacobian(v, x.values, y.values, yl.values, weight_method) 37 | 38 | opt_res = least_squares(fun, 39 | np.concatenate([c[0:2], weight_method.init_params(), c[2:]]), 40 | jac, 41 | xtol=1e-9, 42 | ftol=1e-9, 43 | max_nfev=5000, 44 | verbose=0) 45 | 46 | return opt_res 47 | 48 | 49 | def forecast(xfc, yfcl, res, poly='beta'): 50 | """ 51 | Use the results of MIDAS regression to forecast new periods 52 | """ 53 | weight_method = polynomial_weights(poly) 54 | 55 | a, b, theta1, theta2, lags = res.x 56 | 57 | xw, w = weight_method.x_weighted(xfc.values, [theta1, theta2]) 58 | 59 | yf = a + b * xw + lags * yfcl.values[:, 0] 60 | 61 | return pd.DataFrame(yf, index=xfc.index, columns=['yfh']) 62 | 63 | 64 | def midas_adl(y_in, x_in, start_date, end_date, xlag, ylag, horizon, forecast_horizon=1, poly='beta', method='fixed'): 65 | methods = {'fixed': fixed_window, 66 | 'rolling': rolling, 67 | 'recursive': recursive} 68 | 69 | return methods[method](y_in, x_in, start_date, end_date, xlag, ylag, horizon, forecast_horizon, poly) 70 | 71 | 72 | def fixed_window(y_in, x_in, start_date, end_date, xlag, ylag, horizon, forecast_horizon=1, poly='beta'): 73 | 74 | y, yl, x, yf, ylf, xf = mix_freq(y_in, x_in, xlag, ylag, horizon, 75 | start_date=start_date, 76 | end_date=end_date) 77 | 78 | res = estimate(y, yl, x, poly=poly) 79 | 80 | fc = forecast(xf, ylf, res, poly=poly) 81 | 82 | return (rmse(fc.yfh, yf), 83 | pd.DataFrame({'preds': fc.yfh, 'targets': yf}, index=yf.index)) 84 | 85 | 86 | def rolling(y_in, x_in, start_date, end_date, xlag, ylag, horizon, forecast_horizon=1, poly='beta'): 87 | """ 88 | Make a series of forecasts using a fixed-size "rolling window" to fit the 89 | model 90 | 91 | Args: 92 | y_in (Series): Dependent variable 93 | x_in (Series): Independent variables 94 | start_date: Initial start date for window 95 | window_size: Number of periods in window 96 | max_horizon: Maximum horizon to forecast 97 | 98 | Returns: 99 | rmse (float64), predicted and target values (DataFrame) 100 | 101 | """ 102 | preds = [] 103 | targets = [] 104 | dt_index = [] 105 | start_loc = y_in.index.get_loc(start_date) 106 | window_size = 60 107 | if end_date is not None: 108 | end_loc = y_in.index.get_loc(end_date) 109 | window_size = end_loc - start_loc 110 | 111 | while start_loc + window_size < (len(y_in.index) - forecast_horizon): 112 | y, yl, x, yf, ylf, xf = mix_freq(y_in, x_in, xlag, ylag, horizon, 113 | start_date=y_in.index[start_loc], 114 | end_date=y_in.index[start_loc + window_size]) 115 | if len(xf) - forecast_horizon <= 0: 116 | break 117 | 118 | res = estimate(y, yl, x) 119 | 120 | fc = forecast(xf, ylf, res) 121 | 122 | preds.append(fc.iloc[forecast_horizon - 1].values[0]) 123 | targets.append(yf.iloc[forecast_horizon - 1]) 124 | dt_index.append(yf.index[forecast_horizon - 1]) 125 | 126 | start_loc += 1 127 | 128 | preds = np.array(preds) 129 | targets = np.array(targets) 130 | 131 | return (rmse(preds, targets), 132 | pd.DataFrame({'preds': preds, 'targets': targets}, index=pd.DatetimeIndex(dt_index))) 133 | 134 | 135 | def recursive(y_in, x_in, start_date, end_date, xlag, ylag, horizon, forecast_horizon=1, poly='beta'): 136 | preds = [] 137 | targets = [] 138 | dt_index = [] 139 | 140 | forecast_start_loc = y_in.index.get_loc(end_date) 141 | 142 | model_end_dates = y_in.index[forecast_start_loc:-forecast_horizon] 143 | 144 | for estimate_end in model_end_dates: 145 | y, yl, x, yf, ylf, xf = mix_freq(y_in, x_in, xlag, ylag, horizon, 146 | start_date=start_date, 147 | end_date=estimate_end) 148 | if len(xf) - forecast_horizon <= 0: 149 | break 150 | 151 | res = estimate(y, yl, x) 152 | 153 | fc = forecast(xf, ylf, res) 154 | 155 | preds.append(fc.iloc[forecast_horizon - 1].values[0]) 156 | targets.append(yf.iloc[forecast_horizon - 1]) 157 | dt_index.append(yf.index[forecast_horizon - 1]) 158 | 159 | preds = np.array(preds) 160 | targets = np.array(targets) 161 | 162 | return (rmse(preds, targets), 163 | pd.DataFrame({'preds': preds, 'targets': targets}, index=pd.DatetimeIndex(dt_index))) 164 | 165 | 166 | def rmse(predictions, targets): 167 | return np.sqrt(((predictions - targets) ** 2).mean()) 168 | -------------------------------------------------------------------------------- /midas/fit.py: -------------------------------------------------------------------------------- 1 | import numpy as np 2 | 3 | 4 | def ssr(a, x, y, yl, weight_method): 5 | """ 6 | Calculate the sum of the squared residuals of the MiDAS equations. Parameters are arranged 7 | a_h = a[0] 8 | b_h = a[1] 9 | theta is a[2:n] 10 | y lag params are a[n:] 11 | 12 | Args: 13 | a: 14 | x: 15 | y: 16 | yl: 17 | 18 | Returns: 19 | 20 | """ 21 | xw, _ = weight_method.x_weighted(x, a[2:4]) 22 | 23 | error = y - a[0] - a[1] * xw 24 | if yl is not None: 25 | error -= np.dot(yl, a[4:]) 26 | 27 | return error 28 | 29 | 30 | def jacobian(a, x, y, yl, weight_method): 31 | 32 | jwx = jacobian_wx(x, a[2:4], weight_method) 33 | 34 | xw, _ = weight_method.x_weighted(x, a[2:4]) 35 | 36 | if yl is None: 37 | jac_e = np.concatenate([np.ones((len(xw), 1)), xw.reshape((len(xw), 1)), (a[1] * jwx)], axis=1) 38 | else: 39 | jac_e = np.concatenate([np.ones((len(xw), 1)), xw.reshape((len(xw), 1)), (a[1] * jwx), yl], axis=1) 40 | 41 | return -1.0 * jac_e 42 | 43 | 44 | def jacobian_wx(x, params, weight_method): 45 | eps = 1e-6 46 | 47 | jt = [] 48 | for i, p in enumerate(params): 49 | dp = np.concatenate([params[0:i], [p + eps / 2], params[i + 1:]]) 50 | dm = np.concatenate([params[0:i], [p - eps / 2], params[i + 1:]]) 51 | jtp, _ = weight_method.x_weighted(x, dp) 52 | jtm, _ = weight_method.x_weighted(x, dm) 53 | jt.append((jtp - jtm) / eps) 54 | 55 | return np.column_stack(jt) 56 | -------------------------------------------------------------------------------- /midas/mix.py: -------------------------------------------------------------------------------- 1 | import datetime 2 | import re 3 | import pandas as pd 4 | import numpy as np 5 | 6 | 7 | def mix_freq(lf_data, hf_data, xlag, ylag, horizon, start_date=None, end_date=None): 8 | """ 9 | Set up data for mixed-frequency regression 10 | 11 | Args: 12 | lf_data (Series): Low-frequency time series 13 | hf_data (Series): High-frequency time series 14 | xlag (int or str): Number of high frequency lags 15 | ylag (int or str): Number of low-frequency lags 16 | horizon (int): 17 | start_date (date): Date on which to start estimation 18 | end_date (date); Date on which to end estimation 19 | 20 | Returns: 21 | 22 | """ 23 | ylag = calculate_lags(ylag, lf_data) 24 | xlag = calculate_lags(xlag, hf_data) 25 | 26 | min_date_y = lf_data.index[ylag] 27 | min_date_x = hf_data.index[xlag + horizon] 28 | 29 | if min_date_y < min_date_x: 30 | min_date_y = next(d for d in list(lf_data.index) if d > min_date_x) 31 | 32 | if (start_date is None) or (start_date < min_date_y): 33 | start_date = min_date_y 34 | if end_date is None: 35 | end_date = lf_data.index[-2] 36 | 37 | max_date = lf_data.index[-1] 38 | if max_date > hf_data.index[-1]: 39 | max_date = next(d for d in reversed(list(lf_data.index)) if d < hf_data.index[-1]) 40 | 41 | if end_date > max_date: 42 | end_date = max_date 43 | 44 | forecast_start_date = lf_data.index[lf_data.index.get_loc(end_date) + 1] 45 | 46 | ylags = None 47 | if ylag > 0: 48 | # N.B. ylags will be a dataframe because there can be more than 1 lag 49 | ylags = pd.concat([lf_data.shift(lag) for lag in range(1, ylag + 1)], axis=1) 50 | 51 | x_rows = [] 52 | 53 | for lfdate in lf_data.loc[start_date:max_date].index: 54 | start_hf = hf_data.index.get_indexer([lfdate], method='bfill')[0] # @todo Find a more efficient way 55 | x_rows.append(hf_data.iloc[start_hf - horizon: start_hf - xlag - horizon: -1].values) 56 | 57 | x = pd.DataFrame(data=x_rows, index=lf_data.loc[start_date:max_date].index) 58 | 59 | return (lf_data.loc[start_date:end_date], 60 | ylags.loc[start_date:end_date] if ylag > 0 else None, 61 | x.loc[start_date:end_date], 62 | lf_data[forecast_start_date:max_date], 63 | ylags[forecast_start_date:max_date] if ylag > 0 else None, 64 | x.loc[forecast_start_date:]) 65 | 66 | 67 | def calculate_lags(lag, time_series): 68 | 69 | if isinstance(lag, str): 70 | return parse_lag_string(lag, data_freq(time_series)[0]) 71 | else: 72 | return lag 73 | 74 | 75 | def data_freq(time_series): 76 | """ 77 | Determine frequency of given time series 78 | 79 | Args: 80 | time_series (Series): Series with datetime index 81 | 82 | Returns: 83 | string: frequency specifier 84 | """ 85 | try: 86 | freq = time_series.index.freq 87 | return freq.freqstr or pd.infer_freq(time_series.index) 88 | except AttributeError: 89 | return pd.infer_freq(time_series.index) 90 | 91 | 92 | def parse_lag_string(lag_string, freq): 93 | """ 94 | Determine number of lags from lag string 95 | 96 | Args: 97 | lag_string: String indicating number of lags (eg, "3M", "2Q") 98 | freq (string): Frequency of series to be lagged 99 | 100 | Returns: 101 | 102 | """ 103 | 104 | freq_map = { 105 | 'd': {'m': 30, 'd': 1}, 106 | 'b': {'m': 22, 'b': 1}, 107 | 'm': {'q': 3, 'm': 1}, 108 | 'q': {'y': 4}, 109 | 'a': {'y': 1} 110 | } 111 | 112 | m = re.match('(\d+)(\w)', lag_string) 113 | 114 | duration = int(m.group(1)) 115 | period = m.group(2).lower() 116 | 117 | return duration * freq_map[freq.lower()][period] 118 | 119 | 120 | if __name__ == '__main__': 121 | 122 | lf_data = pd.read_csv('./tests/data/gdp.csv', parse_dates=['DATE']) 123 | lf_data.set_index('DATE', inplace=True) 124 | 125 | hf_data = pd.read_csv('./tests/data/farmpay.csv', parse_dates=['DATE']) 126 | hf_data.set_index('DATE', inplace=True) 127 | 128 | lf_g = np.log(1 + lf_data.pct_change()).dropna() * 100. 129 | hf_g = np.log(1 + hf_data.pct_change()).dropna() * 100. 130 | 131 | y, x = mix_freq(lf_g.VALUE, hf_g, 9, 1, 1, 132 | start_date=datetime.datetime(1985, 1, 1), 133 | end_date=datetime.datetime(2009, 1, 1)) 134 | -------------------------------------------------------------------------------- /midas/weights.py: -------------------------------------------------------------------------------- 1 | import numpy as np 2 | 3 | 4 | def polynomial_weights(poly): 5 | poly_class = { 6 | 'beta': BetaWeights(1., 5.), 7 | 'beta_nz': BetaWeights(1., 5.), 8 | 'expalmon': ExpAlmonWeights(-1., 0.) 9 | } 10 | 11 | return poly_class[poly] 12 | 13 | 14 | class WeightMethod(object): 15 | def __init__(self): 16 | pass 17 | 18 | def weights(self): 19 | pass 20 | 21 | 22 | class BetaWeights(WeightMethod): 23 | def __init__(self, theta1, theta2, theta3=None): 24 | self.theta1 = theta1 25 | self.theta2 = theta2 26 | self.theta3 = theta3 27 | 28 | def weights(self, nlags): 29 | """ Evenly-spaced beta weights 30 | """ 31 | eps = np.spacing(1) 32 | u = np.linspace(eps, 1.0 - eps, nlags) 33 | 34 | beta_vals = u ** (self.theta1 - 1) * (1 - u) ** (self.theta2 - 1) 35 | 36 | beta_vals = beta_vals / sum(beta_vals) 37 | 38 | if self.theta3 is not None: 39 | w = beta_vals + self.theta3 40 | return w / sum(w) 41 | 42 | return beta_vals 43 | 44 | def x_weighted(self, x, params): 45 | self.theta1, self.theta2 = params 46 | 47 | w = self.weights(x.shape[1]) 48 | 49 | return np.dot(x, w), np.tile(w.T, (x.shape[1], 1)) 50 | 51 | @property 52 | def num_params(self): 53 | return 2 if self.theta3 is None else 3 54 | 55 | @staticmethod 56 | def init_params(): 57 | return np.array([1., 5.]) 58 | 59 | 60 | class ExpAlmonWeights(WeightMethod): 61 | def __init__(self, theta1, theta2): 62 | self.theta1 = theta1 63 | self.theta2 = theta2 64 | 65 | def weights(self, nlags): 66 | """ 67 | Exponential Almon weights 68 | 69 | Returns: 70 | array: Array of weights 71 | 72 | """ 73 | ilag = np.arange(1, nlags + 1) 74 | z = np.exp(self.theta1 * ilag + self.theta2 * ilag ** 2) 75 | return z / sum(z) 76 | 77 | def x_weighted(self, x, params): 78 | self.theta1, self.theta2 = params 79 | 80 | w = self.weights(x.shape[1]) 81 | 82 | return np.dot(x, w), np.tile(w.T, (x.shape[1], 1)) 83 | 84 | @property 85 | def num_params(self): 86 | return 2 87 | 88 | @staticmethod 89 | def init_params(): 90 | return np.array([-1., 0.]) 91 | -------------------------------------------------------------------------------- /poetry.lock: -------------------------------------------------------------------------------- 1 | # This file is automatically @generated by Poetry 1.5.1 and should not be changed by hand. 2 | 3 | [[package]] 4 | name = "colorama" 5 | version = "0.4.6" 6 | description = "Cross-platform colored terminal text." 7 | optional = false 8 | python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7" 9 | files = [ 10 | {file = "colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6"}, 11 | {file = "colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44"}, 12 | ] 13 | 14 | [[package]] 15 | name = "iniconfig" 16 | version = "2.0.0" 17 | description = "brain-dead simple config-ini parsing" 18 | optional = false 19 | python-versions = ">=3.7" 20 | files = [ 21 | {file = "iniconfig-2.0.0-py3-none-any.whl", hash = "sha256:b6a85871a79d2e3b22d2d1b94ac2824226a63c6b741c88f7ae975f18b6778374"}, 22 | {file = "iniconfig-2.0.0.tar.gz", hash = "sha256:2d91e135bf72d31a410b17c16da610a82cb55f6b0477d1a902134b24a455b8b3"}, 23 | ] 24 | 25 | [[package]] 26 | name = "numpy" 27 | version = "2.1.1" 28 | description = "Fundamental package for array computing in Python" 29 | optional = false 30 | python-versions = ">=3.10" 31 | files = [ 32 | {file = "numpy-2.1.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:c8a0e34993b510fc19b9a2ce7f31cb8e94ecf6e924a40c0c9dd4f62d0aac47d9"}, 33 | {file = "numpy-2.1.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:7dd86dfaf7c900c0bbdcb8b16e2f6ddf1eb1fe39c6c8cca6e94844ed3152a8fd"}, 34 | {file = "numpy-2.1.1-cp310-cp310-macosx_14_0_arm64.whl", hash = "sha256:5889dd24f03ca5a5b1e8a90a33b5a0846d8977565e4ae003a63d22ecddf6782f"}, 35 | {file = "numpy-2.1.1-cp310-cp310-macosx_14_0_x86_64.whl", hash = "sha256:59ca673ad11d4b84ceb385290ed0ebe60266e356641428c845b39cd9df6713ab"}, 36 | {file = "numpy-2.1.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:13ce49a34c44b6de5241f0b38b07e44c1b2dcacd9e36c30f9c2fcb1bb5135db7"}, 37 | {file = "numpy-2.1.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:913cc1d311060b1d409e609947fa1b9753701dac96e6581b58afc36b7ee35af6"}, 38 | {file = "numpy-2.1.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:caf5d284ddea7462c32b8d4a6b8af030b6c9fd5332afb70e7414d7fdded4bfd0"}, 39 | {file = "numpy-2.1.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:57eb525e7c2a8fdee02d731f647146ff54ea8c973364f3b850069ffb42799647"}, 40 | {file = "numpy-2.1.1-cp310-cp310-win32.whl", hash = "sha256:9a8e06c7a980869ea67bbf551283bbed2856915f0a792dc32dd0f9dd2fb56728"}, 41 | {file = "numpy-2.1.1-cp310-cp310-win_amd64.whl", hash = "sha256:d10c39947a2d351d6d466b4ae83dad4c37cd6c3cdd6d5d0fa797da56f710a6ae"}, 42 | {file = "numpy-2.1.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:0d07841fd284718feffe7dd17a63a2e6c78679b2d386d3e82f44f0108c905550"}, 43 | {file = "numpy-2.1.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:b5613cfeb1adfe791e8e681128f5f49f22f3fcaa942255a6124d58ca59d9528f"}, 44 | {file = "numpy-2.1.1-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:0b8cc2715a84b7c3b161f9ebbd942740aaed913584cae9cdc7f8ad5ad41943d0"}, 45 | {file = "numpy-2.1.1-cp311-cp311-macosx_14_0_x86_64.whl", hash = "sha256:b49742cdb85f1f81e4dc1b39dcf328244f4d8d1ded95dea725b316bd2cf18c95"}, 46 | {file = "numpy-2.1.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e8d5f8a8e3bc87334f025194c6193e408903d21ebaeb10952264943a985066ca"}, 47 | {file = "numpy-2.1.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d51fc141ddbe3f919e91a096ec739f49d686df8af254b2053ba21a910ae518bf"}, 48 | {file = "numpy-2.1.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:98ce7fb5b8063cfdd86596b9c762bf2b5e35a2cdd7e967494ab78a1fa7f8b86e"}, 49 | {file = "numpy-2.1.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:24c2ad697bd8593887b019817ddd9974a7f429c14a5469d7fad413f28340a6d2"}, 50 | {file = "numpy-2.1.1-cp311-cp311-win32.whl", hash = "sha256:397bc5ce62d3fb73f304bec332171535c187e0643e176a6e9421a6e3eacef06d"}, 51 | {file = "numpy-2.1.1-cp311-cp311-win_amd64.whl", hash = "sha256:ae8ce252404cdd4de56dcfce8b11eac3c594a9c16c231d081fb705cf23bd4d9e"}, 52 | {file = "numpy-2.1.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:7c803b7934a7f59563db459292e6aa078bb38b7ab1446ca38dd138646a38203e"}, 53 | {file = "numpy-2.1.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:6435c48250c12f001920f0751fe50c0348f5f240852cfddc5e2f97e007544cbe"}, 54 | {file = "numpy-2.1.1-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:3269c9eb8745e8d975980b3a7411a98976824e1fdef11f0aacf76147f662b15f"}, 55 | {file = "numpy-2.1.1-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:fac6e277a41163d27dfab5f4ec1f7a83fac94e170665a4a50191b545721c6521"}, 56 | {file = "numpy-2.1.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fcd8f556cdc8cfe35e70efb92463082b7f43dd7e547eb071ffc36abc0ca4699b"}, 57 | {file = "numpy-2.1.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d2b9cd92c8f8e7b313b80e93cedc12c0112088541dcedd9197b5dee3738c1201"}, 58 | {file = "numpy-2.1.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:afd9c680df4de71cd58582b51e88a61feed4abcc7530bcd3d48483f20fc76f2a"}, 59 | {file = "numpy-2.1.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:8661c94e3aad18e1ea17a11f60f843a4933ccaf1a25a7c6a9182af70610b2313"}, 60 | {file = "numpy-2.1.1-cp312-cp312-win32.whl", hash = "sha256:950802d17a33c07cba7fd7c3dcfa7d64705509206be1606f196d179e539111ed"}, 61 | {file = "numpy-2.1.1-cp312-cp312-win_amd64.whl", hash = "sha256:3fc5eabfc720db95d68e6646e88f8b399bfedd235994016351b1d9e062c4b270"}, 62 | {file = "numpy-2.1.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:046356b19d7ad1890c751b99acad5e82dc4a02232013bd9a9a712fddf8eb60f5"}, 63 | {file = "numpy-2.1.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:6e5a9cb2be39350ae6c8f79410744e80154df658d5bea06e06e0ac5bb75480d5"}, 64 | {file = "numpy-2.1.1-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:d4c57b68c8ef5e1ebf47238e99bf27657511ec3f071c465f6b1bccbef12d4136"}, 65 | {file = "numpy-2.1.1-cp313-cp313-macosx_14_0_x86_64.whl", hash = "sha256:8ae0fd135e0b157365ac7cc31fff27f07a5572bdfc38f9c2d43b2aff416cc8b0"}, 66 | {file = "numpy-2.1.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:981707f6b31b59c0c24bcda52e5605f9701cb46da4b86c2e8023656ad3e833cb"}, 67 | {file = "numpy-2.1.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2ca4b53e1e0b279142113b8c5eb7d7a877e967c306edc34f3b58e9be12fda8df"}, 68 | {file = "numpy-2.1.1-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:e097507396c0be4e547ff15b13dc3866f45f3680f789c1a1301b07dadd3fbc78"}, 69 | {file = "numpy-2.1.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:f7506387e191fe8cdb267f912469a3cccc538ab108471291636a96a54e599556"}, 70 | {file = "numpy-2.1.1-cp313-cp313-win32.whl", hash = "sha256:251105b7c42abe40e3a689881e1793370cc9724ad50d64b30b358bbb3a97553b"}, 71 | {file = "numpy-2.1.1-cp313-cp313-win_amd64.whl", hash = "sha256:f212d4f46b67ff604d11fff7cc62d36b3e8714edf68e44e9760e19be38c03eb0"}, 72 | {file = "numpy-2.1.1-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:920b0911bb2e4414c50e55bd658baeb78281a47feeb064ab40c2b66ecba85553"}, 73 | {file = "numpy-2.1.1-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:bab7c09454460a487e631ffc0c42057e3d8f2a9ddccd1e60c7bb8ed774992480"}, 74 | {file = "numpy-2.1.1-cp313-cp313t-macosx_14_0_arm64.whl", hash = "sha256:cea427d1350f3fd0d2818ce7350095c1a2ee33e30961d2f0fef48576ddbbe90f"}, 75 | {file = "numpy-2.1.1-cp313-cp313t-macosx_14_0_x86_64.whl", hash = "sha256:e30356d530528a42eeba51420ae8bf6c6c09559051887196599d96ee5f536468"}, 76 | {file = "numpy-2.1.1-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e8dfa9e94fc127c40979c3eacbae1e61fda4fe71d84869cc129e2721973231ef"}, 77 | {file = "numpy-2.1.1-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:910b47a6d0635ec1bd53b88f86120a52bf56dcc27b51f18c7b4a2e2224c29f0f"}, 78 | {file = "numpy-2.1.1-cp313-cp313t-musllinux_1_1_x86_64.whl", hash = "sha256:13cc11c00000848702322af4de0147ced365c81d66053a67c2e962a485b3717c"}, 79 | {file = "numpy-2.1.1-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:53e27293b3a2b661c03f79aa51c3987492bd4641ef933e366e0f9f6c9bf257ec"}, 80 | {file = "numpy-2.1.1-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:7be6a07520b88214ea85d8ac8b7d6d8a1839b0b5cb87412ac9f49fa934eb15d5"}, 81 | {file = "numpy-2.1.1-pp310-pypy310_pp73-macosx_14_0_x86_64.whl", hash = "sha256:52ac2e48f5ad847cd43c4755520a2317f3380213493b9d8a4c5e37f3b87df504"}, 82 | {file = "numpy-2.1.1-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:50a95ca3560a6058d6ea91d4629a83a897ee27c00630aed9d933dff191f170cd"}, 83 | {file = "numpy-2.1.1-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:99f4a9ee60eed1385a86e82288971a51e71df052ed0b2900ed30bc840c0f2e39"}, 84 | {file = "numpy-2.1.1.tar.gz", hash = "sha256:d0cf7d55b1051387807405b3898efafa862997b4cba8aa5dbe657be794afeafd"}, 85 | ] 86 | 87 | [[package]] 88 | name = "packaging" 89 | version = "24.1" 90 | description = "Core utilities for Python packages" 91 | optional = false 92 | python-versions = ">=3.8" 93 | files = [ 94 | {file = "packaging-24.1-py3-none-any.whl", hash = "sha256:5b8f2217dbdbd2f7f384c41c628544e6d52f2d0f53c6d0c3ea61aa5d1d7ff124"}, 95 | {file = "packaging-24.1.tar.gz", hash = "sha256:026ed72c8ed3fcce5bf8950572258698927fd1dbda10a5e981cdf0ac37f4f002"}, 96 | ] 97 | 98 | [[package]] 99 | name = "pandas" 100 | version = "2.2.3" 101 | description = "Powerful data structures for data analysis, time series, and statistics" 102 | optional = false 103 | python-versions = ">=3.9" 104 | files = [ 105 | {file = "pandas-2.2.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:1948ddde24197a0f7add2bdc4ca83bf2b1ef84a1bc8ccffd95eda17fd836ecb5"}, 106 | {file = "pandas-2.2.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:381175499d3802cde0eabbaf6324cce0c4f5d52ca6f8c377c29ad442f50f6348"}, 107 | {file = "pandas-2.2.3-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:d9c45366def9a3dd85a6454c0e7908f2b3b8e9c138f5dc38fed7ce720d8453ed"}, 108 | {file = "pandas-2.2.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:86976a1c5b25ae3f8ccae3a5306e443569ee3c3faf444dfd0f41cda24667ad57"}, 109 | {file = "pandas-2.2.3-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:b8661b0238a69d7aafe156b7fa86c44b881387509653fdf857bebc5e4008ad42"}, 110 | {file = "pandas-2.2.3-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:37e0aced3e8f539eccf2e099f65cdb9c8aa85109b0be6e93e2baff94264bdc6f"}, 111 | {file = "pandas-2.2.3-cp310-cp310-win_amd64.whl", hash = "sha256:56534ce0746a58afaf7942ba4863e0ef81c9c50d3f0ae93e9497d6a41a057645"}, 112 | {file = "pandas-2.2.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:66108071e1b935240e74525006034333f98bcdb87ea116de573a6a0dccb6c039"}, 113 | {file = "pandas-2.2.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:7c2875855b0ff77b2a64a0365e24455d9990730d6431b9e0ee18ad8acee13dbd"}, 114 | {file = "pandas-2.2.3-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:cd8d0c3be0515c12fed0bdbae072551c8b54b7192c7b1fda0ba56059a0179698"}, 115 | {file = "pandas-2.2.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c124333816c3a9b03fbeef3a9f230ba9a737e9e5bb4060aa2107a86cc0a497fc"}, 116 | {file = "pandas-2.2.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:63cc132e40a2e084cf01adf0775b15ac515ba905d7dcca47e9a251819c575ef3"}, 117 | {file = "pandas-2.2.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:29401dbfa9ad77319367d36940cd8a0b3a11aba16063e39632d98b0e931ddf32"}, 118 | {file = "pandas-2.2.3-cp311-cp311-win_amd64.whl", hash = "sha256:3fc6873a41186404dad67245896a6e440baacc92f5b716ccd1bc9ed2995ab2c5"}, 119 | {file = "pandas-2.2.3-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:b1d432e8d08679a40e2a6d8b2f9770a5c21793a6f9f47fdd52c5ce1948a5a8a9"}, 120 | {file = "pandas-2.2.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:a5a1595fe639f5988ba6a8e5bc9649af3baf26df3998a0abe56c02609392e0a4"}, 121 | {file = "pandas-2.2.3-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:5de54125a92bb4d1c051c0659e6fcb75256bf799a732a87184e5ea503965bce3"}, 122 | {file = "pandas-2.2.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fffb8ae78d8af97f849404f21411c95062db1496aeb3e56f146f0355c9989319"}, 123 | {file = "pandas-2.2.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:6dfcb5ee8d4d50c06a51c2fffa6cff6272098ad6540aed1a76d15fb9318194d8"}, 124 | {file = "pandas-2.2.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:062309c1b9ea12a50e8ce661145c6aab431b1e99530d3cd60640e255778bd43a"}, 125 | {file = "pandas-2.2.3-cp312-cp312-win_amd64.whl", hash = "sha256:59ef3764d0fe818125a5097d2ae867ca3fa64df032331b7e0917cf5d7bf66b13"}, 126 | {file = "pandas-2.2.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:f00d1345d84d8c86a63e476bb4955e46458b304b9575dcf71102b5c705320015"}, 127 | {file = "pandas-2.2.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:3508d914817e153ad359d7e069d752cdd736a247c322d932eb89e6bc84217f28"}, 128 | {file = "pandas-2.2.3-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:22a9d949bfc9a502d320aa04e5d02feab689d61da4e7764b62c30b991c42c5f0"}, 129 | {file = "pandas-2.2.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f3a255b2c19987fbbe62a9dfd6cff7ff2aa9ccab3fc75218fd4b7530f01efa24"}, 130 | {file = "pandas-2.2.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:800250ecdadb6d9c78eae4990da62743b857b470883fa27f652db8bdde7f6659"}, 131 | {file = "pandas-2.2.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:6374c452ff3ec675a8f46fd9ab25c4ad0ba590b71cf0656f8b6daa5202bca3fb"}, 132 | {file = "pandas-2.2.3-cp313-cp313-win_amd64.whl", hash = "sha256:61c5ad4043f791b61dd4752191d9f07f0ae412515d59ba8f005832a532f8736d"}, 133 | {file = "pandas-2.2.3-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:3b71f27954685ee685317063bf13c7709a7ba74fc996b84fc6821c59b0f06468"}, 134 | {file = "pandas-2.2.3-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:38cf8125c40dae9d5acc10fa66af8ea6fdf760b2714ee482ca691fc66e6fcb18"}, 135 | {file = "pandas-2.2.3-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:ba96630bc17c875161df3818780af30e43be9b166ce51c9a18c1feae342906c2"}, 136 | {file = "pandas-2.2.3-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1db71525a1538b30142094edb9adc10be3f3e176748cd7acc2240c2f2e5aa3a4"}, 137 | {file = "pandas-2.2.3-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:15c0e1e02e93116177d29ff83e8b1619c93ddc9c49083f237d4312337a61165d"}, 138 | {file = "pandas-2.2.3-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:ad5b65698ab28ed8d7f18790a0dc58005c7629f227be9ecc1072aa74c0c1d43a"}, 139 | {file = "pandas-2.2.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:bc6b93f9b966093cb0fd62ff1a7e4c09e6d546ad7c1de191767baffc57628f39"}, 140 | {file = "pandas-2.2.3-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:5dbca4c1acd72e8eeef4753eeca07de9b1db4f398669d5994086f788a5d7cc30"}, 141 | {file = "pandas-2.2.3-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:8cd6d7cc958a3910f934ea8dbdf17b2364827bb4dafc38ce6eef6bb3d65ff09c"}, 142 | {file = "pandas-2.2.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:99df71520d25fade9db7c1076ac94eb994f4d2673ef2aa2e86ee039b6746d20c"}, 143 | {file = "pandas-2.2.3-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:31d0ced62d4ea3e231a9f228366919a5ea0b07440d9d4dac345376fd8e1477ea"}, 144 | {file = "pandas-2.2.3-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:7eee9e7cea6adf3e3d24e304ac6b8300646e2a5d1cd3a3c2abed9101b0846761"}, 145 | {file = "pandas-2.2.3-cp39-cp39-win_amd64.whl", hash = "sha256:4850ba03528b6dd51d6c5d273c46f183f39a9baf3f0143e566b89450965b105e"}, 146 | {file = "pandas-2.2.3.tar.gz", hash = "sha256:4f18ba62b61d7e192368b84517265a99b4d7ee8912f8708660fb4a366cc82667"}, 147 | ] 148 | 149 | [package.dependencies] 150 | numpy = [ 151 | {version = ">=1.23.2", markers = "python_version == \"3.11\""}, 152 | {version = ">=1.26.0", markers = "python_version >= \"3.12\""}, 153 | ] 154 | python-dateutil = ">=2.8.2" 155 | pytz = ">=2020.1" 156 | tzdata = ">=2022.7" 157 | 158 | [package.extras] 159 | all = ["PyQt5 (>=5.15.9)", "SQLAlchemy (>=2.0.0)", "adbc-driver-postgresql (>=0.8.0)", "adbc-driver-sqlite (>=0.8.0)", "beautifulsoup4 (>=4.11.2)", "bottleneck (>=1.3.6)", "dataframe-api-compat (>=0.1.7)", "fastparquet (>=2022.12.0)", "fsspec (>=2022.11.0)", "gcsfs (>=2022.11.0)", "html5lib (>=1.1)", "hypothesis (>=6.46.1)", "jinja2 (>=3.1.2)", "lxml (>=4.9.2)", "matplotlib (>=3.6.3)", "numba (>=0.56.4)", "numexpr (>=2.8.4)", "odfpy (>=1.4.1)", "openpyxl (>=3.1.0)", "pandas-gbq (>=0.19.0)", "psycopg2 (>=2.9.6)", "pyarrow (>=10.0.1)", "pymysql (>=1.0.2)", "pyreadstat (>=1.2.0)", "pytest (>=7.3.2)", "pytest-xdist (>=2.2.0)", "python-calamine (>=0.1.7)", "pyxlsb (>=1.0.10)", "qtpy (>=2.3.0)", "s3fs (>=2022.11.0)", "scipy (>=1.10.0)", "tables (>=3.8.0)", "tabulate (>=0.9.0)", "xarray (>=2022.12.0)", "xlrd (>=2.0.1)", "xlsxwriter (>=3.0.5)", "zstandard (>=0.19.0)"] 160 | aws = ["s3fs (>=2022.11.0)"] 161 | clipboard = ["PyQt5 (>=5.15.9)", "qtpy (>=2.3.0)"] 162 | compression = ["zstandard (>=0.19.0)"] 163 | computation = ["scipy (>=1.10.0)", "xarray (>=2022.12.0)"] 164 | consortium-standard = ["dataframe-api-compat (>=0.1.7)"] 165 | excel = ["odfpy (>=1.4.1)", "openpyxl (>=3.1.0)", "python-calamine (>=0.1.7)", "pyxlsb (>=1.0.10)", "xlrd (>=2.0.1)", "xlsxwriter (>=3.0.5)"] 166 | feather = ["pyarrow (>=10.0.1)"] 167 | fss = ["fsspec (>=2022.11.0)"] 168 | gcp = ["gcsfs (>=2022.11.0)", "pandas-gbq (>=0.19.0)"] 169 | hdf5 = ["tables (>=3.8.0)"] 170 | html = ["beautifulsoup4 (>=4.11.2)", "html5lib (>=1.1)", "lxml (>=4.9.2)"] 171 | mysql = ["SQLAlchemy (>=2.0.0)", "pymysql (>=1.0.2)"] 172 | output-formatting = ["jinja2 (>=3.1.2)", "tabulate (>=0.9.0)"] 173 | parquet = ["pyarrow (>=10.0.1)"] 174 | performance = ["bottleneck (>=1.3.6)", "numba (>=0.56.4)", "numexpr (>=2.8.4)"] 175 | plot = ["matplotlib (>=3.6.3)"] 176 | postgresql = ["SQLAlchemy (>=2.0.0)", "adbc-driver-postgresql (>=0.8.0)", "psycopg2 (>=2.9.6)"] 177 | pyarrow = ["pyarrow (>=10.0.1)"] 178 | spss = ["pyreadstat (>=1.2.0)"] 179 | sql-other = ["SQLAlchemy (>=2.0.0)", "adbc-driver-postgresql (>=0.8.0)", "adbc-driver-sqlite (>=0.8.0)"] 180 | test = ["hypothesis (>=6.46.1)", "pytest (>=7.3.2)", "pytest-xdist (>=2.2.0)"] 181 | xml = ["lxml (>=4.9.2)"] 182 | 183 | [[package]] 184 | name = "pluggy" 185 | version = "1.5.0" 186 | description = "plugin and hook calling mechanisms for python" 187 | optional = false 188 | python-versions = ">=3.8" 189 | files = [ 190 | {file = "pluggy-1.5.0-py3-none-any.whl", hash = "sha256:44e1ad92c8ca002de6377e165f3e0f1be63266ab4d554740532335b9d75ea669"}, 191 | {file = "pluggy-1.5.0.tar.gz", hash = "sha256:2cffa88e94fdc978c4c574f15f9e59b7f4201d439195c3715ca9e2486f1d0cf1"}, 192 | ] 193 | 194 | [package.extras] 195 | dev = ["pre-commit", "tox"] 196 | testing = ["pytest", "pytest-benchmark"] 197 | 198 | [[package]] 199 | name = "pytest" 200 | version = "8.3.3" 201 | description = "pytest: simple powerful testing with Python" 202 | optional = false 203 | python-versions = ">=3.8" 204 | files = [ 205 | {file = "pytest-8.3.3-py3-none-any.whl", hash = "sha256:a6853c7375b2663155079443d2e45de913a911a11d669df02a50814944db57b2"}, 206 | {file = "pytest-8.3.3.tar.gz", hash = "sha256:70b98107bd648308a7952b06e6ca9a50bc660be218d53c257cc1fc94fda10181"}, 207 | ] 208 | 209 | [package.dependencies] 210 | colorama = {version = "*", markers = "sys_platform == \"win32\""} 211 | iniconfig = "*" 212 | packaging = "*" 213 | pluggy = ">=1.5,<2" 214 | 215 | [package.extras] 216 | dev = ["argcomplete", "attrs (>=19.2)", "hypothesis (>=3.56)", "mock", "pygments (>=2.7.2)", "requests", "setuptools", "xmlschema"] 217 | 218 | [[package]] 219 | name = "python-dateutil" 220 | version = "2.9.0.post0" 221 | description = "Extensions to the standard Python datetime module" 222 | optional = false 223 | python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7" 224 | files = [ 225 | {file = "python-dateutil-2.9.0.post0.tar.gz", hash = "sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3"}, 226 | {file = "python_dateutil-2.9.0.post0-py2.py3-none-any.whl", hash = "sha256:a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427"}, 227 | ] 228 | 229 | [package.dependencies] 230 | six = ">=1.5" 231 | 232 | [[package]] 233 | name = "pytz" 234 | version = "2024.2" 235 | description = "World timezone definitions, modern and historical" 236 | optional = false 237 | python-versions = "*" 238 | files = [ 239 | {file = "pytz-2024.2-py2.py3-none-any.whl", hash = "sha256:31c7c1817eb7fae7ca4b8c7ee50c72f93aa2dd863de768e1ef4245d426aa0725"}, 240 | {file = "pytz-2024.2.tar.gz", hash = "sha256:2aa355083c50a0f93fa581709deac0c9ad65cca8a9e9beac660adcbd493c798a"}, 241 | ] 242 | 243 | [[package]] 244 | name = "ruff" 245 | version = "0.6.8" 246 | description = "An extremely fast Python linter and code formatter, written in Rust." 247 | optional = false 248 | python-versions = ">=3.7" 249 | files = [ 250 | {file = "ruff-0.6.8-py3-none-linux_armv6l.whl", hash = "sha256:77944bca110ff0a43b768f05a529fecd0706aac7bcce36d7f1eeb4cbfca5f0f2"}, 251 | {file = "ruff-0.6.8-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:27b87e1801e786cd6ede4ada3faa5e254ce774de835e6723fd94551464c56b8c"}, 252 | {file = "ruff-0.6.8-py3-none-macosx_11_0_arm64.whl", hash = "sha256:cd48f945da2a6334f1793d7f701725a76ba93bf3d73c36f6b21fb04d5338dcf5"}, 253 | {file = "ruff-0.6.8-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:677e03c00f37c66cea033274295a983c7c546edea5043d0c798833adf4cf4c6f"}, 254 | {file = "ruff-0.6.8-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:9f1476236b3eacfacfc0f66aa9e6cd39f2a624cb73ea99189556015f27c0bdeb"}, 255 | {file = "ruff-0.6.8-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6f5a2f17c7d32991169195d52a04c95b256378bbf0de8cb98478351eb70d526f"}, 256 | {file = "ruff-0.6.8-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:5fd0d4b7b1457c49e435ee1e437900ced9b35cb8dc5178921dfb7d98d65a08d0"}, 257 | {file = "ruff-0.6.8-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f8034b19b993e9601f2ddf2c517451e17a6ab5cdb1c13fdff50c1442a7171d87"}, 258 | {file = "ruff-0.6.8-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:6cfb227b932ba8ef6e56c9f875d987973cd5e35bc5d05f5abf045af78ad8e098"}, 259 | {file = "ruff-0.6.8-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6ef0411eccfc3909269fed47c61ffebdcb84a04504bafa6b6df9b85c27e813b0"}, 260 | {file = "ruff-0.6.8-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:007dee844738c3d2e6c24ab5bc7d43c99ba3e1943bd2d95d598582e9c1b27750"}, 261 | {file = "ruff-0.6.8-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:ce60058d3cdd8490e5e5471ef086b3f1e90ab872b548814e35930e21d848c9ce"}, 262 | {file = "ruff-0.6.8-py3-none-musllinux_1_2_i686.whl", hash = "sha256:1085c455d1b3fdb8021ad534379c60353b81ba079712bce7a900e834859182fa"}, 263 | {file = "ruff-0.6.8-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:70edf6a93b19481affd287d696d9e311388d808671bc209fb8907b46a8c3af44"}, 264 | {file = "ruff-0.6.8-py3-none-win32.whl", hash = "sha256:792213f7be25316f9b46b854df80a77e0da87ec66691e8f012f887b4a671ab5a"}, 265 | {file = "ruff-0.6.8-py3-none-win_amd64.whl", hash = "sha256:ec0517dc0f37cad14a5319ba7bba6e7e339d03fbf967a6d69b0907d61be7a263"}, 266 | {file = "ruff-0.6.8-py3-none-win_arm64.whl", hash = "sha256:8d3bb2e3fbb9875172119021a13eed38849e762499e3cfde9588e4b4d70968dc"}, 267 | {file = "ruff-0.6.8.tar.gz", hash = "sha256:a5bf44b1aa0adaf6d9d20f86162b34f7c593bfedabc51239953e446aefc8ce18"}, 268 | ] 269 | 270 | [[package]] 271 | name = "scipy" 272 | version = "1.14.1" 273 | description = "Fundamental algorithms for scientific computing in Python" 274 | optional = false 275 | python-versions = ">=3.10" 276 | files = [ 277 | {file = "scipy-1.14.1-cp310-cp310-macosx_10_13_x86_64.whl", hash = "sha256:b28d2ca4add7ac16ae8bb6632a3c86e4b9e4d52d3e34267f6e1b0c1f8d87e389"}, 278 | {file = "scipy-1.14.1-cp310-cp310-macosx_12_0_arm64.whl", hash = "sha256:d0d2821003174de06b69e58cef2316a6622b60ee613121199cb2852a873f8cf3"}, 279 | {file = "scipy-1.14.1-cp310-cp310-macosx_14_0_arm64.whl", hash = "sha256:8bddf15838ba768bb5f5083c1ea012d64c9a444e16192762bd858f1e126196d0"}, 280 | {file = "scipy-1.14.1-cp310-cp310-macosx_14_0_x86_64.whl", hash = "sha256:97c5dddd5932bd2a1a31c927ba5e1463a53b87ca96b5c9bdf5dfd6096e27efc3"}, 281 | {file = "scipy-1.14.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2ff0a7e01e422c15739ecd64432743cf7aae2b03f3084288f399affcefe5222d"}, 282 | {file = "scipy-1.14.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8e32dced201274bf96899e6491d9ba3e9a5f6b336708656466ad0522d8528f69"}, 283 | {file = "scipy-1.14.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:8426251ad1e4ad903a4514712d2fa8fdd5382c978010d1c6f5f37ef286a713ad"}, 284 | {file = "scipy-1.14.1-cp310-cp310-win_amd64.whl", hash = "sha256:a49f6ed96f83966f576b33a44257d869756df6cf1ef4934f59dd58b25e0327e5"}, 285 | {file = "scipy-1.14.1-cp311-cp311-macosx_10_13_x86_64.whl", hash = "sha256:2da0469a4ef0ecd3693761acbdc20f2fdeafb69e6819cc081308cc978153c675"}, 286 | {file = "scipy-1.14.1-cp311-cp311-macosx_12_0_arm64.whl", hash = "sha256:c0ee987efa6737242745f347835da2cc5bb9f1b42996a4d97d5c7ff7928cb6f2"}, 287 | {file = "scipy-1.14.1-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:3a1b111fac6baec1c1d92f27e76511c9e7218f1695d61b59e05e0fe04dc59617"}, 288 | {file = "scipy-1.14.1-cp311-cp311-macosx_14_0_x86_64.whl", hash = "sha256:8475230e55549ab3f207bff11ebfc91c805dc3463ef62eda3ccf593254524ce8"}, 289 | {file = "scipy-1.14.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:278266012eb69f4a720827bdd2dc54b2271c97d84255b2faaa8f161a158c3b37"}, 290 | {file = "scipy-1.14.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fef8c87f8abfb884dac04e97824b61299880c43f4ce675dd2cbeadd3c9b466d2"}, 291 | {file = "scipy-1.14.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:b05d43735bb2f07d689f56f7b474788a13ed8adc484a85aa65c0fd931cf9ccd2"}, 292 | {file = "scipy-1.14.1-cp311-cp311-win_amd64.whl", hash = "sha256:716e389b694c4bb564b4fc0c51bc84d381735e0d39d3f26ec1af2556ec6aad94"}, 293 | {file = "scipy-1.14.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:631f07b3734d34aced009aaf6fedfd0eb3498a97e581c3b1e5f14a04164a456d"}, 294 | {file = "scipy-1.14.1-cp312-cp312-macosx_12_0_arm64.whl", hash = "sha256:af29a935803cc707ab2ed7791c44288a682f9c8107bc00f0eccc4f92c08d6e07"}, 295 | {file = "scipy-1.14.1-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:2843f2d527d9eebec9a43e6b406fb7266f3af25a751aa91d62ff416f54170bc5"}, 296 | {file = "scipy-1.14.1-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:eb58ca0abd96911932f688528977858681a59d61a7ce908ffd355957f7025cfc"}, 297 | {file = "scipy-1.14.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:30ac8812c1d2aab7131a79ba62933a2a76f582d5dbbc695192453dae67ad6310"}, 298 | {file = "scipy-1.14.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8f9ea80f2e65bdaa0b7627fb00cbeb2daf163caa015e59b7516395fe3bd1e066"}, 299 | {file = "scipy-1.14.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:edaf02b82cd7639db00dbff629995ef185c8df4c3ffa71a5562a595765a06ce1"}, 300 | {file = "scipy-1.14.1-cp312-cp312-win_amd64.whl", hash = "sha256:2ff38e22128e6c03ff73b6bb0f85f897d2362f8c052e3b8ad00532198fbdae3f"}, 301 | {file = "scipy-1.14.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:1729560c906963fc8389f6aac023739ff3983e727b1a4d87696b7bf108316a79"}, 302 | {file = "scipy-1.14.1-cp313-cp313-macosx_12_0_arm64.whl", hash = "sha256:4079b90df244709e675cdc8b93bfd8a395d59af40b72e339c2287c91860deb8e"}, 303 | {file = "scipy-1.14.1-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:e0cf28db0f24a38b2a0ca33a85a54852586e43cf6fd876365c86e0657cfe7d73"}, 304 | {file = "scipy-1.14.1-cp313-cp313-macosx_14_0_x86_64.whl", hash = "sha256:0c2f95de3b04e26f5f3ad5bb05e74ba7f68b837133a4492414b3afd79dfe540e"}, 305 | {file = "scipy-1.14.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b99722ea48b7ea25e8e015e8341ae74624f72e5f21fc2abd45f3a93266de4c5d"}, 306 | {file = "scipy-1.14.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5149e3fd2d686e42144a093b206aef01932a0059c2a33ddfa67f5f035bdfe13e"}, 307 | {file = "scipy-1.14.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:e4f5a7c49323533f9103d4dacf4e4f07078f360743dec7f7596949149efeec06"}, 308 | {file = "scipy-1.14.1-cp313-cp313-win_amd64.whl", hash = "sha256:baff393942b550823bfce952bb62270ee17504d02a1801d7fd0719534dfb9c84"}, 309 | {file = "scipy-1.14.1.tar.gz", hash = "sha256:5a275584e726026a5699459aa72f828a610821006228e841b94275c4a7c08417"}, 310 | ] 311 | 312 | [package.dependencies] 313 | numpy = ">=1.23.5,<2.3" 314 | 315 | [package.extras] 316 | dev = ["cython-lint (>=0.12.2)", "doit (>=0.36.0)", "mypy (==1.10.0)", "pycodestyle", "pydevtool", "rich-click", "ruff (>=0.0.292)", "types-psutil", "typing_extensions"] 317 | doc = ["jupyterlite-pyodide-kernel", "jupyterlite-sphinx (>=0.13.1)", "jupytext", "matplotlib (>=3.5)", "myst-nb", "numpydoc", "pooch", "pydata-sphinx-theme (>=0.15.2)", "sphinx (>=5.0.0,<=7.3.7)", "sphinx-design (>=0.4.0)"] 318 | test = ["Cython", "array-api-strict (>=2.0)", "asv", "gmpy2", "hypothesis (>=6.30)", "meson", "mpmath", "ninja", "pooch", "pytest", "pytest-cov", "pytest-timeout", "pytest-xdist", "scikit-umfpack", "threadpoolctl"] 319 | 320 | [[package]] 321 | name = "six" 322 | version = "1.16.0" 323 | description = "Python 2 and 3 compatibility utilities" 324 | optional = false 325 | python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*" 326 | files = [ 327 | {file = "six-1.16.0-py2.py3-none-any.whl", hash = "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254"}, 328 | {file = "six-1.16.0.tar.gz", hash = "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926"}, 329 | ] 330 | 331 | [[package]] 332 | name = "tzdata" 333 | version = "2024.2" 334 | description = "Provider of IANA time zone data" 335 | optional = false 336 | python-versions = ">=2" 337 | files = [ 338 | {file = "tzdata-2024.2-py2.py3-none-any.whl", hash = "sha256:a48093786cdcde33cad18c2555e8532f34422074448fbc874186f0abd79565cd"}, 339 | {file = "tzdata-2024.2.tar.gz", hash = "sha256:7d85cc416e9382e69095b7bdf4afd9e3880418a2413feec7069d533d6b4e31cc"}, 340 | ] 341 | 342 | [metadata] 343 | lock-version = "2.0" 344 | python-versions = "^3.11" 345 | content-hash = "cc8097ba4db62047da08acd716cf3c0d80a56cd30f77ec9eed02834e8db83b63" 346 | -------------------------------------------------------------------------------- /pyproject.toml: -------------------------------------------------------------------------------- 1 | [tool.poetry] 2 | name = "midaspy" 3 | version = "0.1.0" 4 | description = "Python version of Mixed Data Sampling (MIDAS) regression" 5 | authors = ["Mike Mull "] 6 | license = "MIT" 7 | readme = "README.md" 8 | 9 | [tool.poetry.dependencies] 10 | python = "^3.11" 11 | pandas = "^2.2.3" 12 | scipy = "^1.14.1" 13 | 14 | [tool.poetry.group.dev.dependencies] 15 | pytest = "^8.3.3" 16 | ruff = "^0.6.8" 17 | 18 | [tool.pytest.ini_options] 19 | pythonpath = [ 20 | "." 21 | ] 22 | 23 | [build-system] 24 | requires = ["poetry-core"] 25 | build-backend = "poetry.core.masonry.api" 26 | -------------------------------------------------------------------------------- /setup.cfg: -------------------------------------------------------------------------------- 1 | [flake8] 2 | max-line-length = 120 3 | ignore = E731 4 | 5 | -------------------------------------------------------------------------------- /setup.py: -------------------------------------------------------------------------------- 1 | """ Setup for midaspy 2 | """ 3 | 4 | # Always prefer setuptools over distutils 5 | from setuptools import setup, find_packages 6 | # To use a consistent encoding 7 | from codecs import open 8 | from os import path 9 | 10 | here = path.abspath(path.dirname(__file__)) 11 | 12 | # Get the long description from the README file 13 | with open(path.join(here, 'README.md'), encoding='utf-8') as f: 14 | long_description = f.read() 15 | 16 | setup( 17 | name='midaspy', 18 | 19 | version='0.0.1', 20 | 21 | description='Python version of MIDAS regression', 22 | long_description=long_description, 23 | 24 | # The project's main homepage. 25 | url='https://github.com/mikemull/midaspy', 26 | 27 | # Author details 28 | author='Mike Mull', 29 | author_email='mike.mull@gmail.com', 30 | 31 | # Choose your license 32 | license='MIT', 33 | 34 | # See https://pypi.python.org/pypi?%3Aaction=list_classifiers 35 | classifiers=[ 36 | 'Development Status :: 3 - Alpha', 37 | 38 | # Indicate who your project is intended for 39 | 'Intended Audience :: Science/Research', 40 | 'Topic :: Scientific/Engineering', 41 | 42 | # Pick your license as you wish (should match "license" above) 43 | 'License :: OSI Approved :: MIT License', 44 | 45 | # Specify the Python versions you support here. In particular, ensure 46 | # that you indicate whether you support Python 2, Python 3 or both. 47 | 'Programming Language :: Python :: 3', 48 | 'Programming Language :: Python :: 3.3', 49 | 'Programming Language :: Python :: 3.4', 50 | 'Programming Language :: Python :: 3.5', 51 | ], 52 | 53 | keywords='regression midas timeseries', 54 | 55 | packages=find_packages(exclude=['docs', 'tests*']), 56 | 57 | install_requires=['pandas', 'numpy', 'scipy'], 58 | 59 | ) 60 | -------------------------------------------------------------------------------- /tests/conftest.py: -------------------------------------------------------------------------------- 1 | import os 2 | import pytest 3 | 4 | import pandas as pd 5 | import numpy as np 6 | 7 | 8 | @pytest.fixture() 9 | def gdp_data(request): 10 | df = pd.read_csv(os.path.join(os.path.dirname(request.module.__file__), 'data', 'gdp.csv'), 11 | parse_dates=['DATE']) 12 | 13 | df['gdp'] = (np.log(df.GDP) - np.log(df.GDP.shift(1))) * 100. 14 | 15 | return df.set_index('DATE') 16 | 17 | 18 | @pytest.fixture() 19 | def pay_data(request): 20 | df = pd.read_csv(os.path.join(os.path.dirname(request.module.__file__), 'data', 'pay.csv'), 21 | parse_dates=['DATE']) 22 | 23 | df['pay'] = (np.log(df.PAY) - np.log(df.PAY.shift(1))) * 100. 24 | 25 | return df.set_index('DATE') 26 | -------------------------------------------------------------------------------- /tests/data/gdp.csv: -------------------------------------------------------------------------------- 1 | DATE,GDP 2 | 1947-01-01,237.2 3 | 1947-04-01,240.4 4 | 1947-07-01,244.5 5 | 1947-10-01,254.3 6 | 1948-01-01,260.3 7 | 1948-04-01,267.3 8 | 1948-07-01,273.8 9 | 1948-10-01,275.1 10 | 1949-01-01,269.9 11 | 1949-04-01,266.2 12 | 1949-07-01,267.6 13 | 1949-10-01,265.2 14 | 1950-01-01,275.2 15 | 1950-04-01,284.5 16 | 1950-07-01,301.9 17 | 1950-10-01,313.3 18 | 1951-01-01,329.0 19 | 1951-04-01,336.6 20 | 1951-07-01,343.5 21 | 1951-10-01,347.9 22 | 1952-01-01,351.2 23 | 1952-04-01,352.1 24 | 1952-07-01,358.5 25 | 1952-10-01,371.4 26 | 1953-01-01,378.4 27 | 1953-04-01,382.0 28 | 1953-07-01,381.1 29 | 1953-10-01,375.9 30 | 1954-01-01,375.2 31 | 1954-04-01,376.0 32 | 1954-07-01,380.8 33 | 1954-10-01,389.4 34 | 1955-01-01,402.6 35 | 1955-04-01,410.9 36 | 1955-07-01,419.4 37 | 1955-10-01,426.0 38 | 1956-01-01,428.3 39 | 1956-04-01,434.2 40 | 1956-07-01,439.2 41 | 1956-10-01,448.1 42 | 1957-01-01,457.2 43 | 1957-04-01,459.2 44 | 1957-07-01,466.4 45 | 1957-10-01,461.5 46 | 1958-01-01,453.9 47 | 1958-04-01,458.0 48 | 1958-07-01,471.7 49 | 1958-10-01,485.0 50 | 1959-01-01,495.5 51 | 1959-04-01,508.5 52 | 1959-07-01,509.3 53 | 1959-10-01,513.2 54 | 1960-01-01,527.0 55 | 1960-04-01,526.2 56 | 1960-07-01,529.0 57 | 1960-10-01,523.7 58 | 1961-01-01,528.0 59 | 1961-04-01,539.0 60 | 1961-07-01,549.5 61 | 1961-10-01,562.6 62 | 1962-01-01,576.1 63 | 1962-04-01,583.2 64 | 1962-07-01,590.0 65 | 1962-10-01,593.3 66 | 1963-01-01,602.5 67 | 1963-04-01,611.2 68 | 1963-07-01,623.9 69 | 1963-10-01,633.5 70 | 1964-01-01,649.6 71 | 1964-04-01,658.9 72 | 1964-07-01,670.5 73 | 1964-10-01,675.6 74 | 1965-01-01,695.7 75 | 1965-04-01,708.1 76 | 1965-07-01,725.2 77 | 1965-10-01,747.5 78 | 1966-01-01,770.8 79 | 1966-04-01,779.9 80 | 1966-07-01,793.1 81 | 1966-10-01,806.9 82 | 1967-01-01,817.8 83 | 1967-04-01,822.3 84 | 1967-07-01,837.0 85 | 1967-10-01,852.7 86 | 1968-01-01,879.8 87 | 1968-04-01,904.1 88 | 1968-07-01,919.3 89 | 1968-10-01,936.2 90 | 1969-01-01,960.9 91 | 1969-04-01,976.1 92 | 1969-07-01,996.3 93 | 1969-10-01,1004.5 94 | 1970-01-01,1017.1 95 | 1970-04-01,1033.1 96 | 1970-07-01,1050.5 97 | 1970-10-01,1052.7 98 | 1971-01-01,1098.1 99 | 1971-04-01,1118.8 100 | 1971-07-01,1139.1 101 | 1971-10-01,1151.4 102 | 1972-01-01,1190.1 103 | 1972-04-01,1225.6 104 | 1972-07-01,1249.3 105 | 1972-10-01,1286.6 106 | 1973-01-01,1335.1 107 | 1973-04-01,1371.5 108 | 1973-07-01,1390.7 109 | 1973-10-01,1431.8 110 | 1974-01-01,1446.5 111 | 1974-04-01,1484.8 112 | 1974-07-01,1513.7 113 | 1974-10-01,1552.8 114 | 1975-01-01,1569.4 115 | 1975-04-01,1605.0 116 | 1975-07-01,1662.4 117 | 1975-10-01,1713.9 118 | 1976-01-01,1771.9 119 | 1976-04-01,1804.2 120 | 1976-07-01,1837.7 121 | 1976-10-01,1884.5 122 | 1977-01-01,1938.5 123 | 1977-04-01,2005.2 124 | 1977-07-01,2066.0 125 | 1977-10-01,2110.8 126 | 1978-01-01,2149.1 127 | 1978-04-01,2274.7 128 | 1978-07-01,2335.2 129 | 1978-10-01,2416.0 130 | 1979-01-01,2463.3 131 | 1979-04-01,2526.4 132 | 1979-07-01,2599.7 133 | 1979-10-01,2659.4 134 | 1980-01-01,2724.1 135 | 1980-04-01,2728.0 136 | 1980-07-01,2785.2 137 | 1980-10-01,2915.3 138 | 1981-01-01,3051.4 139 | 1981-04-01,3084.3 140 | 1981-07-01,3177.0 141 | 1981-10-01,3194.7 142 | 1982-01-01,3184.9 143 | 1982-04-01,3240.9 144 | 1982-07-01,3274.4 145 | 1982-10-01,3312.5 146 | 1983-01-01,3381.0 147 | 1983-04-01,3482.2 148 | 1983-07-01,3587.1 149 | 1983-10-01,3688.1 150 | 1984-01-01,3807.4 151 | 1984-04-01,3906.3 152 | 1984-07-01,3976.0 153 | 1984-10-01,4034.0 154 | 1985-01-01,4117.2 155 | 1985-04-01,4175.7 156 | 1985-07-01,4258.3 157 | 1985-10-01,4318.7 158 | 1986-01-01,4382.4 159 | 1986-04-01,4423.2 160 | 1986-07-01,4491.3 161 | 1986-10-01,4543.3 162 | 1987-01-01,4611.1 163 | 1987-04-01,4686.7 164 | 1987-07-01,4764.5 165 | 1987-10-01,4883.1 166 | 1988-01-01,4948.6 167 | 1988-04-01,5059.3 168 | 1988-07-01,5142.8 169 | 1988-10-01,5251.0 170 | 1989-01-01,5360.3 171 | 1989-04-01,5453.6 172 | 1989-07-01,5532.9 173 | 1989-10-01,5581.7 174 | 1990-01-01,5708.1 175 | 1990-04-01,5797.4 176 | 1990-07-01,5850.6 177 | 1990-10-01,5846.0 178 | 1991-01-01,5880.2 179 | 1991-04-01,5962.0 180 | 1991-07-01,6033.7 181 | 1991-10-01,6092.5 182 | 1992-01-01,6190.7 183 | 1992-04-01,6295.2 184 | 1992-07-01,6389.7 185 | 1992-10-01,6493.6 186 | 1993-01-01,6544.5 187 | 1993-04-01,6622.7 188 | 1993-07-01,6688.3 189 | 1993-10-01,6813.8 190 | 1994-01-01,6916.3 191 | 1994-04-01,7044.3 192 | 1994-07-01,7131.8 193 | 1994-10-01,7248.2 194 | 1995-01-01,7307.7 195 | 1995-04-01,7355.8 196 | 1995-07-01,7452.5 197 | 1995-10-01,7542.5 198 | 1996-01-01,7638.2 199 | 1996-04-01,7800.0 200 | 1996-07-01,7892.7 201 | 1996-10-01,8023.0 202 | 1997-01-01,8137.0 203 | 1997-04-01,8276.8 204 | 1997-07-01,8409.9 205 | 1997-10-01,8505.7 206 | 1998-01-01,8600.6 207 | 1998-04-01,8698.6 208 | 1998-07-01,8847.2 209 | 1998-10-01,9027.5 210 | 1999-01-01,9148.6 211 | 1999-04-01,9252.6 212 | 1999-07-01,9405.1 213 | 1999-10-01,9607.7 214 | 2000-01-01,9709.5 215 | 2000-04-01,9949.1 216 | 2000-07-01,10017.5 217 | 2000-10-01,10129.8 218 | 2001-01-01,10165.1 219 | 2001-04-01,10301.3 220 | 2001-07-01,10305.2 221 | 2001-10-01,10373.1 222 | 2002-01-01,10498.7 223 | 2002-04-01,10601.9 224 | 2002-07-01,10701.7 225 | 2002-10-01,10766.9 226 | 2003-01-01,10887.4 227 | 2003-04-01,11011.6 228 | 2003-07-01,11255.1 229 | 2003-10-01,11414.8 230 | 2004-01-01,11589.9 231 | 2004-04-01,11762.9 232 | 2004-07-01,11936.3 233 | 2004-10-01,12123.9 234 | 2005-01-01,12361.8 235 | 2005-04-01,12500.0 236 | 2005-07-01,12728.6 237 | 2005-10-01,12901.4 238 | 2006-01-01,13161.4 239 | 2006-04-01,13330.4 240 | 2006-07-01,13432.8 241 | 2006-10-01,13584.2 242 | 2007-01-01,13758.5 243 | 2007-04-01,13976.8 244 | 2007-07-01,14126.2 245 | 2007-10-01,14253.2 246 | 2008-01-01,14273.9 247 | 2008-04-01,14415.5 248 | 2008-07-01,14395.1 249 | 2008-10-01,14081.7 250 | 2009-01-01,13893.7 251 | 2009-04-01,13854.1 252 | 2009-07-01,13920.5 253 | 2009-10-01,14087.4 254 | 2010-01-01,14277.9 255 | 2010-04-01,14467.8 256 | 2010-07-01,14605.5 257 | 2010-10-01,14755.0 258 | 2011-01-01,14867.8 259 | 2011-04-01,14996.8 260 | -------------------------------------------------------------------------------- /tests/data/pay.csv: -------------------------------------------------------------------------------- 1 | DATE,PAY 2 | 1939-01-01,29923 3 | 1939-02-01,30100 4 | 1939-03-01,30280 5 | 1939-04-01,30094 6 | 1939-05-01,30300 7 | 1939-06-01,30502 8 | 1939-07-01,30419 9 | 1939-08-01,30662 10 | 1939-09-01,31032 11 | 1939-10-01,31408 12 | 1939-11-01,31469 13 | 1939-12-01,31539 14 | 1940-01-01,31603 15 | 1940-02-01,31715 16 | 1940-03-01,31826 17 | 1940-04-01,31699 18 | 1940-05-01,31880 19 | 1940-06-01,31978 20 | 1940-07-01,31942 21 | 1940-08-01,32352 22 | 1940-09-01,32810 23 | 1940-10-01,33265 24 | 1940-11-01,33668 25 | 1940-12-01,34172 26 | 1941-01-01,34480 27 | 1941-02-01,34844 28 | 1941-03-01,35094 29 | 1941-04-01,35468 30 | 1941-05-01,36182 31 | 1941-06-01,36651 32 | 1941-07-01,37137 33 | 1941-08-01,37544 34 | 1941-09-01,37836 35 | 1941-10-01,37948 36 | 1941-11-01,38024 37 | 1941-12-01,38104 38 | 1942-01-01,38348 39 | 1942-02-01,38513 40 | 1942-03-01,38936 41 | 1942-04-01,39351 42 | 1942-05-01,39772 43 | 1942-06-01,40028 44 | 1942-07-01,40470 45 | 1942-08-01,40988 46 | 1942-09-01,41254 47 | 1942-10-01,41514 48 | 1942-11-01,41673 49 | 1942-12-01,41915 50 | 1943-01-01,42174 51 | 1943-02-01,42395 52 | 1943-03-01,42553 53 | 1943-04-01,42646 54 | 1943-05-01,42596 55 | 1943-06-01,42781 56 | 1943-07-01,42701 57 | 1943-08-01,42546 58 | 1943-09-01,42484 59 | 1943-10-01,42675 60 | 1943-11-01,42819 61 | 1943-12-01,42747 62 | 1944-01-01,42661 63 | 1944-02-01,42543 64 | 1944-03-01,42291 65 | 1944-04-01,42062 66 | 1944-05-01,41985 67 | 1944-06-01,41947 68 | 1944-07-01,41904 69 | 1944-08-01,41848 70 | 1944-09-01,41671 71 | 1944-10-01,41708 72 | 1944-11-01,41711 73 | 1944-12-01,41861 74 | 1945-01-01,41903 75 | 1945-02-01,41903 76 | 1945-03-01,41795 77 | 1945-04-01,41443 78 | 1945-05-01,41304 79 | 1945-06-01,41148 80 | 1945-07-01,40873 81 | 1945-08-01,40466 82 | 1945-09-01,38500 83 | 1945-10-01,38598 84 | 1945-11-01,38996 85 | 1945-12-01,39111 86 | 1946-01-01,39839 87 | 1946-02-01,39250 88 | 1946-03-01,40192 89 | 1946-04-01,40908 90 | 1946-05-01,41348 91 | 1946-06-01,41732 92 | 1946-07-01,42153 93 | 1946-08-01,42642 94 | 1946-09-01,42908 95 | 1946-10-01,43094 96 | 1946-11-01,43396 97 | 1946-12-01,43379 98 | 1947-01-01,43545 99 | 1947-02-01,43563 100 | 1947-03-01,43605 101 | 1947-04-01,43491 102 | 1947-05-01,43637 103 | 1947-06-01,43808 104 | 1947-07-01,43742 105 | 1947-08-01,43958 106 | 1947-09-01,44201 107 | 1947-10-01,44415 108 | 1947-11-01,44486 109 | 1947-12-01,44578 110 | 1948-01-01,44686 111 | 1948-02-01,44537 112 | 1948-03-01,44680 113 | 1948-04-01,44369 114 | 1948-05-01,44795 115 | 1948-06-01,45032 116 | 1948-07-01,45160 117 | 1948-08-01,45175 118 | 1948-09-01,45294 119 | 1948-10-01,45250 120 | 1948-11-01,45194 121 | 1948-12-01,45028 122 | 1949-01-01,44675 123 | 1949-02-01,44500 124 | 1949-03-01,44238 125 | 1949-04-01,44230 126 | 1949-05-01,43982 127 | 1949-06-01,43739 128 | 1949-07-01,43530 129 | 1949-08-01,43621 130 | 1949-09-01,43784 131 | 1949-10-01,42950 132 | 1949-11-01,43244 133 | 1949-12-01,43516 134 | 1950-01-01,43530 135 | 1950-02-01,43298 136 | 1950-03-01,43952 137 | 1950-04-01,44376 138 | 1950-05-01,44717 139 | 1950-06-01,45084 140 | 1950-07-01,45453 141 | 1950-08-01,46187 142 | 1950-09-01,46442 143 | 1950-10-01,46712 144 | 1950-11-01,46778 145 | 1950-12-01,46855 146 | 1951-01-01,47289 147 | 1951-02-01,47577 148 | 1951-03-01,47871 149 | 1951-04-01,47856 150 | 1951-05-01,47952 151 | 1951-06-01,48067 152 | 1951-07-01,48061 153 | 1951-08-01,48008 154 | 1951-09-01,47955 155 | 1951-10-01,48009 156 | 1951-11-01,48149 157 | 1951-12-01,48308 158 | 1952-01-01,48299 159 | 1952-02-01,48522 160 | 1952-03-01,48504 161 | 1952-04-01,48616 162 | 1952-05-01,48645 163 | 1952-06-01,48286 164 | 1952-07-01,48144 165 | 1952-08-01,48922 166 | 1952-09-01,49319 167 | 1952-10-01,49598 168 | 1952-11-01,49816 169 | 1952-12-01,50164 170 | 1953-01-01,50145 171 | 1953-02-01,50339 172 | 1953-03-01,50474 173 | 1953-04-01,50432 174 | 1953-05-01,50491 175 | 1953-06-01,50522 176 | 1953-07-01,50536 177 | 1953-08-01,50487 178 | 1953-09-01,50365 179 | 1953-10-01,50242 180 | 1953-11-01,49906 181 | 1953-12-01,49702 182 | 1954-01-01,49467 183 | 1954-02-01,49381 184 | 1954-03-01,49158 185 | 1954-04-01,49177 186 | 1954-05-01,48965 187 | 1954-06-01,48896 188 | 1954-07-01,48834 189 | 1954-08-01,48825 190 | 1954-09-01,48881 191 | 1954-10-01,48944 192 | 1954-11-01,49179 193 | 1954-12-01,49331 194 | 1955-01-01,49497 195 | 1955-02-01,49644 196 | 1955-03-01,49963 197 | 1955-04-01,50246 198 | 1955-05-01,50512 199 | 1955-06-01,50790 200 | 1955-07-01,50985 201 | 1955-08-01,51112 202 | 1955-09-01,51262 203 | 1955-10-01,51431 204 | 1955-11-01,51592 205 | 1955-12-01,51805 206 | 1956-01-01,51975 207 | 1956-02-01,52167 208 | 1956-03-01,52295 209 | 1956-04-01,52375 210 | 1956-05-01,52506 211 | 1956-06-01,52583 212 | 1956-07-01,51954 213 | 1956-08-01,52632 214 | 1956-09-01,52600 215 | 1956-10-01,52781 216 | 1956-11-01,52822 217 | 1956-12-01,52930 218 | 1957-01-01,52888 219 | 1957-02-01,53098 220 | 1957-03-01,53156 221 | 1957-04-01,53238 222 | 1957-05-01,53149 223 | 1957-06-01,53066 224 | 1957-07-01,53122 225 | 1957-08-01,53128 226 | 1957-09-01,52932 227 | 1957-10-01,52765 228 | 1957-11-01,52557 229 | 1957-12-01,52385 230 | 1958-01-01,52077 231 | 1958-02-01,51576 232 | 1958-03-01,51300 233 | 1958-04-01,51026 234 | 1958-05-01,50913 235 | 1958-06-01,50912 236 | 1958-07-01,51037 237 | 1958-08-01,51233 238 | 1958-09-01,51506 239 | 1958-10-01,51485 240 | 1958-11-01,51943 241 | 1958-12-01,52088 242 | 1959-01-01,52481 243 | 1959-02-01,52687 244 | 1959-03-01,53016 245 | 1959-04-01,53320 246 | 1959-05-01,53549 247 | 1959-06-01,53678 248 | 1959-07-01,53803 249 | 1959-08-01,53337 250 | 1959-09-01,53428 251 | 1959-10-01,53359 252 | 1959-11-01,53635 253 | 1959-12-01,54175 254 | 1960-01-01,54274 255 | 1960-02-01,54513 256 | 1960-03-01,54458 257 | 1960-04-01,54812 258 | 1960-05-01,54472 259 | 1960-06-01,54347 260 | 1960-07-01,54303 261 | 1960-08-01,54272 262 | 1960-09-01,54228 263 | 1960-10-01,54144 264 | 1960-11-01,53962 265 | 1960-12-01,53743 266 | 1961-01-01,53683 267 | 1961-02-01,53556 268 | 1961-03-01,53662 269 | 1961-04-01,53626 270 | 1961-05-01,53783 271 | 1961-06-01,53977 272 | 1961-07-01,54124 273 | 1961-08-01,54299 274 | 1961-09-01,54387 275 | 1961-10-01,54521 276 | 1961-11-01,54743 277 | 1961-12-01,54871 278 | 1962-01-01,54891 279 | 1962-02-01,55187 280 | 1962-03-01,55276 281 | 1962-04-01,55601 282 | 1962-05-01,55626 283 | 1962-06-01,55644 284 | 1962-07-01,55746 285 | 1962-08-01,55838 286 | 1962-09-01,55977 287 | 1962-10-01,56041 288 | 1962-11-01,56055 289 | 1962-12-01,56027 290 | 1963-01-01,56116 291 | 1963-02-01,56231 292 | 1963-03-01,56322 293 | 1963-04-01,56580 294 | 1963-05-01,56616 295 | 1963-06-01,56658 296 | 1963-07-01,56795 297 | 1963-08-01,56910 298 | 1963-09-01,57078 299 | 1963-10-01,57284 300 | 1963-11-01,57255 301 | 1963-12-01,57360 302 | 1964-01-01,57487 303 | 1964-02-01,57752 304 | 1964-03-01,57898 305 | 1964-04-01,57923 306 | 1964-05-01,58089 307 | 1964-06-01,58221 308 | 1964-07-01,58412 309 | 1964-08-01,58620 310 | 1964-09-01,58903 311 | 1964-10-01,58794 312 | 1964-11-01,59217 313 | 1964-12-01,59420 314 | 1965-01-01,59583 315 | 1965-02-01,59800 316 | 1965-03-01,60003 317 | 1965-04-01,60258 318 | 1965-05-01,60492 319 | 1965-06-01,60690 320 | 1965-07-01,60963 321 | 1965-08-01,61228 322 | 1965-09-01,61490 323 | 1965-10-01,61718 324 | 1965-11-01,61997 325 | 1965-12-01,62321 326 | 1966-01-01,62528 327 | 1966-02-01,62796 328 | 1966-03-01,63191 329 | 1966-04-01,63436 330 | 1966-05-01,63711 331 | 1966-06-01,64110 332 | 1966-07-01,64301 333 | 1966-08-01,64507 334 | 1966-09-01,64645 335 | 1966-10-01,64854 336 | 1966-11-01,65019 337 | 1966-12-01,65199 338 | 1967-01-01,65407 339 | 1967-02-01,65427 340 | 1967-03-01,65530 341 | 1967-04-01,65467 342 | 1967-05-01,65618 343 | 1967-06-01,65750 344 | 1967-07-01,65887 345 | 1967-08-01,66142 346 | 1967-09-01,66163 347 | 1967-10-01,66225 348 | 1967-11-01,66703 349 | 1967-12-01,66900 350 | 1968-01-01,66805 351 | 1968-02-01,67214 352 | 1968-03-01,67296 353 | 1968-04-01,67555 354 | 1968-05-01,67652 355 | 1968-06-01,67904 356 | 1968-07-01,68126 357 | 1968-08-01,68328 358 | 1968-09-01,68487 359 | 1968-10-01,68720 360 | 1968-11-01,68985 361 | 1968-12-01,69245 362 | 1969-01-01,69438 363 | 1969-02-01,69698 364 | 1969-03-01,69906 365 | 1969-04-01,70072 366 | 1969-05-01,70328 367 | 1969-06-01,70636 368 | 1969-07-01,70730 369 | 1969-08-01,71005 370 | 1969-09-01,70918 371 | 1969-10-01,71119 372 | 1969-11-01,71088 373 | 1969-12-01,71240 374 | 1970-01-01,71176 375 | 1970-02-01,71302 376 | 1970-03-01,71453 377 | 1970-04-01,71348 378 | 1970-05-01,71122 379 | 1970-06-01,71028 380 | 1970-07-01,71055 381 | 1970-08-01,70932 382 | 1970-09-01,70949 383 | 1970-10-01,70519 384 | 1970-11-01,70409 385 | 1970-12-01,70790 386 | 1971-01-01,70866 387 | 1971-02-01,70805 388 | 1971-03-01,70859 389 | 1971-04-01,71037 390 | 1971-05-01,71247 391 | 1971-06-01,71253 392 | 1971-07-01,71316 393 | 1971-08-01,71368 394 | 1971-09-01,71620 395 | 1971-10-01,71642 396 | 1971-11-01,71844 397 | 1971-12-01,72108 398 | 1972-01-01,72445 399 | 1972-02-01,72652 400 | 1972-03-01,72945 401 | 1972-04-01,73163 402 | 1972-05-01,73467 403 | 1972-06-01,73760 404 | 1972-07-01,73709 405 | 1972-08-01,74137 406 | 1972-09-01,74268 407 | 1972-10-01,74672 408 | 1972-11-01,74965 409 | 1972-12-01,75270 410 | 1973-01-01,75620 411 | 1973-02-01,76017 412 | 1973-03-01,76286 413 | 1973-04-01,76456 414 | 1973-05-01,76646 415 | 1973-06-01,76886 416 | 1973-07-01,76911 417 | 1973-08-01,77166 418 | 1973-09-01,77281 419 | 1973-10-01,77605 420 | 1973-11-01,77909 421 | 1973-12-01,78035 422 | 1974-01-01,78104 423 | 1974-02-01,78253 424 | 1974-03-01,78295 425 | 1974-04-01,78384 426 | 1974-05-01,78547 427 | 1974-06-01,78602 428 | 1974-07-01,78634 429 | 1974-08-01,78619 430 | 1974-09-01,78614 431 | 1974-10-01,78627 432 | 1974-11-01,78259 433 | 1974-12-01,77657 434 | 1975-01-01,77297 435 | 1975-02-01,76919 436 | 1975-03-01,76649 437 | 1975-04-01,76463 438 | 1975-05-01,76623 439 | 1975-06-01,76519 440 | 1975-07-01,76768 441 | 1975-08-01,77154 442 | 1975-09-01,77232 443 | 1975-10-01,77535 444 | 1975-11-01,77679 445 | 1975-12-01,78017 446 | 1976-01-01,78506 447 | 1976-02-01,78817 448 | 1976-03-01,79049 449 | 1976-04-01,79293 450 | 1976-05-01,79311 451 | 1976-06-01,79376 452 | 1976-07-01,79546 453 | 1976-08-01,79704 454 | 1976-09-01,79892 455 | 1976-10-01,79905 456 | 1976-11-01,80237 457 | 1976-12-01,80448 458 | 1977-01-01,80692 459 | 1977-02-01,80987 460 | 1977-03-01,81391 461 | 1977-04-01,81730 462 | 1977-05-01,82089 463 | 1977-06-01,82488 464 | 1977-07-01,82836 465 | 1977-08-01,83074 466 | 1977-09-01,83532 467 | 1977-10-01,83794 468 | 1977-11-01,84173 469 | 1977-12-01,84408 470 | 1978-01-01,84595 471 | 1978-02-01,84948 472 | 1978-03-01,85461 473 | 1978-04-01,86163 474 | 1978-05-01,86509 475 | 1978-06-01,86951 476 | 1978-07-01,87205 477 | 1978-08-01,87481 478 | 1978-09-01,87618 479 | 1978-10-01,87954 480 | 1978-11-01,88391 481 | 1978-12-01,88674 482 | 1979-01-01,88811 483 | 1979-02-01,89054 484 | 1979-03-01,89480 485 | 1979-04-01,89418 486 | 1979-05-01,89790 487 | 1979-06-01,90108 488 | 1979-07-01,90214 489 | 1979-08-01,90296 490 | 1979-09-01,90323 491 | 1979-10-01,90480 492 | 1979-11-01,90574 493 | 1979-12-01,90669 494 | 1980-01-01,90800 495 | 1980-02-01,90879 496 | 1980-03-01,90991 497 | 1980-04-01,90846 498 | 1980-05-01,90415 499 | 1980-06-01,90095 500 | 1980-07-01,89832 501 | 1980-08-01,90092 502 | 1980-09-01,90205 503 | 1980-10-01,90485 504 | 1980-11-01,90741 505 | 1980-12-01,90936 506 | 1981-01-01,91031 507 | 1981-02-01,91098 508 | 1981-03-01,91202 509 | 1981-04-01,91276 510 | 1981-05-01,91286 511 | 1981-06-01,91482 512 | 1981-07-01,91594 513 | 1981-08-01,91558 514 | 1981-09-01,91471 515 | 1981-10-01,91371 516 | 1981-11-01,91162 517 | 1981-12-01,90884 518 | 1982-01-01,90557 519 | 1982-02-01,90551 520 | 1982-03-01,90422 521 | 1982-04-01,90141 522 | 1982-05-01,90096 523 | 1982-06-01,89853 524 | 1982-07-01,89510 525 | 1982-08-01,89352 526 | 1982-09-01,89171 527 | 1982-10-01,88894 528 | 1982-11-01,88770 529 | 1982-12-01,88756 530 | 1983-01-01,88981 531 | 1983-02-01,88903 532 | 1983-03-01,89076 533 | 1983-04-01,89352 534 | 1983-05-01,89629 535 | 1983-06-01,90007 536 | 1983-07-01,90425 537 | 1983-08-01,90117 538 | 1983-09-01,91231 539 | 1983-10-01,91502 540 | 1983-11-01,91854 541 | 1983-12-01,92210 542 | 1984-01-01,92657 543 | 1984-02-01,93136 544 | 1984-03-01,93411 545 | 1984-04-01,93774 546 | 1984-05-01,94082 547 | 1984-06-01,94461 548 | 1984-07-01,94773 549 | 1984-08-01,95014 550 | 1984-09-01,95325 551 | 1984-10-01,95611 552 | 1984-11-01,95960 553 | 1984-12-01,96087 554 | 1985-01-01,96353 555 | 1985-02-01,96477 556 | 1985-03-01,96823 557 | 1985-04-01,97018 558 | 1985-05-01,97292 559 | 1985-06-01,97437 560 | 1985-07-01,97626 561 | 1985-08-01,97819 562 | 1985-09-01,98023 563 | 1985-10-01,98210 564 | 1985-11-01,98419 565 | 1985-12-01,98587 566 | 1986-01-01,98710 567 | 1986-02-01,98817 568 | 1986-03-01,98910 569 | 1986-04-01,99098 570 | 1986-05-01,99223 571 | 1986-06-01,99130 572 | 1986-07-01,99448 573 | 1986-08-01,99561 574 | 1986-09-01,99907 575 | 1986-10-01,100094 576 | 1986-11-01,100280 577 | 1986-12-01,100484 578 | 1987-01-01,100655 579 | 1987-02-01,100887 580 | 1987-03-01,101136 581 | 1987-04-01,101474 582 | 1987-05-01,101701 583 | 1987-06-01,101872 584 | 1987-07-01,102218 585 | 1987-08-01,102388 586 | 1987-09-01,102617 587 | 1987-10-01,103109 588 | 1987-11-01,103340 589 | 1987-12-01,103634 590 | 1988-01-01,103728 591 | 1988-02-01,104180 592 | 1988-03-01,104456 593 | 1988-04-01,104701 594 | 1988-05-01,104928 595 | 1988-06-01,105291 596 | 1988-07-01,105514 597 | 1988-08-01,105635 598 | 1988-09-01,105975 599 | 1988-10-01,106243 600 | 1988-11-01,106582 601 | 1988-12-01,106871 602 | 1989-01-01,107133 603 | 1989-02-01,107391 604 | 1989-03-01,107583 605 | 1989-04-01,107756 606 | 1989-05-01,107874 607 | 1989-06-01,107991 608 | 1989-07-01,108030 609 | 1989-08-01,108077 610 | 1989-09-01,108326 611 | 1989-10-01,108437 612 | 1989-11-01,108714 613 | 1989-12-01,108809 614 | 1990-01-01,109151 615 | 1990-02-01,109396 616 | 1990-03-01,109611 617 | 1990-04-01,109651 618 | 1990-05-01,109800 619 | 1990-06-01,109817 620 | 1990-07-01,109775 621 | 1990-08-01,109567 622 | 1990-09-01,109485 623 | 1990-10-01,109324 624 | 1990-11-01,109180 625 | 1990-12-01,109120 626 | 1991-01-01,109001 627 | 1991-02-01,108695 628 | 1991-03-01,108535 629 | 1991-04-01,108324 630 | 1991-05-01,108196 631 | 1991-06-01,108283 632 | 1991-07-01,108236 633 | 1991-08-01,108251 634 | 1991-09-01,108286 635 | 1991-10-01,108298 636 | 1991-11-01,108240 637 | 1991-12-01,108263 638 | 1992-01-01,108312 639 | 1992-02-01,108246 640 | 1992-03-01,108296 641 | 1992-04-01,108454 642 | 1992-05-01,108580 643 | 1992-06-01,108640 644 | 1992-07-01,108711 645 | 1992-08-01,108852 646 | 1992-09-01,108887 647 | 1992-10-01,109064 648 | 1992-11-01,109204 649 | 1992-12-01,109415 650 | 1993-01-01,109725 651 | 1993-02-01,109967 652 | 1993-03-01,109916 653 | 1993-04-01,110225 654 | 1993-05-01,110490 655 | 1993-06-01,110663 656 | 1993-07-01,110958 657 | 1993-08-01,111119 658 | 1993-09-01,111360 659 | 1993-10-01,111637 660 | 1993-11-01,111898 661 | 1993-12-01,112206 662 | 1994-01-01,112474 663 | 1994-02-01,112675 664 | 1994-03-01,113137 665 | 1994-04-01,113490 666 | 1994-05-01,113821 667 | 1994-06-01,114136 668 | 1994-07-01,114499 669 | 1994-08-01,114799 670 | 1994-09-01,115153 671 | 1994-10-01,115360 672 | 1994-11-01,115783 673 | 1994-12-01,116057 674 | 1995-01-01,116378 675 | 1995-02-01,116587 676 | 1995-03-01,116809 677 | 1995-04-01,116971 678 | 1995-05-01,116955 679 | 1995-06-01,117186 680 | 1995-07-01,117265 681 | 1995-08-01,117536 682 | 1995-09-01,117781 683 | 1995-10-01,117928 684 | 1995-11-01,118076 685 | 1995-12-01,118207 686 | 1996-01-01,118188 687 | 1996-02-01,118622 688 | 1996-03-01,118885 689 | 1996-04-01,119046 690 | 1996-05-01,119369 691 | 1996-06-01,119647 692 | 1996-07-01,119879 693 | 1996-08-01,120075 694 | 1996-09-01,120295 695 | 1996-10-01,120538 696 | 1996-11-01,120834 697 | 1996-12-01,121001 698 | 1997-01-01,121231 699 | 1997-02-01,121532 700 | 1997-03-01,121844 701 | 1997-04-01,122135 702 | 1997-05-01,122391 703 | 1997-06-01,122644 704 | 1997-07-01,122927 705 | 1997-08-01,122909 706 | 1997-09-01,123417 707 | 1997-10-01,123756 708 | 1997-11-01,124059 709 | 1997-12-01,124358 710 | 1998-01-01,124628 711 | 1998-02-01,124817 712 | 1998-03-01,124961 713 | 1998-04-01,125238 714 | 1998-05-01,125639 715 | 1998-06-01,125851 716 | 1998-07-01,125970 717 | 1998-08-01,126322 718 | 1998-09-01,126540 719 | 1998-10-01,126733 720 | 1998-11-01,127017 721 | 1998-12-01,127359 722 | 1999-01-01,127480 723 | 1999-02-01,127890 724 | 1999-03-01,127996 725 | 1999-04-01,128372 726 | 1999-05-01,128585 727 | 1999-06-01,128851 728 | 1999-07-01,129142 729 | 1999-08-01,129334 730 | 1999-09-01,129536 731 | 1999-10-01,129944 732 | 1999-11-01,130238 733 | 1999-12-01,130532 734 | 2000-01-01,130781 735 | 2000-02-01,130902 736 | 2000-03-01,131374 737 | 2000-04-01,131660 738 | 2000-05-01,131885 739 | 2000-06-01,131839 740 | 2000-07-01,132002 741 | 2000-08-01,132005 742 | 2000-09-01,132127 743 | 2000-10-01,132116 744 | 2000-11-01,132347 745 | 2000-12-01,132485 746 | 2001-01-01,132469 747 | 2001-02-01,132530 748 | 2001-03-01,132500 749 | 2001-04-01,132219 750 | 2001-05-01,132175 751 | 2001-06-01,132047 752 | 2001-07-01,131922 753 | 2001-08-01,131762 754 | 2001-09-01,131518 755 | 2001-10-01,131193 756 | 2001-11-01,130901 757 | 2001-12-01,130723 758 | 2002-01-01,130591 759 | 2002-02-01,130444 760 | 2002-03-01,130420 761 | 2002-04-01,130335 762 | 2002-05-01,130328 763 | 2002-06-01,130373 764 | 2002-07-01,130276 765 | 2002-08-01,130260 766 | 2002-09-01,130205 767 | 2002-10-01,130331 768 | 2002-11-01,130339 769 | 2002-12-01,130183 770 | 2003-01-01,130266 771 | 2003-02-01,130108 772 | 2003-03-01,129896 773 | 2003-04-01,129847 774 | 2003-05-01,129841 775 | 2003-06-01,129839 776 | 2003-07-01,129864 777 | 2003-08-01,129822 778 | 2003-09-01,129925 779 | 2003-10-01,130128 780 | 2003-11-01,130146 781 | 2003-12-01,130270 782 | 2004-01-01,130420 783 | 2004-02-01,130463 784 | 2004-03-01,130801 785 | 2004-04-01,131051 786 | 2004-05-01,131361 787 | 2004-06-01,131442 788 | 2004-07-01,131489 789 | 2004-08-01,131610 790 | 2004-09-01,131770 791 | 2004-10-01,132121 792 | 2004-11-01,132185 793 | 2004-12-01,132317 794 | 2005-01-01,132453 795 | 2005-02-01,132693 796 | 2005-03-01,132835 797 | 2005-04-01,133195 798 | 2005-05-01,133364 799 | 2005-06-01,133610 800 | 2005-07-01,133979 801 | 2005-08-01,134174 802 | 2005-09-01,134237 803 | 2005-10-01,134321 804 | 2005-11-01,134655 805 | 2005-12-01,134813 806 | 2006-01-01,135094 807 | 2006-02-01,135411 808 | 2006-03-01,135698 809 | 2006-04-01,135880 810 | 2006-05-01,135891 811 | 2006-06-01,135971 812 | 2006-07-01,136173 813 | 2006-08-01,136358 814 | 2006-09-01,136514 815 | 2006-10-01,136506 816 | 2006-11-01,136711 817 | 2006-12-01,136891 818 | 2007-01-01,137094 819 | 2007-02-01,137182 820 | 2007-03-01,137400 821 | 2007-04-01,137479 822 | 2007-05-01,137620 823 | 2007-06-01,137687 824 | 2007-07-01,137638 825 | 2007-08-01,137612 826 | 2007-09-01,137681 827 | 2007-10-01,137772 828 | 2007-11-01,137899 829 | 2007-12-01,137983 830 | 2008-01-01,137996 831 | 2008-02-01,137913 832 | 2008-03-01,137841 833 | 2008-04-01,137656 834 | 2008-05-01,137423 835 | 2008-06-01,137245 836 | 2008-07-01,137014 837 | 2008-08-01,136747 838 | 2008-09-01,136313 839 | 2008-10-01,135804 840 | 2008-11-01,135002 841 | 2008-12-01,134383 842 | 2009-01-01,133563 843 | 2009-02-01,132837 844 | 2009-03-01,132041 845 | 2009-04-01,131381 846 | 2009-05-01,130995 847 | 2009-06-01,130493 848 | 2009-07-01,130193 849 | 2009-08-01,129962 850 | 2009-09-01,129726 851 | 2009-10-01,129505 852 | 2009-11-01,129450 853 | 2009-12-01,129320 854 | 2010-01-01,129281 855 | 2010-02-01,129246 856 | 2010-03-01,129438 857 | 2010-04-01,129715 858 | 2010-05-01,130173 859 | 2010-06-01,129981 860 | 2010-07-01,129932 861 | 2010-08-01,129873 862 | 2010-09-01,129844 863 | 2010-10-01,130015 864 | 2010-11-01,130108 865 | 2010-12-01,130260 866 | 2011-01-01,130328 867 | 2011-02-01,130563 868 | 2011-03-01,130757 869 | 2011-04-01,130974 870 | 2011-05-01,131027 871 | 2011-06-01,131073 872 | 2011-07-01,131190 873 | -------------------------------------------------------------------------------- /tests/test_midas.py: -------------------------------------------------------------------------------- 1 | import datetime 2 | import numpy as np 3 | 4 | from midas import mix 5 | from midas.adl import estimate, forecast, rolling, fixed_window 6 | 7 | 8 | def test_estimate(gdp_data, pay_data): 9 | 10 | y, yl, x, yf, ylf, xf = mix.mix_freq(gdp_data.gdp, pay_data.pay, 3, 1, 1, 11 | start_date=datetime.datetime(1985, 1, 1), 12 | end_date=datetime.datetime(2009, 1, 1)) 13 | 14 | res = estimate(y, yl, x) 15 | 16 | fc = forecast(xf, ylf, res) 17 | 18 | print(fc) 19 | 20 | assert np.isclose(fc.loc['2011-04-01'].iloc[0], 1.336844, rtol=1e-6) 21 | 22 | 23 | def test_estimate_betanz(gdp_data, pay_data): 24 | 25 | y, yl, x, yf, ylf, xf = mix.mix_freq(gdp_data.gdp, pay_data.pay, 3, 1, 1, 26 | start_date=datetime.datetime(1985, 1, 1), 27 | end_date=datetime.datetime(2009, 1, 1)) 28 | 29 | res = estimate(y, yl, x, poly='beta_nz') 30 | 31 | fc = forecast(xf, ylf, res) 32 | 33 | print(fc) 34 | 35 | assert np.isclose(fc.loc['2011-04-01'].iloc[0], 1.336844, rtol=1e-6) 36 | 37 | 38 | def test_estimate_expalmon(gdp_data, pay_data): 39 | 40 | y, yl, x, yf, ylf, xf = mix.mix_freq(gdp_data.gdp, pay_data.pay, 3, 1, 1, 41 | start_date=datetime.datetime(1985, 1, 1), 42 | end_date=datetime.datetime(2009, 1, 1)) 43 | 44 | res = estimate(y, yl, x, poly='expalmon') 45 | 46 | fc = forecast(xf, ylf, res, poly='expalmon') 47 | 48 | print(fc) 49 | 50 | assert np.isclose(fc.loc['2011-04-01'].iloc[0], 1.306661, rtol=1e-6) 51 | 52 | 53 | def test_fixed(gdp_data, pay_data): 54 | fc, rmse_fc = fixed_window(gdp_data.gdp, pay_data.pay, 55 | start_date=datetime.datetime(1985,1,1), 56 | end_date=datetime.datetime(2009,1,1), 57 | xlag="3m", 58 | ylag=1, 59 | horizon=3) 60 | rmse_fc 61 | 62 | 63 | def test_rolling(gdp_data, pay_data): 64 | 65 | rmse, yh_df = rolling(gdp_data.gdp, pay_data.pay, datetime.datetime(1985, 1, 1), None, 66 | "3m", 1, 1) 67 | 68 | assert 0.6 < rmse < 0.7 69 | -------------------------------------------------------------------------------- /tests/test_mix.py: -------------------------------------------------------------------------------- 1 | import pytest 2 | import datetime 3 | import pandas as pd 4 | 5 | from midas import mix 6 | 7 | 8 | @pytest.fixture() 9 | def lf_data(): 10 | df = pd.DataFrame({'date': ['2009-04-01', '2009-07-01', '2009-10-01', '2010-01-01', '2010-04-01'], 11 | 'val': [1.0, 2.0, 3.0, 4.0, 5.0]}) 12 | df['date'] = pd.to_datetime(df['date']) 13 | df.set_index('date', inplace=True) 14 | 15 | return df 16 | 17 | 18 | @pytest.fixture() 19 | def hf_data(): 20 | df = pd.DataFrame({'date': ['2009-01-01', '2009-02-01', '2009-03-01', '2009-04-01', '2009-05-01', 21 | '2009-06-01', '2009-07-01', '2009-08-01', '2009-09-01', '2009-10-01', 22 | '2009-11-01', '2009-12-01', '2010-01-01', '2010-02-01', '2010-03-01', 23 | '2010-04-01'], 24 | 'val': [0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6]}) 25 | df['date'] = pd.to_datetime(df['date']) 26 | df.set_index('date', inplace=True) 27 | 28 | return df 29 | 30 | 31 | def test_mix(lf_data, hf_data): 32 | y, yl, x, yf, ylf, xf = mix.mix_freq(lf_data.val, hf_data.val, 3, 1, 1, 33 | start_date=datetime.datetime(2009, 7, 1), 34 | end_date=datetime.datetime(2010, 1, 1)) 35 | 36 | assert all(x.loc['2009-07-01'].values == [0.6, 0.5, 0.4]) 37 | assert all(x.loc['2010-01-01'].values == [1.2, 1.1, 1.0]) 38 | assert yl.loc['2009-07-01'].values[0] == 1.0 39 | 40 | 41 | def test_mix_no_ylag(lf_data, hf_data): 42 | y, yl, x, yf, ylf, xf = mix.mix_freq(lf_data.val, hf_data.val, 3, 0, 1, 43 | start_date=datetime.datetime(2009, 7, 1), 44 | end_date=datetime.datetime(2010, 1, 1)) 45 | 46 | assert all(x.loc['2009-07-01'].values == [0.6, 0.5, 0.4]) 47 | assert all(x.loc['2010-01-01'].values == [1.2, 1.1, 1.0]) 48 | assert yl is None 49 | 50 | 51 | def test_mix_lag_string(lf_data, hf_data): 52 | y, yl, x, yf, ylf, xf = mix.mix_freq(lf_data.val, hf_data.val, "3M", 1, 1, 53 | start_date=datetime.datetime(2009, 7, 1), 54 | end_date=datetime.datetime(2010, 1, 1)) 55 | 56 | assert all(x.loc['2009-07-01'].values == [0.6, 0.5, 0.4]) 57 | assert all(x.loc['2010-01-01'].values == [1.2, 1.1, 1.0]) 58 | assert yl.loc['2009-07-01'].values[0] == 1.0 59 | 60 | 61 | def test_mix_no_start_end(lf_data, hf_data): 62 | y, yl, x, yf, ylf, xf = mix.mix_freq(lf_data.val, hf_data.val, "3M", 1, 1) 63 | 64 | assert all(x.loc['2009-07-01'].values == [0.6, 0.5, 0.4]) 65 | assert all(x.loc['2010-01-01'].values == [1.2, 1.1, 1.0]) 66 | assert yl.loc['2009-07-01'].values[0] == 1.0 67 | 68 | 69 | def test_mix_lf_after_hf(lf_data, hf_data): 70 | """ Case where high-freq data ends before last low-freq date 71 | """ 72 | y, yl, x, yf, ylf, xf = mix.mix_freq(lf_data.val, hf_data.iloc[0:-2].val, 3, 0, 1, 73 | start_date=datetime.datetime(2009, 7, 1), 74 | end_date=datetime.datetime(2010, 1, 1)) 75 | 76 | assert all(x.loc['2009-07-01'].values == [0.6, 0.5, 0.4]) 77 | assert all(x.loc['2010-01-01'].values == [1.2, 1.1, 1.0]) 78 | assert yl is None 79 | 80 | 81 | def test_mix_hf_starts_after_lf(lf_data, hf_data): 82 | """ Case where high-freq data ends before last low-freq date 83 | """ 84 | y, yl, x, yf, ylf, xf = mix.mix_freq(lf_data.val, hf_data.iloc[4:].val, 3, 0, 1, 85 | start_date=datetime.datetime(2009, 4, 1), 86 | end_date=datetime.datetime(2010, 1, 1)) 87 | 88 | assert y.index[0] == datetime.datetime(2009, 10, 1) 89 | assert all(x.loc['2009-10-01'].values == [0.9, 0.8, 0.7]) 90 | 91 | 92 | def test_mix_negative_h(lf_data, hf_data): 93 | y, yl, x, yf, ylf, xf = mix.mix_freq(lf_data.val, hf_data.val, 3, 1, -1, 94 | start_date=datetime.datetime(2009, 7, 1), 95 | end_date=datetime.datetime(2010, 1, 1)) 96 | 97 | assert all(x.loc['2009-07-01'].values == [0.8, 0.7, 0.6]) 98 | assert all(x.loc['2010-01-01'].values == [1.4, 1.3, 1.2]) 99 | assert yl.loc['2009-07-01'].values[0] == 1.0 100 | 101 | 102 | def test_mix_gdp(gdp_data, pay_data): 103 | 104 | y, yl, x, yf, ylf, xf = mix.mix_freq(gdp_data.gdp, pay_data.pay, 3, 1, 1, 105 | start_date=datetime.datetime(1985, 1, 1), 106 | end_date=datetime.datetime(2009, 1, 1)) 107 | 108 | assert len(y) == 97 109 | 110 | assert all(x.loc['1985-01-01'].values == [pay_data.loc['1984-12-01'].pay, 111 | pay_data.loc['1984-11-01'].pay, 112 | pay_data.loc['1984-10-01'].pay]) 113 | 114 | 115 | def test_data_freq(lf_data, hf_data): 116 | 117 | assert mix.data_freq(lf_data)[0] == 'Q' 118 | assert mix.data_freq(hf_data)[0] == 'M' 119 | 120 | idx = pd.date_range(start='2012-03-31', periods=5, freq='QE-DEC') 121 | assert mix.data_freq(pd.Series(lf_data.val.values, index=idx)) == 'QE-DEC' 122 | 123 | 124 | def test_data_freq_infer(): 125 | dfm = pd.DataFrame(data={'a': [1, 2, 3, 4]}, 126 | index=[datetime.datetime(2016, 1, 31), 127 | datetime.datetime(2016, 2, 29), 128 | datetime.datetime(2016, 3, 31), 129 | datetime.datetime(2016, 4, 30)]) 130 | 131 | assert mix.data_freq(dfm.a) == 'ME' 132 | 133 | dfb = pd.DataFrame(data={'a': [1, 2, 3, 4, 5, 6]}, 134 | index=[datetime.datetime(2017, 7, 10), 135 | datetime.datetime(2017, 7, 11), 136 | datetime.datetime(2017, 7, 12), 137 | datetime.datetime(2017, 7, 13), 138 | datetime.datetime(2017, 7, 14), 139 | datetime.datetime(2017, 7, 17), 140 | ]) 141 | 142 | assert mix.data_freq(dfb.a)[0] == 'B' 143 | 144 | dfb2 = pd.DataFrame(data={'a': [1, 2, 3, 4, 5, 6]}, 145 | index=pd.date_range('2017-7-10', '2017-7-17', freq='B')) 146 | 147 | assert mix.data_freq(dfb2.a)[0] == 'B' 148 | 149 | 150 | @pytest.mark.parametrize("lag_string, freq, expected", [ 151 | ("3M", "D", 90), 152 | ("3M", "B", 66), 153 | ("3M", "M", 3), 154 | ("12Q", "M", 36), 155 | ("3m", "d", 90), 156 | ("3m", "b", 66), 157 | ("2y", "q", 8), 158 | ("2y", "a", 2), 159 | ]) 160 | def test_parse_lag_string(lag_string, freq, expected): 161 | assert mix.parse_lag_string(lag_string, freq) == expected 162 | -------------------------------------------------------------------------------- /tests/test_weights.py: -------------------------------------------------------------------------------- 1 | import numpy as np 2 | 3 | from midas.weights import ExpAlmonWeights, BetaWeights 4 | 5 | 6 | def test_beta_es(): 7 | w = BetaWeights(1., 5.).weights(3) 8 | 9 | assert np.allclose(w, [0.941176, 0.0588238, 9.4118e-25]) 10 | 11 | 12 | def test_beta_es_nz(): 13 | w = BetaWeights(1, 5, 0.1).weights(3) 14 | 15 | assert np.allclose(w, [0.800905, 0.122172, 0.076923]) 16 | 17 | 18 | def test_almon(): 19 | w = ExpAlmonWeights(0.01, -0.0025).weights(3) 20 | 21 | assert np.allclose(w, [0.333055, 0.333889, 0.333055]) 22 | 23 | 24 | def test_x_weighted(): 25 | x = np.ones((3, 3)) 26 | bw = BetaWeights(1., 5.) 27 | 28 | xw, w = bw.x_weighted(x, [1., 5.]) 29 | 30 | assert x.shape[0] == xw.shape[0] 31 | assert np.allclose(xw, [1., 1., 1.]) 32 | --------------------------------------------------------------------------------