5966 lines
352 KiB
Plaintext
5966 lines
352 KiB
Plaintext
{
|
||
"cells": [
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "1951c3d3",
|
||
"metadata": {
|
||
"papermill": {
|
||
"duration": 0.002923,
|
||
"end_time": "2026-06-13T03:35:04.408632+00:00",
|
||
"exception": false,
|
||
"start_time": "2026-06-13T03:35:04.405709+00:00",
|
||
"status": "completed"
|
||
}
|
||
},
|
||
"source": [
|
||
"# ARIMA Feature Extraction\n",
|
||
"\n",
|
||
"**Docker image**: `ml4t`\n",
|
||
"\n",
|
||
"This notebook demonstrates ARIMA as a **feature extractor** rather than a\n",
|
||
"standalone forecaster. The output is the ARIMA point forecast, evaluated as a\n",
|
||
"predictive feature (IC/RMSE) across orders and symbols.\n",
|
||
"\n",
|
||
"**Learning Objectives**:\n",
|
||
"- Select ARIMA order using ACF/PACF and information criteria (AIC/BIC)\n",
|
||
"- Build ARIMA point forecasts and evaluate them as features (IC, RMSE)\n",
|
||
"- Compare AR, AIC-selected, and naive baselines across the ETF universe\n",
|
||
"- Diagnose why simple ARIMA mean models extract limited signal from daily returns\n",
|
||
"\n",
|
||
"**Book Reference**: Chapter 9, Section 9.3 (Volatility Features)\n",
|
||
"\n",
|
||
"**Prerequisites**: `01_visual_diagnostics` for stationarity testing,\n",
|
||
"`03_fractional_differencing` for memory-preserving transforms."
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "e86adbaa",
|
||
"metadata": {
|
||
"papermill": {
|
||
"duration": 0.00236,
|
||
"end_time": "2026-06-13T03:35:04.413476+00:00",
|
||
"exception": false,
|
||
"start_time": "2026-06-13T03:35:04.411116+00:00",
|
||
"status": "completed"
|
||
}
|
||
},
|
||
"source": [
|
||
"## 1. Setup and Imports"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 1,
|
||
"id": "58e85d91",
|
||
"metadata": {
|
||
"execution": {
|
||
"iopub.execute_input": "2026-06-13T03:35:04.416988Z",
|
||
"iopub.status.busy": "2026-06-13T03:35:04.416867Z",
|
||
"iopub.status.idle": "2026-06-13T03:35:06.290228Z",
|
||
"shell.execute_reply": "2026-06-13T03:35:06.289681Z"
|
||
},
|
||
"papermill": {
|
||
"duration": 1.875654,
|
||
"end_time": "2026-06-13T03:35:06.290550+00:00",
|
||
"exception": false,
|
||
"start_time": "2026-06-13T03:35:04.414896+00:00",
|
||
"status": "completed"
|
||
}
|
||
},
|
||
"outputs": [],
|
||
"source": [
|
||
"\"\"\"ARIMA Feature Extraction — build ARIMA point forecasts and evaluate them as features (IC/RMSE).\"\"\"\n",
|
||
"\n",
|
||
"import warnings\n",
|
||
"\n",
|
||
"import numpy as np\n",
|
||
"import pandas as pd\n",
|
||
"import plotly.graph_objects as go\n",
|
||
"import polars as pl\n",
|
||
"from IPython.display import display\n",
|
||
"from ml4t.diagnostic.evaluation.autocorrelation import analyze_autocorrelation\n",
|
||
"from ml4t.diagnostic.evaluation.stationarity import analyze_stationarity\n",
|
||
"from ml4t.diagnostic.metrics import pooled_ic\n",
|
||
"from plotly.subplots import make_subplots\n",
|
||
"from statsmodels.tsa.arima.model import ARIMA\n",
|
||
"from statsmodels.tsa.stattools import acf, adfuller, pacf\n",
|
||
"\n",
|
||
"warnings.filterwarnings(\"ignore\", category=FutureWarning)\n",
|
||
"\n",
|
||
"from data import load_etfs\n",
|
||
"from utils.paths import get_case_study_dir\n",
|
||
"from utils.reproducibility import set_global_seeds"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 2,
|
||
"id": "6856463f",
|
||
"metadata": {
|
||
"execution": {
|
||
"iopub.execute_input": "2026-06-13T03:35:06.294165Z",
|
||
"iopub.status.busy": "2026-06-13T03:35:06.294071Z",
|
||
"iopub.status.idle": "2026-06-13T03:35:06.295694Z",
|
||
"shell.execute_reply": "2026-06-13T03:35:06.295454Z"
|
||
},
|
||
"papermill": {
|
||
"duration": 0.003872,
|
||
"end_time": "2026-06-13T03:35:06.296000+00:00",
|
||
"exception": false,
|
||
"start_time": "2026-06-13T03:35:06.292128+00:00",
|
||
"status": "completed"
|
||
},
|
||
"tags": [
|
||
"parameters"
|
||
]
|
||
},
|
||
"outputs": [],
|
||
"source": [
|
||
"# Production defaults — Papermill injects overrides for CI\n",
|
||
"MAX_SYMBOLS = 0 # 0 = all symbols\n",
|
||
"START_DATE = \"2015-01-01\"\n",
|
||
"END_DATE = \"2024-12-01\"\n",
|
||
"TEST_START = \"2024-01-01\"\n",
|
||
"SEED = 42"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 3,
|
||
"id": "e8136c54",
|
||
"metadata": {
|
||
"execution": {
|
||
"iopub.execute_input": "2026-06-13T03:35:06.299054Z",
|
||
"iopub.status.busy": "2026-06-13T03:35:06.298991Z",
|
||
"iopub.status.idle": "2026-06-13T03:35:06.358815Z",
|
||
"shell.execute_reply": "2026-06-13T03:35:06.358485Z"
|
||
},
|
||
"papermill": {
|
||
"duration": 0.061814,
|
||
"end_time": "2026-06-13T03:35:06.359168+00:00",
|
||
"exception": false,
|
||
"start_time": "2026-06-13T03:35:06.297354+00:00",
|
||
"status": "completed"
|
||
}
|
||
},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"ARIMA Baseline Configuration:\n",
|
||
" Symbols: 100 (ACWI, ACWX, AGG, BIL, BND, BNDX, DBA, DBC, DIA, DVY, EEM, EFA, EMB, EWA, EWC, EWG, EWH, EWI, EWJ, EWL, EWN, EWP, EWQ, EWT, EWU, EWW, EWY, EWZ, EZA, FXB, FXE, FXI, FXY, GLD, GOVT, GSG, HYG, IAU, IBB, IEF, IEFA, IEMG, IJR, INDA, ITA, ITB, IVE, IVW, IWM, IYR, JNK, KRE, LQD, MCHI, MDY, MTUM, MUB, OIH, PPLT, QQQ, QUAL, RSP, SCHD, SDY, SHY, SLV, SMH, SOXX, SPY, THD, TIP, TLT, UNG, USMV, USO, UUP, VCSH, VEA, VGK, VIG, VLUE, VNQ, VTI, VTV, VUG, VWO, XBI, XLB, XLC, XLE, XLF, XLI, XLK, XLP, XLRE, XLU, XLV, XLY, XME, XRT)\n",
|
||
" Train: 2015-01-01 to 2024-01-01\n",
|
||
" Test: 2024-01-01 to 2024-12-01\n"
|
||
]
|
||
}
|
||
],
|
||
"source": [
|
||
"set_global_seeds(SEED)\n",
|
||
"\n",
|
||
"# Configuration\n",
|
||
"\n",
|
||
"# ETF symbols\n",
|
||
"etf_data = load_etfs()\n",
|
||
"ALL_SYMBOLS = etf_data[\"symbol\"].unique().sort().to_list()\n",
|
||
"SYMBOLS = ALL_SYMBOLS[:MAX_SYMBOLS] if MAX_SYMBOLS > 0 else ALL_SYMBOLS\n",
|
||
"\n",
|
||
"# For single-symbol demonstration (used in educational sections)\n",
|
||
"SYMBOL = \"SPY\"\n",
|
||
"\n",
|
||
"print(\"ARIMA Baseline Configuration:\")\n",
|
||
"print(f\" Symbols: {len(SYMBOLS)} ({', '.join(SYMBOLS)})\")\n",
|
||
"print(f\" Train: {START_DATE} to {TEST_START}\")\n",
|
||
"print(f\" Test: {TEST_START} to {END_DATE}\")"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "19d0da06",
|
||
"metadata": {
|
||
"lines_to_next_cell": 2,
|
||
"papermill": {
|
||
"duration": 0.001408,
|
||
"end_time": "2026-06-13T03:35:06.362137+00:00",
|
||
"exception": false,
|
||
"start_time": "2026-06-13T03:35:06.360729+00:00",
|
||
"status": "completed"
|
||
}
|
||
},
|
||
"source": [
|
||
"## 2. Load ETF Price Data\n",
|
||
"\n",
|
||
"Load from ETF universe for cross-chapter consistency."
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 4,
|
||
"id": "1a123966",
|
||
"metadata": {
|
||
"execution": {
|
||
"iopub.execute_input": "2026-06-13T03:35:06.365465Z",
|
||
"iopub.status.busy": "2026-06-13T03:35:06.365368Z",
|
||
"iopub.status.idle": "2026-06-13T03:35:06.377108Z",
|
||
"shell.execute_reply": "2026-06-13T03:35:06.376790Z"
|
||
},
|
||
"papermill": {
|
||
"duration": 0.013879,
|
||
"end_time": "2026-06-13T03:35:06.377410+00:00",
|
||
"exception": false,
|
||
"start_time": "2026-06-13T03:35:06.363531+00:00",
|
||
"status": "completed"
|
||
}
|
||
},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
" ETF data: 248,436 observations across 100 assets\n",
|
||
"Loading SPY data from ETF universe...\n",
|
||
" Observations: 2494\n",
|
||
" Date range: 2015-01-05 to 2024-11-29\n"
|
||
]
|
||
}
|
||
],
|
||
"source": [
|
||
"# Filter ETF data to date range (once, for all symbols)\n",
|
||
"start_dt = pl.col(\"timestamp\") >= pl.lit(START_DATE).str.to_date()\n",
|
||
"end_dt = pl.col(\"timestamp\") <= pl.lit(END_DATE).str.to_date()\n",
|
||
"etf_data = etf_data.filter(start_dt & end_dt)\n",
|
||
"\n",
|
||
"print(f\" ETF data: {len(etf_data):,} observations across {etf_data['symbol'].n_unique()} assets\")\n",
|
||
"\n",
|
||
"\n",
|
||
"def get_symbol_data(symbol: str) -> pd.DataFrame:\n",
|
||
" \"\"\"Extract single symbol from pre-loaded ETF data.\n",
|
||
"\n",
|
||
" Uses the already-loaded etf_data for efficiency.\n",
|
||
" \"\"\"\n",
|
||
" data = (\n",
|
||
" etf_data.filter(pl.col(\"symbol\") == symbol)\n",
|
||
" .sort(\"timestamp\")\n",
|
||
" .with_columns(returns=pl.col(\"close\").pct_change())\n",
|
||
" .drop_nulls()\n",
|
||
" )\n",
|
||
"\n",
|
||
" # Convert to pandas with date index (statsmodels expects pandas)\n",
|
||
" # NOTE: statsmodels ARIMA requires pandas DataFrame with DatetimeIndex\n",
|
||
" df = data.select([\"timestamp\", \"close\", \"returns\"]).to_pandas()\n",
|
||
" df[\"timestamp\"] = pd.to_datetime(df[\"timestamp\"])\n",
|
||
" df = df.set_index(\"timestamp\")\n",
|
||
"\n",
|
||
" return df\n",
|
||
"\n",
|
||
"\n",
|
||
"print(f\"Loading {SYMBOL} data from ETF universe...\")\n",
|
||
"df = get_symbol_data(SYMBOL)\n",
|
||
"print(f\" Observations: {len(df)}\")\n",
|
||
"print(f\" Date range: {df.index.min().date()} to {df.index.max().date()}\")"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "7e389ba6",
|
||
"metadata": {
|
||
"papermill": {
|
||
"duration": 0.001429,
|
||
"end_time": "2026-06-13T03:35:06.380474+00:00",
|
||
"exception": false,
|
||
"start_time": "2026-06-13T03:35:06.379045+00:00",
|
||
"status": "completed"
|
||
}
|
||
},
|
||
"source": [
|
||
"## 3. Stationarity Testing\n",
|
||
"\n",
|
||
"ARIMA requires stationary series. We test prices (non-stationary) and returns (stationary)."
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 5,
|
||
"id": "2482fd46",
|
||
"metadata": {
|
||
"execution": {
|
||
"iopub.execute_input": "2026-06-13T03:35:06.383917Z",
|
||
"iopub.status.busy": "2026-06-13T03:35:06.383825Z",
|
||
"iopub.status.idle": "2026-06-13T03:35:06.442969Z",
|
||
"shell.execute_reply": "2026-06-13T03:35:06.442367Z"
|
||
},
|
||
"papermill": {
|
||
"duration": 0.061527,
|
||
"end_time": "2026-06-13T03:35:06.443401+00:00",
|
||
"exception": false,
|
||
"start_time": "2026-06-13T03:35:06.381874+00:00",
|
||
"status": "completed"
|
||
}
|
||
},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"Augmented Dickey-Fuller Test for Stationarity:\n",
|
||
"--------------------------------------------------\n",
|
||
"Prices: ADF=1.3058, p=0.9966\n",
|
||
" NON-STATIONARY\n",
|
||
"Returns: ADF=-15.8027, p=0.0000\n",
|
||
" STATIONARY\n",
|
||
"\n",
|
||
"→ We model RETURNS (stationary), not prices.\n"
|
||
]
|
||
}
|
||
],
|
||
"source": [
|
||
"print(\"Augmented Dickey-Fuller Test for Stationarity:\")\n",
|
||
"print(\"-\" * 50)\n",
|
||
"\n",
|
||
"# Test prices\n",
|
||
"adf_price = adfuller(df[\"close\"].dropna())\n",
|
||
"print(f\"Prices: ADF={adf_price[0]:.4f}, p={adf_price[1]:.4f}\")\n",
|
||
"print(f\" {'STATIONARY' if adf_price[1] < 0.05 else 'NON-STATIONARY'}\")\n",
|
||
"\n",
|
||
"# Test returns\n",
|
||
"adf_ret = adfuller(df[\"returns\"].dropna())\n",
|
||
"print(f\"Returns: ADF={adf_ret[0]:.4f}, p={adf_ret[1]:.4f}\")\n",
|
||
"print(f\" {'STATIONARY' if adf_ret[1] < 0.05 else 'NON-STATIONARY'}\")\n",
|
||
"\n",
|
||
"print(\"\\n→ We model RETURNS (stationary), not prices.\")"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "45bad28b",
|
||
"metadata": {
|
||
"lines_to_next_cell": 2,
|
||
"papermill": {
|
||
"duration": 0.002521,
|
||
"end_time": "2026-06-13T03:35:06.448690+00:00",
|
||
"exception": false,
|
||
"start_time": "2026-06-13T03:35:06.446169+00:00",
|
||
"status": "completed"
|
||
}
|
||
},
|
||
"source": [
|
||
"## 4. ACF/PACF Analysis\n",
|
||
"\n",
|
||
"ACF helps identify MA order (q), PACF helps identify AR order (p)."
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 6,
|
||
"id": "bb4633a1",
|
||
"metadata": {
|
||
"execution": {
|
||
"iopub.execute_input": "2026-06-13T03:35:06.454512Z",
|
||
"iopub.status.busy": "2026-06-13T03:35:06.454428Z",
|
||
"iopub.status.idle": "2026-06-13T03:35:07.147563Z",
|
||
"shell.execute_reply": "2026-06-13T03:35:07.147196Z"
|
||
},
|
||
"papermill": {
|
||
"duration": 0.696927,
|
||
"end_time": "2026-06-13T03:35:07.148158+00:00",
|
||
"exception": false,
|
||
"start_time": "2026-06-13T03:35:06.451231+00:00",
|
||
"status": "completed"
|
||
}
|
||
},
|
||
"outputs": [
|
||
{
|
||
"data": {
|
||
"application/vnd.plotly.v1+json": {
|
||
"config": {
|
||
"plotlyServerURL": "https://plot.ly"
|
||
},
|
||
"data": [
|
||
{
|
||
"name": "ACF",
|
||
"type": "bar",
|
||
"x": [
|
||
0,
|
||
1,
|
||
2,
|
||
3,
|
||
4,
|
||
5,
|
||
6,
|
||
7,
|
||
8,
|
||
9,
|
||
10,
|
||
11,
|
||
12,
|
||
13,
|
||
14,
|
||
15,
|
||
16,
|
||
17,
|
||
18,
|
||
19,
|
||
20
|
||
],
|
||
"xaxis": "x",
|
||
"y": {
|
||
"bdata": "AAAAAAAA8D+JBi8ElK2+vyNdkgrk868/BMost72Dj791fwwc/E+vvwqFqDP786M/6oKCIQ6zu7/XR9LMzCDCPwhTF9cELb6/2C0g4SaCwD9fNZ4aZcOsv0sJg6F3JIg/p3MMavmjiT9/H6K/N3Owv5lVV8VlwKc/6oNM01Ozt7+SEFX46pSsP2rlNZZ3AZe/GjrG45UEoj9CVqmRkjN6vyZLHU/6/5G/",
|
||
"dtype": "f8"
|
||
},
|
||
"yaxis": "y"
|
||
},
|
||
{
|
||
"name": "PACF",
|
||
"type": "bar",
|
||
"x": [
|
||
0,
|
||
1,
|
||
2,
|
||
3,
|
||
4,
|
||
5,
|
||
6,
|
||
7,
|
||
8,
|
||
9,
|
||
10,
|
||
11,
|
||
12,
|
||
13,
|
||
14,
|
||
15,
|
||
16,
|
||
17,
|
||
18,
|
||
19,
|
||
20
|
||
],
|
||
"xaxis": "x2",
|
||
"y": {
|
||
"bdata": "AAAAAAAA8D9x9xh7urC+v2PwSK2Q+qg/ky4qSjhKZL/rWe0SZEWxv413GKgclJo/SaXg+v6UuL9cZOfq0ii+Pz+JEgsUVLa/wwKOLKRluj9Eo6ASxkKkv0NEpbAZa48/rYISSFDjg7+dh55MQnqYv4t6zEJmJ3e/OFWg03RUpb+1tUysinsxv+HNzcSIzY4/tVRPDWxRjz/7FwH1hz9+v1FADJoIWHi/",
|
||
"dtype": "f8"
|
||
},
|
||
"yaxis": "y2"
|
||
}
|
||
],
|
||
"layout": {
|
||
"annotations": [
|
||
{
|
||
"font": {
|
||
"size": 16
|
||
},
|
||
"showarrow": false,
|
||
"text": "ACF",
|
||
"x": 0.225,
|
||
"xanchor": "center",
|
||
"xref": "paper",
|
||
"y": 1.0,
|
||
"yanchor": "bottom",
|
||
"yref": "paper"
|
||
},
|
||
{
|
||
"font": {
|
||
"size": 16
|
||
},
|
||
"showarrow": false,
|
||
"text": "PACF",
|
||
"x": 0.775,
|
||
"xanchor": "center",
|
||
"xref": "paper",
|
||
"y": 1.0,
|
||
"yanchor": "bottom",
|
||
"yref": "paper"
|
||
}
|
||
],
|
||
"height": 300,
|
||
"shapes": [
|
||
{
|
||
"line": {
|
||
"color": "red",
|
||
"dash": "dash"
|
||
},
|
||
"type": "line",
|
||
"x0": 0,
|
||
"x1": 1,
|
||
"xref": "x domain",
|
||
"y0": 0.03924712484170039,
|
||
"y1": 0.03924712484170039,
|
||
"yref": "y"
|
||
},
|
||
{
|
||
"line": {
|
||
"color": "red",
|
||
"dash": "dash"
|
||
},
|
||
"type": "line",
|
||
"x0": 0,
|
||
"x1": 1,
|
||
"xref": "x domain",
|
||
"y0": -0.03924712484170039,
|
||
"y1": -0.03924712484170039,
|
||
"yref": "y"
|
||
},
|
||
{
|
||
"line": {
|
||
"color": "red",
|
||
"dash": "dash"
|
||
},
|
||
"type": "line",
|
||
"x0": 0,
|
||
"x1": 1,
|
||
"xref": "x2 domain",
|
||
"y0": 0.03924712484170039,
|
||
"y1": 0.03924712484170039,
|
||
"yref": "y2"
|
||
},
|
||
{
|
||
"line": {
|
||
"color": "red",
|
||
"dash": "dash"
|
||
},
|
||
"type": "line",
|
||
"x0": 0,
|
||
"x1": 1,
|
||
"xref": "x2 domain",
|
||
"y0": -0.03924712484170039,
|
||
"y1": -0.03924712484170039,
|
||
"yref": "y2"
|
||
}
|
||
],
|
||
"showlegend": false,
|
||
"template": {
|
||
"data": {
|
||
"bar": [
|
||
{
|
||
"error_x": {
|
||
"color": "#2a3f5f"
|
||
},
|
||
"error_y": {
|
||
"color": "#2a3f5f"
|
||
},
|
||
"marker": {
|
||
"line": {
|
||
"color": "#E5ECF6",
|
||
"width": 0.5
|
||
},
|
||
"pattern": {
|
||
"fillmode": "overlay",
|
||
"size": 10,
|
||
"solidity": 0.2
|
||
}
|
||
},
|
||
"type": "bar"
|
||
}
|
||
],
|
||
"barpolar": [
|
||
{
|
||
"marker": {
|
||
"line": {
|
||
"color": "#E5ECF6",
|
||
"width": 0.5
|
||
},
|
||
"pattern": {
|
||
"fillmode": "overlay",
|
||
"size": 10,
|
||
"solidity": 0.2
|
||
}
|
||
},
|
||
"type": "barpolar"
|
||
}
|
||
],
|
||
"carpet": [
|
||
{
|
||
"aaxis": {
|
||
"endlinecolor": "#2a3f5f",
|
||
"gridcolor": "white",
|
||
"linecolor": "white",
|
||
"minorgridcolor": "white",
|
||
"startlinecolor": "#2a3f5f"
|
||
},
|
||
"baxis": {
|
||
"endlinecolor": "#2a3f5f",
|
||
"gridcolor": "white",
|
||
"linecolor": "white",
|
||
"minorgridcolor": "white",
|
||
"startlinecolor": "#2a3f5f"
|
||
},
|
||
"type": "carpet"
|
||
}
|
||
],
|
||
"choropleth": [
|
||
{
|
||
"colorbar": {
|
||
"outlinewidth": 0,
|
||
"ticks": ""
|
||
},
|
||
"type": "choropleth"
|
||
}
|
||
],
|
||
"contour": [
|
||
{
|
||
"colorbar": {
|
||
"outlinewidth": 0,
|
||
"ticks": ""
|
||
},
|
||
"colorscale": [
|
||
[
|
||
0.0,
|
||
"#0d0887"
|
||
],
|
||
[
|
||
0.1111111111111111,
|
||
"#46039f"
|
||
],
|
||
[
|
||
0.2222222222222222,
|
||
"#7201a8"
|
||
],
|
||
[
|
||
0.3333333333333333,
|
||
"#9c179e"
|
||
],
|
||
[
|
||
0.4444444444444444,
|
||
"#bd3786"
|
||
],
|
||
[
|
||
0.5555555555555556,
|
||
"#d8576b"
|
||
],
|
||
[
|
||
0.6666666666666666,
|
||
"#ed7953"
|
||
],
|
||
[
|
||
0.7777777777777778,
|
||
"#fb9f3a"
|
||
],
|
||
[
|
||
0.8888888888888888,
|
||
"#fdca26"
|
||
],
|
||
[
|
||
1.0,
|
||
"#f0f921"
|
||
]
|
||
],
|
||
"type": "contour"
|
||
}
|
||
],
|
||
"contourcarpet": [
|
||
{
|
||
"colorbar": {
|
||
"outlinewidth": 0,
|
||
"ticks": ""
|
||
},
|
||
"type": "contourcarpet"
|
||
}
|
||
],
|
||
"heatmap": [
|
||
{
|
||
"colorbar": {
|
||
"outlinewidth": 0,
|
||
"ticks": ""
|
||
},
|
||
"colorscale": [
|
||
[
|
||
0.0,
|
||
"#0d0887"
|
||
],
|
||
[
|
||
0.1111111111111111,
|
||
"#46039f"
|
||
],
|
||
[
|
||
0.2222222222222222,
|
||
"#7201a8"
|
||
],
|
||
[
|
||
0.3333333333333333,
|
||
"#9c179e"
|
||
],
|
||
[
|
||
0.4444444444444444,
|
||
"#bd3786"
|
||
],
|
||
[
|
||
0.5555555555555556,
|
||
"#d8576b"
|
||
],
|
||
[
|
||
0.6666666666666666,
|
||
"#ed7953"
|
||
],
|
||
[
|
||
0.7777777777777778,
|
||
"#fb9f3a"
|
||
],
|
||
[
|
||
0.8888888888888888,
|
||
"#fdca26"
|
||
],
|
||
[
|
||
1.0,
|
||
"#f0f921"
|
||
]
|
||
],
|
||
"type": "heatmap"
|
||
}
|
||
],
|
||
"histogram": [
|
||
{
|
||
"marker": {
|
||
"pattern": {
|
||
"fillmode": "overlay",
|
||
"size": 10,
|
||
"solidity": 0.2
|
||
}
|
||
},
|
||
"type": "histogram"
|
||
}
|
||
],
|
||
"histogram2d": [
|
||
{
|
||
"colorbar": {
|
||
"outlinewidth": 0,
|
||
"ticks": ""
|
||
},
|
||
"colorscale": [
|
||
[
|
||
0.0,
|
||
"#0d0887"
|
||
],
|
||
[
|
||
0.1111111111111111,
|
||
"#46039f"
|
||
],
|
||
[
|
||
0.2222222222222222,
|
||
"#7201a8"
|
||
],
|
||
[
|
||
0.3333333333333333,
|
||
"#9c179e"
|
||
],
|
||
[
|
||
0.4444444444444444,
|
||
"#bd3786"
|
||
],
|
||
[
|
||
0.5555555555555556,
|
||
"#d8576b"
|
||
],
|
||
[
|
||
0.6666666666666666,
|
||
"#ed7953"
|
||
],
|
||
[
|
||
0.7777777777777778,
|
||
"#fb9f3a"
|
||
],
|
||
[
|
||
0.8888888888888888,
|
||
"#fdca26"
|
||
],
|
||
[
|
||
1.0,
|
||
"#f0f921"
|
||
]
|
||
],
|
||
"type": "histogram2d"
|
||
}
|
||
],
|
||
"histogram2dcontour": [
|
||
{
|
||
"colorbar": {
|
||
"outlinewidth": 0,
|
||
"ticks": ""
|
||
},
|
||
"colorscale": [
|
||
[
|
||
0.0,
|
||
"#0d0887"
|
||
],
|
||
[
|
||
0.1111111111111111,
|
||
"#46039f"
|
||
],
|
||
[
|
||
0.2222222222222222,
|
||
"#7201a8"
|
||
],
|
||
[
|
||
0.3333333333333333,
|
||
"#9c179e"
|
||
],
|
||
[
|
||
0.4444444444444444,
|
||
"#bd3786"
|
||
],
|
||
[
|
||
0.5555555555555556,
|
||
"#d8576b"
|
||
],
|
||
[
|
||
0.6666666666666666,
|
||
"#ed7953"
|
||
],
|
||
[
|
||
0.7777777777777778,
|
||
"#fb9f3a"
|
||
],
|
||
[
|
||
0.8888888888888888,
|
||
"#fdca26"
|
||
],
|
||
[
|
||
1.0,
|
||
"#f0f921"
|
||
]
|
||
],
|
||
"type": "histogram2dcontour"
|
||
}
|
||
],
|
||
"mesh3d": [
|
||
{
|
||
"colorbar": {
|
||
"outlinewidth": 0,
|
||
"ticks": ""
|
||
},
|
||
"type": "mesh3d"
|
||
}
|
||
],
|
||
"parcoords": [
|
||
{
|
||
"line": {
|
||
"colorbar": {
|
||
"outlinewidth": 0,
|
||
"ticks": ""
|
||
}
|
||
},
|
||
"type": "parcoords"
|
||
}
|
||
],
|
||
"pie": [
|
||
{
|
||
"automargin": true,
|
||
"type": "pie"
|
||
}
|
||
],
|
||
"scatter": [
|
||
{
|
||
"fillpattern": {
|
||
"fillmode": "overlay",
|
||
"size": 10,
|
||
"solidity": 0.2
|
||
},
|
||
"type": "scatter"
|
||
}
|
||
],
|
||
"scatter3d": [
|
||
{
|
||
"line": {
|
||
"colorbar": {
|
||
"outlinewidth": 0,
|
||
"ticks": ""
|
||
}
|
||
},
|
||
"marker": {
|
||
"colorbar": {
|
||
"outlinewidth": 0,
|
||
"ticks": ""
|
||
}
|
||
},
|
||
"type": "scatter3d"
|
||
}
|
||
],
|
||
"scattercarpet": [
|
||
{
|
||
"marker": {
|
||
"colorbar": {
|
||
"outlinewidth": 0,
|
||
"ticks": ""
|
||
}
|
||
},
|
||
"type": "scattercarpet"
|
||
}
|
||
],
|
||
"scattergeo": [
|
||
{
|
||
"marker": {
|
||
"colorbar": {
|
||
"outlinewidth": 0,
|
||
"ticks": ""
|
||
}
|
||
},
|
||
"type": "scattergeo"
|
||
}
|
||
],
|
||
"scattergl": [
|
||
{
|
||
"marker": {
|
||
"colorbar": {
|
||
"outlinewidth": 0,
|
||
"ticks": ""
|
||
}
|
||
},
|
||
"type": "scattergl"
|
||
}
|
||
],
|
||
"scattermap": [
|
||
{
|
||
"marker": {
|
||
"colorbar": {
|
||
"outlinewidth": 0,
|
||
"ticks": ""
|
||
}
|
||
},
|
||
"type": "scattermap"
|
||
}
|
||
],
|
||
"scattermapbox": [
|
||
{
|
||
"marker": {
|
||
"colorbar": {
|
||
"outlinewidth": 0,
|
||
"ticks": ""
|
||
}
|
||
},
|
||
"type": "scattermapbox"
|
||
}
|
||
],
|
||
"scatterpolar": [
|
||
{
|
||
"marker": {
|
||
"colorbar": {
|
||
"outlinewidth": 0,
|
||
"ticks": ""
|
||
}
|
||
},
|
||
"type": "scatterpolar"
|
||
}
|
||
],
|
||
"scatterpolargl": [
|
||
{
|
||
"marker": {
|
||
"colorbar": {
|
||
"outlinewidth": 0,
|
||
"ticks": ""
|
||
}
|
||
},
|
||
"type": "scatterpolargl"
|
||
}
|
||
],
|
||
"scatterternary": [
|
||
{
|
||
"marker": {
|
||
"colorbar": {
|
||
"outlinewidth": 0,
|
||
"ticks": ""
|
||
}
|
||
},
|
||
"type": "scatterternary"
|
||
}
|
||
],
|
||
"surface": [
|
||
{
|
||
"colorbar": {
|
||
"outlinewidth": 0,
|
||
"ticks": ""
|
||
},
|
||
"colorscale": [
|
||
[
|
||
0.0,
|
||
"#0d0887"
|
||
],
|
||
[
|
||
0.1111111111111111,
|
||
"#46039f"
|
||
],
|
||
[
|
||
0.2222222222222222,
|
||
"#7201a8"
|
||
],
|
||
[
|
||
0.3333333333333333,
|
||
"#9c179e"
|
||
],
|
||
[
|
||
0.4444444444444444,
|
||
"#bd3786"
|
||
],
|
||
[
|
||
0.5555555555555556,
|
||
"#d8576b"
|
||
],
|
||
[
|
||
0.6666666666666666,
|
||
"#ed7953"
|
||
],
|
||
[
|
||
0.7777777777777778,
|
||
"#fb9f3a"
|
||
],
|
||
[
|
||
0.8888888888888888,
|
||
"#fdca26"
|
||
],
|
||
[
|
||
1.0,
|
||
"#f0f921"
|
||
]
|
||
],
|
||
"type": "surface"
|
||
}
|
||
],
|
||
"table": [
|
||
{
|
||
"cells": {
|
||
"fill": {
|
||
"color": "#EBF0F8"
|
||
},
|
||
"line": {
|
||
"color": "white"
|
||
}
|
||
},
|
||
"header": {
|
||
"fill": {
|
||
"color": "#C8D4E3"
|
||
},
|
||
"line": {
|
||
"color": "white"
|
||
}
|
||
},
|
||
"type": "table"
|
||
}
|
||
]
|
||
},
|
||
"layout": {
|
||
"annotationdefaults": {
|
||
"arrowcolor": "#2a3f5f",
|
||
"arrowhead": 0,
|
||
"arrowwidth": 1
|
||
},
|
||
"autotypenumbers": "strict",
|
||
"coloraxis": {
|
||
"colorbar": {
|
||
"outlinewidth": 0,
|
||
"ticks": ""
|
||
}
|
||
},
|
||
"colorscale": {
|
||
"diverging": [
|
||
[
|
||
0,
|
||
"#8e0152"
|
||
],
|
||
[
|
||
0.1,
|
||
"#c51b7d"
|
||
],
|
||
[
|
||
0.2,
|
||
"#de77ae"
|
||
],
|
||
[
|
||
0.3,
|
||
"#f1b6da"
|
||
],
|
||
[
|
||
0.4,
|
||
"#fde0ef"
|
||
],
|
||
[
|
||
0.5,
|
||
"#f7f7f7"
|
||
],
|
||
[
|
||
0.6,
|
||
"#e6f5d0"
|
||
],
|
||
[
|
||
0.7,
|
||
"#b8e186"
|
||
],
|
||
[
|
||
0.8,
|
||
"#7fbc41"
|
||
],
|
||
[
|
||
0.9,
|
||
"#4d9221"
|
||
],
|
||
[
|
||
1,
|
||
"#276419"
|
||
]
|
||
],
|
||
"sequential": [
|
||
[
|
||
0.0,
|
||
"#0d0887"
|
||
],
|
||
[
|
||
0.1111111111111111,
|
||
"#46039f"
|
||
],
|
||
[
|
||
0.2222222222222222,
|
||
"#7201a8"
|
||
],
|
||
[
|
||
0.3333333333333333,
|
||
"#9c179e"
|
||
],
|
||
[
|
||
0.4444444444444444,
|
||
"#bd3786"
|
||
],
|
||
[
|
||
0.5555555555555556,
|
||
"#d8576b"
|
||
],
|
||
[
|
||
0.6666666666666666,
|
||
"#ed7953"
|
||
],
|
||
[
|
||
0.7777777777777778,
|
||
"#fb9f3a"
|
||
],
|
||
[
|
||
0.8888888888888888,
|
||
"#fdca26"
|
||
],
|
||
[
|
||
1.0,
|
||
"#f0f921"
|
||
]
|
||
],
|
||
"sequentialminus": [
|
||
[
|
||
0.0,
|
||
"#0d0887"
|
||
],
|
||
[
|
||
0.1111111111111111,
|
||
"#46039f"
|
||
],
|
||
[
|
||
0.2222222222222222,
|
||
"#7201a8"
|
||
],
|
||
[
|
||
0.3333333333333333,
|
||
"#9c179e"
|
||
],
|
||
[
|
||
0.4444444444444444,
|
||
"#bd3786"
|
||
],
|
||
[
|
||
0.5555555555555556,
|
||
"#d8576b"
|
||
],
|
||
[
|
||
0.6666666666666666,
|
||
"#ed7953"
|
||
],
|
||
[
|
||
0.7777777777777778,
|
||
"#fb9f3a"
|
||
],
|
||
[
|
||
0.8888888888888888,
|
||
"#fdca26"
|
||
],
|
||
[
|
||
1.0,
|
||
"#f0f921"
|
||
]
|
||
]
|
||
},
|
||
"colorway": [
|
||
"#636efa",
|
||
"#EF553B",
|
||
"#00cc96",
|
||
"#ab63fa",
|
||
"#FFA15A",
|
||
"#19d3f3",
|
||
"#FF6692",
|
||
"#B6E880",
|
||
"#FF97FF",
|
||
"#FECB52"
|
||
],
|
||
"font": {
|
||
"color": "#2a3f5f"
|
||
},
|
||
"geo": {
|
||
"bgcolor": "white",
|
||
"lakecolor": "white",
|
||
"landcolor": "#E5ECF6",
|
||
"showlakes": true,
|
||
"showland": true,
|
||
"subunitcolor": "white"
|
||
},
|
||
"hoverlabel": {
|
||
"align": "left"
|
||
},
|
||
"hovermode": "closest",
|
||
"mapbox": {
|
||
"style": "light"
|
||
},
|
||
"paper_bgcolor": "white",
|
||
"plot_bgcolor": "#E5ECF6",
|
||
"polar": {
|
||
"angularaxis": {
|
||
"gridcolor": "white",
|
||
"linecolor": "white",
|
||
"ticks": ""
|
||
},
|
||
"bgcolor": "#E5ECF6",
|
||
"radialaxis": {
|
||
"gridcolor": "white",
|
||
"linecolor": "white",
|
||
"ticks": ""
|
||
}
|
||
},
|
||
"scene": {
|
||
"xaxis": {
|
||
"backgroundcolor": "#E5ECF6",
|
||
"gridcolor": "white",
|
||
"gridwidth": 2,
|
||
"linecolor": "white",
|
||
"showbackground": true,
|
||
"ticks": "",
|
||
"zerolinecolor": "white"
|
||
},
|
||
"yaxis": {
|
||
"backgroundcolor": "#E5ECF6",
|
||
"gridcolor": "white",
|
||
"gridwidth": 2,
|
||
"linecolor": "white",
|
||
"showbackground": true,
|
||
"ticks": "",
|
||
"zerolinecolor": "white"
|
||
},
|
||
"zaxis": {
|
||
"backgroundcolor": "#E5ECF6",
|
||
"gridcolor": "white",
|
||
"gridwidth": 2,
|
||
"linecolor": "white",
|
||
"showbackground": true,
|
||
"ticks": "",
|
||
"zerolinecolor": "white"
|
||
}
|
||
},
|
||
"shapedefaults": {
|
||
"line": {
|
||
"color": "#2a3f5f"
|
||
}
|
||
},
|
||
"ternary": {
|
||
"aaxis": {
|
||
"gridcolor": "white",
|
||
"linecolor": "white",
|
||
"ticks": ""
|
||
},
|
||
"baxis": {
|
||
"gridcolor": "white",
|
||
"linecolor": "white",
|
||
"ticks": ""
|
||
},
|
||
"bgcolor": "#E5ECF6",
|
||
"caxis": {
|
||
"gridcolor": "white",
|
||
"linecolor": "white",
|
||
"ticks": ""
|
||
}
|
||
},
|
||
"title": {
|
||
"x": 0.05
|
||
},
|
||
"xaxis": {
|
||
"automargin": true,
|
||
"gridcolor": "white",
|
||
"linecolor": "white",
|
||
"ticks": "",
|
||
"title": {
|
||
"standoff": 15
|
||
},
|
||
"zerolinecolor": "white",
|
||
"zerolinewidth": 2
|
||
},
|
||
"yaxis": {
|
||
"automargin": true,
|
||
"gridcolor": "white",
|
||
"linecolor": "white",
|
||
"ticks": "",
|
||
"title": {
|
||
"standoff": 15
|
||
},
|
||
"zerolinecolor": "white",
|
||
"zerolinewidth": 2
|
||
}
|
||
}
|
||
},
|
||
"title": {
|
||
"text": "SPY Returns ACF/PACF"
|
||
},
|
||
"xaxis": {
|
||
"anchor": "y",
|
||
"domain": [
|
||
0.0,
|
||
0.45
|
||
]
|
||
},
|
||
"xaxis2": {
|
||
"anchor": "y2",
|
||
"domain": [
|
||
0.55,
|
||
1.0
|
||
]
|
||
},
|
||
"yaxis": {
|
||
"anchor": "x",
|
||
"domain": [
|
||
0.0,
|
||
1.0
|
||
]
|
||
},
|
||
"yaxis2": {
|
||
"anchor": "x2",
|
||
"domain": [
|
||
0.0,
|
||
1.0
|
||
]
|
||
}
|
||
}
|
||
},
|
||
"image/png": "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IIBAQgQIvAlh5iQIIIAAAggggAACyRIg8CZLnvMigAACCCCAAAIIJESAwJsQZk6CAAIIIIAAAgggkCwBAm+y5DkvAggggAACCCCAQEIECLwJYeYkCCCAAAIIIIAAAskSIPAmS57zIoAAAggggAACCCREgMCbEGZOggACCCCAAAIIIJAsAQJvsuQ5LwIIIIAAAggggEBCBAi8CWHmJAgggAACCCCAAALJEiDwJkue8yKAAAIIIIAAAggkRIDAmxBmToIAAggggAACCCCQLAECb7LkOS8CCCCAAAIIIIBAQgQIvAlh5iQIIIAAAggggAACyRIg8CZLnvMigAACCCCAAAIIJESAwJsQZk6CAAIIIIAAAgggkCwBAm+y5DkvAggggAACCCCAQEIECLwJYeYkCCCAAAIIIIAAAskSIPAmS57zIoAAAggggAACCCREgMCbEGZOggACCCCAAAIIIJAsAQJvsuQ5LwIIIIAAAggggEBCBAi8CWHmJAgggAACCCCAAALJEiDwJkue8yKAAAIIIIAAAggkRIDAmxBmToIAAggggAACCCCQLAECb7LkOS8CCCCAAAIIIIBAQgQIvAlh5iQIIIAAAggggAACyRIg8CZLnvMigAACCCCAAAIIJESAwJsQZk6CAAIIIIAAAgggkCwBAm+y5DkvAggggAACCCCAQEIECLwJYeYkCCCAAAIIIIAAAskSIPAmS57zIoAAAggggAACCCREgMCbEGZOggACCCCAAAIIIJAsAQJvsuQ5LwIIIIAAAggggEBCBAi8CWHmJAgggAACCCCAAALJEiDwJkue8yKAAAIIIIAAAggkRIDAmxBmToIAAggggAACCCCQLAECb7LkOS8CCCCAAAIIIIBAQgQIvAlh5iQIIIAAAggggAACyRIg8CZLnvMigAACCCCAAAIIJESAwJsQZk6CAAIIIIAAAgggkCwBAm+y5DkvAggggAACCCCAQEIECLwJYeYkCCCAAAIIIIAAAskSIPAmS57zIoAAAggggAACCCRE4H+UjfWopGjp/wAAAABJRU5ErkJggg=="
|
||
},
|
||
"metadata": {},
|
||
"output_type": "display_data"
|
||
},
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"\n",
|
||
"ACF/PACF Interpretation:\n",
|
||
" - Returns show little autocorrelation (efficient market)\n",
|
||
" - Low ACF/PACF suggests AR(0) or AR(1) may suffice\n",
|
||
" - This is typical: returns are hard to predict from past returns\n"
|
||
]
|
||
}
|
||
],
|
||
"source": [
|
||
"def plot_acf_pacf(series: pd.Series, title: str):\n",
|
||
" \"\"\"Plot ACF and PACF for a series.\"\"\"\n",
|
||
" acf_vals = acf(series.dropna(), nlags=20)\n",
|
||
" pacf_vals = pacf(series.dropna(), nlags=20)\n",
|
||
"\n",
|
||
" fig = make_subplots(rows=1, cols=2, subplot_titles=(\"ACF\", \"PACF\"))\n",
|
||
"\n",
|
||
" # ACF\n",
|
||
" fig.add_trace(\n",
|
||
" go.Bar(x=list(range(len(acf_vals))), y=acf_vals, name=\"ACF\"),\n",
|
||
" row=1,\n",
|
||
" col=1,\n",
|
||
" )\n",
|
||
"\n",
|
||
" # PACF\n",
|
||
" fig.add_trace(\n",
|
||
" go.Bar(x=list(range(len(pacf_vals))), y=pacf_vals, name=\"PACF\"),\n",
|
||
" row=1,\n",
|
||
" col=2,\n",
|
||
" )\n",
|
||
"\n",
|
||
" # Significance bands\n",
|
||
" n = len(series)\n",
|
||
" sig = 1.96 / np.sqrt(n)\n",
|
||
" for col in [1, 2]:\n",
|
||
" fig.add_hline(y=sig, line_dash=\"dash\", line_color=\"red\", row=1, col=col)\n",
|
||
" fig.add_hline(y=-sig, line_dash=\"dash\", line_color=\"red\", row=1, col=col)\n",
|
||
"\n",
|
||
" fig.update_layout(height=300, title_text=title, showlegend=False)\n",
|
||
" return fig\n",
|
||
"\n",
|
||
"\n",
|
||
"fig = plot_acf_pacf(df[\"returns\"], f\"{SYMBOL} Returns ACF/PACF\")\n",
|
||
"fig.show()\n",
|
||
"\n",
|
||
"print(\"\\nACF/PACF Interpretation:\")\n",
|
||
"print(\" - Returns show little autocorrelation (efficient market)\")\n",
|
||
"print(\" - Low ACF/PACF suggests AR(0) or AR(1) may suffice\")\n",
|
||
"print(\" - This is typical: returns are hard to predict from past returns\")"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "2463a35e",
|
||
"metadata": {
|
||
"papermill": {
|
||
"duration": 0.002199,
|
||
"end_time": "2026-06-13T03:35:07.152789+00:00",
|
||
"exception": false,
|
||
"start_time": "2026-06-13T03:35:07.150590+00:00",
|
||
"status": "completed"
|
||
}
|
||
},
|
||
"source": [
|
||
"### ml4t-diagnostic: Automated Order Suggestion\n",
|
||
"\n",
|
||
"The manual ACF/PACF interpretation above requires visual inspection.\n",
|
||
"`analyze_autocorrelation()` examines significant lags programmatically\n",
|
||
"and suggests an ARIMA order — a useful sanity check before grid search."
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 7,
|
||
"id": "ad900457",
|
||
"metadata": {
|
||
"execution": {
|
||
"iopub.execute_input": "2026-06-13T03:35:07.157821Z",
|
||
"iopub.status.busy": "2026-06-13T03:35:07.157726Z",
|
||
"iopub.status.idle": "2026-06-13T03:35:07.213497Z",
|
||
"shell.execute_reply": "2026-06-13T03:35:07.213089Z"
|
||
},
|
||
"papermill": {
|
||
"duration": 0.058911,
|
||
"end_time": "2026-06-13T03:35:07.213870+00:00",
|
||
"exception": false,
|
||
"start_time": "2026-06-13T03:35:07.154959+00:00",
|
||
"status": "completed"
|
||
}
|
||
},
|
||
"outputs": [
|
||
{
|
||
"name": "stderr",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"2026-06-12 23:35:07,175 - ml4t.diagnostic.evaluation.stationarity.analysis - INFO - Running comprehensive stationarity analysis (n_obs=2494 tests=['adf', 'kpss', 'pp'] alpha=0.05)\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stderr",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"2026-06-12 23:35:07,176 - ml4t.diagnostic.evaluation.stationarity.augmented_dickey_fuller - INFO - Running ADF test (n_obs=2494 maxlag=None regression=c autolag=AIC)\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stderr",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"2026-06-12 23:35:07,203 - ml4t.diagnostic.evaluation.stationarity.augmented_dickey_fuller - INFO - ADF test completed (statistic=-15.802707807332968 p_value=1.0693651813551915e-28 lags_used=9 n_obs=2484 stationary=True)\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stderr",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"2026-06-12 23:35:07,203 - ml4t.diagnostic.evaluation.stationarity.analysis - INFO - ADF test completed (stationary=True)\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stderr",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"2026-06-12 23:35:07,203 - ml4t.diagnostic.evaluation.stationarity.kpss_test - INFO - Running KPSS test (n_obs=2494 regression=c nlags=auto)\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stderr",
|
||
"output_type": "stream",
|
||
"text": [
|
||
".venv/lib/python3.14/site-packages/ml4t/diagnostic/evaluation/stationarity/kpss_test.py:269: InterpolationWarning: The test statistic is outside of the range of p-values available in the\n",
|
||
"look-up table. The actual p-value is greater than the p-value returned.\n",
|
||
"\n",
|
||
" result = kpss(arr, regression=regression, nlags=nlags_param)\n",
|
||
"2026-06-12 23:35:07,204 - ml4t.diagnostic.evaluation.stationarity.kpss_test - INFO - KPSS test completed (statistic=0.06566345928327842 p_value=0.1 lags_used=5 n_obs=2494 stationary=True)\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stderr",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"2026-06-12 23:35:07,204 - ml4t.diagnostic.evaluation.stationarity.analysis - INFO - KPSS test completed (stationary=True)\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stderr",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"2026-06-12 23:35:07,204 - ml4t.diagnostic.evaluation.stationarity.phillips_perron - INFO - Running PP test (n_obs=2494 lags=None regression=c test_type=tau)\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stderr",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"2026-06-12 23:35:07,207 - ml4t.diagnostic.evaluation.stationarity.phillips_perron - INFO - PP test completed (statistic=-56.63275401235468 p_value=0.0 lags_used=27 n_obs=2493 stationary=True)\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stderr",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"2026-06-12 23:35:07,207 - ml4t.diagnostic.evaluation.stationarity.analysis - INFO - PP test completed (stationary=True)\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stderr",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"2026-06-12 23:35:07,207 - ml4t.diagnostic.evaluation.stationarity.analysis - INFO - Stationarity analysis completed (n_tests_run=3 consensus=strong_stationary agreement=1.0)\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stderr",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"2026-06-12 23:35:07,208 - ml4t.diagnostic.evaluation.autocorrelation - INFO - Starting autocorrelation analysis\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stderr",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"2026-06-12 23:35:07,209 - ml4t.diagnostic.evaluation.autocorrelation - INFO - ACF computed (n_obs=2494 nlags=33 significant=14)\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stderr",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"2026-06-12 23:35:07,211 - ml4t.diagnostic.evaluation.autocorrelation - INFO - PACF computed (n_obs=2494 nlags=33 significant=11)\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stderr",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"2026-06-12 23:35:07,211 - ml4t.diagnostic.evaluation.autocorrelation - INFO - Autocorrelation analysis completed (arima_order=(2, 0, 2) white_noise=False)\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"=== ml4t-diagnostic: Pre-Modeling Diagnostics ===\n",
|
||
"Stationarity: strong_stationary (agreement: 1.00)\n",
|
||
"Suggested ARIMA order: (2, 0, 2)\n"
|
||
]
|
||
}
|
||
],
|
||
"source": [
|
||
"stat_check = analyze_stationarity(df[\"returns\"].dropna().values)\n",
|
||
"acf_analysis = analyze_autocorrelation(df[\"returns\"].dropna().values)\n",
|
||
"\n",
|
||
"print(\"=== ml4t-diagnostic: Pre-Modeling Diagnostics ===\")\n",
|
||
"print(f\"Stationarity: {stat_check.consensus} (agreement: {stat_check.agreement_score:.2f})\")\n",
|
||
"print(f\"Suggested ARIMA order: {acf_analysis.suggested_arima_order}\")"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "7ef097ac",
|
||
"metadata": {
|
||
"papermill": {
|
||
"duration": 0.00443,
|
||
"end_time": "2026-06-13T03:35:07.222994+00:00",
|
||
"exception": false,
|
||
"start_time": "2026-06-13T03:35:07.218564+00:00",
|
||
"status": "completed"
|
||
}
|
||
},
|
||
"source": [
|
||
"The diagnostic confirms returns are stationary (no differencing needed, d=0)\n",
|
||
"and suggests a low-order ARIMA — consistent with the efficient market\n",
|
||
"expectation of minimal autocorrelation in returns."
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "30770046",
|
||
"metadata": {
|
||
"papermill": {
|
||
"duration": 0.004339,
|
||
"end_time": "2026-06-13T03:35:07.231794+00:00",
|
||
"exception": false,
|
||
"start_time": "2026-06-13T03:35:07.227455+00:00",
|
||
"status": "completed"
|
||
}
|
||
},
|
||
"source": [
|
||
"## 5. Train/Test Split"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 8,
|
||
"id": "b81926e4",
|
||
"metadata": {
|
||
"execution": {
|
||
"iopub.execute_input": "2026-06-13T03:35:07.241439Z",
|
||
"iopub.status.busy": "2026-06-13T03:35:07.241253Z",
|
||
"iopub.status.idle": "2026-06-13T03:35:07.244184Z",
|
||
"shell.execute_reply": "2026-06-13T03:35:07.243813Z"
|
||
},
|
||
"papermill": {
|
||
"duration": 0.008485,
|
||
"end_time": "2026-06-13T03:35:07.244670+00:00",
|
||
"exception": false,
|
||
"start_time": "2026-06-13T03:35:07.236185+00:00",
|
||
"status": "completed"
|
||
}
|
||
},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"Train: 2263 obs (2015-01-05 to 2023-12-29)\n",
|
||
"Test: 231 obs (2024-01-02 to 2024-11-29)\n"
|
||
]
|
||
}
|
||
],
|
||
"source": [
|
||
"# Split at TEST_START\n",
|
||
"test_start_dt = pd.Timestamp(TEST_START)\n",
|
||
"train = df[df.index < test_start_dt]\n",
|
||
"test = df[df.index >= test_start_dt]\n",
|
||
"\n",
|
||
"print(f\"Train: {len(train)} obs ({train.index.min().date()} to {train.index.max().date()})\")\n",
|
||
"print(f\"Test: {len(test)} obs ({test.index.min().date()} to {test.index.max().date()})\")"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "75a600e4",
|
||
"metadata": {
|
||
"papermill": {
|
||
"duration": 0.002468,
|
||
"end_time": "2026-06-13T03:35:07.251638+00:00",
|
||
"exception": false,
|
||
"start_time": "2026-06-13T03:35:07.249170+00:00",
|
||
"status": "completed"
|
||
}
|
||
},
|
||
"source": [
|
||
"## 6. Baseline Models"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 9,
|
||
"id": "bc8844bf",
|
||
"metadata": {
|
||
"execution": {
|
||
"iopub.execute_input": "2026-06-13T03:35:07.257046Z",
|
||
"iopub.status.busy": "2026-06-13T03:35:07.256962Z",
|
||
"iopub.status.idle": "2026-06-13T03:35:07.259923Z",
|
||
"shell.execute_reply": "2026-06-13T03:35:07.259484Z"
|
||
},
|
||
"papermill": {
|
||
"duration": 0.006151,
|
||
"end_time": "2026-06-13T03:35:07.260181+00:00",
|
||
"exception": false,
|
||
"start_time": "2026-06-13T03:35:07.254030+00:00",
|
||
"status": "completed"
|
||
}
|
||
},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"Model 1: Naive (predict 0)\n",
|
||
" IC: nan, RMSE: 0.007866\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stderr",
|
||
"output_type": "stream",
|
||
"text": [
|
||
".venv/lib/python3.14/site-packages/ml4t/diagnostic/metrics/ic.py:102: ConstantInputWarning: An input array is constant; the correlation coefficient is not defined.\n",
|
||
" ic_value, p_value = spearmanr(pred_clean, ret_clean)\n"
|
||
]
|
||
}
|
||
],
|
||
"source": [
|
||
"results = {}\n",
|
||
"\n",
|
||
"\n",
|
||
"# Model 1: Naive (predict last value = 0 for returns)\n",
|
||
"def naive_forecast(train_ret, n_forecast):\n",
|
||
" \"\"\"Naive forecast: predict 0 (random walk for prices = 0 for returns).\"\"\"\n",
|
||
" return np.zeros(n_forecast)\n",
|
||
"\n",
|
||
"\n",
|
||
"naive_pred = naive_forecast(train[\"returns\"], len(test))\n",
|
||
"naive_ic = pooled_ic(test[\"returns\"].values, naive_pred)\n",
|
||
"naive_rmse = np.sqrt(np.mean((test[\"returns\"].values - naive_pred) ** 2))\n",
|
||
"\n",
|
||
"results[\"Naive (0)\"] = {\"ic\": naive_ic, \"rmse\": naive_rmse, \"predictions\": naive_pred}\n",
|
||
"print(\"Model 1: Naive (predict 0)\")\n",
|
||
"print(f\" IC: {naive_ic:.4f}, RMSE: {naive_rmse:.6f}\")"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 10,
|
||
"id": "a7d5f27d",
|
||
"metadata": {
|
||
"execution": {
|
||
"iopub.execute_input": "2026-06-13T03:35:07.265565Z",
|
||
"iopub.status.busy": "2026-06-13T03:35:07.265491Z",
|
||
"iopub.status.idle": "2026-06-13T03:35:07.267903Z",
|
||
"shell.execute_reply": "2026-06-13T03:35:07.267590Z"
|
||
},
|
||
"papermill": {
|
||
"duration": 0.005557,
|
||
"end_time": "2026-06-13T03:35:07.268185+00:00",
|
||
"exception": false,
|
||
"start_time": "2026-06-13T03:35:07.262628+00:00",
|
||
"status": "completed"
|
||
}
|
||
},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"\n",
|
||
"Model 2: Historical Mean\n",
|
||
" IC: nan, RMSE: 0.007811\n"
|
||
]
|
||
}
|
||
],
|
||
"source": [
|
||
"# Model 2: Naive (predict mean)\n",
|
||
"def mean_forecast(train_ret, n_forecast):\n",
|
||
" \"\"\"Predict historical mean.\"\"\"\n",
|
||
" return np.full(n_forecast, train_ret.mean())\n",
|
||
"\n",
|
||
"\n",
|
||
"mean_pred = mean_forecast(train[\"returns\"], len(test))\n",
|
||
"mean_ic = pooled_ic(test[\"returns\"].values, mean_pred)\n",
|
||
"mean_rmse = np.sqrt(np.mean((test[\"returns\"].values - mean_pred) ** 2))\n",
|
||
"\n",
|
||
"results[\"Mean\"] = {\"ic\": mean_ic, \"rmse\": mean_rmse, \"predictions\": mean_pred}\n",
|
||
"print(\"\\nModel 2: Historical Mean\")\n",
|
||
"print(f\" IC: {mean_ic:.4f}, RMSE: {mean_rmse:.6f}\")"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "7fb0b875",
|
||
"metadata": {
|
||
"papermill": {
|
||
"duration": 0.002415,
|
||
"end_time": "2026-06-13T03:35:07.273109+00:00",
|
||
"exception": false,
|
||
"start_time": "2026-06-13T03:35:07.270694+00:00",
|
||
"status": "completed"
|
||
}
|
||
},
|
||
"source": [
|
||
"## 7. AR Models"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 11,
|
||
"id": "d552feb8",
|
||
"metadata": {
|
||
"execution": {
|
||
"iopub.execute_input": "2026-06-13T03:35:07.278553Z",
|
||
"iopub.status.busy": "2026-06-13T03:35:07.278476Z",
|
||
"iopub.status.idle": "2026-06-13T03:35:07.764076Z",
|
||
"shell.execute_reply": "2026-06-13T03:35:07.763502Z"
|
||
},
|
||
"papermill": {
|
||
"duration": 0.48899,
|
||
"end_time": "2026-06-13T03:35:07.764534+00:00",
|
||
"exception": false,
|
||
"start_time": "2026-06-13T03:35:07.275544+00:00",
|
||
"status": "completed"
|
||
}
|
||
},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"\n",
|
||
"Model 3: AR(1)\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stderr",
|
||
"output_type": "stream",
|
||
"text": [
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stderr",
|
||
"output_type": "stream",
|
||
"text": [
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:837: ValueWarning: No supported index is available. Prediction results will be given with an integer index beginning at `start`.\n",
|
||
" return get_prediction_index(\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
" AR(1) coef: -0.1269\n",
|
||
" IC: 0.0655, RMSE: 0.007813\n",
|
||
"\n",
|
||
"Model 4: AR(5)\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
" IC: -0.0255, RMSE: 0.007813\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stderr",
|
||
"output_type": "stream",
|
||
"text": [
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:837: ValueWarning: No supported index is available. Prediction results will be given with an integer index beginning at `start`.\n",
|
||
" return get_prediction_index(\n"
|
||
]
|
||
}
|
||
],
|
||
"source": [
|
||
"# Model 3: AR(1)\n",
|
||
"print(\"\\nModel 3: AR(1)\")\n",
|
||
"ar1 = ARIMA(train[\"returns\"], order=(1, 0, 0))\n",
|
||
"ar1_fit = ar1.fit()\n",
|
||
"ar1_pred = ar1_fit.forecast(steps=len(test))\n",
|
||
"\n",
|
||
"ar1_ic = pooled_ic(test[\"returns\"].values, ar1_pred.values)\n",
|
||
"ar1_rmse = np.sqrt(np.mean((test[\"returns\"].values - ar1_pred.values) ** 2))\n",
|
||
"\n",
|
||
"results[\"AR(1)\"] = {\"ic\": ar1_ic, \"rmse\": ar1_rmse, \"predictions\": ar1_pred.values}\n",
|
||
"print(f\" AR(1) coef: {ar1_fit.params.get('ar.L1', ar1_fit.params.iloc[1]):.4f}\")\n",
|
||
"print(f\" IC: {ar1_ic:.4f}, RMSE: {ar1_rmse:.6f}\")\n",
|
||
"\n",
|
||
"# Model 4: AR(5)\n",
|
||
"print(\"\\nModel 4: AR(5)\")\n",
|
||
"ar5 = ARIMA(train[\"returns\"], order=(5, 0, 0))\n",
|
||
"ar5_fit = ar5.fit()\n",
|
||
"ar5_pred = ar5_fit.forecast(steps=len(test))\n",
|
||
"\n",
|
||
"ar5_ic = pooled_ic(test[\"returns\"].values, ar5_pred.values)\n",
|
||
"ar5_rmse = np.sqrt(np.mean((test[\"returns\"].values - ar5_pred.values) ** 2))\n",
|
||
"\n",
|
||
"results[\"AR(5)\"] = {\"ic\": ar5_ic, \"rmse\": ar5_rmse, \"predictions\": ar5_pred.values}\n",
|
||
"print(f\" IC: {ar5_ic:.4f}, RMSE: {ar5_rmse:.6f}\")"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "ff723ae8",
|
||
"metadata": {
|
||
"papermill": {
|
||
"duration": 0.004735,
|
||
"end_time": "2026-06-13T03:35:07.774311+00:00",
|
||
"exception": false,
|
||
"start_time": "2026-06-13T03:35:07.769576+00:00",
|
||
"status": "completed"
|
||
}
|
||
},
|
||
"source": [
|
||
"## 8. ARIMA Model Selection\n",
|
||
"\n",
|
||
"We search over a grid of (p, d, q) and select based on AIC/BIC."
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 12,
|
||
"id": "1c2d6f25",
|
||
"metadata": {
|
||
"execution": {
|
||
"iopub.execute_input": "2026-06-13T03:35:07.780117Z",
|
||
"iopub.status.busy": "2026-06-13T03:35:07.780030Z",
|
||
"iopub.status.idle": "2026-06-13T03:35:10.649221Z",
|
||
"shell.execute_reply": "2026-06-13T03:35:10.648786Z"
|
||
},
|
||
"papermill": {
|
||
"duration": 2.872812,
|
||
"end_time": "2026-06-13T03:35:10.649644+00:00",
|
||
"exception": false,
|
||
"start_time": "2026-06-13T03:35:07.776832+00:00",
|
||
"status": "completed"
|
||
}
|
||
},
|
||
"outputs": [
|
||
{
|
||
"name": "stderr",
|
||
"output_type": "stream",
|
||
"text": [
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"\n",
|
||
"Model Selection: Grid Search\n",
|
||
"--------------------------------------------------\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stderr",
|
||
"output_type": "stream",
|
||
"text": [
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stderr",
|
||
"output_type": "stream",
|
||
"text": [
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stderr",
|
||
"output_type": "stream",
|
||
"text": [
|
||
".venv/lib/python3.14/site-packages/statsmodels/base/model.py:607: ConvergenceWarning: Maximum Likelihood optimization failed to converge. Check mle_retvals\n",
|
||
" warnings.warn(\"Maximum Likelihood optimization failed to \"\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stderr",
|
||
"output_type": "stream",
|
||
"text": [
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stderr",
|
||
"output_type": "stream",
|
||
"text": [
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stderr",
|
||
"output_type": "stream",
|
||
"text": [
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stderr",
|
||
"output_type": "stream",
|
||
"text": [
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"Top 5 models by AIC:\n"
|
||
]
|
||
},
|
||
{
|
||
"data": {
|
||
"text/html": [
|
||
"<div>\n",
|
||
"<style scoped>\n",
|
||
" .dataframe tbody tr th:only-of-type {\n",
|
||
" vertical-align: middle;\n",
|
||
" }\n",
|
||
"\n",
|
||
" .dataframe tbody tr th {\n",
|
||
" vertical-align: top;\n",
|
||
" }\n",
|
||
"\n",
|
||
" .dataframe thead th {\n",
|
||
" text-align: right;\n",
|
||
" }\n",
|
||
"</style>\n",
|
||
"<table border=\"1\" class=\"dataframe\">\n",
|
||
" <thead>\n",
|
||
" <tr style=\"text-align: right;\">\n",
|
||
" <th></th>\n",
|
||
" <th>p</th>\n",
|
||
" <th>q</th>\n",
|
||
" <th>aic</th>\n",
|
||
" <th>bic</th>\n",
|
||
" </tr>\n",
|
||
" </thead>\n",
|
||
" <tbody>\n",
|
||
" <tr>\n",
|
||
" <th>11</th>\n",
|
||
" <td>3</td>\n",
|
||
" <td>2</td>\n",
|
||
" <td>-13895.574644</td>\n",
|
||
" <td>-13855.503518</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>6</th>\n",
|
||
" <td>2</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>-13863.931048</td>\n",
|
||
" <td>-13841.033261</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>2</th>\n",
|
||
" <td>0</td>\n",
|
||
" <td>2</td>\n",
|
||
" <td>-13863.824910</td>\n",
|
||
" <td>-13840.927124</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>9</th>\n",
|
||
" <td>3</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>-13861.931354</td>\n",
|
||
" <td>-13833.309121</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>7</th>\n",
|
||
" <td>2</td>\n",
|
||
" <td>1</td>\n",
|
||
" <td>-13861.929287</td>\n",
|
||
" <td>-13833.307054</td>\n",
|
||
" </tr>\n",
|
||
" </tbody>\n",
|
||
"</table>\n",
|
||
"</div>"
|
||
],
|
||
"text/plain": [
|
||
" p q aic bic\n",
|
||
"11 3 2 -13895.574644 -13855.503518\n",
|
||
"6 2 0 -13863.931048 -13841.033261\n",
|
||
"2 0 2 -13863.824910 -13840.927124\n",
|
||
"9 3 0 -13861.931354 -13833.309121\n",
|
||
"7 2 1 -13861.929287 -13833.307054"
|
||
]
|
||
},
|
||
"metadata": {},
|
||
"output_type": "display_data"
|
||
},
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"Best model: ARIMA(3, 0, 2) (AIC: -13895.57)\n"
|
||
]
|
||
}
|
||
],
|
||
"source": [
|
||
"print(\"\\nModel Selection: Grid Search\")\n",
|
||
"print(\"-\" * 50)\n",
|
||
"\n",
|
||
"best_aic = np.inf\n",
|
||
"best_order = None\n",
|
||
"best_model = None\n",
|
||
"\n",
|
||
"# Grid search (limited for speed)\n",
|
||
"p_range = range(0, 4)\n",
|
||
"q_range = range(0, 3)\n",
|
||
"d = 0 # Returns are already stationary\n",
|
||
"\n",
|
||
"model_results = []\n",
|
||
"\n",
|
||
"for p in p_range:\n",
|
||
" for q in q_range:\n",
|
||
" try:\n",
|
||
" model = ARIMA(train[\"returns\"], order=(p, d, q))\n",
|
||
" fit = model.fit()\n",
|
||
" model_results.append({\"p\": p, \"q\": q, \"aic\": fit.aic, \"bic\": fit.bic})\n",
|
||
"\n",
|
||
" if fit.aic < best_aic:\n",
|
||
" best_aic = fit.aic\n",
|
||
" best_order = (p, d, q)\n",
|
||
" best_model = fit\n",
|
||
" except (ValueError, np.linalg.LinAlgError):\n",
|
||
" continue\n",
|
||
"\n",
|
||
"if model_results:\n",
|
||
" model_df = pd.DataFrame(model_results).sort_values(\"aic\")\n",
|
||
" print(\"Top 5 models by AIC:\")\n",
|
||
" display(model_df.head())\n",
|
||
"\n",
|
||
" print(f\"Best model: ARIMA{best_order} (AIC: {best_aic:.2f})\")"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 13,
|
||
"id": "c40bf654",
|
||
"metadata": {
|
||
"execution": {
|
||
"iopub.execute_input": "2026-06-13T03:35:10.661059Z",
|
||
"iopub.status.busy": "2026-06-13T03:35:10.660962Z",
|
||
"iopub.status.idle": "2026-06-13T03:35:10.668389Z",
|
||
"shell.execute_reply": "2026-06-13T03:35:10.668014Z"
|
||
},
|
||
"papermill": {
|
||
"duration": 0.01385,
|
||
"end_time": "2026-06-13T03:35:10.668953+00:00",
|
||
"exception": false,
|
||
"start_time": "2026-06-13T03:35:10.655103+00:00",
|
||
"status": "completed"
|
||
}
|
||
},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"\n",
|
||
"Best ARIMA(3, 0, 2):\n",
|
||
" IC: -0.0495, RMSE: 0.007829\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stderr",
|
||
"output_type": "stream",
|
||
"text": [
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:837: ValueWarning: No supported index is available. Prediction results will be given with an integer index beginning at `start`.\n",
|
||
" return get_prediction_index(\n"
|
||
]
|
||
}
|
||
],
|
||
"source": [
|
||
"# Forecast with best model\n",
|
||
"if best_model:\n",
|
||
" best_pred = best_model.forecast(steps=len(test))\n",
|
||
" best_ic = pooled_ic(test[\"returns\"].values, best_pred.values)\n",
|
||
" best_rmse = np.sqrt(np.mean((test[\"returns\"].values - best_pred.values) ** 2))\n",
|
||
"\n",
|
||
" results[f\"ARIMA{best_order}\"] = {\n",
|
||
" \"ic\": best_ic,\n",
|
||
" \"rmse\": best_rmse,\n",
|
||
" \"predictions\": best_pred.values,\n",
|
||
" }\n",
|
||
" print(f\"\\nBest ARIMA{best_order}:\")\n",
|
||
" print(f\" IC: {best_ic:.4f}, RMSE: {best_rmse:.6f}\")"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "9a2e4d90",
|
||
"metadata": {
|
||
"papermill": {
|
||
"duration": 0.005213,
|
||
"end_time": "2026-06-13T03:35:10.679573+00:00",
|
||
"exception": false,
|
||
"start_time": "2026-06-13T03:35:10.674360+00:00",
|
||
"status": "completed"
|
||
}
|
||
},
|
||
"source": [
|
||
"## 9. Rolling Forecast (Walk-Forward)\n",
|
||
"\n",
|
||
"For a more realistic evaluation, we use rolling 1-step-ahead forecasts."
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 14,
|
||
"id": "4ebc98f4",
|
||
"metadata": {
|
||
"execution": {
|
||
"iopub.execute_input": "2026-06-13T03:35:10.685791Z",
|
||
"iopub.status.busy": "2026-06-13T03:35:10.685707Z",
|
||
"iopub.status.idle": "2026-06-13T03:35:41.753166Z",
|
||
"shell.execute_reply": "2026-06-13T03:35:41.752673Z"
|
||
},
|
||
"papermill": {
|
||
"duration": 31.071266,
|
||
"end_time": "2026-06-13T03:35:41.753579+00:00",
|
||
"exception": false,
|
||
"start_time": "2026-06-13T03:35:10.682313+00:00",
|
||
"status": "completed"
|
||
}
|
||
},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"\n",
|
||
"Rolling 1-Step-Ahead Forecast (Walk-Forward):\n",
|
||
"--------------------------------------------------\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stderr",
|
||
"output_type": "stream",
|
||
"text": [
|
||
".venv/lib/python3.14/site-packages/statsmodels/base/model.py:607: ConvergenceWarning: Maximum Likelihood optimization failed to converge. Check mle_retvals\n",
|
||
" warnings.warn(\"Maximum Likelihood optimization failed to \"\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/base/model.py:607: ConvergenceWarning: Maximum Likelihood optimization failed to converge. Check mle_retvals\n",
|
||
" warnings.warn(\"Maximum Likelihood optimization failed to \"\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stderr",
|
||
"output_type": "stream",
|
||
"text": [
|
||
".venv/lib/python3.14/site-packages/statsmodels/base/model.py:607: ConvergenceWarning: Maximum Likelihood optimization failed to converge. Check mle_retvals\n",
|
||
" warnings.warn(\"Maximum Likelihood optimization failed to \"\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/base/model.py:607: ConvergenceWarning: Maximum Likelihood optimization failed to converge. Check mle_retvals\n",
|
||
" warnings.warn(\"Maximum Likelihood optimization failed to \"\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stderr",
|
||
"output_type": "stream",
|
||
"text": [
|
||
".venv/lib/python3.14/site-packages/statsmodels/base/model.py:607: ConvergenceWarning: Maximum Likelihood optimization failed to converge. Check mle_retvals\n",
|
||
" warnings.warn(\"Maximum Likelihood optimization failed to \"\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/base/model.py:607: ConvergenceWarning: Maximum Likelihood optimization failed to converge. Check mle_retvals\n",
|
||
" warnings.warn(\"Maximum Likelihood optimization failed to \"\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stderr",
|
||
"output_type": "stream",
|
||
"text": [
|
||
".venv/lib/python3.14/site-packages/statsmodels/base/model.py:607: ConvergenceWarning: Maximum Likelihood optimization failed to converge. Check mle_retvals\n",
|
||
" warnings.warn(\"Maximum Likelihood optimization failed to \"\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stderr",
|
||
"output_type": "stream",
|
||
"text": [
|
||
".venv/lib/python3.14/site-packages/statsmodels/base/model.py:607: ConvergenceWarning: Maximum Likelihood optimization failed to converge. Check mle_retvals\n",
|
||
" warnings.warn(\"Maximum Likelihood optimization failed to \"\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stderr",
|
||
"output_type": "stream",
|
||
"text": [
|
||
".venv/lib/python3.14/site-packages/statsmodels/base/model.py:607: ConvergenceWarning: Maximum Likelihood optimization failed to converge. Check mle_retvals\n",
|
||
" warnings.warn(\"Maximum Likelihood optimization failed to \"\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stderr",
|
||
"output_type": "stream",
|
||
"text": [
|
||
".venv/lib/python3.14/site-packages/statsmodels/base/model.py:607: ConvergenceWarning: Maximum Likelihood optimization failed to converge. Check mle_retvals\n",
|
||
" warnings.warn(\"Maximum Likelihood optimization failed to \"\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/base/model.py:607: ConvergenceWarning: Maximum Likelihood optimization failed to converge. Check mle_retvals\n",
|
||
" warnings.warn(\"Maximum Likelihood optimization failed to \"\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stderr",
|
||
"output_type": "stream",
|
||
"text": [
|
||
".venv/lib/python3.14/site-packages/statsmodels/base/model.py:607: ConvergenceWarning: Maximum Likelihood optimization failed to converge. Check mle_retvals\n",
|
||
" warnings.warn(\"Maximum Likelihood optimization failed to \"\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/base/model.py:607: ConvergenceWarning: Maximum Likelihood optimization failed to converge. Check mle_retvals\n",
|
||
" warnings.warn(\"Maximum Likelihood optimization failed to \"\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stderr",
|
||
"output_type": "stream",
|
||
"text": [
|
||
".venv/lib/python3.14/site-packages/statsmodels/base/model.py:607: ConvergenceWarning: Maximum Likelihood optimization failed to converge. Check mle_retvals\n",
|
||
" warnings.warn(\"Maximum Likelihood optimization failed to \"\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stderr",
|
||
"output_type": "stream",
|
||
"text": [
|
||
".venv/lib/python3.14/site-packages/statsmodels/base/model.py:607: ConvergenceWarning: Maximum Likelihood optimization failed to converge. Check mle_retvals\n",
|
||
" warnings.warn(\"Maximum Likelihood optimization failed to \"\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stderr",
|
||
"output_type": "stream",
|
||
"text": [
|
||
".venv/lib/python3.14/site-packages/statsmodels/base/model.py:607: ConvergenceWarning: Maximum Likelihood optimization failed to converge. Check mle_retvals\n",
|
||
" warnings.warn(\"Maximum Likelihood optimization failed to \"\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/base/model.py:607: ConvergenceWarning: Maximum Likelihood optimization failed to converge. Check mle_retvals\n",
|
||
" warnings.warn(\"Maximum Likelihood optimization failed to \"\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stderr",
|
||
"output_type": "stream",
|
||
"text": [
|
||
".venv/lib/python3.14/site-packages/statsmodels/base/model.py:607: ConvergenceWarning: Maximum Likelihood optimization failed to converge. Check mle_retvals\n",
|
||
" warnings.warn(\"Maximum Likelihood optimization failed to \"\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stderr",
|
||
"output_type": "stream",
|
||
"text": [
|
||
".venv/lib/python3.14/site-packages/statsmodels/base/model.py:607: ConvergenceWarning: Maximum Likelihood optimization failed to converge. Check mle_retvals\n",
|
||
" warnings.warn(\"Maximum Likelihood optimization failed to \"\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/base/model.py:607: ConvergenceWarning: Maximum Likelihood optimization failed to converge. Check mle_retvals\n",
|
||
" warnings.warn(\"Maximum Likelihood optimization failed to \"\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stderr",
|
||
"output_type": "stream",
|
||
"text": [
|
||
".venv/lib/python3.14/site-packages/statsmodels/base/model.py:607: ConvergenceWarning: Maximum Likelihood optimization failed to converge. Check mle_retvals\n",
|
||
" warnings.warn(\"Maximum Likelihood optimization failed to \"\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/base/model.py:607: ConvergenceWarning: Maximum Likelihood optimization failed to converge. Check mle_retvals\n",
|
||
" warnings.warn(\"Maximum Likelihood optimization failed to \"\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stderr",
|
||
"output_type": "stream",
|
||
"text": [
|
||
".venv/lib/python3.14/site-packages/statsmodels/base/model.py:607: ConvergenceWarning: Maximum Likelihood optimization failed to converge. Check mle_retvals\n",
|
||
" warnings.warn(\"Maximum Likelihood optimization failed to \"\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/base/model.py:607: ConvergenceWarning: Maximum Likelihood optimization failed to converge. Check mle_retvals\n",
|
||
" warnings.warn(\"Maximum Likelihood optimization failed to \"\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stderr",
|
||
"output_type": "stream",
|
||
"text": [
|
||
".venv/lib/python3.14/site-packages/statsmodels/base/model.py:607: ConvergenceWarning: Maximum Likelihood optimization failed to converge. Check mle_retvals\n",
|
||
" warnings.warn(\"Maximum Likelihood optimization failed to \"\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stderr",
|
||
"output_type": "stream",
|
||
"text": [
|
||
".venv/lib/python3.14/site-packages/statsmodels/base/model.py:607: ConvergenceWarning: Maximum Likelihood optimization failed to converge. Check mle_retvals\n",
|
||
" warnings.warn(\"Maximum Likelihood optimization failed to \"\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/base/model.py:607: ConvergenceWarning: Maximum Likelihood optimization failed to converge. Check mle_retvals\n",
|
||
" warnings.warn(\"Maximum Likelihood optimization failed to \"\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stderr",
|
||
"output_type": "stream",
|
||
"text": [
|
||
".venv/lib/python3.14/site-packages/statsmodels/base/model.py:607: ConvergenceWarning: Maximum Likelihood optimization failed to converge. Check mle_retvals\n",
|
||
" warnings.warn(\"Maximum Likelihood optimization failed to \"\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stderr",
|
||
"output_type": "stream",
|
||
"text": [
|
||
".venv/lib/python3.14/site-packages/statsmodels/base/model.py:607: ConvergenceWarning: Maximum Likelihood optimization failed to converge. Check mle_retvals\n",
|
||
" warnings.warn(\"Maximum Likelihood optimization failed to \"\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/base/model.py:607: ConvergenceWarning: Maximum Likelihood optimization failed to converge. Check mle_retvals\n",
|
||
" warnings.warn(\"Maximum Likelihood optimization failed to \"\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/base/model.py:607: ConvergenceWarning: Maximum Likelihood optimization failed to converge. Check mle_retvals\n",
|
||
" warnings.warn(\"Maximum Likelihood optimization failed to \"\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stderr",
|
||
"output_type": "stream",
|
||
"text": [
|
||
".venv/lib/python3.14/site-packages/statsmodels/base/model.py:607: ConvergenceWarning: Maximum Likelihood optimization failed to converge. Check mle_retvals\n",
|
||
" warnings.warn(\"Maximum Likelihood optimization failed to \"\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stderr",
|
||
"output_type": "stream",
|
||
"text": [
|
||
".venv/lib/python3.14/site-packages/statsmodels/base/model.py:607: ConvergenceWarning: Maximum Likelihood optimization failed to converge. Check mle_retvals\n",
|
||
" warnings.warn(\"Maximum Likelihood optimization failed to \"\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stderr",
|
||
"output_type": "stream",
|
||
"text": [
|
||
".venv/lib/python3.14/site-packages/statsmodels/base/model.py:607: ConvergenceWarning: Maximum Likelihood optimization failed to converge. Check mle_retvals\n",
|
||
" warnings.warn(\"Maximum Likelihood optimization failed to \"\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stderr",
|
||
"output_type": "stream",
|
||
"text": [
|
||
".venv/lib/python3.14/site-packages/statsmodels/base/model.py:607: ConvergenceWarning: Maximum Likelihood optimization failed to converge. Check mle_retvals\n",
|
||
" warnings.warn(\"Maximum Likelihood optimization failed to \"\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stderr",
|
||
"output_type": "stream",
|
||
"text": [
|
||
".venv/lib/python3.14/site-packages/statsmodels/base/model.py:607: ConvergenceWarning: Maximum Likelihood optimization failed to converge. Check mle_retvals\n",
|
||
" warnings.warn(\"Maximum Likelihood optimization failed to \"\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stderr",
|
||
"output_type": "stream",
|
||
"text": [
|
||
".venv/lib/python3.14/site-packages/statsmodels/base/model.py:607: ConvergenceWarning: Maximum Likelihood optimization failed to converge. Check mle_retvals\n",
|
||
" warnings.warn(\"Maximum Likelihood optimization failed to \"\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/base/model.py:607: ConvergenceWarning: Maximum Likelihood optimization failed to converge. Check mle_retvals\n",
|
||
" warnings.warn(\"Maximum Likelihood optimization failed to \"\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stderr",
|
||
"output_type": "stream",
|
||
"text": [
|
||
".venv/lib/python3.14/site-packages/statsmodels/base/model.py:607: ConvergenceWarning: Maximum Likelihood optimization failed to converge. Check mle_retvals\n",
|
||
" warnings.warn(\"Maximum Likelihood optimization failed to \"\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stderr",
|
||
"output_type": "stream",
|
||
"text": [
|
||
".venv/lib/python3.14/site-packages/statsmodels/base/model.py:607: ConvergenceWarning: Maximum Likelihood optimization failed to converge. Check mle_retvals\n",
|
||
" warnings.warn(\"Maximum Likelihood optimization failed to \"\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stderr",
|
||
"output_type": "stream",
|
||
"text": [
|
||
".venv/lib/python3.14/site-packages/statsmodels/base/model.py:607: ConvergenceWarning: Maximum Likelihood optimization failed to converge. Check mle_retvals\n",
|
||
" warnings.warn(\"Maximum Likelihood optimization failed to \"\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stderr",
|
||
"output_type": "stream",
|
||
"text": [
|
||
".venv/lib/python3.14/site-packages/statsmodels/base/model.py:607: ConvergenceWarning: Maximum Likelihood optimization failed to converge. Check mle_retvals\n",
|
||
" warnings.warn(\"Maximum Likelihood optimization failed to \"\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stderr",
|
||
"output_type": "stream",
|
||
"text": [
|
||
".venv/lib/python3.14/site-packages/statsmodels/base/model.py:607: ConvergenceWarning: Maximum Likelihood optimization failed to converge. Check mle_retvals\n",
|
||
" warnings.warn(\"Maximum Likelihood optimization failed to \"\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stderr",
|
||
"output_type": "stream",
|
||
"text": [
|
||
".venv/lib/python3.14/site-packages/statsmodels/base/model.py:607: ConvergenceWarning: Maximum Likelihood optimization failed to converge. Check mle_retvals\n",
|
||
" warnings.warn(\"Maximum Likelihood optimization failed to \"\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stderr",
|
||
"output_type": "stream",
|
||
"text": [
|
||
".venv/lib/python3.14/site-packages/statsmodels/base/model.py:607: ConvergenceWarning: Maximum Likelihood optimization failed to converge. Check mle_retvals\n",
|
||
" warnings.warn(\"Maximum Likelihood optimization failed to \"\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/base/model.py:607: ConvergenceWarning: Maximum Likelihood optimization failed to converge. Check mle_retvals\n",
|
||
" warnings.warn(\"Maximum Likelihood optimization failed to \"\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stderr",
|
||
"output_type": "stream",
|
||
"text": [
|
||
".venv/lib/python3.14/site-packages/statsmodels/base/model.py:607: ConvergenceWarning: Maximum Likelihood optimization failed to converge. Check mle_retvals\n",
|
||
" warnings.warn(\"Maximum Likelihood optimization failed to \"\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/base/model.py:607: ConvergenceWarning: Maximum Likelihood optimization failed to converge. Check mle_retvals\n",
|
||
" warnings.warn(\"Maximum Likelihood optimization failed to \"\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stderr",
|
||
"output_type": "stream",
|
||
"text": [
|
||
".venv/lib/python3.14/site-packages/statsmodels/base/model.py:607: ConvergenceWarning: Maximum Likelihood optimization failed to converge. Check mle_retvals\n",
|
||
" warnings.warn(\"Maximum Likelihood optimization failed to \"\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stderr",
|
||
"output_type": "stream",
|
||
"text": [
|
||
".venv/lib/python3.14/site-packages/statsmodels/base/model.py:607: ConvergenceWarning: Maximum Likelihood optimization failed to converge. Check mle_retvals\n",
|
||
" warnings.warn(\"Maximum Likelihood optimization failed to \"\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stderr",
|
||
"output_type": "stream",
|
||
"text": [
|
||
".venv/lib/python3.14/site-packages/statsmodels/base/model.py:607: ConvergenceWarning: Maximum Likelihood optimization failed to converge. Check mle_retvals\n",
|
||
" warnings.warn(\"Maximum Likelihood optimization failed to \"\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/base/model.py:607: ConvergenceWarning: Maximum Likelihood optimization failed to converge. Check mle_retvals\n",
|
||
" warnings.warn(\"Maximum Likelihood optimization failed to \"\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stderr",
|
||
"output_type": "stream",
|
||
"text": [
|
||
".venv/lib/python3.14/site-packages/statsmodels/base/model.py:607: ConvergenceWarning: Maximum Likelihood optimization failed to converge. Check mle_retvals\n",
|
||
" warnings.warn(\"Maximum Likelihood optimization failed to \"\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stderr",
|
||
"output_type": "stream",
|
||
"text": [
|
||
".venv/lib/python3.14/site-packages/statsmodels/base/model.py:607: ConvergenceWarning: Maximum Likelihood optimization failed to converge. Check mle_retvals\n",
|
||
" warnings.warn(\"Maximum Likelihood optimization failed to \"\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/base/model.py:607: ConvergenceWarning: Maximum Likelihood optimization failed to converge. Check mle_retvals\n",
|
||
" warnings.warn(\"Maximum Likelihood optimization failed to \"\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stderr",
|
||
"output_type": "stream",
|
||
"text": [
|
||
".venv/lib/python3.14/site-packages/statsmodels/base/model.py:607: ConvergenceWarning: Maximum Likelihood optimization failed to converge. Check mle_retvals\n",
|
||
" warnings.warn(\"Maximum Likelihood optimization failed to \"\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stderr",
|
||
"output_type": "stream",
|
||
"text": [
|
||
".venv/lib/python3.14/site-packages/statsmodels/base/model.py:607: ConvergenceWarning: Maximum Likelihood optimization failed to converge. Check mle_retvals\n",
|
||
" warnings.warn(\"Maximum Likelihood optimization failed to \"\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stderr",
|
||
"output_type": "stream",
|
||
"text": [
|
||
".venv/lib/python3.14/site-packages/statsmodels/base/model.py:607: ConvergenceWarning: Maximum Likelihood optimization failed to converge. Check mle_retvals\n",
|
||
" warnings.warn(\"Maximum Likelihood optimization failed to \"\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stderr",
|
||
"output_type": "stream",
|
||
"text": [
|
||
".venv/lib/python3.14/site-packages/statsmodels/base/model.py:607: ConvergenceWarning: Maximum Likelihood optimization failed to converge. Check mle_retvals\n",
|
||
" warnings.warn(\"Maximum Likelihood optimization failed to \"\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/base/model.py:607: ConvergenceWarning: Maximum Likelihood optimization failed to converge. Check mle_retvals\n",
|
||
" warnings.warn(\"Maximum Likelihood optimization failed to \"\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stderr",
|
||
"output_type": "stream",
|
||
"text": [
|
||
".venv/lib/python3.14/site-packages/statsmodels/base/model.py:607: ConvergenceWarning: Maximum Likelihood optimization failed to converge. Check mle_retvals\n",
|
||
" warnings.warn(\"Maximum Likelihood optimization failed to \"\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stderr",
|
||
"output_type": "stream",
|
||
"text": [
|
||
".venv/lib/python3.14/site-packages/statsmodels/base/model.py:607: ConvergenceWarning: Maximum Likelihood optimization failed to converge. Check mle_retvals\n",
|
||
" warnings.warn(\"Maximum Likelihood optimization failed to \"\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stderr",
|
||
"output_type": "stream",
|
||
"text": [
|
||
".venv/lib/python3.14/site-packages/statsmodels/base/model.py:607: ConvergenceWarning: Maximum Likelihood optimization failed to converge. Check mle_retvals\n",
|
||
" warnings.warn(\"Maximum Likelihood optimization failed to \"\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stderr",
|
||
"output_type": "stream",
|
||
"text": [
|
||
".venv/lib/python3.14/site-packages/statsmodels/base/model.py:607: ConvergenceWarning: Maximum Likelihood optimization failed to converge. Check mle_retvals\n",
|
||
" warnings.warn(\"Maximum Likelihood optimization failed to \"\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/base/model.py:607: ConvergenceWarning: Maximum Likelihood optimization failed to converge. Check mle_retvals\n",
|
||
" warnings.warn(\"Maximum Likelihood optimization failed to \"\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stderr",
|
||
"output_type": "stream",
|
||
"text": [
|
||
".venv/lib/python3.14/site-packages/statsmodels/base/model.py:607: ConvergenceWarning: Maximum Likelihood optimization failed to converge. Check mle_retvals\n",
|
||
" warnings.warn(\"Maximum Likelihood optimization failed to \"\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/base/model.py:607: ConvergenceWarning: Maximum Likelihood optimization failed to converge. Check mle_retvals\n",
|
||
" warnings.warn(\"Maximum Likelihood optimization failed to \"\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stderr",
|
||
"output_type": "stream",
|
||
"text": [
|
||
".venv/lib/python3.14/site-packages/statsmodels/base/model.py:607: ConvergenceWarning: Maximum Likelihood optimization failed to converge. Check mle_retvals\n",
|
||
" warnings.warn(\"Maximum Likelihood optimization failed to \"\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/base/model.py:607: ConvergenceWarning: Maximum Likelihood optimization failed to converge. Check mle_retvals\n",
|
||
" warnings.warn(\"Maximum Likelihood optimization failed to \"\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stderr",
|
||
"output_type": "stream",
|
||
"text": [
|
||
".venv/lib/python3.14/site-packages/statsmodels/base/model.py:607: ConvergenceWarning: Maximum Likelihood optimization failed to converge. Check mle_retvals\n",
|
||
" warnings.warn(\"Maximum Likelihood optimization failed to \"\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stderr",
|
||
"output_type": "stream",
|
||
"text": [
|
||
".venv/lib/python3.14/site-packages/statsmodels/base/model.py:607: ConvergenceWarning: Maximum Likelihood optimization failed to converge. Check mle_retvals\n",
|
||
" warnings.warn(\"Maximum Likelihood optimization failed to \"\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/base/model.py:607: ConvergenceWarning: Maximum Likelihood optimization failed to converge. Check mle_retvals\n",
|
||
" warnings.warn(\"Maximum Likelihood optimization failed to \"\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stderr",
|
||
"output_type": "stream",
|
||
"text": [
|
||
".venv/lib/python3.14/site-packages/statsmodels/base/model.py:607: ConvergenceWarning: Maximum Likelihood optimization failed to converge. Check mle_retvals\n",
|
||
" warnings.warn(\"Maximum Likelihood optimization failed to \"\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stderr",
|
||
"output_type": "stream",
|
||
"text": [
|
||
".venv/lib/python3.14/site-packages/statsmodels/base/model.py:607: ConvergenceWarning: Maximum Likelihood optimization failed to converge. Check mle_retvals\n",
|
||
" warnings.warn(\"Maximum Likelihood optimization failed to \"\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stderr",
|
||
"output_type": "stream",
|
||
"text": [
|
||
".venv/lib/python3.14/site-packages/statsmodels/base/model.py:607: ConvergenceWarning: Maximum Likelihood optimization failed to converge. Check mle_retvals\n",
|
||
" warnings.warn(\"Maximum Likelihood optimization failed to \"\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stderr",
|
||
"output_type": "stream",
|
||
"text": [
|
||
".venv/lib/python3.14/site-packages/statsmodels/base/model.py:607: ConvergenceWarning: Maximum Likelihood optimization failed to converge. Check mle_retvals\n",
|
||
" warnings.warn(\"Maximum Likelihood optimization failed to \"\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stderr",
|
||
"output_type": "stream",
|
||
"text": [
|
||
".venv/lib/python3.14/site-packages/statsmodels/base/model.py:607: ConvergenceWarning: Maximum Likelihood optimization failed to converge. Check mle_retvals\n",
|
||
" warnings.warn(\"Maximum Likelihood optimization failed to \"\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/base/model.py:607: ConvergenceWarning: Maximum Likelihood optimization failed to converge. Check mle_retvals\n",
|
||
" warnings.warn(\"Maximum Likelihood optimization failed to \"\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"AR(1) Rolling IC: 0.0178, RMSE: 0.007897\n"
|
||
]
|
||
}
|
||
],
|
||
"source": [
|
||
"print(\"\\nRolling 1-Step-Ahead Forecast (Walk-Forward):\")\n",
|
||
"print(\"-\" * 50)\n",
|
||
"\n",
|
||
"# Rolling forecast with AR(1)\n",
|
||
"rolling_preds = []\n",
|
||
"rolling_actuals = []\n",
|
||
"\n",
|
||
"# Initial training window\n",
|
||
"window_size = len(train)\n",
|
||
"full_returns = df[\"returns\"].values\n",
|
||
"\n",
|
||
"# Rolling forecast iterations\n",
|
||
"n_rolling = len(test)\n",
|
||
"\n",
|
||
"for i in range(n_rolling):\n",
|
||
" # Fit on expanding window\n",
|
||
" train_window = full_returns[: window_size + i]\n",
|
||
"\n",
|
||
" # Quick AR(1) fit; statsmodels can fail on rank-deficient or non-stationary\n",
|
||
" # windows — fall back to zero forecast in that rare case.\n",
|
||
" try:\n",
|
||
" model = ARIMA(train_window, order=(1, 0, 0))\n",
|
||
" fit = model.fit()\n",
|
||
" pred = fit.forecast(steps=1)[0]\n",
|
||
" except (ValueError, np.linalg.LinAlgError):\n",
|
||
" pred = 0.0\n",
|
||
"\n",
|
||
" rolling_preds.append(pred)\n",
|
||
" rolling_actuals.append(full_returns[window_size + i])\n",
|
||
"\n",
|
||
"rolling_preds = np.array(rolling_preds)\n",
|
||
"rolling_actuals = np.array(rolling_actuals)\n",
|
||
"\n",
|
||
"rolling_ic = pooled_ic(rolling_actuals, rolling_preds)\n",
|
||
"rolling_rmse = np.sqrt(np.mean((rolling_actuals - rolling_preds) ** 2))\n",
|
||
"\n",
|
||
"results[\"AR(1) Rolling\"] = {\"ic\": rolling_ic, \"rmse\": rolling_rmse, \"predictions\": rolling_preds}\n",
|
||
"print(f\"AR(1) Rolling IC: {rolling_ic:.4f}, RMSE: {rolling_rmse:.6f}\")"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "167bd582",
|
||
"metadata": {
|
||
"papermill": {
|
||
"duration": 0.003495,
|
||
"end_time": "2026-06-13T03:35:41.760858+00:00",
|
||
"exception": false,
|
||
"start_time": "2026-06-13T03:35:41.757363+00:00",
|
||
"status": "completed"
|
||
}
|
||
},
|
||
"source": [
|
||
"## 10. Results Comparison"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 15,
|
||
"id": "614f6ef5",
|
||
"metadata": {
|
||
"execution": {
|
||
"iopub.execute_input": "2026-06-13T03:35:41.768388Z",
|
||
"iopub.status.busy": "2026-06-13T03:35:41.768295Z",
|
||
"iopub.status.idle": "2026-06-13T03:35:41.773462Z",
|
||
"shell.execute_reply": "2026-06-13T03:35:41.773100Z"
|
||
},
|
||
"papermill": {
|
||
"duration": 0.009689,
|
||
"end_time": "2026-06-13T03:35:41.774001+00:00",
|
||
"exception": false,
|
||
"start_time": "2026-06-13T03:35:41.764312+00:00",
|
||
"status": "completed"
|
||
}
|
||
},
|
||
"outputs": [
|
||
{
|
||
"data": {
|
||
"text/html": [
|
||
"<div>\n",
|
||
"<style scoped>\n",
|
||
" .dataframe tbody tr th:only-of-type {\n",
|
||
" vertical-align: middle;\n",
|
||
" }\n",
|
||
"\n",
|
||
" .dataframe tbody tr th {\n",
|
||
" vertical-align: top;\n",
|
||
" }\n",
|
||
"\n",
|
||
" .dataframe thead th {\n",
|
||
" text-align: right;\n",
|
||
" }\n",
|
||
"</style>\n",
|
||
"<table border=\"1\" class=\"dataframe\">\n",
|
||
" <thead>\n",
|
||
" <tr style=\"text-align: right;\">\n",
|
||
" <th></th>\n",
|
||
" <th>model</th>\n",
|
||
" <th>ic</th>\n",
|
||
" <th>rmse</th>\n",
|
||
" </tr>\n",
|
||
" </thead>\n",
|
||
" <tbody>\n",
|
||
" <tr>\n",
|
||
" <th>0</th>\n",
|
||
" <td>Naive (0)</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>0.007866</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>1</th>\n",
|
||
" <td>Mean</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>0.007811</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>2</th>\n",
|
||
" <td>AR(1)</td>\n",
|
||
" <td>0.065527</td>\n",
|
||
" <td>0.007813</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>3</th>\n",
|
||
" <td>AR(5)</td>\n",
|
||
" <td>-0.025470</td>\n",
|
||
" <td>0.007813</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>4</th>\n",
|
||
" <td>ARIMA(3, 0, 2)</td>\n",
|
||
" <td>-0.049523</td>\n",
|
||
" <td>0.007829</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>5</th>\n",
|
||
" <td>AR(1) Rolling</td>\n",
|
||
" <td>0.017792</td>\n",
|
||
" <td>0.007897</td>\n",
|
||
" </tr>\n",
|
||
" </tbody>\n",
|
||
"</table>\n",
|
||
"</div>"
|
||
],
|
||
"text/plain": [
|
||
" model ic rmse\n",
|
||
"0 Naive (0) NaN 0.007866\n",
|
||
"1 Mean NaN 0.007811\n",
|
||
"2 AR(1) 0.065527 0.007813\n",
|
||
"3 AR(5) -0.025470 0.007813\n",
|
||
"4 ARIMA(3, 0, 2) -0.049523 0.007829\n",
|
||
"5 AR(1) Rolling 0.017792 0.007897"
|
||
]
|
||
},
|
||
"metadata": {},
|
||
"output_type": "display_data"
|
||
},
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"Best by IC (excluding constant predictions): AR(1) (0.0655)\n"
|
||
]
|
||
}
|
||
],
|
||
"source": [
|
||
"summary_rows = [{\"model\": name, \"ic\": r[\"ic\"], \"rmse\": r[\"rmse\"]} for name, r in results.items()]\n",
|
||
"summary_df = pd.DataFrame(summary_rows)\n",
|
||
"display(summary_df)\n",
|
||
"\n",
|
||
"# Best model by IC (skip NaN entries — constant predictions yield undefined IC)\n",
|
||
"finite = summary_df[summary_df[\"ic\"].notna()]\n",
|
||
"if not finite.empty:\n",
|
||
" best_row = finite.loc[finite[\"ic\"].idxmax()]\n",
|
||
" print(\n",
|
||
" f\"Best by IC (excluding constant predictions): {best_row['model']} ({best_row['ic']:.4f})\"\n",
|
||
" )"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "7711eb90",
|
||
"metadata": {
|
||
"papermill": {
|
||
"duration": 0.003579,
|
||
"end_time": "2026-06-13T03:35:41.781266+00:00",
|
||
"exception": false,
|
||
"start_time": "2026-06-13T03:35:41.777687+00:00",
|
||
"status": "completed"
|
||
}
|
||
},
|
||
"source": [
|
||
"## 11. Visualization"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 16,
|
||
"id": "c6248178",
|
||
"metadata": {
|
||
"execution": {
|
||
"iopub.execute_input": "2026-06-13T03:35:41.789280Z",
|
||
"iopub.status.busy": "2026-06-13T03:35:41.789179Z",
|
||
"iopub.status.idle": "2026-06-13T03:35:41.801550Z",
|
||
"shell.execute_reply": "2026-06-13T03:35:41.801135Z"
|
||
},
|
||
"papermill": {
|
||
"duration": 0.017073,
|
||
"end_time": "2026-06-13T03:35:41.801884+00:00",
|
||
"exception": false,
|
||
"start_time": "2026-06-13T03:35:41.784811+00:00",
|
||
"status": "completed"
|
||
}
|
||
},
|
||
"outputs": [],
|
||
"source": [
|
||
"# Plot comparison\n",
|
||
"models_to_plot = [\"Naive (0)\", \"AR(1)\", f\"ARIMA{best_order}\" if best_order else \"AR(1)\"]\n",
|
||
"colors = {\"Naive (0)\": \"gray\", \"AR(1)\": \"steelblue\", f\"ARIMA{best_order}\": \"coral\"}\n",
|
||
"\n",
|
||
"fig = make_subplots(\n",
|
||
" rows=2,\n",
|
||
" cols=1,\n",
|
||
" subplot_titles=(\"Actual vs Predicted Returns (Sample)\", \"Prediction Distributions\"),\n",
|
||
")\n",
|
||
"\n",
|
||
"# Sample of actual vs predicted\n",
|
||
"n_plot = min(100, len(test))\n",
|
||
"dates = test.index[:n_plot]\n",
|
||
"\n",
|
||
"fig.add_trace(\n",
|
||
" go.Scatter(\n",
|
||
" x=list(range(n_plot)),\n",
|
||
" y=test[\"returns\"].values[:n_plot],\n",
|
||
" name=\"Actual\",\n",
|
||
" line=dict(color=\"black\"),\n",
|
||
" ),\n",
|
||
" row=1,\n",
|
||
" col=1,\n",
|
||
")\n",
|
||
"\n",
|
||
"for model_name in models_to_plot:\n",
|
||
" if model_name in results:\n",
|
||
" fig.add_trace(\n",
|
||
" go.Scatter(\n",
|
||
" x=list(range(n_plot)),\n",
|
||
" y=results[model_name][\"predictions\"][:n_plot],\n",
|
||
" name=model_name,\n",
|
||
" line=dict(dash=\"dot\"),\n",
|
||
" ),\n",
|
||
" row=1,\n",
|
||
" col=1,\n",
|
||
" )"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 17,
|
||
"id": "613c2386",
|
||
"metadata": {
|
||
"execution": {
|
||
"iopub.execute_input": "2026-06-13T03:35:41.810171Z",
|
||
"iopub.status.busy": "2026-06-13T03:35:41.810082Z",
|
||
"iopub.status.idle": "2026-06-13T03:35:41.874508Z",
|
||
"shell.execute_reply": "2026-06-13T03:35:41.874071Z"
|
||
},
|
||
"papermill": {
|
||
"duration": 0.06915,
|
||
"end_time": "2026-06-13T03:35:41.874859+00:00",
|
||
"exception": false,
|
||
"start_time": "2026-06-13T03:35:41.805709+00:00",
|
||
"status": "completed"
|
||
}
|
||
},
|
||
"outputs": [
|
||
{
|
||
"data": {
|
||
"application/vnd.plotly.v1+json": {
|
||
"config": {
|
||
"plotlyServerURL": "https://plot.ly"
|
||
},
|
||
"data": [
|
||
{
|
||
"line": {
|
||
"color": "black"
|
||
},
|
||
"name": "Actual",
|
||
"type": "scatter",
|
||
"x": [
|
||
0,
|
||
1,
|
||
2,
|
||
3,
|
||
4,
|
||
5,
|
||
6,
|
||
7,
|
||
8,
|
||
9,
|
||
10,
|
||
11,
|
||
12,
|
||
13,
|
||
14,
|
||
15,
|
||
16,
|
||
17,
|
||
18,
|
||
19,
|
||
20,
|
||
21,
|
||
22,
|
||
23,
|
||
24,
|
||
25,
|
||
26,
|
||
27,
|
||
28,
|
||
29,
|
||
30,
|
||
31,
|
||
32,
|
||
33,
|
||
34,
|
||
35,
|
||
36,
|
||
37,
|
||
38,
|
||
39,
|
||
40,
|
||
41,
|
||
42,
|
||
43,
|
||
44,
|
||
45,
|
||
46,
|
||
47,
|
||
48,
|
||
49,
|
||
50,
|
||
51,
|
||
52,
|
||
53,
|
||
54,
|
||
55,
|
||
56,
|
||
57,
|
||
58,
|
||
59,
|
||
60,
|
||
61,
|
||
62,
|
||
63,
|
||
64,
|
||
65,
|
||
66,
|
||
67,
|
||
68,
|
||
69,
|
||
70,
|
||
71,
|
||
72,
|
||
73,
|
||
74,
|
||
75,
|
||
76,
|
||
77,
|
||
78,
|
||
79,
|
||
80,
|
||
81,
|
||
82,
|
||
83,
|
||
84,
|
||
85,
|
||
86,
|
||
87,
|
||
88,
|
||
89,
|
||
90,
|
||
91,
|
||
92,
|
||
93,
|
||
94,
|
||
95,
|
||
96,
|
||
97,
|
||
98,
|
||
99
|
||
],
|
||
"xaxis": "x",
|
||
"y": {
|
||
"bdata": "94JlHzzsdr/tHZFyt7mAv2NABSb7Ymq/9Y+GRa5wVj+ks6ejtjyNP+XM1ZEE21i/idVQUCQqdz8tMS2qI+I8v0LLfCB0s0Y/t8pIIxgTbr+gpgUdn8R2v98yvmJRNoI/P8xcddyHiT/oihElYlJhP8YfyK0W5Gc/ZqxaTovoUT+l6FRpOEd2P4xG0Yh90FS/j3RKNA44gD9/7t1tYFdJv+w4S1h7tZC/iAlnN+DNij9PBlZ+b4+FP0ZRSes01G2/0SGLI2jIZz+5Uwe/1RSBP8SBKLYy8Tw/+FAJliOsdz9874AhX8M8v2B8aLD/NIy/QAmo3XScgj/k9Df+B0N8P5Yvqn30ZXS/cDN4tsmMdr9dh/WnsK9NP4TUaCgpMZU/Z33DhW+ZRj9d5nMd7gBuv8ejPJ02cF4/3o/5c2OnVb9/fE536nJtP1CEBr85OoM/599iU3aSUb8UfvvoyHeEv4RonuBLwXQ/gbCiG11UhD9f8V09wpV4vyQL/xGCLEy/uBi7YPUHhj9NV8wGma5Zv6xCynt+MWC/5mBA+TYgfL/aQLd8t1d4P0fu3gokw3Y/ncz0wEjxgj8dshneeRJrP+o3tMeFD1+/4sx1CwmiZr9ALCCJyEJev+gDDkD4NYE/jcrCa8gNKb//9jjl2IBcv8dOu5jeCnq/t5YXgB//UT+5dRtzcP+Iv0h2sE0cZYU/0VKb5XFTQj857XNu2/NSP8wP6rm8gYS/WtxXDYfpfj/VgihkzUSMvxP54UdVqIm/TEkYdlvhXb/tHv4nyj14vxSmVix/22C/QWnprx3ggb899g5wPtyCP2kdZuV8TYg/1F+ak40ZP78RBfQeJh9vv6pPQjYcZ4M/e+r9mMkCbT/UT9D9qTiQv/BrPwDFmWq/biKvX+kngz+bgv2NtGKJP4s17IAmJoU/M/M5ciUVUj85qW2wXkoZP3DCtCjimXc/g4JC3rIaVT8okZmaGZkhPy9WZ1Myy3I/NcBlhjVciT9fVEDl+9pgv3eg/2Zejlc/dGdzgwfgUj+s1MBZ1xZkP0CQHzXSlWe/4LsM4FTrfb8=",
|
||
"dtype": "f8"
|
||
},
|
||
"yaxis": "y"
|
||
},
|
||
{
|
||
"line": {
|
||
"dash": "dot"
|
||
},
|
||
"name": "Naive (0)",
|
||
"type": "scatter",
|
||
"x": [
|
||
0,
|
||
1,
|
||
2,
|
||
3,
|
||
4,
|
||
5,
|
||
6,
|
||
7,
|
||
8,
|
||
9,
|
||
10,
|
||
11,
|
||
12,
|
||
13,
|
||
14,
|
||
15,
|
||
16,
|
||
17,
|
||
18,
|
||
19,
|
||
20,
|
||
21,
|
||
22,
|
||
23,
|
||
24,
|
||
25,
|
||
26,
|
||
27,
|
||
28,
|
||
29,
|
||
30,
|
||
31,
|
||
32,
|
||
33,
|
||
34,
|
||
35,
|
||
36,
|
||
37,
|
||
38,
|
||
39,
|
||
40,
|
||
41,
|
||
42,
|
||
43,
|
||
44,
|
||
45,
|
||
46,
|
||
47,
|
||
48,
|
||
49,
|
||
50,
|
||
51,
|
||
52,
|
||
53,
|
||
54,
|
||
55,
|
||
56,
|
||
57,
|
||
58,
|
||
59,
|
||
60,
|
||
61,
|
||
62,
|
||
63,
|
||
64,
|
||
65,
|
||
66,
|
||
67,
|
||
68,
|
||
69,
|
||
70,
|
||
71,
|
||
72,
|
||
73,
|
||
74,
|
||
75,
|
||
76,
|
||
77,
|
||
78,
|
||
79,
|
||
80,
|
||
81,
|
||
82,
|
||
83,
|
||
84,
|
||
85,
|
||
86,
|
||
87,
|
||
88,
|
||
89,
|
||
90,
|
||
91,
|
||
92,
|
||
93,
|
||
94,
|
||
95,
|
||
96,
|
||
97,
|
||
98,
|
||
99
|
||
],
|
||
"xaxis": "x",
|
||
"y": {
|
||
"bdata": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=",
|
||
"dtype": "f8"
|
||
},
|
||
"yaxis": "y"
|
||
},
|
||
{
|
||
"line": {
|
||
"dash": "dot"
|
||
},
|
||
"name": "AR(1)",
|
||
"type": "scatter",
|
||
"x": [
|
||
0,
|
||
1,
|
||
2,
|
||
3,
|
||
4,
|
||
5,
|
||
6,
|
||
7,
|
||
8,
|
||
9,
|
||
10,
|
||
11,
|
||
12,
|
||
13,
|
||
14,
|
||
15,
|
||
16,
|
||
17,
|
||
18,
|
||
19,
|
||
20,
|
||
21,
|
||
22,
|
||
23,
|
||
24,
|
||
25,
|
||
26,
|
||
27,
|
||
28,
|
||
29,
|
||
30,
|
||
31,
|
||
32,
|
||
33,
|
||
34,
|
||
35,
|
||
36,
|
||
37,
|
||
38,
|
||
39,
|
||
40,
|
||
41,
|
||
42,
|
||
43,
|
||
44,
|
||
45,
|
||
46,
|
||
47,
|
||
48,
|
||
49,
|
||
50,
|
||
51,
|
||
52,
|
||
53,
|
||
54,
|
||
55,
|
||
56,
|
||
57,
|
||
58,
|
||
59,
|
||
60,
|
||
61,
|
||
62,
|
||
63,
|
||
64,
|
||
65,
|
||
66,
|
||
67,
|
||
68,
|
||
69,
|
||
70,
|
||
71,
|
||
72,
|
||
73,
|
||
74,
|
||
75,
|
||
76,
|
||
77,
|
||
78,
|
||
79,
|
||
80,
|
||
81,
|
||
82,
|
||
83,
|
||
84,
|
||
85,
|
||
86,
|
||
87,
|
||
88,
|
||
89,
|
||
90,
|
||
91,
|
||
92,
|
||
93,
|
||
94,
|
||
95,
|
||
96,
|
||
97,
|
||
98,
|
||
99
|
||
],
|
||
"xaxis": "x",
|
||
"y": {
|
||
"bdata": "vK2TB47ETj8yvN27dKk9P2v4vTpI2kA/RDREeKCYQD/7OmOm9KBAP8hNDyvmn0A/xJwNewigQD+3Ob4gBKBAPy3aGa4EoEA/zzMrnASgQD/WjnGeBKBAP6CuJ54EoEA/xQ0xngSgQD9s3S+eBKBAPwgEMJ4EoEA/Iv8vngSgQD/B/y+eBKBAP63/L54EoEA/r/8vngSgQD+v/y+eBKBAP6//L54EoEA/r/8vngSgQD+v/y+eBKBAP6//L54EoEA/r/8vngSgQD+v/y+eBKBAP6//L54EoEA/r/8vngSgQD+v/y+eBKBAP6//L54EoEA/r/8vngSgQD+v/y+eBKBAP6//L54EoEA/r/8vngSgQD+v/y+eBKBAP6//L54EoEA/r/8vngSgQD+v/y+eBKBAP6//L54EoEA/r/8vngSgQD+v/y+eBKBAP6//L54EoEA/r/8vngSgQD+v/y+eBKBAP6//L54EoEA/r/8vngSgQD+v/y+eBKBAP6//L54EoEA/r/8vngSgQD+v/y+eBKBAP6//L54EoEA/r/8vngSgQD+v/y+eBKBAP6//L54EoEA/r/8vngSgQD+v/y+eBKBAP6//L54EoEA/r/8vngSgQD+v/y+eBKBAP6//L54EoEA/r/8vngSgQD+v/y+eBKBAP6//L54EoEA/r/8vngSgQD+v/y+eBKBAP6//L54EoEA/r/8vngSgQD+v/y+eBKBAP6//L54EoEA/r/8vngSgQD+v/y+eBKBAP6//L54EoEA/r/8vngSgQD+v/y+eBKBAP6//L54EoEA/r/8vngSgQD+v/y+eBKBAP6//L54EoEA/r/8vngSgQD+v/y+eBKBAP6//L54EoEA/r/8vngSgQD+v/y+eBKBAP6//L54EoEA/r/8vngSgQD+v/y+eBKBAP6//L54EoEA/r/8vngSgQD+v/y+eBKBAP6//L54EoEA/r/8vngSgQD+v/y+eBKBAP6//L54EoEA/r/8vngSgQD+v/y+eBKBAP6//L54EoEA/r/8vngSgQD+v/y+eBKBAP6//L54EoEA/r/8vngSgQD8=",
|
||
"dtype": "f8"
|
||
},
|
||
"yaxis": "y"
|
||
},
|
||
{
|
||
"line": {
|
||
"dash": "dot"
|
||
},
|
||
"name": "ARIMA(3, 0, 2)",
|
||
"type": "scatter",
|
||
"x": [
|
||
0,
|
||
1,
|
||
2,
|
||
3,
|
||
4,
|
||
5,
|
||
6,
|
||
7,
|
||
8,
|
||
9,
|
||
10,
|
||
11,
|
||
12,
|
||
13,
|
||
14,
|
||
15,
|
||
16,
|
||
17,
|
||
18,
|
||
19,
|
||
20,
|
||
21,
|
||
22,
|
||
23,
|
||
24,
|
||
25,
|
||
26,
|
||
27,
|
||
28,
|
||
29,
|
||
30,
|
||
31,
|
||
32,
|
||
33,
|
||
34,
|
||
35,
|
||
36,
|
||
37,
|
||
38,
|
||
39,
|
||
40,
|
||
41,
|
||
42,
|
||
43,
|
||
44,
|
||
45,
|
||
46,
|
||
47,
|
||
48,
|
||
49,
|
||
50,
|
||
51,
|
||
52,
|
||
53,
|
||
54,
|
||
55,
|
||
56,
|
||
57,
|
||
58,
|
||
59,
|
||
60,
|
||
61,
|
||
62,
|
||
63,
|
||
64,
|
||
65,
|
||
66,
|
||
67,
|
||
68,
|
||
69,
|
||
70,
|
||
71,
|
||
72,
|
||
73,
|
||
74,
|
||
75,
|
||
76,
|
||
77,
|
||
78,
|
||
79,
|
||
80,
|
||
81,
|
||
82,
|
||
83,
|
||
84,
|
||
85,
|
||
86,
|
||
87,
|
||
88,
|
||
89,
|
||
90,
|
||
91,
|
||
92,
|
||
93,
|
||
94,
|
||
95,
|
||
96,
|
||
97,
|
||
98,
|
||
99
|
||
],
|
||
"xaxis": "x",
|
||
"y": {
|
||
"bdata": "Z62G5FeSRb+WzEUlzLZhPzAjTqqgjVW//09Q1kItYD/rATasMiRJvyoztJvkvFg/xgd71A2jNb/vkwdMkiNTPzBt/DbzSAW/JTfQkU3HTj9wy7GIb2YjP3KVAcDM1kk/57Miz7HBMT/82/0VmJlGP5oAdrADBDc/E1HhSLR6RD9ehgL/nnM6P7KOycWCF0M/aHQSL46yPD/nDhdRMS9CP0Hljw9tKj4/y1bdp0OXQT8WuJgpLiA/PxJWQDbqM0E/CwTPVd7APz/1BfQ78/JAP65hzQv4FEA/b1j+XXjIQD9eBxz4UTdAP3aO9GyxrEA/u2zKJchNQD9TQgevh5pAP7djgxZ4XEA/sqsRSqeOQD9JCDOmEmZAP0EyTznjhkA/1Cr2QlpsQD/KB4xCz4FAPzY063N1cEA/fPkSPH1+QD9DqTzPJHNAP2VSv2pRfEA/IVHFQuZ0QD+GEBT65XpAP0qNUSYMdkA/VtpNVPh5QD8RFp1RzHZAPyspeu9ceUA/OPmc+Ul3QD/hvXFT93hAP3AUviOcd0A/jdeZ4rR4QD9nsp3d0XdAP1bQy3CJeEA/B5cM//R3QD83AG4IbXhAP7VMtfcLeEA/U+gldVp4QD+Snfn8GnhAPxtDv09OeEA/gg1VzyR4QD9/hY9eRnhAP7fnbTsreEA/OdwXLUF4QD/aP3puL3hAP1azxsc9eEA/5RpvLTJ4QD9yDliPO3hAP/PzFfkzeEA/38qnGzp4QD91/6QlNXhAPxhInSg5eEA/Rcws6jV4QD8mnbGJOHhAP63crmo2eEA/ajrHITh4QD9fXra+NnhAP+Fc1N03eEA/MWSo9TZ4QD8AJWaxN3hAPxHvlRk3eEA/obpYlDd4QD99DhQxN3hAP0eGWYE3eEA/3ZdwQDd4QD/4je10N3hAP8ADfEo3eEA/YjnObDd4QD/VbA1RN3hAP3+Vfmc3eEA/Od9YVTd4QD+YiQVkN3hAP0TIJ1g3eEA/WTTAYTd4QD+y3f1ZN3hAP5IURGA3eEA//j4xWzd4QD/9hUtfN3hAP6M8+ls3eEA//f6oXjd4QD8=",
|
||
"dtype": "f8"
|
||
},
|
||
"yaxis": "y"
|
||
},
|
||
{
|
||
"name": "Actual",
|
||
"nbinsx": 50,
|
||
"opacity": 0.5,
|
||
"type": "histogram",
|
||
"x": {
|
||
"bdata": "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",
|
||
"dtype": "f8"
|
||
},
|
||
"xaxis": "x2",
|
||
"yaxis": "y2"
|
||
},
|
||
{
|
||
"name": "AR(1) Pred",
|
||
"nbinsx": 50,
|
||
"opacity": 0.5,
|
||
"type": "histogram",
|
||
"x": {
|
||
"bdata": "vK2TB47ETj8yvN27dKk9P2v4vTpI2kA/RDREeKCYQD/7OmOm9KBAP8hNDyvmn0A/xJwNewigQD+3Ob4gBKBAPy3aGa4EoEA/zzMrnASgQD/WjnGeBKBAP6CuJ54EoEA/xQ0xngSgQD9s3S+eBKBAPwgEMJ4EoEA/Iv8vngSgQD/B/y+eBKBAP63/L54EoEA/r/8vngSgQD+v/y+eBKBAP6//L54EoEA/r/8vngSgQD+v/y+eBKBAP6//L54EoEA/r/8vngSgQD+v/y+eBKBAP6//L54EoEA/r/8vngSgQD+v/y+eBKBAP6//L54EoEA/r/8vngSgQD+v/y+eBKBAP6//L54EoEA/r/8vngSgQD+v/y+eBKBAP6//L54EoEA/r/8vngSgQD+v/y+eBKBAP6//L54EoEA/r/8vngSgQD+v/y+eBKBAP6//L54EoEA/r/8vngSgQD+v/y+eBKBAP6//L54EoEA/r/8vngSgQD+v/y+eBKBAP6//L54EoEA/r/8vngSgQD+v/y+eBKBAP6//L54EoEA/r/8vngSgQD+v/y+eBKBAP6//L54EoEA/r/8vngSgQD+v/y+eBKBAP6//L54EoEA/r/8vngSgQD+v/y+eBKBAP6//L54EoEA/r/8vngSgQD+v/y+eBKBAP6//L54EoEA/r/8vngSgQD+v/y+eBKBAP6//L54EoEA/r/8vngSgQD+v/y+eBKBAP6//L54EoEA/r/8vngSgQD+v/y+eBKBAP6//L54EoEA/r/8vngSgQD+v/y+eBKBAP6//L54EoEA/r/8vngSgQD+v/y+eBKBAP6//L54EoEA/r/8vngSgQD+v/y+eBKBAP6//L54EoEA/r/8vngSgQD+v/y+eBKBAP6//L54EoEA/r/8vngSgQD+v/y+eBKBAP6//L54EoEA/r/8vngSgQD+v/y+eBKBAP6//L54EoEA/r/8vngSgQD+v/y+eBKBAP6//L54EoEA/r/8vngSgQD+v/y+eBKBAP6//L54EoEA/r/8vngSgQD+v/y+eBKBAP6//L54EoEA/r/8vngSgQD+v/y+eBKBAP6//L54EoEA/r/8vngSgQD+v/y+eBKBAP6//L54EoEA/r/8vngSgQD+v/y+eBKBAP6//L54EoEA/r/8vngSgQD+v/y+eBKBAP6//L54EoEA/r/8vngSgQD+v/y+eBKBAP6//L54EoEA/r/8vngSgQD+v/y+eBKBAP6//L54EoEA/r/8vngSgQD+v/y+eBKBAP6//L54EoEA/r/8vngSgQD+v/y+eBKBAP6//L54EoEA/r/8vngSgQD+v/y+eBKBAP6//L54EoEA/r/8vngSgQD+v/y+eBKBAP6//L54EoEA/r/8vngSgQD+v/y+eBKBAP6//L54EoEA/r/8vngSgQD+v/y+eBKBAP6//L54EoEA/r/8vngSgQD+v/y+eBKBAP6//L54EoEA/r/8vngSgQD+v/y+eBKBAP6//L54EoEA/r/8vngSgQD+v/y+eBKBAP6//L54EoEA/r/8vngSgQD+v/y+eBKBAP6//L54EoEA/r/8vngSgQD+v/y+eBKBAP6//L54EoEA/r/8vngSgQD+v/y+eBKBAP6//L54EoEA/r/8vngSgQD+v/y+eBKBAP6//L54EoEA/r/8vngSgQD+v/y+eBKBAP6//L54EoEA/r/8vngSgQD+v/y+eBKBAP6//L54EoEA/r/8vngSgQD+v/y+eBKBAP6//L54EoEA/r/8vngSgQD+v/y+eBKBAP6//L54EoEA/r/8vngSgQD+v/y+eBKBAP6//L54EoEA/r/8vngSgQD+v/y+eBKBAP6//L54EoEA/r/8vngSgQD+v/y+eBKBAP6//L54EoEA/r/8vngSgQD+v/y+eBKBAP6//L54EoEA/r/8vngSgQD+v/y+eBKBAP6//L54EoEA/r/8vngSgQD+v/y+eBKBAP6//L54EoEA/r/8vngSgQD+v/y+eBKBAP6//L54EoEA/r/8vngSgQD+v/y+eBKBAP6//L54EoEA/r/8vngSgQD+v/y+eBKBAP6//L54EoEA/r/8vngSgQD+v/y+eBKBAP6//L54EoEA/r/8vngSgQD+v/y+eBKBAP6//L54EoEA/r/8vngSgQD+v/y+eBKBAP6//L54EoEA/r/8vngSgQD+v/y+eBKBAP6//L54EoEA/r/8vngSgQD+v/y+eBKBAP6//L54EoEA/r/8vngSgQD+v/y+eBKBAP6//L54EoEA/r/8vngSgQD+v/y+eBKBAP6//L54EoEA/r/8vngSgQD+v/y+eBKBAP6//L54EoEA/r/8vngSgQD+v/y+eBKBAP6//L54EoEA/r/8vngSgQD+v/y+eBKBAP6//L54EoEA/r/8vngSgQD+v/y+eBKBAP6//L54EoEA/r/8vngSgQD+v/y+eBKBAP6//L54EoEA/",
|
||
"dtype": "f8"
|
||
},
|
||
"xaxis": "x2",
|
||
"yaxis": "y2"
|
||
}
|
||
],
|
||
"layout": {
|
||
"annotations": [
|
||
{
|
||
"font": {
|
||
"size": 16
|
||
},
|
||
"showarrow": false,
|
||
"text": "Actual vs Predicted Returns (Sample)",
|
||
"x": 0.5,
|
||
"xanchor": "center",
|
||
"xref": "paper",
|
||
"y": 1.0,
|
||
"yanchor": "bottom",
|
||
"yref": "paper"
|
||
},
|
||
{
|
||
"font": {
|
||
"size": 16
|
||
},
|
||
"showarrow": false,
|
||
"text": "Prediction Distributions",
|
||
"x": 0.5,
|
||
"xanchor": "center",
|
||
"xref": "paper",
|
||
"y": 0.375,
|
||
"yanchor": "bottom",
|
||
"yref": "paper"
|
||
}
|
||
],
|
||
"barmode": "overlay",
|
||
"height": 500,
|
||
"template": {
|
||
"data": {
|
||
"bar": [
|
||
{
|
||
"error_x": {
|
||
"color": "#2a3f5f"
|
||
},
|
||
"error_y": {
|
||
"color": "#2a3f5f"
|
||
},
|
||
"marker": {
|
||
"line": {
|
||
"color": "#E5ECF6",
|
||
"width": 0.5
|
||
},
|
||
"pattern": {
|
||
"fillmode": "overlay",
|
||
"size": 10,
|
||
"solidity": 0.2
|
||
}
|
||
},
|
||
"type": "bar"
|
||
}
|
||
],
|
||
"barpolar": [
|
||
{
|
||
"marker": {
|
||
"line": {
|
||
"color": "#E5ECF6",
|
||
"width": 0.5
|
||
},
|
||
"pattern": {
|
||
"fillmode": "overlay",
|
||
"size": 10,
|
||
"solidity": 0.2
|
||
}
|
||
},
|
||
"type": "barpolar"
|
||
}
|
||
],
|
||
"carpet": [
|
||
{
|
||
"aaxis": {
|
||
"endlinecolor": "#2a3f5f",
|
||
"gridcolor": "white",
|
||
"linecolor": "white",
|
||
"minorgridcolor": "white",
|
||
"startlinecolor": "#2a3f5f"
|
||
},
|
||
"baxis": {
|
||
"endlinecolor": "#2a3f5f",
|
||
"gridcolor": "white",
|
||
"linecolor": "white",
|
||
"minorgridcolor": "white",
|
||
"startlinecolor": "#2a3f5f"
|
||
},
|
||
"type": "carpet"
|
||
}
|
||
],
|
||
"choropleth": [
|
||
{
|
||
"colorbar": {
|
||
"outlinewidth": 0,
|
||
"ticks": ""
|
||
},
|
||
"type": "choropleth"
|
||
}
|
||
],
|
||
"contour": [
|
||
{
|
||
"colorbar": {
|
||
"outlinewidth": 0,
|
||
"ticks": ""
|
||
},
|
||
"colorscale": [
|
||
[
|
||
0.0,
|
||
"#0d0887"
|
||
],
|
||
[
|
||
0.1111111111111111,
|
||
"#46039f"
|
||
],
|
||
[
|
||
0.2222222222222222,
|
||
"#7201a8"
|
||
],
|
||
[
|
||
0.3333333333333333,
|
||
"#9c179e"
|
||
],
|
||
[
|
||
0.4444444444444444,
|
||
"#bd3786"
|
||
],
|
||
[
|
||
0.5555555555555556,
|
||
"#d8576b"
|
||
],
|
||
[
|
||
0.6666666666666666,
|
||
"#ed7953"
|
||
],
|
||
[
|
||
0.7777777777777778,
|
||
"#fb9f3a"
|
||
],
|
||
[
|
||
0.8888888888888888,
|
||
"#fdca26"
|
||
],
|
||
[
|
||
1.0,
|
||
"#f0f921"
|
||
]
|
||
],
|
||
"type": "contour"
|
||
}
|
||
],
|
||
"contourcarpet": [
|
||
{
|
||
"colorbar": {
|
||
"outlinewidth": 0,
|
||
"ticks": ""
|
||
},
|
||
"type": "contourcarpet"
|
||
}
|
||
],
|
||
"heatmap": [
|
||
{
|
||
"colorbar": {
|
||
"outlinewidth": 0,
|
||
"ticks": ""
|
||
},
|
||
"colorscale": [
|
||
[
|
||
0.0,
|
||
"#0d0887"
|
||
],
|
||
[
|
||
0.1111111111111111,
|
||
"#46039f"
|
||
],
|
||
[
|
||
0.2222222222222222,
|
||
"#7201a8"
|
||
],
|
||
[
|
||
0.3333333333333333,
|
||
"#9c179e"
|
||
],
|
||
[
|
||
0.4444444444444444,
|
||
"#bd3786"
|
||
],
|
||
[
|
||
0.5555555555555556,
|
||
"#d8576b"
|
||
],
|
||
[
|
||
0.6666666666666666,
|
||
"#ed7953"
|
||
],
|
||
[
|
||
0.7777777777777778,
|
||
"#fb9f3a"
|
||
],
|
||
[
|
||
0.8888888888888888,
|
||
"#fdca26"
|
||
],
|
||
[
|
||
1.0,
|
||
"#f0f921"
|
||
]
|
||
],
|
||
"type": "heatmap"
|
||
}
|
||
],
|
||
"histogram": [
|
||
{
|
||
"marker": {
|
||
"pattern": {
|
||
"fillmode": "overlay",
|
||
"size": 10,
|
||
"solidity": 0.2
|
||
}
|
||
},
|
||
"type": "histogram"
|
||
}
|
||
],
|
||
"histogram2d": [
|
||
{
|
||
"colorbar": {
|
||
"outlinewidth": 0,
|
||
"ticks": ""
|
||
},
|
||
"colorscale": [
|
||
[
|
||
0.0,
|
||
"#0d0887"
|
||
],
|
||
[
|
||
0.1111111111111111,
|
||
"#46039f"
|
||
],
|
||
[
|
||
0.2222222222222222,
|
||
"#7201a8"
|
||
],
|
||
[
|
||
0.3333333333333333,
|
||
"#9c179e"
|
||
],
|
||
[
|
||
0.4444444444444444,
|
||
"#bd3786"
|
||
],
|
||
[
|
||
0.5555555555555556,
|
||
"#d8576b"
|
||
],
|
||
[
|
||
0.6666666666666666,
|
||
"#ed7953"
|
||
],
|
||
[
|
||
0.7777777777777778,
|
||
"#fb9f3a"
|
||
],
|
||
[
|
||
0.8888888888888888,
|
||
"#fdca26"
|
||
],
|
||
[
|
||
1.0,
|
||
"#f0f921"
|
||
]
|
||
],
|
||
"type": "histogram2d"
|
||
}
|
||
],
|
||
"histogram2dcontour": [
|
||
{
|
||
"colorbar": {
|
||
"outlinewidth": 0,
|
||
"ticks": ""
|
||
},
|
||
"colorscale": [
|
||
[
|
||
0.0,
|
||
"#0d0887"
|
||
],
|
||
[
|
||
0.1111111111111111,
|
||
"#46039f"
|
||
],
|
||
[
|
||
0.2222222222222222,
|
||
"#7201a8"
|
||
],
|
||
[
|
||
0.3333333333333333,
|
||
"#9c179e"
|
||
],
|
||
[
|
||
0.4444444444444444,
|
||
"#bd3786"
|
||
],
|
||
[
|
||
0.5555555555555556,
|
||
"#d8576b"
|
||
],
|
||
[
|
||
0.6666666666666666,
|
||
"#ed7953"
|
||
],
|
||
[
|
||
0.7777777777777778,
|
||
"#fb9f3a"
|
||
],
|
||
[
|
||
0.8888888888888888,
|
||
"#fdca26"
|
||
],
|
||
[
|
||
1.0,
|
||
"#f0f921"
|
||
]
|
||
],
|
||
"type": "histogram2dcontour"
|
||
}
|
||
],
|
||
"mesh3d": [
|
||
{
|
||
"colorbar": {
|
||
"outlinewidth": 0,
|
||
"ticks": ""
|
||
},
|
||
"type": "mesh3d"
|
||
}
|
||
],
|
||
"parcoords": [
|
||
{
|
||
"line": {
|
||
"colorbar": {
|
||
"outlinewidth": 0,
|
||
"ticks": ""
|
||
}
|
||
},
|
||
"type": "parcoords"
|
||
}
|
||
],
|
||
"pie": [
|
||
{
|
||
"automargin": true,
|
||
"type": "pie"
|
||
}
|
||
],
|
||
"scatter": [
|
||
{
|
||
"fillpattern": {
|
||
"fillmode": "overlay",
|
||
"size": 10,
|
||
"solidity": 0.2
|
||
},
|
||
"type": "scatter"
|
||
}
|
||
],
|
||
"scatter3d": [
|
||
{
|
||
"line": {
|
||
"colorbar": {
|
||
"outlinewidth": 0,
|
||
"ticks": ""
|
||
}
|
||
},
|
||
"marker": {
|
||
"colorbar": {
|
||
"outlinewidth": 0,
|
||
"ticks": ""
|
||
}
|
||
},
|
||
"type": "scatter3d"
|
||
}
|
||
],
|
||
"scattercarpet": [
|
||
{
|
||
"marker": {
|
||
"colorbar": {
|
||
"outlinewidth": 0,
|
||
"ticks": ""
|
||
}
|
||
},
|
||
"type": "scattercarpet"
|
||
}
|
||
],
|
||
"scattergeo": [
|
||
{
|
||
"marker": {
|
||
"colorbar": {
|
||
"outlinewidth": 0,
|
||
"ticks": ""
|
||
}
|
||
},
|
||
"type": "scattergeo"
|
||
}
|
||
],
|
||
"scattergl": [
|
||
{
|
||
"marker": {
|
||
"colorbar": {
|
||
"outlinewidth": 0,
|
||
"ticks": ""
|
||
}
|
||
},
|
||
"type": "scattergl"
|
||
}
|
||
],
|
||
"scattermap": [
|
||
{
|
||
"marker": {
|
||
"colorbar": {
|
||
"outlinewidth": 0,
|
||
"ticks": ""
|
||
}
|
||
},
|
||
"type": "scattermap"
|
||
}
|
||
],
|
||
"scattermapbox": [
|
||
{
|
||
"marker": {
|
||
"colorbar": {
|
||
"outlinewidth": 0,
|
||
"ticks": ""
|
||
}
|
||
},
|
||
"type": "scattermapbox"
|
||
}
|
||
],
|
||
"scatterpolar": [
|
||
{
|
||
"marker": {
|
||
"colorbar": {
|
||
"outlinewidth": 0,
|
||
"ticks": ""
|
||
}
|
||
},
|
||
"type": "scatterpolar"
|
||
}
|
||
],
|
||
"scatterpolargl": [
|
||
{
|
||
"marker": {
|
||
"colorbar": {
|
||
"outlinewidth": 0,
|
||
"ticks": ""
|
||
}
|
||
},
|
||
"type": "scatterpolargl"
|
||
}
|
||
],
|
||
"scatterternary": [
|
||
{
|
||
"marker": {
|
||
"colorbar": {
|
||
"outlinewidth": 0,
|
||
"ticks": ""
|
||
}
|
||
},
|
||
"type": "scatterternary"
|
||
}
|
||
],
|
||
"surface": [
|
||
{
|
||
"colorbar": {
|
||
"outlinewidth": 0,
|
||
"ticks": ""
|
||
},
|
||
"colorscale": [
|
||
[
|
||
0.0,
|
||
"#0d0887"
|
||
],
|
||
[
|
||
0.1111111111111111,
|
||
"#46039f"
|
||
],
|
||
[
|
||
0.2222222222222222,
|
||
"#7201a8"
|
||
],
|
||
[
|
||
0.3333333333333333,
|
||
"#9c179e"
|
||
],
|
||
[
|
||
0.4444444444444444,
|
||
"#bd3786"
|
||
],
|
||
[
|
||
0.5555555555555556,
|
||
"#d8576b"
|
||
],
|
||
[
|
||
0.6666666666666666,
|
||
"#ed7953"
|
||
],
|
||
[
|
||
0.7777777777777778,
|
||
"#fb9f3a"
|
||
],
|
||
[
|
||
0.8888888888888888,
|
||
"#fdca26"
|
||
],
|
||
[
|
||
1.0,
|
||
"#f0f921"
|
||
]
|
||
],
|
||
"type": "surface"
|
||
}
|
||
],
|
||
"table": [
|
||
{
|
||
"cells": {
|
||
"fill": {
|
||
"color": "#EBF0F8"
|
||
},
|
||
"line": {
|
||
"color": "white"
|
||
}
|
||
},
|
||
"header": {
|
||
"fill": {
|
||
"color": "#C8D4E3"
|
||
},
|
||
"line": {
|
||
"color": "white"
|
||
}
|
||
},
|
||
"type": "table"
|
||
}
|
||
]
|
||
},
|
||
"layout": {
|
||
"annotationdefaults": {
|
||
"arrowcolor": "#2a3f5f",
|
||
"arrowhead": 0,
|
||
"arrowwidth": 1
|
||
},
|
||
"autotypenumbers": "strict",
|
||
"coloraxis": {
|
||
"colorbar": {
|
||
"outlinewidth": 0,
|
||
"ticks": ""
|
||
}
|
||
},
|
||
"colorscale": {
|
||
"diverging": [
|
||
[
|
||
0,
|
||
"#8e0152"
|
||
],
|
||
[
|
||
0.1,
|
||
"#c51b7d"
|
||
],
|
||
[
|
||
0.2,
|
||
"#de77ae"
|
||
],
|
||
[
|
||
0.3,
|
||
"#f1b6da"
|
||
],
|
||
[
|
||
0.4,
|
||
"#fde0ef"
|
||
],
|
||
[
|
||
0.5,
|
||
"#f7f7f7"
|
||
],
|
||
[
|
||
0.6,
|
||
"#e6f5d0"
|
||
],
|
||
[
|
||
0.7,
|
||
"#b8e186"
|
||
],
|
||
[
|
||
0.8,
|
||
"#7fbc41"
|
||
],
|
||
[
|
||
0.9,
|
||
"#4d9221"
|
||
],
|
||
[
|
||
1,
|
||
"#276419"
|
||
]
|
||
],
|
||
"sequential": [
|
||
[
|
||
0.0,
|
||
"#0d0887"
|
||
],
|
||
[
|
||
0.1111111111111111,
|
||
"#46039f"
|
||
],
|
||
[
|
||
0.2222222222222222,
|
||
"#7201a8"
|
||
],
|
||
[
|
||
0.3333333333333333,
|
||
"#9c179e"
|
||
],
|
||
[
|
||
0.4444444444444444,
|
||
"#bd3786"
|
||
],
|
||
[
|
||
0.5555555555555556,
|
||
"#d8576b"
|
||
],
|
||
[
|
||
0.6666666666666666,
|
||
"#ed7953"
|
||
],
|
||
[
|
||
0.7777777777777778,
|
||
"#fb9f3a"
|
||
],
|
||
[
|
||
0.8888888888888888,
|
||
"#fdca26"
|
||
],
|
||
[
|
||
1.0,
|
||
"#f0f921"
|
||
]
|
||
],
|
||
"sequentialminus": [
|
||
[
|
||
0.0,
|
||
"#0d0887"
|
||
],
|
||
[
|
||
0.1111111111111111,
|
||
"#46039f"
|
||
],
|
||
[
|
||
0.2222222222222222,
|
||
"#7201a8"
|
||
],
|
||
[
|
||
0.3333333333333333,
|
||
"#9c179e"
|
||
],
|
||
[
|
||
0.4444444444444444,
|
||
"#bd3786"
|
||
],
|
||
[
|
||
0.5555555555555556,
|
||
"#d8576b"
|
||
],
|
||
[
|
||
0.6666666666666666,
|
||
"#ed7953"
|
||
],
|
||
[
|
||
0.7777777777777778,
|
||
"#fb9f3a"
|
||
],
|
||
[
|
||
0.8888888888888888,
|
||
"#fdca26"
|
||
],
|
||
[
|
||
1.0,
|
||
"#f0f921"
|
||
]
|
||
]
|
||
},
|
||
"colorway": [
|
||
"#636efa",
|
||
"#EF553B",
|
||
"#00cc96",
|
||
"#ab63fa",
|
||
"#FFA15A",
|
||
"#19d3f3",
|
||
"#FF6692",
|
||
"#B6E880",
|
||
"#FF97FF",
|
||
"#FECB52"
|
||
],
|
||
"font": {
|
||
"color": "#2a3f5f"
|
||
},
|
||
"geo": {
|
||
"bgcolor": "white",
|
||
"lakecolor": "white",
|
||
"landcolor": "#E5ECF6",
|
||
"showlakes": true,
|
||
"showland": true,
|
||
"subunitcolor": "white"
|
||
},
|
||
"hoverlabel": {
|
||
"align": "left"
|
||
},
|
||
"hovermode": "closest",
|
||
"mapbox": {
|
||
"style": "light"
|
||
},
|
||
"paper_bgcolor": "white",
|
||
"plot_bgcolor": "#E5ECF6",
|
||
"polar": {
|
||
"angularaxis": {
|
||
"gridcolor": "white",
|
||
"linecolor": "white",
|
||
"ticks": ""
|
||
},
|
||
"bgcolor": "#E5ECF6",
|
||
"radialaxis": {
|
||
"gridcolor": "white",
|
||
"linecolor": "white",
|
||
"ticks": ""
|
||
}
|
||
},
|
||
"scene": {
|
||
"xaxis": {
|
||
"backgroundcolor": "#E5ECF6",
|
||
"gridcolor": "white",
|
||
"gridwidth": 2,
|
||
"linecolor": "white",
|
||
"showbackground": true,
|
||
"ticks": "",
|
||
"zerolinecolor": "white"
|
||
},
|
||
"yaxis": {
|
||
"backgroundcolor": "#E5ECF6",
|
||
"gridcolor": "white",
|
||
"gridwidth": 2,
|
||
"linecolor": "white",
|
||
"showbackground": true,
|
||
"ticks": "",
|
||
"zerolinecolor": "white"
|
||
},
|
||
"zaxis": {
|
||
"backgroundcolor": "#E5ECF6",
|
||
"gridcolor": "white",
|
||
"gridwidth": 2,
|
||
"linecolor": "white",
|
||
"showbackground": true,
|
||
"ticks": "",
|
||
"zerolinecolor": "white"
|
||
}
|
||
},
|
||
"shapedefaults": {
|
||
"line": {
|
||
"color": "#2a3f5f"
|
||
}
|
||
},
|
||
"ternary": {
|
||
"aaxis": {
|
||
"gridcolor": "white",
|
||
"linecolor": "white",
|
||
"ticks": ""
|
||
},
|
||
"baxis": {
|
||
"gridcolor": "white",
|
||
"linecolor": "white",
|
||
"ticks": ""
|
||
},
|
||
"bgcolor": "#E5ECF6",
|
||
"caxis": {
|
||
"gridcolor": "white",
|
||
"linecolor": "white",
|
||
"ticks": ""
|
||
}
|
||
},
|
||
"title": {
|
||
"x": 0.05
|
||
},
|
||
"xaxis": {
|
||
"automargin": true,
|
||
"gridcolor": "white",
|
||
"linecolor": "white",
|
||
"ticks": "",
|
||
"title": {
|
||
"standoff": 15
|
||
},
|
||
"zerolinecolor": "white",
|
||
"zerolinewidth": 2
|
||
},
|
||
"yaxis": {
|
||
"automargin": true,
|
||
"gridcolor": "white",
|
||
"linecolor": "white",
|
||
"ticks": "",
|
||
"title": {
|
||
"standoff": 15
|
||
},
|
||
"zerolinecolor": "white",
|
||
"zerolinewidth": 2
|
||
}
|
||
}
|
||
},
|
||
"title": {
|
||
"text": "ARIMA Baseline: Predictions vs Actual"
|
||
},
|
||
"xaxis": {
|
||
"anchor": "y",
|
||
"domain": [
|
||
0.0,
|
||
1.0
|
||
]
|
||
},
|
||
"xaxis2": {
|
||
"anchor": "y2",
|
||
"domain": [
|
||
0.0,
|
||
1.0
|
||
]
|
||
},
|
||
"yaxis": {
|
||
"anchor": "x",
|
||
"domain": [
|
||
0.625,
|
||
1.0
|
||
]
|
||
},
|
||
"yaxis2": {
|
||
"anchor": "x2",
|
||
"domain": [
|
||
0.0,
|
||
0.375
|
||
]
|
||
}
|
||
}
|
||
},
|
||
"image/png": "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"
|
||
},
|
||
"metadata": {},
|
||
"output_type": "display_data"
|
||
}
|
||
],
|
||
"source": [
|
||
"# Histograms\n",
|
||
"fig.add_trace(\n",
|
||
" go.Histogram(x=test[\"returns\"].values, name=\"Actual\", opacity=0.5, nbinsx=50),\n",
|
||
" row=2,\n",
|
||
" col=1,\n",
|
||
")\n",
|
||
"fig.add_trace(\n",
|
||
" go.Histogram(x=results[\"AR(1)\"][\"predictions\"], name=\"AR(1) Pred\", opacity=0.5, nbinsx=50),\n",
|
||
" row=2,\n",
|
||
" col=1,\n",
|
||
")\n",
|
||
"\n",
|
||
"fig.update_layout(height=500, title_text=\"ARIMA Baseline: Predictions vs Actual\", barmode=\"overlay\")\n",
|
||
"fig.show()"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "02357d6c",
|
||
"metadata": {
|
||
"papermill": {
|
||
"duration": 0.004443,
|
||
"end_time": "2026-06-13T03:35:41.883970+00:00",
|
||
"exception": false,
|
||
"start_time": "2026-06-13T03:35:41.879527+00:00",
|
||
"status": "completed"
|
||
}
|
||
},
|
||
"source": [
|
||
"**Reading the table.** AR(1) on this train/test split lands a small positive\n",
|
||
"IC (≈ +0.07), which is the most that any single-asset ARIMA model produces\n",
|
||
"here. The AIC-best ARIMA — `ARIMA(3, 0, 2)` — flips sign and lands a small\n",
|
||
"*negative* IC; AR(5) is also negative. This is a useful illustration of two\n",
|
||
"things at once: longer AR/MA orders overfit in-sample at the cost of OOS\n",
|
||
"rank correlation, and the AIC-best model is not the IC-best model. The\n",
|
||
"Naive (0) and Mean baselines have constant predictions, so their IC is\n",
|
||
"undefined (NaN) — they are RMSE benchmarks, not rank-correlation\n",
|
||
"benchmarks.\n",
|
||
"\n",
|
||
"**Why ARIMA struggles with returns on this dataset**:\n",
|
||
"1. **Low autocorrelation**: the ACF of daily SPY returns is statistically\n",
|
||
" indistinguishable from zero at most lags, leaving little linear structure\n",
|
||
" for an ARIMA mean model to exploit\n",
|
||
"2. **Heteroskedasticity**: variance changes over time, so a constant-variance\n",
|
||
" mean model is misspecified (GARCH addresses this in `08_garch_volatility`)\n",
|
||
"\n",
|
||
"**When ARIMA works**:\n",
|
||
"- Trending series (moving averages, cumulative metrics)\n",
|
||
"- Seasonal patterns (explicit or multiplicative)\n",
|
||
"- Non-financial time series (weather, sales, etc.)"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "8b0dc7b1",
|
||
"metadata": {
|
||
"papermill": {
|
||
"duration": 0.004432,
|
||
"end_time": "2026-06-13T03:35:41.892808+00:00",
|
||
"exception": false,
|
||
"start_time": "2026-06-13T03:35:41.888376+00:00",
|
||
"status": "completed"
|
||
}
|
||
},
|
||
"source": [
|
||
"## 13. Multi-Symbol ARIMA Forecasting\n",
|
||
"\n",
|
||
"Process all symbols in parallel and collect predictions for downstream chapters."
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 18,
|
||
"id": "807eac77",
|
||
"metadata": {
|
||
"execution": {
|
||
"iopub.execute_input": "2026-06-13T03:35:41.902427Z",
|
||
"iopub.status.busy": "2026-06-13T03:35:41.902327Z",
|
||
"iopub.status.idle": "2026-06-13T03:35:55.032517Z",
|
||
"shell.execute_reply": "2026-06-13T03:35:55.031900Z"
|
||
},
|
||
"papermill": {
|
||
"duration": 13.135677,
|
||
"end_time": "2026-06-13T03:35:55.032859+00:00",
|
||
"exception": false,
|
||
"start_time": "2026-06-13T03:35:41.897182+00:00",
|
||
"status": "completed"
|
||
}
|
||
},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"\n",
|
||
"============================================================\n",
|
||
"MULTI-SYMBOL ARIMA FORECASTING\n",
|
||
"============================================================\n",
|
||
"Processing 100 symbols...\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stderr",
|
||
"output_type": "stream",
|
||
"text": [
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stderr",
|
||
"output_type": "stream",
|
||
"text": [
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:837: ValueWarning: No supported index is available. Prediction results will be given with an integer index beginning at `start`.\n",
|
||
" return get_prediction_index(\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:837: ValueWarning: No supported index is available. Prediction results will be given with an integer index beginning at `start`.\n",
|
||
" return get_prediction_index(\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stderr",
|
||
"output_type": "stream",
|
||
"text": [
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:837: ValueWarning: No supported index is available. Prediction results will be given with an integer index beginning at `start`.\n",
|
||
" return get_prediction_index(\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/base/model.py:607: ConvergenceWarning: Maximum Likelihood optimization failed to converge. Check mle_retvals\n",
|
||
" warnings.warn(\"Maximum Likelihood optimization failed to \"\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:837: ValueWarning: No supported index is available. Prediction results will be given with an integer index beginning at `start`.\n",
|
||
" return get_prediction_index(\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stderr",
|
||
"output_type": "stream",
|
||
"text": [
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:837: ValueWarning: No supported index is available. Prediction results will be given with an integer index beginning at `start`.\n",
|
||
" return get_prediction_index(\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:837: ValueWarning: No supported index is available. Prediction results will be given with an integer index beginning at `start`.\n",
|
||
" return get_prediction_index(\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/base/model.py:607: ConvergenceWarning: Maximum Likelihood optimization failed to converge. Check mle_retvals\n",
|
||
" warnings.warn(\"Maximum Likelihood optimization failed to \"\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stderr",
|
||
"output_type": "stream",
|
||
"text": [
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:837: ValueWarning: No supported index is available. Prediction results will be given with an integer index beginning at `start`.\n",
|
||
" return get_prediction_index(\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:837: ValueWarning: No supported index is available. Prediction results will be given with an integer index beginning at `start`.\n",
|
||
" return get_prediction_index(\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stderr",
|
||
"output_type": "stream",
|
||
"text": [
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:837: ValueWarning: No supported index is available. Prediction results will be given with an integer index beginning at `start`.\n",
|
||
" return get_prediction_index(\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:837: ValueWarning: No supported index is available. Prediction results will be given with an integer index beginning at `start`.\n",
|
||
" return get_prediction_index(\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stderr",
|
||
"output_type": "stream",
|
||
"text": [
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:837: ValueWarning: No supported index is available. Prediction results will be given with an integer index beginning at `start`.\n",
|
||
" return get_prediction_index(\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:837: ValueWarning: No supported index is available. Prediction results will be given with an integer index beginning at `start`.\n",
|
||
" return get_prediction_index(\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stderr",
|
||
"output_type": "stream",
|
||
"text": [
|
||
".venv/lib/python3.14/site-packages/statsmodels/base/model.py:607: ConvergenceWarning: Maximum Likelihood optimization failed to converge. Check mle_retvals\n",
|
||
" warnings.warn(\"Maximum Likelihood optimization failed to \"\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:837: ValueWarning: No supported index is available. Prediction results will be given with an integer index beginning at `start`.\n",
|
||
" return get_prediction_index(\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stderr",
|
||
"output_type": "stream",
|
||
"text": [
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:837: ValueWarning: No supported index is available. Prediction results will be given with an integer index beginning at `start`.\n",
|
||
" return get_prediction_index(\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:837: ValueWarning: No supported index is available. Prediction results will be given with an integer index beginning at `start`.\n",
|
||
" return get_prediction_index(\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stderr",
|
||
"output_type": "stream",
|
||
"text": [
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:837: ValueWarning: No supported index is available. Prediction results will be given with an integer index beginning at `start`.\n",
|
||
" return get_prediction_index(\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:837: ValueWarning: No supported index is available. Prediction results will be given with an integer index beginning at `start`.\n",
|
||
" return get_prediction_index(\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stderr",
|
||
"output_type": "stream",
|
||
"text": [
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:837: ValueWarning: No supported index is available. Prediction results will be given with an integer index beginning at `start`.\n",
|
||
" return get_prediction_index(\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:837: ValueWarning: No supported index is available. Prediction results will be given with an integer index beginning at `start`.\n",
|
||
" return get_prediction_index(\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stderr",
|
||
"output_type": "stream",
|
||
"text": [
|
||
".venv/lib/python3.14/site-packages/statsmodels/base/model.py:607: ConvergenceWarning: Maximum Likelihood optimization failed to converge. Check mle_retvals\n",
|
||
" warnings.warn(\"Maximum Likelihood optimization failed to \"\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:837: ValueWarning: No supported index is available. Prediction results will be given with an integer index beginning at `start`.\n",
|
||
" return get_prediction_index(\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:837: ValueWarning: No supported index is available. Prediction results will be given with an integer index beginning at `start`.\n",
|
||
" return get_prediction_index(\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:837: ValueWarning: No supported index is available. Prediction results will be given with an integer index beginning at `start`.\n",
|
||
" return get_prediction_index(\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stderr",
|
||
"output_type": "stream",
|
||
"text": [
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:837: ValueWarning: No supported index is available. Prediction results will be given with an integer index beginning at `start`.\n",
|
||
" return get_prediction_index(\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stderr",
|
||
"output_type": "stream",
|
||
"text": [
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:837: ValueWarning: No supported index is available. Prediction results will be given with an integer index beginning at `start`.\n",
|
||
" return get_prediction_index(\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:837: ValueWarning: No supported index is available. Prediction results will be given with an integer index beginning at `start`.\n",
|
||
" return get_prediction_index(\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stderr",
|
||
"output_type": "stream",
|
||
"text": [
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:837: ValueWarning: No supported index is available. Prediction results will be given with an integer index beginning at `start`.\n",
|
||
" return get_prediction_index(\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:837: ValueWarning: No supported index is available. Prediction results will be given with an integer index beginning at `start`.\n",
|
||
" return get_prediction_index(\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:837: ValueWarning: No supported index is available. Prediction results will be given with an integer index beginning at `start`.\n",
|
||
" return get_prediction_index(\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stderr",
|
||
"output_type": "stream",
|
||
"text": [
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:837: ValueWarning: No supported index is available. Prediction results will be given with an integer index beginning at `start`.\n",
|
||
" return get_prediction_index(\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:837: ValueWarning: No supported index is available. Prediction results will be given with an integer index beginning at `start`.\n",
|
||
" return get_prediction_index(\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/base/model.py:607: ConvergenceWarning: Maximum Likelihood optimization failed to converge. Check mle_retvals\n",
|
||
" warnings.warn(\"Maximum Likelihood optimization failed to \"\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:837: ValueWarning: No supported index is available. Prediction results will be given with an integer index beginning at `start`.\n",
|
||
" return get_prediction_index(\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stderr",
|
||
"output_type": "stream",
|
||
"text": [
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:837: ValueWarning: No supported index is available. Prediction results will be given with an integer index beginning at `start`.\n",
|
||
" return get_prediction_index(\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/base/model.py:607: ConvergenceWarning: Maximum Likelihood optimization failed to converge. Check mle_retvals\n",
|
||
" warnings.warn(\"Maximum Likelihood optimization failed to \"\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stderr",
|
||
"output_type": "stream",
|
||
"text": [
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:837: ValueWarning: No supported index is available. Prediction results will be given with an integer index beginning at `start`.\n",
|
||
" return get_prediction_index(\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:837: ValueWarning: No supported index is available. Prediction results will be given with an integer index beginning at `start`.\n",
|
||
" return get_prediction_index(\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:837: ValueWarning: No supported index is available. Prediction results will be given with an integer index beginning at `start`.\n",
|
||
" return get_prediction_index(\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stderr",
|
||
"output_type": "stream",
|
||
"text": [
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:837: ValueWarning: No supported index is available. Prediction results will be given with an integer index beginning at `start`.\n",
|
||
" return get_prediction_index(\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/base/model.py:607: ConvergenceWarning: Maximum Likelihood optimization failed to converge. Check mle_retvals\n",
|
||
" warnings.warn(\"Maximum Likelihood optimization failed to \"\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:837: ValueWarning: No supported index is available. Prediction results will be given with an integer index beginning at `start`.\n",
|
||
" return get_prediction_index(\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stderr",
|
||
"output_type": "stream",
|
||
"text": [
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:837: ValueWarning: No supported index is available. Prediction results will be given with an integer index beginning at `start`.\n",
|
||
" return get_prediction_index(\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:837: ValueWarning: No supported index is available. Prediction results will be given with an integer index beginning at `start`.\n",
|
||
" return get_prediction_index(\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/base/model.py:607: ConvergenceWarning: Maximum Likelihood optimization failed to converge. Check mle_retvals\n",
|
||
" warnings.warn(\"Maximum Likelihood optimization failed to \"\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stderr",
|
||
"output_type": "stream",
|
||
"text": [
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:837: ValueWarning: No supported index is available. Prediction results will be given with an integer index beginning at `start`.\n",
|
||
" return get_prediction_index(\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stderr",
|
||
"output_type": "stream",
|
||
"text": [
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:837: ValueWarning: No supported index is available. Prediction results will be given with an integer index beginning at `start`.\n",
|
||
" return get_prediction_index(\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:837: ValueWarning: No supported index is available. Prediction results will be given with an integer index beginning at `start`.\n",
|
||
" return get_prediction_index(\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stderr",
|
||
"output_type": "stream",
|
||
"text": [
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:837: ValueWarning: No supported index is available. Prediction results will be given with an integer index beginning at `start`.\n",
|
||
" return get_prediction_index(\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:837: ValueWarning: No supported index is available. Prediction results will be given with an integer index beginning at `start`.\n",
|
||
" return get_prediction_index(\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stderr",
|
||
"output_type": "stream",
|
||
"text": [
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:837: ValueWarning: No supported index is available. Prediction results will be given with an integer index beginning at `start`.\n",
|
||
" return get_prediction_index(\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:837: ValueWarning: No supported index is available. Prediction results will be given with an integer index beginning at `start`.\n",
|
||
" return get_prediction_index(\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:837: ValueWarning: No supported index is available. Prediction results will be given with an integer index beginning at `start`.\n",
|
||
" return get_prediction_index(\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stderr",
|
||
"output_type": "stream",
|
||
"text": [
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/base/model.py:607: ConvergenceWarning: Maximum Likelihood optimization failed to converge. Check mle_retvals\n",
|
||
" warnings.warn(\"Maximum Likelihood optimization failed to \"\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:837: ValueWarning: No supported index is available. Prediction results will be given with an integer index beginning at `start`.\n",
|
||
" return get_prediction_index(\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stderr",
|
||
"output_type": "stream",
|
||
"text": [
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:837: ValueWarning: No supported index is available. Prediction results will be given with an integer index beginning at `start`.\n",
|
||
" return get_prediction_index(\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:837: ValueWarning: No supported index is available. Prediction results will be given with an integer index beginning at `start`.\n",
|
||
" return get_prediction_index(\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stderr",
|
||
"output_type": "stream",
|
||
"text": [
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:837: ValueWarning: No supported index is available. Prediction results will be given with an integer index beginning at `start`.\n",
|
||
" return get_prediction_index(\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:837: ValueWarning: No supported index is available. Prediction results will be given with an integer index beginning at `start`.\n",
|
||
" return get_prediction_index(\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:837: ValueWarning: No supported index is available. Prediction results will be given with an integer index beginning at `start`.\n",
|
||
" return get_prediction_index(\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stderr",
|
||
"output_type": "stream",
|
||
"text": [
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:837: ValueWarning: No supported index is available. Prediction results will be given with an integer index beginning at `start`.\n",
|
||
" return get_prediction_index(\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:837: ValueWarning: No supported index is available. Prediction results will be given with an integer index beginning at `start`.\n",
|
||
" return get_prediction_index(\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stderr",
|
||
"output_type": "stream",
|
||
"text": [
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:837: ValueWarning: No supported index is available. Prediction results will be given with an integer index beginning at `start`.\n",
|
||
" return get_prediction_index(\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:837: ValueWarning: No supported index is available. Prediction results will be given with an integer index beginning at `start`.\n",
|
||
" return get_prediction_index(\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stderr",
|
||
"output_type": "stream",
|
||
"text": [
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:837: ValueWarning: No supported index is available. Prediction results will be given with an integer index beginning at `start`.\n",
|
||
" return get_prediction_index(\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:837: ValueWarning: No supported index is available. Prediction results will be given with an integer index beginning at `start`.\n",
|
||
" return get_prediction_index(\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stderr",
|
||
"output_type": "stream",
|
||
"text": [
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:837: ValueWarning: No supported index is available. Prediction results will be given with an integer index beginning at `start`.\n",
|
||
" return get_prediction_index(\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/base/model.py:607: ConvergenceWarning: Maximum Likelihood optimization failed to converge. Check mle_retvals\n",
|
||
" warnings.warn(\"Maximum Likelihood optimization failed to \"\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:837: ValueWarning: No supported index is available. Prediction results will be given with an integer index beginning at `start`.\n",
|
||
" return get_prediction_index(\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stderr",
|
||
"output_type": "stream",
|
||
"text": [
|
||
".venv/lib/python3.14/site-packages/statsmodels/base/model.py:607: ConvergenceWarning: Maximum Likelihood optimization failed to converge. Check mle_retvals\n",
|
||
" warnings.warn(\"Maximum Likelihood optimization failed to \"\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:837: ValueWarning: No supported index is available. Prediction results will be given with an integer index beginning at `start`.\n",
|
||
" return get_prediction_index(\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/base/model.py:607: ConvergenceWarning: Maximum Likelihood optimization failed to converge. Check mle_retvals\n",
|
||
" warnings.warn(\"Maximum Likelihood optimization failed to \"\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:837: ValueWarning: No supported index is available. Prediction results will be given with an integer index beginning at `start`.\n",
|
||
" return get_prediction_index(\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stderr",
|
||
"output_type": "stream",
|
||
"text": [
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:837: ValueWarning: No supported index is available. Prediction results will be given with an integer index beginning at `start`.\n",
|
||
" return get_prediction_index(\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stderr",
|
||
"output_type": "stream",
|
||
"text": [
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:837: ValueWarning: No supported index is available. Prediction results will be given with an integer index beginning at `start`.\n",
|
||
" return get_prediction_index(\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:837: ValueWarning: No supported index is available. Prediction results will be given with an integer index beginning at `start`.\n",
|
||
" return get_prediction_index(\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/base/model.py:607: ConvergenceWarning: Maximum Likelihood optimization failed to converge. Check mle_retvals\n",
|
||
" warnings.warn(\"Maximum Likelihood optimization failed to \"\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stderr",
|
||
"output_type": "stream",
|
||
"text": [
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:837: ValueWarning: No supported index is available. Prediction results will be given with an integer index beginning at `start`.\n",
|
||
" return get_prediction_index(\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:837: ValueWarning: No supported index is available. Prediction results will be given with an integer index beginning at `start`.\n",
|
||
" return get_prediction_index(\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stderr",
|
||
"output_type": "stream",
|
||
"text": [
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:837: ValueWarning: No supported index is available. Prediction results will be given with an integer index beginning at `start`.\n",
|
||
" return get_prediction_index(\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stderr",
|
||
"output_type": "stream",
|
||
"text": [
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:837: ValueWarning: No supported index is available. Prediction results will be given with an integer index beginning at `start`.\n",
|
||
" return get_prediction_index(\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:837: ValueWarning: No supported index is available. Prediction results will be given with an integer index beginning at `start`.\n",
|
||
" return get_prediction_index(\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stderr",
|
||
"output_type": "stream",
|
||
"text": [
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:837: ValueWarning: No supported index is available. Prediction results will be given with an integer index beginning at `start`.\n",
|
||
" return get_prediction_index(\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:837: ValueWarning: No supported index is available. Prediction results will be given with an integer index beginning at `start`.\n",
|
||
" return get_prediction_index(\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/base/model.py:607: ConvergenceWarning: Maximum Likelihood optimization failed to converge. Check mle_retvals\n",
|
||
" warnings.warn(\"Maximum Likelihood optimization failed to \"\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stderr",
|
||
"output_type": "stream",
|
||
"text": [
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:837: ValueWarning: No supported index is available. Prediction results will be given with an integer index beginning at `start`.\n",
|
||
" return get_prediction_index(\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:837: ValueWarning: No supported index is available. Prediction results will be given with an integer index beginning at `start`.\n",
|
||
" return get_prediction_index(\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stderr",
|
||
"output_type": "stream",
|
||
"text": [
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:837: ValueWarning: No supported index is available. Prediction results will be given with an integer index beginning at `start`.\n",
|
||
" return get_prediction_index(\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:837: ValueWarning: No supported index is available. Prediction results will be given with an integer index beginning at `start`.\n",
|
||
" return get_prediction_index(\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:837: ValueWarning: No supported index is available. Prediction results will be given with an integer index beginning at `start`.\n",
|
||
" return get_prediction_index(\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stderr",
|
||
"output_type": "stream",
|
||
"text": [
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:837: ValueWarning: No supported index is available. Prediction results will be given with an integer index beginning at `start`.\n",
|
||
" return get_prediction_index(\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:837: ValueWarning: No supported index is available. Prediction results will be given with an integer index beginning at `start`.\n",
|
||
" return get_prediction_index(\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stderr",
|
||
"output_type": "stream",
|
||
"text": [
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:837: ValueWarning: No supported index is available. Prediction results will be given with an integer index beginning at `start`.\n",
|
||
" return get_prediction_index(\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:837: ValueWarning: No supported index is available. Prediction results will be given with an integer index beginning at `start`.\n",
|
||
" return get_prediction_index(\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stderr",
|
||
"output_type": "stream",
|
||
"text": [
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:837: ValueWarning: No supported index is available. Prediction results will be given with an integer index beginning at `start`.\n",
|
||
" return get_prediction_index(\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:837: ValueWarning: No supported index is available. Prediction results will be given with an integer index beginning at `start`.\n",
|
||
" return get_prediction_index(\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stderr",
|
||
"output_type": "stream",
|
||
"text": [
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:837: ValueWarning: No supported index is available. Prediction results will be given with an integer index beginning at `start`.\n",
|
||
" return get_prediction_index(\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:837: ValueWarning: No supported index is available. Prediction results will be given with an integer index beginning at `start`.\n",
|
||
" return get_prediction_index(\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stderr",
|
||
"output_type": "stream",
|
||
"text": [
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:837: ValueWarning: No supported index is available. Prediction results will be given with an integer index beginning at `start`.\n",
|
||
" return get_prediction_index(\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:837: ValueWarning: No supported index is available. Prediction results will be given with an integer index beginning at `start`.\n",
|
||
" return get_prediction_index(\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stderr",
|
||
"output_type": "stream",
|
||
"text": [
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:837: ValueWarning: No supported index is available. Prediction results will be given with an integer index beginning at `start`.\n",
|
||
" return get_prediction_index(\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:837: ValueWarning: No supported index is available. Prediction results will be given with an integer index beginning at `start`.\n",
|
||
" return get_prediction_index(\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stderr",
|
||
"output_type": "stream",
|
||
"text": [
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:837: ValueWarning: No supported index is available. Prediction results will be given with an integer index beginning at `start`.\n",
|
||
" return get_prediction_index(\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:837: ValueWarning: No supported index is available. Prediction results will be given with an integer index beginning at `start`.\n",
|
||
" return get_prediction_index(\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stderr",
|
||
"output_type": "stream",
|
||
"text": [
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:837: ValueWarning: No supported index is available. Prediction results will be given with an integer index beginning at `start`.\n",
|
||
" return get_prediction_index(\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:837: ValueWarning: No supported index is available. Prediction results will be given with an integer index beginning at `start`.\n",
|
||
" return get_prediction_index(\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:837: ValueWarning: No supported index is available. Prediction results will be given with an integer index beginning at `start`.\n",
|
||
" return get_prediction_index(\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stderr",
|
||
"output_type": "stream",
|
||
"text": [
|
||
".venv/lib/python3.14/site-packages/statsmodels/base/model.py:607: ConvergenceWarning: Maximum Likelihood optimization failed to converge. Check mle_retvals\n",
|
||
" warnings.warn(\"Maximum Likelihood optimization failed to \"\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:837: ValueWarning: No supported index is available. Prediction results will be given with an integer index beginning at `start`.\n",
|
||
" return get_prediction_index(\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:837: ValueWarning: No supported index is available. Prediction results will be given with an integer index beginning at `start`.\n",
|
||
" return get_prediction_index(\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stderr",
|
||
"output_type": "stream",
|
||
"text": [
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:837: ValueWarning: No supported index is available. Prediction results will be given with an integer index beginning at `start`.\n",
|
||
" return get_prediction_index(\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/base/model.py:607: ConvergenceWarning: Maximum Likelihood optimization failed to converge. Check mle_retvals\n",
|
||
" warnings.warn(\"Maximum Likelihood optimization failed to \"\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stderr",
|
||
"output_type": "stream",
|
||
"text": [
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:837: ValueWarning: No supported index is available. Prediction results will be given with an integer index beginning at `start`.\n",
|
||
" return get_prediction_index(\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.\n",
|
||
" self._init_dates(dates, freq)\n",
|
||
".venv/lib/python3.14/site-packages/statsmodels/tsa/base/tsa_model.py:837: ValueWarning: No supported index is available. Prediction results will be given with an integer index beginning at `start`.\n",
|
||
" return get_prediction_index(\n"
|
||
]
|
||
},
|
||
{
|
||
"data": {
|
||
"text/html": [
|
||
"<div>\n",
|
||
"<style scoped>\n",
|
||
" .dataframe tbody tr th:only-of-type {\n",
|
||
" vertical-align: middle;\n",
|
||
" }\n",
|
||
"\n",
|
||
" .dataframe tbody tr th {\n",
|
||
" vertical-align: top;\n",
|
||
" }\n",
|
||
"\n",
|
||
" .dataframe thead th {\n",
|
||
" text-align: right;\n",
|
||
" }\n",
|
||
"</style>\n",
|
||
"<table border=\"1\" class=\"dataframe\">\n",
|
||
" <thead>\n",
|
||
" <tr style=\"text-align: right;\">\n",
|
||
" <th></th>\n",
|
||
" <th>symbol</th>\n",
|
||
" <th>n_predictions</th>\n",
|
||
" <th>ic</th>\n",
|
||
" <th>status</th>\n",
|
||
" </tr>\n",
|
||
" </thead>\n",
|
||
" <tbody>\n",
|
||
" <tr>\n",
|
||
" <th>49</th>\n",
|
||
" <td>IYR</td>\n",
|
||
" <td>231</td>\n",
|
||
" <td>0.161576</td>\n",
|
||
" <td>ok</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>58</th>\n",
|
||
" <td>PPLT</td>\n",
|
||
" <td>231</td>\n",
|
||
" <td>0.149077</td>\n",
|
||
" <td>ok</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>81</th>\n",
|
||
" <td>VNQ</td>\n",
|
||
" <td>231</td>\n",
|
||
" <td>0.147381</td>\n",
|
||
" <td>ok</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>38</th>\n",
|
||
" <td>IBB</td>\n",
|
||
" <td>231</td>\n",
|
||
" <td>0.145978</td>\n",
|
||
" <td>ok</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>9</th>\n",
|
||
" <td>DVY</td>\n",
|
||
" <td>231</td>\n",
|
||
" <td>0.145924</td>\n",
|
||
" <td>ok</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>...</th>\n",
|
||
" <td>...</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>...</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>15</th>\n",
|
||
" <td>EWG</td>\n",
|
||
" <td>231</td>\n",
|
||
" <td>-0.083158</td>\n",
|
||
" <td>ok</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>21</th>\n",
|
||
" <td>EWP</td>\n",
|
||
" <td>231</td>\n",
|
||
" <td>-0.093004</td>\n",
|
||
" <td>ok</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>96</th>\n",
|
||
" <td>XLV</td>\n",
|
||
" <td>231</td>\n",
|
||
" <td>-0.107804</td>\n",
|
||
" <td>ok</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>73</th>\n",
|
||
" <td>USMV</td>\n",
|
||
" <td>231</td>\n",
|
||
" <td>-0.144508</td>\n",
|
||
" <td>ok</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>93</th>\n",
|
||
" <td>XLP</td>\n",
|
||
" <td>231</td>\n",
|
||
" <td>-0.170966</td>\n",
|
||
" <td>ok</td>\n",
|
||
" </tr>\n",
|
||
" </tbody>\n",
|
||
"</table>\n",
|
||
"<p>100 rows × 4 columns</p>\n",
|
||
"</div>"
|
||
],
|
||
"text/plain": [
|
||
" symbol n_predictions ic status\n",
|
||
"49 IYR 231 0.161576 ok\n",
|
||
"58 PPLT 231 0.149077 ok\n",
|
||
"81 VNQ 231 0.147381 ok\n",
|
||
"38 IBB 231 0.145978 ok\n",
|
||
"9 DVY 231 0.145924 ok\n",
|
||
".. ... ... ... ...\n",
|
||
"15 EWG 231 -0.083158 ok\n",
|
||
"21 EWP 231 -0.093004 ok\n",
|
||
"96 XLV 231 -0.107804 ok\n",
|
||
"73 USMV 231 -0.144508 ok\n",
|
||
"93 XLP 231 -0.170966 ok\n",
|
||
"\n",
|
||
"[100 rows x 4 columns]"
|
||
]
|
||
},
|
||
"metadata": {},
|
||
"output_type": "display_data"
|
||
},
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"Total predictions: 23,100 rows across 100 symbols. Mean IC: +0.0338, share positive: 75.0%\n"
|
||
]
|
||
}
|
||
],
|
||
"source": [
|
||
"print(\"\\n\" + \"=\" * 60)\n",
|
||
"print(\"MULTI-SYMBOL ARIMA FORECASTING\")\n",
|
||
"print(\"=\" * 60)\n",
|
||
"\n",
|
||
"\n",
|
||
"def run_arima_for_symbol(symbol: str) -> tuple[pl.DataFrame | None, dict]:\n",
|
||
" \"\"\"Run ARIMA forecasting for a single symbol.\n",
|
||
"\n",
|
||
" Returns (predictions DataFrame or None, summary dict) — summary is always\n",
|
||
" populated with the symbol and an `ic` (NaN if skipped).\n",
|
||
" \"\"\"\n",
|
||
" summary = {\"symbol\": symbol, \"n_predictions\": 0, \"ic\": float(\"nan\"), \"status\": \"ok\"}\n",
|
||
"\n",
|
||
" symbol_df = get_symbol_data(symbol)\n",
|
||
" if len(symbol_df) < 252:\n",
|
||
" summary[\"status\"] = \"insufficient_data\"\n",
|
||
" return None, summary\n",
|
||
"\n",
|
||
" test_start_dt = pd.Timestamp(TEST_START)\n",
|
||
" train_data = symbol_df[symbol_df.index < test_start_dt]\n",
|
||
" test_data = symbol_df[symbol_df.index >= test_start_dt]\n",
|
||
"\n",
|
||
" if len(train_data) < 100 or len(test_data) < 10:\n",
|
||
" summary[\"status\"] = \"insufficient_split\"\n",
|
||
" return None, summary\n",
|
||
"\n",
|
||
" try:\n",
|
||
" model = ARIMA(train_data[\"returns\"], order=(1, 0, 0))\n",
|
||
" fit = model.fit()\n",
|
||
" preds = fit.forecast(steps=len(test_data))\n",
|
||
" except (ValueError, np.linalg.LinAlgError) as exc:\n",
|
||
" summary[\"status\"] = f\"fit_failed: {type(exc).__name__}\"\n",
|
||
" return None, summary\n",
|
||
"\n",
|
||
" ic = pooled_ic(test_data[\"returns\"].values, preds.values)\n",
|
||
" summary[\"n_predictions\"] = len(test_data)\n",
|
||
" summary[\"ic\"] = ic\n",
|
||
"\n",
|
||
" pred_df = pl.DataFrame(\n",
|
||
" {\n",
|
||
" \"timestamp\": test_data.index.values,\n",
|
||
" \"symbol\": symbol,\n",
|
||
" \"y_true\": test_data[\"returns\"].values,\n",
|
||
" \"y_pred\": preds.values,\n",
|
||
" \"model_id\": \"arima_ar1\",\n",
|
||
" \"fold_id\": 0,\n",
|
||
" \"horizon\": \"1d\",\n",
|
||
" \"dataset\": \"etf\",\n",
|
||
" }\n",
|
||
" )\n",
|
||
" return pred_df, summary\n",
|
||
"\n",
|
||
"\n",
|
||
"# Process all symbols\n",
|
||
"all_predictions = []\n",
|
||
"symbol_summaries = []\n",
|
||
"print(f\"Processing {len(SYMBOLS)} symbols...\")\n",
|
||
"\n",
|
||
"for symbol in SYMBOLS:\n",
|
||
" pred_df, summary = run_arima_for_symbol(symbol)\n",
|
||
" symbol_summaries.append(summary)\n",
|
||
" if pred_df is not None:\n",
|
||
" all_predictions.append(pred_df)\n",
|
||
"\n",
|
||
"ic_summary_df = pd.DataFrame(symbol_summaries)\n",
|
||
"display(ic_summary_df.sort_values(\"ic\", ascending=False, na_position=\"last\"))\n",
|
||
"\n",
|
||
"# Combine predictions\n",
|
||
"if all_predictions:\n",
|
||
" multi_symbol_df = pl.concat(all_predictions)\n",
|
||
" print(\n",
|
||
" f\"Total predictions: {len(multi_symbol_df):,} rows across {len(all_predictions)} symbols. \"\n",
|
||
" f\"Mean IC: {ic_summary_df['ic'].mean():+.4f}, \"\n",
|
||
" f\"share positive: {(ic_summary_df['ic'] > 0).mean():.1%}\"\n",
|
||
" )\n",
|
||
"else:\n",
|
||
" multi_symbol_df = pl.DataFrame()\n",
|
||
" print(\"No predictions generated\")"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "d05cfd26",
|
||
"metadata": {
|
||
"papermill": {
|
||
"duration": 0.005703,
|
||
"end_time": "2026-06-13T03:35:55.044784+00:00",
|
||
"exception": false,
|
||
"start_time": "2026-06-13T03:35:55.039081+00:00",
|
||
"status": "completed"
|
||
}
|
||
},
|
||
"source": [
|
||
"## 14. Save Predictions for Downstream Chapters\n",
|
||
"\n",
|
||
"Output standardized predictions file for cross-model comparison.\n",
|
||
"Schema: date, asset, y_true, y_pred, model_id, fold_id, horizon, dataset"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 19,
|
||
"id": "40e2f438",
|
||
"metadata": {
|
||
"execution": {
|
||
"iopub.execute_input": "2026-06-13T03:35:55.057107Z",
|
||
"iopub.status.busy": "2026-06-13T03:35:55.056972Z",
|
||
"iopub.status.idle": "2026-06-13T03:35:55.063438Z",
|
||
"shell.execute_reply": "2026-06-13T03:35:55.062893Z"
|
||
},
|
||
"papermill": {
|
||
"duration": 0.013296,
|
||
"end_time": "2026-06-13T03:35:55.063789+00:00",
|
||
"exception": false,
|
||
"start_time": "2026-06-13T03:35:55.050493+00:00",
|
||
"status": "completed"
|
||
}
|
||
},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"Saved multi-symbol predictions to case_studies/etfs/models/time_series/arima_predictions.parquet\n",
|
||
" Shape: (23100, 8)\n",
|
||
" Assets: 100\n",
|
||
" Date range: 2024-01-02 00:00:00 to 2024-11-29 00:00:00\n",
|
||
"ARIMA baseline demonstration complete\n"
|
||
]
|
||
}
|
||
],
|
||
"source": [
|
||
"# Save ARIMA predictions\n",
|
||
"MODEL_DIR = get_case_study_dir(\"etfs\") / \"models\" / \"time_series\"\n",
|
||
"MODEL_DIR.mkdir(parents=True, exist_ok=True)\n",
|
||
"\n",
|
||
"if len(multi_symbol_df) > 0:\n",
|
||
" output_path = MODEL_DIR / \"arima_predictions.parquet\"\n",
|
||
" multi_symbol_df.write_parquet(output_path)\n",
|
||
" print(f\"Saved multi-symbol predictions to {output_path}\")\n",
|
||
" print(f\" Shape: {multi_symbol_df.shape}\")\n",
|
||
" print(f\" Assets: {multi_symbol_df['symbol'].n_unique()}\")\n",
|
||
" print(\n",
|
||
" f\" Date range: {multi_symbol_df['timestamp'].min()} to {multi_symbol_df['timestamp'].max()}\"\n",
|
||
" )\n",
|
||
"else:\n",
|
||
" print(\"WARNING: No predictions to save\")\n",
|
||
"\n",
|
||
"print(\"ARIMA baseline demonstration complete\")"
|
||
]
|
||
}
|
||
],
|
||
"metadata": {
|
||
"jupytext": {
|
||
"cell_metadata_filter": "tags,-all"
|
||
},
|
||
"kernelspec": {
|
||
"display_name": "Python 3 (ipykernel)",
|
||
"language": "python",
|
||
"name": "python3"
|
||
},
|
||
"language_info": {
|
||
"codemirror_mode": {
|
||
"name": "ipython",
|
||
"version": 3
|
||
},
|
||
"file_extension": ".py",
|
||
"mimetype": "text/x-python",
|
||
"name": "python",
|
||
"nbconvert_exporter": "python",
|
||
"pygments_lexer": "ipython3",
|
||
"version": "3.14.3"
|
||
},
|
||
"ml4t_provenance": {
|
||
"source_py_blob": "7841b00461c2b5910a06baeb938df98d482144be",
|
||
"executed_at": "2026-06-16T02:58:10.630753+00:00",
|
||
"executor": "cpu-local",
|
||
"production": true,
|
||
"parameters": {},
|
||
"notes": "header/objectives reframe + docstring (no logic change); outputs unchanged"
|
||
},
|
||
"papermill": {
|
||
"default_parameters": {},
|
||
"duration": 53.902272,
|
||
"end_time": "2026-06-13T03:35:57.685461+00:00",
|
||
"environment_variables": {},
|
||
"exception": null,
|
||
"input_path": "09_model_based_features/07_arima_features.ipynb",
|
||
"output_path": "09_model_based_features/07_arima_features.ipynb",
|
||
"parameters": {},
|
||
"start_time": "2026-06-13T03:35:03.783189+00:00",
|
||
"version": "2.7.0"
|
||
}
|
||
},
|
||
"nbformat": 4,
|
||
"nbformat_minor": 5
|
||
}
|