forecastscope 0.1.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- forecastscope/__init__.py +5 -0
- forecastscope/api.py +72 -0
- forecastscope/combinations/__init__.py +1 -0
- forecastscope/combinations/context_memory.py +127 -0
- forecastscope/combinations/validated.py +144 -0
- forecastscope/diagnostics/__init__.py +236 -0
- forecastscope/diagnostics/autocorrelation.py +217 -0
- forecastscope/diagnostics/causality.py +183 -0
- forecastscope/diagnostics/changepoints.py +172 -0
- forecastscope/diagnostics/distribution.py +180 -0
- forecastscope/diagnostics/filters.py +201 -0
- forecastscope/diagnostics/fractal.py +206 -0
- forecastscope/diagnostics/nonlinear.py +267 -0
- forecastscope/diagnostics/seasonality.py +218 -0
- forecastscope/diagnostics/sequence.py +130 -0
- forecastscope/diagnostics/stationarity.py +233 -0
- forecastscope/diagnostics/volatility.py +187 -0
- forecastscope/forecasting.py +263 -0
- forecastscope/types.py +12 -0
- forecastscope-0.1.0.dist-info/METADATA +85 -0
- forecastscope-0.1.0.dist-info/RECORD +24 -0
- forecastscope-0.1.0.dist-info/WHEEL +5 -0
- forecastscope-0.1.0.dist-info/licenses/LICENSE +21 -0
- forecastscope-0.1.0.dist-info/top_level.txt +1 -0
forecastscope/types.py
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"""Small numerical result type, independent of any application artifact schema."""
|
|
2
|
+
from dataclasses import dataclass
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
@dataclass(frozen=True)
|
|
6
|
+
class MethodForecast:
|
|
7
|
+
"""Named point path and outer interval; units are those of the supplied history."""
|
|
8
|
+
name: str
|
|
9
|
+
family: str
|
|
10
|
+
point: tuple[float, ...]
|
|
11
|
+
lower: tuple[float, ...]
|
|
12
|
+
upper: tuple[float, ...]
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: forecastscope
|
|
3
|
+
Version: 0.1.0
|
|
4
|
+
Summary: Finite-prefix forecasting, temporal forecast combinations and sequence diagnostics.
|
|
5
|
+
Author: Felipe Santibáñez-Leal
|
|
6
|
+
License-Expression: MIT
|
|
7
|
+
Project-URL: Repository, https://github.com/fsantibanezleal/CAOS_ForecastScope
|
|
8
|
+
Project-URL: Issues, https://github.com/fsantibanezleal/CAOS_ForecastScope/issues
|
|
9
|
+
Requires-Python: >=3.11
|
|
10
|
+
Description-Content-Type: text/markdown
|
|
11
|
+
License-File: LICENSE
|
|
12
|
+
Requires-Dist: numpy<3,>=2.0
|
|
13
|
+
Provides-Extra: diagnostics
|
|
14
|
+
Requires-Dist: scipy<2,>=1.15; extra == "diagnostics"
|
|
15
|
+
Requires-Dist: pandas<4,>=2.3; extra == "diagnostics"
|
|
16
|
+
Requires-Dist: statsmodels<0.15,>=0.14.6; extra == "diagnostics"
|
|
17
|
+
Requires-Dist: arch<9,>=8; extra == "diagnostics"
|
|
18
|
+
Requires-Dist: ruptures<2,>=1.1.10; extra == "diagnostics"
|
|
19
|
+
Requires-Dist: EMD-signal<2,>=1.9; extra == "diagnostics"
|
|
20
|
+
Requires-Dist: PyWavelets<2,>=1.8; extra == "diagnostics"
|
|
21
|
+
Requires-Dist: antropy<0.3,>=0.2.2; extra == "diagnostics"
|
|
22
|
+
Requires-Dist: nolds==0.6.3; extra == "diagnostics"
|
|
23
|
+
Requires-Dist: hurst==0.0.5; extra == "diagnostics"
|
|
24
|
+
Requires-Dist: MFDFA==0.4.3; extra == "diagnostics"
|
|
25
|
+
Requires-Dist: pycatch22<0.5,>=0.4.5; extra == "diagnostics"
|
|
26
|
+
Requires-Dist: stumpy<2,>=1.14.1; extra == "diagnostics"
|
|
27
|
+
Requires-Dist: scikit-learn<2,>=1.9; extra == "diagnostics"
|
|
28
|
+
Requires-Dist: coreforecast<0.1,>=0.0.17; extra == "diagnostics"
|
|
29
|
+
Provides-Extra: dev
|
|
30
|
+
Requires-Dist: pytest>=8; extra == "dev"
|
|
31
|
+
Requires-Dist: ruff<0.17,>=0.15; extra == "dev"
|
|
32
|
+
Requires-Dist: build; extra == "dev"
|
|
33
|
+
Requires-Dist: twine; extra == "dev"
|
|
34
|
+
Dynamic: license-file
|
|
35
|
+
|
|
36
|
+
# forecastscope
|
|
37
|
+
|
|
38
|
+
Finite-prefix forecasts, temporal combinations of reference experts, and sequence
|
|
39
|
+
diagnostics in a reusable Python library. The core requires NumPy. Diagnostic
|
|
40
|
+
implementations use optional scientific packages through `forecastscope.diagnostics`.
|
|
41
|
+
|
|
42
|
+
Release availability is recorded on [PyPI](https://pypi.org/project/forecastscope/)
|
|
43
|
+
and [GitHub](https://github.com/fsantibanezleal/CAOS_ForecastScope/releases).
|
|
44
|
+
Application adoption is a separate step. The extraction preserves numerical
|
|
45
|
+
equations while adding strict public request and output validation, lint
|
|
46
|
+
normalization and warnings for unavailable optional diagnostics. It makes no new forecast
|
|
47
|
+
accuracy, calibration, chaos-identification or operational-performance claim.
|
|
48
|
+
|
|
49
|
+
```python
|
|
50
|
+
import numpy as np
|
|
51
|
+
from forecastscope import combine, forecast
|
|
52
|
+
|
|
53
|
+
history = 20 + np.tile([1., 4., 2., 3.], 30)
|
|
54
|
+
columns = forecast("HoltWinters", history, seasonality=4, horizon=8)
|
|
55
|
+
allocation = combine("ValidationMix", history, seasonality=4, horizon=8)
|
|
56
|
+
print(columns.shape, allocation.weights, allocation.origins)
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
The caller supplies a contiguous observed history; raw arrays contain no timestamps,
|
|
60
|
+
so contiguity itself is a caller precondition. Future targets belong to the caller's evaluation
|
|
61
|
+
protocol. NaNs, infinite values, fractional horizons, invalid seasonal lags and
|
|
62
|
+
unsupported probability grids are refused by the public entry points. The reference kernels preserve their documented short-history policies, including
|
|
63
|
+
Holt fallback when additive seasonal smoothing lacks two cycles or has lag one.
|
|
64
|
+
Combination experts can consequently coincide on a nonseasonal input. The five
|
|
65
|
+
reference experts use approximate Gaussian residual intervals; ordered columns do
|
|
66
|
+
not establish calibration. Temporal validation filters an outer-prefix-defined
|
|
67
|
+
historical grid, and does not reconstruct the exact grid a historical service
|
|
68
|
+
would have proposed at every earlier date.
|
|
69
|
+
|
|
70
|
+
The fixed contextual combination has an unfavorable comparison with its matching
|
|
71
|
+
recency control in its original development study. Later validation-selected
|
|
72
|
+
combinations have bounded point-score improvements on specified external collections,
|
|
73
|
+
with stronger automatic-method and interval-score comparisons retained. The package
|
|
74
|
+
does not turn those studies into a general superiority claim.
|
|
75
|
+
|
|
76
|
+
For diagnostics, install the `diagnostics` extra and import the topic module, for
|
|
77
|
+
example `forecastscope.diagnostics.sequence.matrix_profile`. Diagnostics describe
|
|
78
|
+
their supplied sequence and can be retrospective. They must not be computed on a
|
|
79
|
+
future block and then treated as prefix-only model-selection inputs.
|
|
80
|
+
|
|
81
|
+
The source origin and exact input hashes are recorded in
|
|
82
|
+
[docs/extraction-source.json](docs/extraction-source.json). The originating software
|
|
83
|
+
is MIT licensed; its copyright and licence remain in this repository. Application
|
|
84
|
+
cases, generator seeds, source CSVs, artifact schemas, pipeline stages and web assets
|
|
85
|
+
are outside this library. See [the extraction boundary](docs/boundary.md).
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
forecastscope/__init__.py,sha256=dEaNYiGCK9Sbixndmoey3SwhYkL_zIsTBzLY5heD52A,197
|
|
2
|
+
forecastscope/api.py,sha256=o44IkBduqhmApb-zn7hSwA0XeZ9JAbt2iAXslOrU6DA,3774
|
|
3
|
+
forecastscope/forecasting.py,sha256=8QOG1O4RntSyB14kUkn9Vw65WOSVxRCc3IcvVhKhMuA,10786
|
|
4
|
+
forecastscope/types.py,sha256=IjdIZUv-WdxlefuLLlX3WFbfJE2YhRSdxj7A1zcuQ88,370
|
|
5
|
+
forecastscope/combinations/__init__.py,sha256=lern5haQjG2ZNkmYR0fSwJ9gJvsPmx_0gwFT4uGSajs,85
|
|
6
|
+
forecastscope/combinations/context_memory.py,sha256=sg83Vh6ezrM4oWSoJLS7I9-DApl4OEM1eTpNfY2guA0,5264
|
|
7
|
+
forecastscope/combinations/validated.py,sha256=zJ1ElDlKwLAs4X6yRk1OnlSHXHFngdnw1Q3VpDqfY10,6494
|
|
8
|
+
forecastscope/diagnostics/__init__.py,sha256=AIJjbPYRAXDrUvpvkGfTRJKqIQJ3cuGazEAw9J0ZXUY,4515
|
|
9
|
+
forecastscope/diagnostics/autocorrelation.py,sha256=oFtTjT2J1KEQgas16f8BQwFXVxBjpdrpr2XXEn4RBVI,10231
|
|
10
|
+
forecastscope/diagnostics/causality.py,sha256=8QwjE-TyXzzakp7S22GT5FqwW9w2bPdpYoCagjNSaug,8702
|
|
11
|
+
forecastscope/diagnostics/changepoints.py,sha256=xIKup3KBgeFiyVHaX254ericlY2p-n93F6iCuzJ1UcI,8137
|
|
12
|
+
forecastscope/diagnostics/distribution.py,sha256=OdPOPVUXJ9RJY7_byq4HI_ZnNjn-g6MmfN73UiS1mIk,8900
|
|
13
|
+
forecastscope/diagnostics/filters.py,sha256=EqhbI6tTDB0gqWDcLZfRCdL8P9pnqCd3xWzDpEZIe8w,9249
|
|
14
|
+
forecastscope/diagnostics/fractal.py,sha256=xMl1LaCr7n0p7sjdKERbLryNfbSaUmTW4kBgGbwwh8w,9747
|
|
15
|
+
forecastscope/diagnostics/nonlinear.py,sha256=09E54qZXFv35RxM1EBZ3oBUIzSrA-XJnnI_4JfqtvBg,12677
|
|
16
|
+
forecastscope/diagnostics/seasonality.py,sha256=ycQa6QIw7vXj7scjpEeSR27VdkbKGvHxG25e6buaWs4,9308
|
|
17
|
+
forecastscope/diagnostics/sequence.py,sha256=qJvH9TU_qJLpn8djg0NL3J1xfZiKaUK8bET74KiRyNo,6943
|
|
18
|
+
forecastscope/diagnostics/stationarity.py,sha256=QkkMYUMOggEtFjMY-_IxoKIcULTlPKnS4cWKE78lcCk,10448
|
|
19
|
+
forecastscope/diagnostics/volatility.py,sha256=EROHCodJ9SiCEmXBT-CZj9k2UhcEqspQwuYNUQKZchU,8903
|
|
20
|
+
forecastscope-0.1.0.dist-info/licenses/LICENSE,sha256=rOxnRb9xsVTVlzpgyno82vGSy8WXWB7CGqF0cxh7HSQ,1079
|
|
21
|
+
forecastscope-0.1.0.dist-info/METADATA,sha256=IhHMA75HIOI_pEx9UJl_hmnoa_Ro9lLP8A9S6hUZmUA,4590
|
|
22
|
+
forecastscope-0.1.0.dist-info/WHEEL,sha256=mOdXR9C3wMVov7cSY8PY-XCzo3SmmWCHvGQr5csJoao,91
|
|
23
|
+
forecastscope-0.1.0.dist-info/top_level.txt,sha256=H83RDgCNs9lnwyVhqMzBbW6ABqlCWsK-YB74q1QC2bM,14
|
|
24
|
+
forecastscope-0.1.0.dist-info/RECORD,,
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Felipe Santibanez-Leal
|
|
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.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
forecastscope
|