diff --git a/examples/time_series/Informative_Missingness.ipynb b/examples/time_series/Informative_Missingness.ipynb new file mode 100644 index 000000000..5f8d4fe04 --- /dev/null +++ b/examples/time_series/Informative_Missingness.ipynb @@ -0,0 +1,478 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": { + "id": "KZ0NyStXhOnM" + }, + "source": [ + "# Time-dependent missingness in a latent time series\n", + "\n", + "In some time series, values don’t go missing for purely random reasons.\n", + "instead, whether something gets recorded can depend on what the system\n", + "is doing underneath.\n", + "\n", + "This notebook walks through a simple way to model that situation in pymc.\n", + "the main idea is to treat missingness as part of the data-generating process,\n", + "rather than something to handle separately in preprocessing." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "PXKnlwbyhjjV" + }, + "source": [ + "## Intuition\n", + "\n", + "We assume there is a true underlying value at every time point, even when\n", + "nothing is recorded.\n", + "\n", + "At each step in time:\n", + "- the system has a latent state `y_t`\n", + "- a separate process decides whether `y_t` gets observed\n", + "- the probability of observing a value depends on `y_t`\n", + "\n", + "so when a value is missing, that absence is not meaningless it can still\n", + "tell us something about what the latent state was likely to be." + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": { + "id": "ec_aE1iWhmOf" + }, + "outputs": [], + "source": [ + "import numpy as np\n", + "import pymc as pm\n", + "import pytensor.tensor as pt\n", + "import matplotlib.pyplot as plt\n", + "\n", + "rng = np.random.default_rng(42)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "OSGDjYBzqFYq" + }, + "source": [ + "## Making a simulatory Data:\n", + " \n", + "1. Setting the number of points\n", + "2. Simulate a latent (unobserved) process:\n", + " \n", + " $\\sigma_{rw}$ - controls how volatile the process is:\n", + " - Small value means Smooth trajectory\n", + " - Large value means more volatile data (high standard deviation)\n", + " In order to simulate a random walk:\n", + " \n", + " $$\n", + " y_t = y_{t-1} + \\epsilon_t\n", + " $$\n", + "\n", + " $$\n", + " \\epsilon_t \\sim \\mathcal{N}(0, \\sigma_{rw})\n", + " $$\n", + " \n", + "3. Defining Missing mechanism Parameters\n", + " \n", + " - $\\alpha_{true}$ - Baseline Probability of observation\n", + "\n", + " - $\\beta_{true}$ - How observation probability changes with magnitude of latent values\n", + "4. Compute Probability of being observed (using sigmoid function)\n", + " \n", + " - This way extreme values are likely to go missing.\n", + "\n", + "$$x=\\alpha_{true}+\\beta_{true}(|y_t|)$$\n", + " \n", + "$$P_{obs} = \\frac{1}{1+e^{-x}}$$\n", + "\n", + " \n", + "5. Sample Whether each point is observed\n", + " \n", + " - Create a feature m which serves as a bernoulli trial such that:\n", + "\n", + " $m=1$ means $P_{obs} >= 0.5$\n", + "\n", + " $m=0$ means $P_{obs} < 0.5$\n", + "\n", + "6. Generating noisy observations:\n", + "\n", + " When $m==1$ we observe π“¨β‚œ with measurement noise\n", + "\n", + " $$y_{obs}=y_{t}+\\eta$$\n", + "\n", + " $$\\eta \\sim \\mathcal{N}(0 ,\\sigma_{obs})$$\n", + "\n", + " When $m==0 \\rightarrow y_{obs}$ = np.NaN to indicate missing data" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": { + "id": "f9tiqSsMhoL-" + }, + "outputs": [], + "source": [ + "T = 50\n", + "\n", + "sigma_rw = 0.3\n", + "y_true = np.zeros(T)\n", + "for t in range(1, T):\n", + " y_true[t] = y_true[t - 1] + rng.normal(0, sigma_rw)\n", + "\n", + "alpha_true = 1.5\n", + "beta_true = -1.2\n", + "\n", + "p_obs = 1 / (1 + np.exp(-(alpha_true + beta_true * np.abs(y_true))))\n", + "m = rng.binomial(1, p_obs)\n", + "\n", + "sigma_obs = 0.2\n", + "y_obs = np.where(m == 1, y_true + rng.normal(0, sigma_obs, size=T), np.nan)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "5TV3ro0uhvgd" + }, + "source": [ + "## Modeling Approach\n", + "\n", + "In the model below, we try to mirror the data-generating story:\n", + "\n", + "- `y_t` is a latent time series defined for all time points\n", + "- `m_t` indicates whether `y_t` was observed or not\n", + "- The probability of `m_t = 1` depends on `y_t`\n", + "- Observations are only conditioned on time points where data was recorded\n", + "\n", + "We intentionally avoid pymc’s nan auto-imputation here.\n", + "Instead, the missingness indicator is always observed and explicitly\n", + "included in the likelihood." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "xgH_js1fAfQ8" + }, + "source": [ + "## Explanation of Modelling Approach code\n", + " \n", + " 1. Coordinates (time index)\n", + " \n", + " - This defines a named dimension called \"time\" with values $0,1,..T-1$.\n", + " \n", + " 2. Starting the Probabilistic model\n", + " \n", + " $$P(y,\\sigma_{y},\\alpha,\\beta,\\sigma_{obs}|data)$$\n", + "\n", + " 3. Latent Random walking\n", + "\n", + " $\\sigma_{y} \\rightarrow$ Process noise scale\n", + "\n", + " $y$ is a latent time series following a random walk\n", + " \n", + " $$y_t=y_{t-1}+\\epsilon_t$$\n", + "\n", + " $$\\epsilon_t \\sim \\mathcal{N}(0 ,\\sigma_{y}) $$\n", + "\n", + " 4. Missingness Model\n", + " \n", + " - Defining the parameters governing whether data is observed.\n", + " \n", + " $$\\alpha \\sim \\mathcal{N}(0 , 2) $$\n", + "\n", + " $$\\beta \\sim \\mathcal{N}(0 , 2) $$\n", + "\n", + " - Declaring Observation Probability\n", + " \n", + " $$P_t=logit^{-1}(\\alpha+\\beta(|y_t|)$$\n", + "\n", + " Missingness indicator $m$\n", + " \n", + " $$m\\sim Bernoulli(P_t)$$\n", + "\n", + " 5. Observation model (measurement noise)\n", + "\n", + " $$\\sigma_{obs} \\sim e^1$$\n", + "\n", + " - Observed values where $m==1$:\n", + "\n", + " $$y_t^{obs} \\sim \\mathcal{N}(y_t ,\\sigma_{obs})$$\n", + "\n", + " 6. Sampling\n", + " \n", + " - This runs Hamiltonian Monte Carlo to sample from Posterior." + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 172, + "referenced_widgets": [ + "716e58845b154436b1a3443629e63937", + "81f5b3844c024cbe8a7d047ade7522b8" + ] + }, + "id": "txVEfe8jhzOK", + "outputId": "a08eca21-300c-47d1-ff78-9fe8382c306e" + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/usr/local/lib/python3.12/dist-packages/pymc/distributions/timeseries.py:291: UserWarning: Initial distribution not specified, defaulting to `Normal.dist(0, 100)`.You can specify an init_dist manually to suppress this warning.\n", + " warnings.warn(\n" + ] + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "716e58845b154436b1a3443629e63937", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Output()" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
\n"
+            ],
+            "text/plain": []
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        }
+      ],
+      "source": [
+        "coords = {\"time\": np.arange(T)}\n",
+        "\n",
+        "with pm.Model(coords=coords) as model:\n",
+        "\n",
+        "    sigma_y = pm.Exponential(\"sigma_y\", 1.0)\n",
+        "    y = pm.GaussianRandomWalk(\"y\", sigma=sigma_y, dims=\"time\")\n",
+        "\n",
+        "    alpha = pm.Normal(\"alpha\", 0, 2)\n",
+        "    beta = pm.Normal(\"beta\", 0, 2)\n",
+        "\n",
+        "    p = pm.math.sigmoid(alpha + beta * pt.abs(y))\n",
+        "    pm.Bernoulli(\"m\", p=p, observed=m, dims=\"time\")\n",
+        "\n",
+        "    sigma_obs = pm.Exponential(\"sigma_obs\", 1.0)\n",
+        "    pm.Normal(\n",
+        "        \"y_obs\",\n",
+        "        mu=y[m == 1],\n",
+        "        sigma=sigma_obs,\n",
+        "        observed=y_obs[m == 1],\n",
+        "    )\n",
+        "\n",
+        "    trace = pm.sample(\n",
+        "        1000,\n",
+        "        tune=1000,\n",
+        "        chains=2,\n",
+        "        target_accept=0.9,\n",
+        "    )"
+      ]
+    },
+    {
+      "cell_type": "markdown",
+      "metadata": {
+        "id": "x5KEeqbcH-JV"
+      },
+      "source": [
+        " 1. Posterior mean of latent\n",
+        "   \n",
+        "   $$y_{post,t}=\\sum[y_t|Data]$$\n",
+        "\n",
+        "   - This is the posterior mean trajectory of latent process.\n",
+        "\n",
+        " 2. Highest density interval (HDI) $y_{hdi}$\n",
+        "    \n",
+        "    This computes a 90% Highest Density Interval for each time point.\n",
+        "\n",
+        "    Interpretation:\n",
+        "\n",
+        "    - At each $t$, find the tightest interval that contains 90% of the posterior mass.\n",
+        "    - More informative than β€œΒ±2 std” when distributions are skewed.\n",
+        "\n",
+        "    #### Extract lower and upper bound\n",
+        "\n",
+        "    - $y_{hdi}$ is an xarray object with dimension (time, hdi)\n",
+        "    - \"lower\" and \"higher\" are the bounds of the HDI\n",
+        "    - Convert them to NumPy arrays for plotting\n",
+        "\n",
+        "   3. Plotting\n",
+        "\n",
+        "  The plot shows the inferred latent process, its uncertainty, and the observed data points."
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": 17,
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/",
+          "height": 391
+        },
+        "id": "9B0YvC94h1wO",
+        "outputId": "540dea64-bca0-41fd-caec-eec4763ec928"
+      },
+      "outputs": [
+        {
+          "data": {
+            "image/png": "iVBORw0KGgoAAAANSUhEUgAAA0YAAAF2CAYAAABKwYicAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjAsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvlHJYcgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAqnRJREFUeJzs3Xd8W+X1+PHPlSzZlvfeM3tDJkkwJCEhhEAhNIVCKRt+hQIJFFryLdAy2lAobdizFEpLoYUALSkjEAIBQhbZO7Ed723LlmWtq/v7w7GJ4ylZ8sp5v15+Jbq645GtOPfoec45iqZpGkIIIYQQQghxCtP19wCEEEIIIYQQor9JYCSEEEIIIYQ45UlgJIQQQgghhDjlSWAkhBBCCCGEOOVJYCSEEEIIIYQ45UlgJIQQQgghhDjlSWAkhBBCCCGEOOVJYCSEEEIIIYQ45UlgJIQQQgghhDjlSWAkhBBCCCGEOOVJYCSEEKeQV199FUVR2Lp1a6/PZbVa+e1vf8v69et7P7AeePbZZ3n11Vd7vL+iKK1fOp2O5ORkzj333D4brxBCiMEloL8HIIQQYnCyWq088MADAMyZM8fv13v22WeJjY3lmmuu6fExCxYs4KqrrkLTNPLy8nj22WeZN28ea9asYdGiRf4brBBCiEFHAiMhhBBD1siRI7nyyitbHy9ZsoSJEyeyatWqTgMjm82G0WhEp5NFFUIIcSqR3/pCCCHacDgc3H///UyZMoWIiAhCQkLIycnh888/b90nPz+fuLg4AB544IHWJWu//e1vW/c5cOAAS5cuJTo6mqCgIKZOncp//vOfNtdqWdr39ddfc+eddxIXF0dISAhLliyhsrKydb/MzEz27t3LF1980Xotb2apJkyYQGxsLHl5eQCsX78eRVF48803uffee0lJScFkMlFfXw/Av//9b6ZMmUJwcDCxsbFceeWVFBcXtzvvgQMHuPTSS4mLiyM4OJhRo0bx61//us0+xcXFXHfddSQkJBAYGMi4ceN45ZVX2p3rqaeeYty4cZhMJqKiopg6dSpvvPFG6/MNDQ0sX76czMxMAgMDiY+PZ8GCBXz33Xcefz+EEEJ8T2aMhBBCtFFfX8/LL7/M5Zdfzo033khDQwN/+ctfWLhwIZs3b+a0004jLi6O5557jptvvpklS5ZwySWXADBx4kQA9u7dy+zZs0lJSeGee+4hJCSEf/3rX1x88cW88847LFmypM01b7vtNqKiovjNb35Dfn4+q1at4tZbb+Wtt94CYNWqVdx2222Ehoa2BhwJCQkev7ba2lpqa2sZPnx4m+0PPfQQRqORu+66C7vdjtFo5NVXX+Xaa69l2rRprFy5kvLycp544gm+/vprtm/fTmRkJAC7du0iJycHg8HATTfdRGZmJkePHuW///0vv/vd7wAoLy/njDPOQFEUbr31VuLi4vjwww+5/vrrqa+vZ/ny5QC89NJL3H777SxdupRly5Zhs9nYtWsXmzZt4oorrgDgZz/7GW+//Ta33norY8eOpbq6mq+++or9+/czefJkj78nQgghjtOEEEKcMv76179qgLZly5ZO93G5XJrdbm+zrba2VktISNCuu+661m2VlZUaoP3mN79pd45zzjlHmzBhgmaz2Vq3ud1ubdasWdqIESPajWf+/Pma2+1u3X7HHXdoer1eq6ura902btw47eyzz+7xawW066+/XqusrNQqKiq0TZs2aeecc44GaI8//rimaZr2+eefa4CWnZ2tWa3W1mMdDocWHx+vjR8/Xmtqamrd/sEHH2iAdv/997duO+uss7SwsDDt2LFjba5/4uu5/vrrtaSkJK2qqqrNPj/+8Y+1iIiI1mtfdNFF2rhx47p8XREREdrPf/7zHn8fhBBC9IwspRNCCNGGXq/HaDQC4Ha7qampweVyMXXq1B4t16qpqWHdunVceumlNDQ0UFVVRVVVFdXV1SxcuJDDhw+3W4520003oShK6+OcnBxUVeXYsWO9ei1/+ctfiIuLIz4+nhkzZrQu2WuZoWlx9dVXExwc3Pp469atVFRUcMsttxAUFNS6ffHixYwePZo1a9YAUFlZyZdffsl1111Henp6m3O2vB5N03jnnXe48MIL0TSt9ftRVVXFwoULMZvNrd/XyMhIioqK2LJlS6evKTIykk2bNlFSUtKr740QQoi2ZCmdEEKIdl577TUef/xxDhw4gNPpbN2elZXV7bFHjhxB0zTuu+8+7rvvvg73qaioICUlpfXxyUFFVFQU0Lz0rTcuuugibr31VhRFISwsjHHjxhESEtJuv5NfV0tANmrUqHb7jh49mq+++gqA3NxcAMaPH9/pGCorK6mrq+PFF1/kxRdf7HCfiooKAH71q1/x6aefMn36dIYPH865557L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4YUXkpycjKIovPfee13uv379ehRFafdVVlbmz2EKIYQQQgghulFYY6Wg2tpu+/gpZxCbkATHqxefTFEU0tLSWgt+DVR+DYwaGxuZNGkSzzzzjEfHHTx4kNLS0tav+PieRaFCCCGEEEII36tssHOovKHD5/R6PbeseLj5wUnBUUurl1WrVqHX93/D1674Ncdo0aJFLFq0yOPj4uPjiYyM9P2AhBBCCCGEEB6ptznZU2LuqOhcq5wFi7n/zy932Mdo1apVA75UNwzQ4gunnXYadrud8ePH89vf/pbZs2d3uq/dbsdu/36dY319fV8MUQghhBBCiCHP5lTZWViHqnZffCtnwWJmzTuPPdu+JVbfREZaCjk5OQN+pqjFgAqMkpKSeP7555k6dSp2u52XX36ZOXPmsGnTJiZPntzhMStXruSBBx7o45EKIYQQQggxtLlUNzsK67A73T0+Rq/XM2n6bM4cEUuQYXAERC0GVGA0atQoRo0a1fp41qxZHD16lD//+c+8/vrrHR6zYsWKNo1J6+vrSUtL8/tYhRBCCCGEGMryq61YbK7+HkafGVCBUUemT5/OV1991enzgYGBBAYG9uGIhBBCCCGEGNqcqpui2vYV6IayAd/HaMeOHQO+5rkQQgghhBBDSVFtE64e5BUNJX6dMbJYLBw5cqT1cV5eHjt27CA6Opr09HRWrFhBcXExf/vb34DmMn5ZWVmMGzcOm83Gyy+/zLp16/jkk0/8OUwhhBBCCCHEcapbo6Dm1JotAj8HRlu3bmXu3Lmtj1tyga6++mpeffVVSktLKSgoaH3e4XDwi1/8guLiYkwmExMnTuTTTz9tcw5/+XRfud+vcaL5YxM82r+hoYH77ruPd999l4qKCk4//XSeeOIJpk2b1rqPpmn85je/4aWXXqKuro7Zs2fz3HPPMWLECKC5gt8NN9zA+++/T2JiIs8++yzz589vPf6xxx6joKCAp556qsux/Pa3v+W9995jx44dbbbn5+eTlZXF9u3bOe2001oftwgNDSU9PZ05c+awfPny1nEBvPrqqyxfvpy6ujqPvi9CCCGEEMK3imubcLp6XnBhqPBrYDRnzhy0Lgqev/rqq20e//KXv+SXv/ylP4c0aN1www3s2bOH119/neTkZP7+978zf/589u3bR0pKCgCPPvooTz75JK+99hpZWVncd999LFy4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",
+            "text/plain": [
+              "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "y_post = trace.posterior[\"y\"].mean(dim=(\"chain\", \"draw\")).values\n", + "\n", + "y_hdi = pm.stats.hdi(trace.posterior[\"y\"], hdi_prob=0.9)\n", + "y_hdi_lower = y_hdi[\"y\"].sel(hdi=\"lower\").values\n", + "y_hdi_upper = y_hdi[\"y\"].sel(hdi=\"higher\").values\n", + "\n", + "plt.figure(figsize=(10, 4))\n", + "plt.plot(y_post, label=\"mean\")\n", + "plt.fill_between(np.arange(T), y_hdi_lower, y_hdi_upper, alpha=0.3, label=\"90% HDI\")\n", + "plt.scatter(np.where(m == 1), y_obs[m == 1], color=\"black\", label=\"data\")\n", + "plt.title(\"Latent Process\")\n", + "plt.legend()\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "fbQ9EMc6h6jI" + }, + "source": [ + "## Final Note\n", + "\n", + "For linear-gaussian state-space models, missing observations can often be handled\n", + "by analytically conditioning on the observed values (for example, via kalman\n", + "filtering).\n", + "\n", + "Here we take a different approach and model the observation process directly.\n", + "This makes it possible for missingness itself to inform inference when it depends\n", + "on the latent state." + ] + } + ], + "metadata": { + "colab": { + "provenance": [] + }, + "kernelspec": { + "display_name": "Python 3", + "name": "python3" + }, + "language_info": { + "name": "python" + }, + "widgets": { + "application/vnd.jupyter.widget-state+json": { + "716e58845b154436b1a3443629e63937": { + "model_module": "@jupyter-widgets/output", + "model_module_version": "1.0.0", + "model_name": "OutputModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_81f5b3844c024cbe8a7d047ade7522b8", + "msg_id": "", + "outputs": [ + { + "data": { + "text/html": "
                                                                                                                   \n  Progress                    Draws   Divergences   Step size   Grad evals   Sampling Speed   Elapsed   Remaining  \n ───────────────────────────────────────────────────────────────────────────────────────────────────────────────── \n  ━━━━━━━━━━━━━━━━━━━━━━━━━   2000    0             0.237       31           172.69 draws/s   0:00:11   0:00:00    \n  ━━━━━━━━━━━━━━━━━━━━━━━━━   2000    0             0.260       15           95.57 draws/s    0:00:20   0:00:00    \n                                                                                                                   \n
\n", + "text/plain": " \n \u001b[1m \u001b[0m\u001b[1mProgress \u001b[0m\u001b[1m \u001b[0m \u001b[1m \u001b[0m\u001b[1mDraws\u001b[0m\u001b[1m \u001b[0m \u001b[1m \u001b[0m\u001b[1mDivergences\u001b[0m\u001b[1m \u001b[0m \u001b[1m \u001b[0m\u001b[1mStep size\u001b[0m\u001b[1m \u001b[0m \u001b[1m \u001b[0m\u001b[1mGrad evals\u001b[0m\u001b[1m \u001b[0m \u001b[1m \u001b[0m\u001b[1mSampling Speed\u001b[0m\u001b[1m \u001b[0m \u001b[1m \u001b[0m\u001b[1mElapsed\u001b[0m\u001b[1m \u001b[0m \u001b[1m \u001b[0m\u001b[1mRemaining\u001b[0m\u001b[1m \u001b[0m \n ───────────────────────────────────────────────────────────────────────────────────────────────────────────────── \n \u001b[38;2;31;119;180m━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m 2000 0 0.237 31 172.69 draws/s 0:00:11 0:00:00 \n \u001b[38;2;31;119;180m━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m 2000 0 0.260 15 95.57 draws/s 0:00:20 0:00:00 \n \n" + }, + "metadata": {}, + "output_type": "display_data" + } + ] + } + }, + "81f5b3844c024cbe8a7d047ade7522b8": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + } + } + } + }, + "nbformat": 4, + "nbformat_minor": 0 +}