Question 3: Functional Connectivity Between Brain Areas

Question 3: Functional Connectivity Between Brain Areas#

Which brain area pair has the strongest directed functional connectivity?

Approach#

We fit Poisson GLMs to predict the activity of one brain area from another and compare predictive performance as a proxy for functional connectivity.

Setup#

import warnings
from pathlib import Path

import jax
import lindi
import matplotlib.pyplot as plt
import nemos as nmo
import numpy as np
import pandas as pd
import pynapple as nap
import seaborn as sns
from dandi.dandiapi import DandiAPIClient
from pynwb import NWBHDF5IO
from tqdm import tqdm

warnings.filterwarnings("ignore", message="Converting 'd' to numpy.array.*")
jax.config.update("jax_enable_x64", True)

dandiset_id = "218201"
np.random.seed(42)

window_size_sec = 0.8
bin_size_sec = 0.02
n_basis_funcs = 4
basis = nmo.basis.RaisedCosineLogConv(
    n_basis_funcs=n_basis_funcs,
    window_size=int(window_size_sec // bin_size_sec),
)

train_set = nap.IntervalSet([0, 60])
test_set = nap.IntervalSet([60, 120])

Population-level Poisson GLMs#

For each dataset, we load spike trains and fit a population-level GLM for every possible pair of brain areas, including self-prediction.

Notes#

  • We subsample the units to the lowest number per brain area, otherwise we might interpret performance differences caused by different numbers of units as functional connectivity.

  • We use NeMoS’ GroupLasso to regularize each unit’s features together.

  • We filter out units with a firing rate below 1 Hz to avoid silent neuron issues during fitting.

results = []
best_pairs = []

for dataset_num in range(1, 19):

    # Stream data from DANDI
    filepath = f"sub-mouse-{dataset_num}/sub-mouse-{dataset_num}_ses-None_ecephys.nwb"
    with DandiAPIClient(api_url="https://api.sandbox.dandiarchive.org/api") as client:
        asset = client.get_dandiset(dandiset_id, "draft").get_asset_by_path(filepath)
        s3_url = asset.get_content_url(follow_redirects=1, strip_query=True)
    f = lindi.LindiH5pyFile.from_hdf5_file(s3_url, local_cache=lindi.LocalCache())
    io = NWBHDF5IO(file=f)
    units = nap.NWBFile(io.read())["units"]
    units = units[units.rate > 1.0]

    counts = units.count(bin_size_sec)
    subsample_n = units["brain_area"].value_counts().min()

    session_results = []

    for predicted_area in tqdm(
        units["brain_area"].unique(), desc="predicted area", leave=False
    ):
        predicted_area_counts = counts[:, units["brain_area"] == predicted_area]
        predicted_area_counts = predicted_area_counts[
            :,
            np.random.choice(
                predicted_area_counts.shape[1], subsample_n, replace=False
            ),
        ]

        for predictor_area in tqdm(
            units["brain_area"].unique(), desc="predictor area", leave=False
        ):
            predictor_area_counts = counts[:, units["brain_area"] == predictor_area]
            predictor_area_counts = predictor_area_counts[
                :,
                np.random.choice(
                    predictor_area_counts.shape[1], subsample_n, replace=False
                ),
            ]

            X_train = {
                unit: basis.compute_features(
                    predictor_area_counts[:, unit].restrict(train_set)
                )
                for unit in range(subsample_n)
            }
            y_train = predicted_area_counts.restrict(train_set)
            mean_rates = np.clip(np.array(np.nanmean(y_train, axis=0)), 1e-3, None)
            init_intercept = np.log(mean_rates) * bin_size_sec

            model = nmo.glm.PopulationGLM(
                regularizer=nmo.regularizer.GroupLasso(),
                regularizer_strength=0.01,
            )
            model.fit(
                X_train,
                y_train,
                init_params=(
                    {i: np.zeros((n_basis_funcs, y_train.shape[1])) for i in X_train},
                    init_intercept,
                ),
            )

            X_test = {
                unit: basis.compute_features(
                    predictor_area_counts[:, unit].restrict(test_set)
                )
                for unit in range(subsample_n)
            }
            y_test = predicted_area_counts.restrict(test_set)
            scores = model.score(X_test, y_test)

            session_results.append(
                {
                    "dataset": dataset_num,
                    "predicted": int(predicted_area),
                    "predictor": int(predictor_area),
                    "pr2": float(scores),
                }
            )

    # Track best pair per session
    session_df = pd.DataFrame(session_results)
    mat_raw = session_df.pivot_table(
        index="predicted", columns="predictor", values="pr2", aggfunc="mean"
    ).astype(float)

    within_scores = pd.Series(np.diag(mat_raw), index=mat_raw.index)
    session_df["normalised_pr2"] = session_df["pr2"] - session_df["predicted"].map(within_scores)

    cross_area = session_df[session_df["predicted"] != session_df["predictor"]]
    best = (
        cross_area.groupby(["predicted", "predictor"])["normalised_pr2"]
        .mean()
        .reset_index()
        .sort_values("normalised_pr2", ascending=False)
    )
    best_pair = best.iloc[0]
    best_pairs.append(
        {
            "dataset": int(dataset_num),
            "predictor": int(best_pair["predictor"]),
            "predicted": int(best_pair["predicted"]),
            "normalised_pr2": best_pair["normalised_pr2"],
        }
    )

    results.append(session_results)

results = pd.DataFrame([r for session in results for r in session])

Hide code cell output

predicted area:   0%|          | 0/3 [00:00<?, ?it/s]

predictor area:   0%|          | 0/3 [00:00<?, ?it/s]

/home/runner/.local/lib/python3.12/site-packages/nemos/glm/glm.py:768: RuntimeWarning: The fit did not converge. Consider the following:
1) Enable float64 with ``jax.config.update('jax_enable_x64', True)`` 
2) Increase the max number of iterations or increase tolerance (if reasonable). These parameters can be specified by providing a ``solver_kwargs`` dictionary. For the available options see the ``self.solver.__init__`` docstrings.
  warnings.warn(

predictor area:  33%|███▎      | 1/3 [00:06<00:13,  6.72s/it]

/home/runner/.local/lib/python3.12/site-packages/nemos/glm/glm.py:768: RuntimeWarning: The fit did not converge. Consider the following:
1) Enable float64 with ``jax.config.update('jax_enable_x64', True)`` 
2) Increase the max number of iterations or increase tolerance (if reasonable). These parameters can be specified by providing a ``solver_kwargs`` dictionary. For the available options see the ``self.solver.__init__`` docstrings.
  warnings.warn(
predictor area:  67%|██████▋   | 2/3 [00:08<00:03,  3.99s/it]

/home/runner/.local/lib/python3.12/site-packages/nemos/glm/glm.py:768: RuntimeWarning: The fit did not converge. Consider the following:
1) Enable float64 with ``jax.config.update('jax_enable_x64', True)`` 
2) Increase the max number of iterations or increase tolerance (if reasonable). These parameters can be specified by providing a ``solver_kwargs`` dictionary. For the available options see the ``self.solver.__init__`` docstrings.
  warnings.warn(
predictor area: 100%|██████████| 3/3 [00:10<00:00,  3.12s/it]


                                                             

predicted area:  33%|███▎      | 1/3 [00:10<00:21, 10.95s/it]

predictor area:   0%|          | 0/3 [00:00<?, ?it/s]

/home/runner/.local/lib/python3.12/site-packages/nemos/glm/glm.py:768: RuntimeWarning: The fit did not converge. Consider the following:
1) Enable float64 with ``jax.config.update('jax_enable_x64', True)`` 
2) Increase the max number of iterations or increase tolerance (if reasonable). These parameters can be specified by providing a ``solver_kwargs`` dictionary. For the available options see the ``self.solver.__init__`` docstrings.
  warnings.warn(
predictor area:  33%|███▎      | 1/3 [00:02<00:04,  2.10s/it]

/home/runner/.local/lib/python3.12/site-packages/nemos/glm/glm.py:768: RuntimeWarning: The fit did not converge. Consider the following:
1) Enable float64 with ``jax.config.update('jax_enable_x64', True)`` 
2) Increase the max number of iterations or increase tolerance (if reasonable). These parameters can be specified by providing a ``solver_kwargs`` dictionary. For the available options see the ``self.solver.__init__`` docstrings.
  warnings.warn(
predictor area:  67%|██████▋   | 2/3 [00:04<00:02,  2.08s/it]

/home/runner/.local/lib/python3.12/site-packages/nemos/glm/glm.py:768: RuntimeWarning: The fit did not converge. Consider the following:
1) Enable float64 with ``jax.config.update('jax_enable_x64', True)`` 
2) Increase the max number of iterations or increase tolerance (if reasonable). These parameters can be specified by providing a ``solver_kwargs`` dictionary. For the available options see the ``self.solver.__init__`` docstrings.
  warnings.warn(
predictor area: 100%|██████████| 3/3 [00:06<00:00,  2.07s/it]


                                                             

predicted area:  67%|██████▋   | 2/3 [00:17<00:08,  8.17s/it]

predictor area:   0%|          | 0/3 [00:00<?, ?it/s]

/home/runner/.local/lib/python3.12/site-packages/nemos/glm/glm.py:768: RuntimeWarning: The fit did not converge. Consider the following:
1) Enable float64 with ``jax.config.update('jax_enable_x64', True)`` 
2) Increase the max number of iterations or increase tolerance (if reasonable). These parameters can be specified by providing a ``solver_kwargs`` dictionary. For the available options see the ``self.solver.__init__`` docstrings.
  warnings.warn(
predictor area:  33%|███▎      | 1/3 [00:01<00:03,  1.97s/it]

/home/runner/.local/lib/python3.12/site-packages/nemos/glm/glm.py:768: RuntimeWarning: The fit did not converge. Consider the following:
1) Enable float64 with ``jax.config.update('jax_enable_x64', True)`` 
2) Increase the max number of iterations or increase tolerance (if reasonable). These parameters can be specified by providing a ``solver_kwargs`` dictionary. For the available options see the ``self.solver.__init__`` docstrings.
  warnings.warn(
predictor area:  67%|██████▋   | 2/3 [00:04<00:02,  2.15s/it]

/home/runner/.local/lib/python3.12/site-packages/nemos/glm/glm.py:768: RuntimeWarning: The fit did not converge. Consider the following:
1) Enable float64 with ``jax.config.update('jax_enable_x64', True)`` 
2) Increase the max number of iterations or increase tolerance (if reasonable). These parameters can be specified by providing a ``solver_kwargs`` dictionary. For the available options see the ``self.solver.__init__`` docstrings.
  warnings.warn(
predictor area: 100%|██████████| 3/3 [00:06<00:00,  2.05s/it]


                                                             

predicted area: 100%|██████████| 3/3 [00:23<00:00,  7.27s/it]
                                                             

predicted area:   0%|          | 0/3 [00:00<?, ?it/s]

predictor area:   0%|          | 0/3 [00:00<?, ?it/s]

/home/runner/.local/lib/python3.12/site-packages/nemos/glm/glm.py:768: RuntimeWarning: The fit did not converge. Consider the following:
1) Enable float64 with ``jax.config.update('jax_enable_x64', True)`` 
2) Increase the max number of iterations or increase tolerance (if reasonable). These parameters can be specified by providing a ``solver_kwargs`` dictionary. For the available options see the ``self.solver.__init__`` docstrings.
  warnings.warn(

predictor area:  33%|███▎      | 1/3 [00:07<00:15,  7.65s/it]

/home/runner/.local/lib/python3.12/site-packages/nemos/glm/glm.py:768: RuntimeWarning: The fit did not converge. Consider the following:
1) Enable float64 with ``jax.config.update('jax_enable_x64', True)`` 
2) Increase the max number of iterations or increase tolerance (if reasonable). These parameters can be specified by providing a ``solver_kwargs`` dictionary. For the available options see the ``self.solver.__init__`` docstrings.
  warnings.warn(
predictor area:  67%|██████▋   | 2/3 [00:13<00:06,  6.67s/it]

/home/runner/.local/lib/python3.12/site-packages/nemos/glm/glm.py:768: RuntimeWarning: The fit did not converge. Consider the following:
1) Enable float64 with ``jax.config.update('jax_enable_x64', True)`` 
2) Increase the max number of iterations or increase tolerance (if reasonable). These parameters can be specified by providing a ``solver_kwargs`` dictionary. For the available options see the ``self.solver.__init__`` docstrings.
  warnings.warn(
predictor area: 100%|██████████| 3/3 [00:19<00:00,  6.51s/it]


                                                             

predicted area:  33%|███▎      | 1/3 [00:20<00:40, 20.03s/it]

predictor area:   0%|          | 0/3 [00:00<?, ?it/s]

/home/runner/.local/lib/python3.12/site-packages/nemos/glm/glm.py:768: RuntimeWarning: The fit did not converge. Consider the following:
1) Enable float64 with ``jax.config.update('jax_enable_x64', True)`` 
2) Increase the max number of iterations or increase tolerance (if reasonable). These parameters can be specified by providing a ``solver_kwargs`` dictionary. For the available options see the ``self.solver.__init__`` docstrings.
  warnings.warn(
predictor area:  33%|███▎      | 1/3 [00:06<00:12,  6.10s/it]

/home/runner/.local/lib/python3.12/site-packages/nemos/glm/glm.py:768: RuntimeWarning: The fit did not converge. Consider the following:
1) Enable float64 with ``jax.config.update('jax_enable_x64', True)`` 
2) Increase the max number of iterations or increase tolerance (if reasonable). These parameters can be specified by providing a ``solver_kwargs`` dictionary. For the available options see the ``self.solver.__init__`` docstrings.
  warnings.warn(
predictor area:  67%|██████▋   | 2/3 [00:12<00:06,  6.05s/it]

/home/runner/.local/lib/python3.12/site-packages/nemos/glm/glm.py:768: RuntimeWarning: The fit did not converge. Consider the following:
1) Enable float64 with ``jax.config.update('jax_enable_x64', True)`` 
2) Increase the max number of iterations or increase tolerance (if reasonable). These parameters can be specified by providing a ``solver_kwargs`` dictionary. For the available options see the ``self.solver.__init__`` docstrings.
  warnings.warn(
predictor area: 100%|██████████| 3/3 [00:18<00:00,  6.03s/it]


                                                             

predicted area:  67%|██████▋   | 2/3 [00:38<00:18, 18.93s/it]

predictor area:   0%|          | 0/3 [00:00<?, ?it/s]

/home/runner/.local/lib/python3.12/site-packages/nemos/glm/glm.py:768: RuntimeWarning: The fit did not converge. Consider the following:
1) Enable float64 with ``jax.config.update('jax_enable_x64', True)`` 
2) Increase the max number of iterations or increase tolerance (if reasonable). These parameters can be specified by providing a ``solver_kwargs`` dictionary. For the available options see the ``self.solver.__init__`` docstrings.
  warnings.warn(
predictor area:  33%|███▎      | 1/3 [00:06<00:12,  6.09s/it]

/home/runner/.local/lib/python3.12/site-packages/nemos/glm/glm.py:768: RuntimeWarning: The fit did not converge. Consider the following:
1) Enable float64 with ``jax.config.update('jax_enable_x64', True)`` 
2) Increase the max number of iterations or increase tolerance (if reasonable). These parameters can be specified by providing a ``solver_kwargs`` dictionary. For the available options see the ``self.solver.__init__`` docstrings.
  warnings.warn(
predictor area:  67%|██████▋   | 2/3 [00:12<00:06,  6.21s/it]

/home/runner/.local/lib/python3.12/site-packages/nemos/glm/glm.py:768: RuntimeWarning: The fit did not converge. Consider the following:
1) Enable float64 with ``jax.config.update('jax_enable_x64', True)`` 
2) Increase the max number of iterations or increase tolerance (if reasonable). These parameters can be specified by providing a ``solver_kwargs`` dictionary. For the available options see the ``self.solver.__init__`` docstrings.
  warnings.warn(
predictor area: 100%|██████████| 3/3 [00:18<00:00,  6.01s/it]


                                                             

predicted area: 100%|██████████| 3/3 [00:56<00:00, 18.60s/it]
                                                             

predicted area:   0%|          | 0/3 [00:00<?, ?it/s]

predictor area:   0%|          | 0/3 [00:00<?, ?it/s]

/home/runner/.local/lib/python3.12/site-packages/nemos/glm/glm.py:768: RuntimeWarning: The fit did not converge. Consider the following:
1) Enable float64 with ``jax.config.update('jax_enable_x64', True)`` 
2) Increase the max number of iterations or increase tolerance (if reasonable). These parameters can be specified by providing a ``solver_kwargs`` dictionary. For the available options see the ``self.solver.__init__`` docstrings.
  warnings.warn(

predictor area:  33%|███▎      | 1/3 [00:04<00:09,  4.68s/it]

/home/runner/.local/lib/python3.12/site-packages/nemos/glm/glm.py:768: RuntimeWarning: The fit did not converge. Consider the following:
1) Enable float64 with ``jax.config.update('jax_enable_x64', True)`` 
2) Increase the max number of iterations or increase tolerance (if reasonable). These parameters can be specified by providing a ``solver_kwargs`` dictionary. For the available options see the ``self.solver.__init__`` docstrings.
  warnings.warn(
predictor area:  67%|██████▋   | 2/3 [00:07<00:03,  3.71s/it]

/home/runner/.local/lib/python3.12/site-packages/nemos/glm/glm.py:768: RuntimeWarning: The fit did not converge. Consider the following:
1) Enable float64 with ``jax.config.update('jax_enable_x64', True)`` 
2) Increase the max number of iterations or increase tolerance (if reasonable). These parameters can be specified by providing a ``solver_kwargs`` dictionary. For the available options see the ``self.solver.__init__`` docstrings.
  warnings.warn(
predictor area: 100%|██████████| 3/3 [00:10<00:00,  3.40s/it]


                                                             

predicted area:  33%|███▎      | 1/3 [00:10<00:21, 10.81s/it]

predictor area:   0%|          | 0/3 [00:00<?, ?it/s]

/home/runner/.local/lib/python3.12/site-packages/nemos/glm/glm.py:768: RuntimeWarning: The fit did not converge. Consider the following:
1) Enable float64 with ``jax.config.update('jax_enable_x64', True)`` 
2) Increase the max number of iterations or increase tolerance (if reasonable). These parameters can be specified by providing a ``solver_kwargs`` dictionary. For the available options see the ``self.solver.__init__`` docstrings.
  warnings.warn(
predictor area:  33%|███▎      | 1/3 [00:03<00:06,  3.44s/it]

/home/runner/.local/lib/python3.12/site-packages/nemos/glm/glm.py:768: RuntimeWarning: The fit did not converge. Consider the following:
1) Enable float64 with ``jax.config.update('jax_enable_x64', True)`` 
2) Increase the max number of iterations or increase tolerance (if reasonable). These parameters can be specified by providing a ``solver_kwargs`` dictionary. For the available options see the ``self.solver.__init__`` docstrings.
  warnings.warn(
predictor area:  67%|██████▋   | 2/3 [00:06<00:03,  3.23s/it]

/home/runner/.local/lib/python3.12/site-packages/nemos/glm/glm.py:768: RuntimeWarning: The fit did not converge. Consider the following:
1) Enable float64 with ``jax.config.update('jax_enable_x64', True)`` 
2) Increase the max number of iterations or increase tolerance (if reasonable). These parameters can be specified by providing a ``solver_kwargs`` dictionary. For the available options see the ``self.solver.__init__`` docstrings.
  warnings.warn(
predictor area: 100%|██████████| 3/3 [00:09<00:00,  3.18s/it]


                                                             

predicted area:  67%|██████▋   | 2/3 [00:20<00:10, 10.14s/it]

predictor area:   0%|          | 0/3 [00:00<?, ?it/s]

/home/runner/.local/lib/python3.12/site-packages/nemos/glm/glm.py:768: RuntimeWarning: The fit did not converge. Consider the following:
1) Enable float64 with ``jax.config.update('jax_enable_x64', True)`` 
2) Increase the max number of iterations or increase tolerance (if reasonable). These parameters can be specified by providing a ``solver_kwargs`` dictionary. For the available options see the ``self.solver.__init__`` docstrings.
  warnings.warn(
predictor area:  33%|███▎      | 1/3 [00:03<00:06,  3.01s/it]

/home/runner/.local/lib/python3.12/site-packages/nemos/glm/glm.py:768: RuntimeWarning: The fit did not converge. Consider the following:
1) Enable float64 with ``jax.config.update('jax_enable_x64', True)`` 
2) Increase the max number of iterations or increase tolerance (if reasonable). These parameters can be specified by providing a ``solver_kwargs`` dictionary. For the available options see the ``self.solver.__init__`` docstrings.
  warnings.warn(
predictor area:  67%|██████▋   | 2/3 [00:06<00:03,  3.04s/it]

/home/runner/.local/lib/python3.12/site-packages/nemos/glm/glm.py:768: RuntimeWarning: The fit did not converge. Consider the following:
1) Enable float64 with ``jax.config.update('jax_enable_x64', True)`` 
2) Increase the max number of iterations or increase tolerance (if reasonable). These parameters can be specified by providing a ``solver_kwargs`` dictionary. For the available options see the ``self.solver.__init__`` docstrings.
  warnings.warn(
predictor area: 100%|██████████| 3/3 [00:09<00:00,  3.06s/it]


                                                             

predicted area: 100%|██████████| 3/3 [00:29<00:00,  9.71s/it]
                                                             

predicted area:   0%|          | 0/3 [00:00<?, ?it/s]

predictor area:   0%|          | 0/3 [00:00<?, ?it/s]


predictor area:  33%|███▎      | 1/3 [00:02<00:05,  2.68s/it]


predictor area:  67%|██████▋   | 2/3 [00:03<00:01,  1.86s/it]

/home/runner/.local/lib/python3.12/site-packages/nemos/glm/glm.py:768: RuntimeWarning: The fit did not converge. Consider the following:
1) Enable float64 with ``jax.config.update('jax_enable_x64', True)`` 
2) Increase the max number of iterations or increase tolerance (if reasonable). These parameters can be specified by providing a ``solver_kwargs`` dictionary. For the available options see the ``self.solver.__init__`` docstrings.
  warnings.warn(
predictor area: 100%|██████████| 3/3 [00:05<00:00,  1.64s/it]


                                                             

predicted area:  33%|███▎      | 1/3 [00:05<00:10,  5.39s/it]

predictor area:   0%|          | 0/3 [00:00<?, ?it/s]

/home/runner/.local/lib/python3.12/site-packages/nemos/glm/glm.py:768: RuntimeWarning: The fit did not converge. Consider the following:
1) Enable float64 with ``jax.config.update('jax_enable_x64', True)`` 
2) Increase the max number of iterations or increase tolerance (if reasonable). These parameters can be specified by providing a ``solver_kwargs`` dictionary. For the available options see the ``self.solver.__init__`` docstrings.
  warnings.warn(
predictor area:  33%|███▎      | 1/3 [00:01<00:02,  1.33s/it]

/home/runner/.local/lib/python3.12/site-packages/nemos/glm/glm.py:768: RuntimeWarning: The fit did not converge. Consider the following:
1) Enable float64 with ``jax.config.update('jax_enable_x64', True)`` 
2) Increase the max number of iterations or increase tolerance (if reasonable). These parameters can be specified by providing a ``solver_kwargs`` dictionary. For the available options see the ``self.solver.__init__`` docstrings.
  warnings.warn(
predictor area:  67%|██████▋   | 2/3 [00:02<00:01,  1.38s/it]

/home/runner/.local/lib/python3.12/site-packages/nemos/glm/glm.py:768: RuntimeWarning: The fit did not converge. Consider the following:
1) Enable float64 with ``jax.config.update('jax_enable_x64', True)`` 
2) Increase the max number of iterations or increase tolerance (if reasonable). These parameters can be specified by providing a ``solver_kwargs`` dictionary. For the available options see the ``self.solver.__init__`` docstrings.
  warnings.warn(
predictor area: 100%|██████████| 3/3 [00:04<00:00,  1.56s/it]


                                                             

predicted area:  67%|██████▋   | 2/3 [00:09<00:04,  4.89s/it]

predictor area:   0%|          | 0/3 [00:00<?, ?it/s]


predictor area:  33%|███▎      | 1/3 [00:01<00:02,  1.32s/it]

/home/runner/.local/lib/python3.12/site-packages/nemos/glm/glm.py:768: RuntimeWarning: The fit did not converge. Consider the following:
1) Enable float64 with ``jax.config.update('jax_enable_x64', True)`` 
2) Increase the max number of iterations or increase tolerance (if reasonable). These parameters can be specified by providing a ``solver_kwargs`` dictionary. For the available options see the ``self.solver.__init__`` docstrings.
  warnings.warn(
predictor area:  67%|██████▋   | 2/3 [00:02<00:01,  1.35s/it]

/home/runner/.local/lib/python3.12/site-packages/nemos/glm/glm.py:768: RuntimeWarning: The fit did not converge. Consider the following:
1) Enable float64 with ``jax.config.update('jax_enable_x64', True)`` 
2) Increase the max number of iterations or increase tolerance (if reasonable). These parameters can be specified by providing a ``solver_kwargs`` dictionary. For the available options see the ``self.solver.__init__`` docstrings.
  warnings.warn(
predictor area: 100%|██████████| 3/3 [00:04<00:00,  1.37s/it]


                                                             

predicted area: 100%|██████████| 3/3 [00:14<00:00,  4.53s/it]
                                                             

predicted area:   0%|          | 0/3 [00:00<?, ?it/s]

predictor area:   0%|          | 0/3 [00:00<?, ?it/s]

/home/runner/.local/lib/python3.12/site-packages/nemos/glm/glm.py:768: RuntimeWarning: The fit did not converge. Consider the following:
1) Enable float64 with ``jax.config.update('jax_enable_x64', True)`` 
2) Increase the max number of iterations or increase tolerance (if reasonable). These parameters can be specified by providing a ``solver_kwargs`` dictionary. For the available options see the ``self.solver.__init__`` docstrings.
  warnings.warn(
predictor area:  33%|███▎      | 1/3 [00:03<00:06,  3.08s/it]

/home/runner/.local/lib/python3.12/site-packages/nemos/glm/glm.py:768: RuntimeWarning: The fit did not converge. Consider the following:
1) Enable float64 with ``jax.config.update('jax_enable_x64', True)`` 
2) Increase the max number of iterations or increase tolerance (if reasonable). These parameters can be specified by providing a ``solver_kwargs`` dictionary. For the available options see the ``self.solver.__init__`` docstrings.
  warnings.warn(
predictor area:  67%|██████▋   | 2/3 [00:06<00:03,  3.06s/it]

/home/runner/.local/lib/python3.12/site-packages/nemos/glm/glm.py:768: RuntimeWarning: The fit did not converge. Consider the following:
1) Enable float64 with ``jax.config.update('jax_enable_x64', True)`` 
2) Increase the max number of iterations or increase tolerance (if reasonable). These parameters can be specified by providing a ``solver_kwargs`` dictionary. For the available options see the ``self.solver.__init__`` docstrings.
  warnings.warn(
predictor area: 100%|██████████| 3/3 [00:09<00:00,  3.08s/it]


                                                             

predicted area:  33%|███▎      | 1/3 [00:09<00:18,  9.29s/it]

predictor area:   0%|          | 0/3 [00:00<?, ?it/s]

/home/runner/.local/lib/python3.12/site-packages/nemos/glm/glm.py:768: RuntimeWarning: The fit did not converge. Consider the following:
1) Enable float64 with ``jax.config.update('jax_enable_x64', True)`` 
2) Increase the max number of iterations or increase tolerance (if reasonable). These parameters can be specified by providing a ``solver_kwargs`` dictionary. For the available options see the ``self.solver.__init__`` docstrings.
  warnings.warn(
predictor area:  33%|███▎      | 1/3 [00:03<00:06,  3.11s/it]

/home/runner/.local/lib/python3.12/site-packages/nemos/glm/glm.py:768: RuntimeWarning: The fit did not converge. Consider the following:
1) Enable float64 with ``jax.config.update('jax_enable_x64', True)`` 
2) Increase the max number of iterations or increase tolerance (if reasonable). These parameters can be specified by providing a ``solver_kwargs`` dictionary. For the available options see the ``self.solver.__init__`` docstrings.
  warnings.warn(
predictor area:  67%|██████▋   | 2/3 [00:06<00:03,  3.07s/it]

/home/runner/.local/lib/python3.12/site-packages/nemos/glm/glm.py:768: RuntimeWarning: The fit did not converge. Consider the following:
1) Enable float64 with ``jax.config.update('jax_enable_x64', True)`` 
2) Increase the max number of iterations or increase tolerance (if reasonable). These parameters can be specified by providing a ``solver_kwargs`` dictionary. For the available options see the ``self.solver.__init__`` docstrings.
  warnings.warn(
predictor area: 100%|██████████| 3/3 [00:09<00:00,  3.10s/it]


                                                             

predicted area:  67%|██████▋   | 2/3 [00:18<00:09,  9.31s/it]

predictor area:   0%|          | 0/3 [00:00<?, ?it/s]

/home/runner/.local/lib/python3.12/site-packages/nemos/glm/glm.py:768: RuntimeWarning: The fit did not converge. Consider the following:
1) Enable float64 with ``jax.config.update('jax_enable_x64', True)`` 
2) Increase the max number of iterations or increase tolerance (if reasonable). These parameters can be specified by providing a ``solver_kwargs`` dictionary. For the available options see the ``self.solver.__init__`` docstrings.
  warnings.warn(
predictor area:  33%|███▎      | 1/3 [00:03<00:06,  3.13s/it]

/home/runner/.local/lib/python3.12/site-packages/nemos/glm/glm.py:768: RuntimeWarning: The fit did not converge. Consider the following:
1) Enable float64 with ``jax.config.update('jax_enable_x64', True)`` 
2) Increase the max number of iterations or increase tolerance (if reasonable). These parameters can be specified by providing a ``solver_kwargs`` dictionary. For the available options see the ``self.solver.__init__`` docstrings.
  warnings.warn(
predictor area:  67%|██████▋   | 2/3 [00:06<00:03,  3.35s/it]

/home/runner/.local/lib/python3.12/site-packages/nemos/glm/glm.py:768: RuntimeWarning: The fit did not converge. Consider the following:
1) Enable float64 with ``jax.config.update('jax_enable_x64', True)`` 
2) Increase the max number of iterations or increase tolerance (if reasonable). These parameters can be specified by providing a ``solver_kwargs`` dictionary. For the available options see the ``self.solver.__init__`` docstrings.
  warnings.warn(
predictor area: 100%|██████████| 3/3 [00:09<00:00,  3.25s/it]


                                                             

predicted area: 100%|██████████| 3/3 [00:28<00:00,  9.55s/it]
                                                             

predicted area:   0%|          | 0/3 [00:00<?, ?it/s]

predictor area:   0%|          | 0/3 [00:00<?, ?it/s]

/home/runner/.local/lib/python3.12/site-packages/nemos/glm/glm.py:768: RuntimeWarning: The fit did not converge. Consider the following:
1) Enable float64 with ``jax.config.update('jax_enable_x64', True)`` 
2) Increase the max number of iterations or increase tolerance (if reasonable). These parameters can be specified by providing a ``solver_kwargs`` dictionary. For the available options see the ``self.solver.__init__`` docstrings.
  warnings.warn(

predictor area:  33%|███▎      | 1/3 [00:03<00:07,  3.86s/it]

/home/runner/.local/lib/python3.12/site-packages/nemos/glm/glm.py:768: RuntimeWarning: The fit did not converge. Consider the following:
1) Enable float64 with ``jax.config.update('jax_enable_x64', True)`` 
2) Increase the max number of iterations or increase tolerance (if reasonable). These parameters can be specified by providing a ``solver_kwargs`` dictionary. For the available options see the ``self.solver.__init__`` docstrings.
  warnings.warn(
predictor area:  67%|██████▋   | 2/3 [00:06<00:02,  2.97s/it]

/home/runner/.local/lib/python3.12/site-packages/nemos/glm/glm.py:768: RuntimeWarning: The fit did not converge. Consider the following:
1) Enable float64 with ``jax.config.update('jax_enable_x64', True)`` 
2) Increase the max number of iterations or increase tolerance (if reasonable). These parameters can be specified by providing a ``solver_kwargs`` dictionary. For the available options see the ``self.solver.__init__`` docstrings.
  warnings.warn(
predictor area: 100%|██████████| 3/3 [00:08<00:00,  2.69s/it]


                                                             

predicted area:  33%|███▎      | 1/3 [00:08<00:17,  8.61s/it]

predictor area:   0%|          | 0/3 [00:00<?, ?it/s]

/home/runner/.local/lib/python3.12/site-packages/nemos/glm/glm.py:768: RuntimeWarning: The fit did not converge. Consider the following:
1) Enable float64 with ``jax.config.update('jax_enable_x64', True)`` 
2) Increase the max number of iterations or increase tolerance (if reasonable). These parameters can be specified by providing a ``solver_kwargs`` dictionary. For the available options see the ``self.solver.__init__`` docstrings.
  warnings.warn(
predictor area:  33%|███▎      | 1/3 [00:02<00:04,  2.31s/it]

/home/runner/.local/lib/python3.12/site-packages/nemos/glm/glm.py:768: RuntimeWarning: The fit did not converge. Consider the following:
1) Enable float64 with ``jax.config.update('jax_enable_x64', True)`` 
2) Increase the max number of iterations or increase tolerance (if reasonable). These parameters can be specified by providing a ``solver_kwargs`` dictionary. For the available options see the ``self.solver.__init__`` docstrings.
  warnings.warn(
predictor area:  67%|██████▋   | 2/3 [00:04<00:02,  2.35s/it]

/home/runner/.local/lib/python3.12/site-packages/nemos/glm/glm.py:768: RuntimeWarning: The fit did not converge. Consider the following:
1) Enable float64 with ``jax.config.update('jax_enable_x64', True)`` 
2) Increase the max number of iterations or increase tolerance (if reasonable). These parameters can be specified by providing a ``solver_kwargs`` dictionary. For the available options see the ``self.solver.__init__`` docstrings.
  warnings.warn(
predictor area: 100%|██████████| 3/3 [00:07<00:00,  2.36s/it]


                                                             

predicted area:  67%|██████▋   | 2/3 [00:15<00:07,  7.70s/it]

predictor area:   0%|          | 0/3 [00:00<?, ?it/s]

/home/runner/.local/lib/python3.12/site-packages/nemos/glm/glm.py:768: RuntimeWarning: The fit did not converge. Consider the following:
1) Enable float64 with ``jax.config.update('jax_enable_x64', True)`` 
2) Increase the max number of iterations or increase tolerance (if reasonable). These parameters can be specified by providing a ``solver_kwargs`` dictionary. For the available options see the ``self.solver.__init__`` docstrings.
  warnings.warn(
predictor area:  33%|███▎      | 1/3 [00:02<00:04,  2.35s/it]

/home/runner/.local/lib/python3.12/site-packages/nemos/glm/glm.py:768: RuntimeWarning: The fit did not converge. Consider the following:
1) Enable float64 with ``jax.config.update('jax_enable_x64', True)`` 
2) Increase the max number of iterations or increase tolerance (if reasonable). These parameters can be specified by providing a ``solver_kwargs`` dictionary. For the available options see the ``self.solver.__init__`` docstrings.
  warnings.warn(
predictor area:  67%|██████▋   | 2/3 [00:04<00:02,  2.36s/it]

/home/runner/.local/lib/python3.12/site-packages/nemos/glm/glm.py:768: RuntimeWarning: The fit did not converge. Consider the following:
1) Enable float64 with ``jax.config.update('jax_enable_x64', True)`` 
2) Increase the max number of iterations or increase tolerance (if reasonable). These parameters can be specified by providing a ``solver_kwargs`` dictionary. For the available options see the ``self.solver.__init__`` docstrings.
  warnings.warn(
predictor area: 100%|██████████| 3/3 [00:07<00:00,  2.37s/it]


                                                             

predicted area: 100%|██████████| 3/3 [00:22<00:00,  7.44s/it]
                                                             

predicted area:   0%|          | 0/3 [00:00<?, ?it/s]

predictor area:   0%|          | 0/3 [00:00<?, ?it/s]

/home/runner/.local/lib/python3.12/site-packages/nemos/glm/glm.py:768: RuntimeWarning: The fit did not converge. Consider the following:
1) Enable float64 with ``jax.config.update('jax_enable_x64', True)`` 
2) Increase the max number of iterations or increase tolerance (if reasonable). These parameters can be specified by providing a ``solver_kwargs`` dictionary. For the available options see the ``self.solver.__init__`` docstrings.
  warnings.warn(

predictor area:  33%|███▎      | 1/3 [00:13<00:26, 13.22s/it]

/home/runner/.local/lib/python3.12/site-packages/nemos/glm/glm.py:768: RuntimeWarning: The fit did not converge. Consider the following:
1) Enable float64 with ``jax.config.update('jax_enable_x64', True)`` 
2) Increase the max number of iterations or increase tolerance (if reasonable). These parameters can be specified by providing a ``solver_kwargs`` dictionary. For the available options see the ``self.solver.__init__`` docstrings.
  warnings.warn(
predictor area:  67%|██████▋   | 2/3 [00:22<00:11, 11.07s/it]

/home/runner/.local/lib/python3.12/site-packages/nemos/glm/glm.py:768: RuntimeWarning: The fit did not converge. Consider the following:
1) Enable float64 with ``jax.config.update('jax_enable_x64', True)`` 
2) Increase the max number of iterations or increase tolerance (if reasonable). These parameters can be specified by providing a ``solver_kwargs`` dictionary. For the available options see the ``self.solver.__init__`` docstrings.
  warnings.warn(
predictor area: 100%|██████████| 3/3 [00:32<00:00, 10.39s/it]


                                                             

predicted area:  33%|███▎      | 1/3 [00:32<01:04, 32.47s/it]

predictor area:   0%|          | 0/3 [00:00<?, ?it/s]

/home/runner/.local/lib/python3.12/site-packages/nemos/glm/glm.py:768: RuntimeWarning: The fit did not converge. Consider the following:
1) Enable float64 with ``jax.config.update('jax_enable_x64', True)`` 
2) Increase the max number of iterations or increase tolerance (if reasonable). These parameters can be specified by providing a ``solver_kwargs`` dictionary. For the available options see the ``self.solver.__init__`` docstrings.
  warnings.warn(
predictor area:  33%|███▎      | 1/3 [00:09<00:19,  9.58s/it]

/home/runner/.local/lib/python3.12/site-packages/nemos/glm/glm.py:768: RuntimeWarning: The fit did not converge. Consider the following:
1) Enable float64 with ``jax.config.update('jax_enable_x64', True)`` 
2) Increase the max number of iterations or increase tolerance (if reasonable). These parameters can be specified by providing a ``solver_kwargs`` dictionary. For the available options see the ``self.solver.__init__`` docstrings.
  warnings.warn(
predictor area:  67%|██████▋   | 2/3 [00:19<00:09,  9.61s/it]

/home/runner/.local/lib/python3.12/site-packages/nemos/glm/glm.py:768: RuntimeWarning: The fit did not converge. Consider the following:
1) Enable float64 with ``jax.config.update('jax_enable_x64', True)`` 
2) Increase the max number of iterations or increase tolerance (if reasonable). These parameters can be specified by providing a ``solver_kwargs`` dictionary. For the available options see the ``self.solver.__init__`` docstrings.
  warnings.warn(
predictor area: 100%|██████████| 3/3 [00:28<00:00,  9.60s/it]


                                                             

predicted area:  67%|██████▋   | 2/3 [01:01<00:30, 30.35s/it]

predictor area:   0%|          | 0/3 [00:00<?, ?it/s]

/home/runner/.local/lib/python3.12/site-packages/nemos/glm/glm.py:768: RuntimeWarning: The fit did not converge. Consider the following:
1) Enable float64 with ``jax.config.update('jax_enable_x64', True)`` 
2) Increase the max number of iterations or increase tolerance (if reasonable). These parameters can be specified by providing a ``solver_kwargs`` dictionary. For the available options see the ``self.solver.__init__`` docstrings.
  warnings.warn(
predictor area:  33%|███▎      | 1/3 [00:09<00:19,  9.60s/it]

/home/runner/.local/lib/python3.12/site-packages/nemos/glm/glm.py:768: RuntimeWarning: The fit did not converge. Consider the following:
1) Enable float64 with ``jax.config.update('jax_enable_x64', True)`` 
2) Increase the max number of iterations or increase tolerance (if reasonable). These parameters can be specified by providing a ``solver_kwargs`` dictionary. For the available options see the ``self.solver.__init__`` docstrings.
  warnings.warn(
predictor area:  67%|██████▋   | 2/3 [00:19<00:09,  9.98s/it]

/home/runner/.local/lib/python3.12/site-packages/nemos/glm/glm.py:768: RuntimeWarning: The fit did not converge. Consider the following:
1) Enable float64 with ``jax.config.update('jax_enable_x64', True)`` 
2) Increase the max number of iterations or increase tolerance (if reasonable). These parameters can be specified by providing a ``solver_kwargs`` dictionary. For the available options see the ``self.solver.__init__`` docstrings.
  warnings.warn(
predictor area: 100%|██████████| 3/3 [00:29<00:00,  9.83s/it]


                                                             

predicted area: 100%|██████████| 3/3 [01:30<00:00, 29.99s/it]
                                                             

predicted area:   0%|          | 0/3 [00:00<?, ?it/s]

predictor area:   0%|          | 0/3 [00:00<?, ?it/s]

/home/runner/.local/lib/python3.12/site-packages/nemos/glm/glm.py:768: RuntimeWarning: The fit did not converge. Consider the following:
1) Enable float64 with ``jax.config.update('jax_enable_x64', True)`` 
2) Increase the max number of iterations or increase tolerance (if reasonable). These parameters can be specified by providing a ``solver_kwargs`` dictionary. For the available options see the ``self.solver.__init__`` docstrings.
  warnings.warn(

predictor area:  33%|███▎      | 1/3 [00:10<00:20, 10.15s/it]

/home/runner/.local/lib/python3.12/site-packages/nemos/glm/glm.py:768: RuntimeWarning: The fit did not converge. Consider the following:
1) Enable float64 with ``jax.config.update('jax_enable_x64', True)`` 
2) Increase the max number of iterations or increase tolerance (if reasonable). These parameters can be specified by providing a ``solver_kwargs`` dictionary. For the available options see the ``self.solver.__init__`` docstrings.
  warnings.warn(
predictor area:  67%|██████▋   | 2/3 [00:17<00:08,  8.78s/it]

/home/runner/.local/lib/python3.12/site-packages/nemos/glm/glm.py:768: RuntimeWarning: The fit did not converge. Consider the following:
1) Enable float64 with ``jax.config.update('jax_enable_x64', True)`` 
2) Increase the max number of iterations or increase tolerance (if reasonable). These parameters can be specified by providing a ``solver_kwargs`` dictionary. For the available options see the ``self.solver.__init__`` docstrings.
  warnings.warn(
predictor area: 100%|██████████| 3/3 [00:25<00:00,  8.33s/it]


                                                             

predicted area:  33%|███▎      | 1/3 [00:25<00:51, 25.84s/it]

predictor area:   0%|          | 0/3 [00:00<?, ?it/s]

/home/runner/.local/lib/python3.12/site-packages/nemos/glm/glm.py:768: RuntimeWarning: The fit did not converge. Consider the following:
1) Enable float64 with ``jax.config.update('jax_enable_x64', True)`` 
2) Increase the max number of iterations or increase tolerance (if reasonable). These parameters can be specified by providing a ``solver_kwargs`` dictionary. For the available options see the ``self.solver.__init__`` docstrings.
  warnings.warn(
predictor area:  33%|███▎      | 1/3 [00:07<00:15,  7.93s/it]

/home/runner/.local/lib/python3.12/site-packages/nemos/glm/glm.py:768: RuntimeWarning: The fit did not converge. Consider the following:
1) Enable float64 with ``jax.config.update('jax_enable_x64', True)`` 
2) Increase the max number of iterations or increase tolerance (if reasonable). These parameters can be specified by providing a ``solver_kwargs`` dictionary. For the available options see the ``self.solver.__init__`` docstrings.
  warnings.warn(
predictor area:  67%|██████▋   | 2/3 [00:15<00:07,  7.91s/it]

/home/runner/.local/lib/python3.12/site-packages/nemos/glm/glm.py:768: RuntimeWarning: The fit did not converge. Consider the following:
1) Enable float64 with ``jax.config.update('jax_enable_x64', True)`` 
2) Increase the max number of iterations or increase tolerance (if reasonable). These parameters can be specified by providing a ``solver_kwargs`` dictionary. For the available options see the ``self.solver.__init__`` docstrings.
  warnings.warn(
predictor area: 100%|██████████| 3/3 [00:24<00:00,  8.13s/it]


                                                             

predicted area:  67%|██████▋   | 2/3 [00:50<00:24, 24.92s/it]

predictor area:   0%|          | 0/3 [00:00<?, ?it/s]

/home/runner/.local/lib/python3.12/site-packages/nemos/glm/glm.py:768: RuntimeWarning: The fit did not converge. Consider the following:
1) Enable float64 with ``jax.config.update('jax_enable_x64', True)`` 
2) Increase the max number of iterations or increase tolerance (if reasonable). These parameters can be specified by providing a ``solver_kwargs`` dictionary. For the available options see the ``self.solver.__init__`` docstrings.
  warnings.warn(
predictor area:  33%|███▎      | 1/3 [00:07<00:15,  7.83s/it]

/home/runner/.local/lib/python3.12/site-packages/nemos/glm/glm.py:768: RuntimeWarning: The fit did not converge. Consider the following:
1) Enable float64 with ``jax.config.update('jax_enable_x64', True)`` 
2) Increase the max number of iterations or increase tolerance (if reasonable). These parameters can be specified by providing a ``solver_kwargs`` dictionary. For the available options see the ``self.solver.__init__`` docstrings.
  warnings.warn(
predictor area:  67%|██████▋   | 2/3 [00:15<00:07,  7.88s/it]

/home/runner/.local/lib/python3.12/site-packages/nemos/glm/glm.py:768: RuntimeWarning: The fit did not converge. Consider the following:
1) Enable float64 with ``jax.config.update('jax_enable_x64', True)`` 
2) Increase the max number of iterations or increase tolerance (if reasonable). These parameters can be specified by providing a ``solver_kwargs`` dictionary. For the available options see the ``self.solver.__init__`` docstrings.
  warnings.warn(
predictor area: 100%|██████████| 3/3 [00:23<00:00,  7.87s/it]


                                                             

predicted area: 100%|██████████| 3/3 [01:13<00:00, 24.35s/it]
                                                             

predicted area:   0%|          | 0/3 [00:00<?, ?it/s]

predictor area:   0%|          | 0/3 [00:00<?, ?it/s]

/home/runner/.local/lib/python3.12/site-packages/nemos/glm/glm.py:768: RuntimeWarning: The fit did not converge. Consider the following:
1) Enable float64 with ``jax.config.update('jax_enable_x64', True)`` 
2) Increase the max number of iterations or increase tolerance (if reasonable). These parameters can be specified by providing a ``solver_kwargs`` dictionary. For the available options see the ``self.solver.__init__`` docstrings.
  warnings.warn(

predictor area:  33%|███▎      | 1/3 [00:15<00:31, 15.96s/it]

/home/runner/.local/lib/python3.12/site-packages/nemos/glm/glm.py:768: RuntimeWarning: The fit did not converge. Consider the following:
1) Enable float64 with ``jax.config.update('jax_enable_x64', True)`` 
2) Increase the max number of iterations or increase tolerance (if reasonable). These parameters can be specified by providing a ``solver_kwargs`` dictionary. For the available options see the ``self.solver.__init__`` docstrings.
  warnings.warn(

predictor area:  67%|██████▋   | 2/3 [00:30<00:14, 14.88s/it]

/home/runner/.local/lib/python3.12/site-packages/nemos/glm/glm.py:768: RuntimeWarning: The fit did not converge. Consider the following:
1) Enable float64 with ``jax.config.update('jax_enable_x64', True)`` 
2) Increase the max number of iterations or increase tolerance (if reasonable). These parameters can be specified by providing a ``solver_kwargs`` dictionary. For the available options see the ``self.solver.__init__`` docstrings.
  warnings.warn(

predictor area: 100%|██████████| 3/3 [00:44<00:00, 14.51s/it]


                                                             

predicted area:  33%|███▎      | 1/3 [00:44<01:28, 44.28s/it]

predictor area:   0%|          | 0/3 [00:00<?, ?it/s]

/home/runner/.local/lib/python3.12/site-packages/nemos/glm/glm.py:768: RuntimeWarning: The fit did not converge. Consider the following:
1) Enable float64 with ``jax.config.update('jax_enable_x64', True)`` 
2) Increase the max number of iterations or increase tolerance (if reasonable). These parameters can be specified by providing a ``solver_kwargs`` dictionary. For the available options see the ``self.solver.__init__`` docstrings.
  warnings.warn(

predictor area:  33%|███▎      | 1/3 [00:14<00:28, 14.08s/it]

/home/runner/.local/lib/python3.12/site-packages/nemos/glm/glm.py:768: RuntimeWarning: The fit did not converge. Consider the following:
1) Enable float64 with ``jax.config.update('jax_enable_x64', True)`` 
2) Increase the max number of iterations or increase tolerance (if reasonable). These parameters can be specified by providing a ``solver_kwargs`` dictionary. For the available options see the ``self.solver.__init__`` docstrings.
  warnings.warn(

predictor area:  67%|██████▋   | 2/3 [00:28<00:14, 14.49s/it]

/home/runner/.local/lib/python3.12/site-packages/nemos/glm/glm.py:768: RuntimeWarning: The fit did not converge. Consider the following:
1) Enable float64 with ``jax.config.update('jax_enable_x64', True)`` 
2) Increase the max number of iterations or increase tolerance (if reasonable). These parameters can be specified by providing a ``solver_kwargs`` dictionary. For the available options see the ``self.solver.__init__`` docstrings.
  warnings.warn(

predictor area: 100%|██████████| 3/3 [00:42<00:00, 14.29s/it]


                                                             

predicted area:  67%|██████▋   | 2/3 [01:27<00:43, 43.54s/it]

predictor area:   0%|          | 0/3 [00:00<?, ?it/s]

/home/runner/.local/lib/python3.12/site-packages/nemos/glm/glm.py:768: RuntimeWarning: The fit did not converge. Consider the following:
1) Enable float64 with ``jax.config.update('jax_enable_x64', True)`` 
2) Increase the max number of iterations or increase tolerance (if reasonable). These parameters can be specified by providing a ``solver_kwargs`` dictionary. For the available options see the ``self.solver.__init__`` docstrings.
  warnings.warn(

predictor area:  33%|███▎      | 1/3 [00:14<00:28, 14.15s/it]

/home/runner/.local/lib/python3.12/site-packages/nemos/glm/glm.py:768: RuntimeWarning: The fit did not converge. Consider the following:
1) Enable float64 with ``jax.config.update('jax_enable_x64', True)`` 
2) Increase the max number of iterations or increase tolerance (if reasonable). These parameters can be specified by providing a ``solver_kwargs`` dictionary. For the available options see the ``self.solver.__init__`` docstrings.
  warnings.warn(

predictor area:  67%|██████▋   | 2/3 [00:28<00:14, 14.15s/it]

/home/runner/.local/lib/python3.12/site-packages/nemos/glm/glm.py:768: RuntimeWarning: The fit did not converge. Consider the following:
1) Enable float64 with ``jax.config.update('jax_enable_x64', True)`` 
2) Increase the max number of iterations or increase tolerance (if reasonable). These parameters can be specified by providing a ``solver_kwargs`` dictionary. For the available options see the ``self.solver.__init__`` docstrings.
  warnings.warn(

predictor area: 100%|██████████| 3/3 [00:42<00:00, 14.10s/it]


                                                             

predicted area: 100%|██████████| 3/3 [02:09<00:00, 43.03s/it]
                                                             

predicted area:   0%|          | 0/3 [00:00<?, ?it/s]

predictor area:   0%|          | 0/3 [00:00<?, ?it/s]

/home/runner/.local/lib/python3.12/site-packages/nemos/glm/glm.py:768: RuntimeWarning: The fit did not converge. Consider the following:
1) Enable float64 with ``jax.config.update('jax_enable_x64', True)`` 
2) Increase the max number of iterations or increase tolerance (if reasonable). These parameters can be specified by providing a ``solver_kwargs`` dictionary. For the available options see the ``self.solver.__init__`` docstrings.
  warnings.warn(
predictor area:  33%|███▎      | 1/3 [00:01<00:02,  1.47s/it]

/home/runner/.local/lib/python3.12/site-packages/nemos/glm/glm.py:768: RuntimeWarning: The fit did not converge. Consider the following:
1) Enable float64 with ``jax.config.update('jax_enable_x64', True)`` 
2) Increase the max number of iterations or increase tolerance (if reasonable). These parameters can be specified by providing a ``solver_kwargs`` dictionary. For the available options see the ``self.solver.__init__`` docstrings.
  warnings.warn(
predictor area:  67%|██████▋   | 2/3 [00:02<00:01,  1.44s/it]

/home/runner/.local/lib/python3.12/site-packages/nemos/glm/glm.py:768: RuntimeWarning: The fit did not converge. Consider the following:
1) Enable float64 with ``jax.config.update('jax_enable_x64', True)`` 
2) Increase the max number of iterations or increase tolerance (if reasonable). These parameters can be specified by providing a ``solver_kwargs`` dictionary. For the available options see the ``self.solver.__init__`` docstrings.
  warnings.warn(
predictor area: 100%|██████████| 3/3 [00:04<00:00,  1.43s/it]


                                                             

predicted area:  33%|███▎      | 1/3 [00:04<00:08,  4.35s/it]

predictor area:   0%|          | 0/3 [00:00<?, ?it/s]

/home/runner/.local/lib/python3.12/site-packages/nemos/glm/glm.py:768: RuntimeWarning: The fit did not converge. Consider the following:
1) Enable float64 with ``jax.config.update('jax_enable_x64', True)`` 
2) Increase the max number of iterations or increase tolerance (if reasonable). These parameters can be specified by providing a ``solver_kwargs`` dictionary. For the available options see the ``self.solver.__init__`` docstrings.
  warnings.warn(
predictor area:  33%|███▎      | 1/3 [00:01<00:02,  1.45s/it]

/home/runner/.local/lib/python3.12/site-packages/nemos/glm/glm.py:768: RuntimeWarning: The fit did not converge. Consider the following:
1) Enable float64 with ``jax.config.update('jax_enable_x64', True)`` 
2) Increase the max number of iterations or increase tolerance (if reasonable). These parameters can be specified by providing a ``solver_kwargs`` dictionary. For the available options see the ``self.solver.__init__`` docstrings.
  warnings.warn(
predictor area:  67%|██████▋   | 2/3 [00:02<00:01,  1.46s/it]

/home/runner/.local/lib/python3.12/site-packages/nemos/glm/glm.py:768: RuntimeWarning: The fit did not converge. Consider the following:
1) Enable float64 with ``jax.config.update('jax_enable_x64', True)`` 
2) Increase the max number of iterations or increase tolerance (if reasonable). These parameters can be specified by providing a ``solver_kwargs`` dictionary. For the available options see the ``self.solver.__init__`` docstrings.
  warnings.warn(
predictor area: 100%|██████████| 3/3 [00:04<00:00,  1.40s/it]


                                                             

predicted area:  67%|██████▋   | 2/3 [00:08<00:04,  4.31s/it]

predictor area:   0%|          | 0/3 [00:00<?, ?it/s]

/home/runner/.local/lib/python3.12/site-packages/nemos/glm/glm.py:768: RuntimeWarning: The fit did not converge. Consider the following:
1) Enable float64 with ``jax.config.update('jax_enable_x64', True)`` 
2) Increase the max number of iterations or increase tolerance (if reasonable). These parameters can be specified by providing a ``solver_kwargs`` dictionary. For the available options see the ``self.solver.__init__`` docstrings.
  warnings.warn(
predictor area:  33%|███▎      | 1/3 [00:01<00:02,  1.38s/it]

/home/runner/.local/lib/python3.12/site-packages/nemos/glm/glm.py:768: RuntimeWarning: The fit did not converge. Consider the following:
1) Enable float64 with ``jax.config.update('jax_enable_x64', True)`` 
2) Increase the max number of iterations or increase tolerance (if reasonable). These parameters can be specified by providing a ``solver_kwargs`` dictionary. For the available options see the ``self.solver.__init__`` docstrings.
  warnings.warn(
predictor area:  67%|██████▋   | 2/3 [00:02<00:01,  1.40s/it]

/home/runner/.local/lib/python3.12/site-packages/nemos/glm/glm.py:768: RuntimeWarning: The fit did not converge. Consider the following:
1) Enable float64 with ``jax.config.update('jax_enable_x64', True)`` 
2) Increase the max number of iterations or increase tolerance (if reasonable). These parameters can be specified by providing a ``solver_kwargs`` dictionary. For the available options see the ``self.solver.__init__`` docstrings.
  warnings.warn(
predictor area: 100%|██████████| 3/3 [00:04<00:00,  1.40s/it]


                                                             

predicted area: 100%|██████████| 3/3 [00:12<00:00,  4.27s/it]
                                                             

predicted area:   0%|          | 0/3 [00:00<?, ?it/s]

predictor area:   0%|          | 0/3 [00:00<?, ?it/s]

/home/runner/.local/lib/python3.12/site-packages/nemos/glm/glm.py:768: RuntimeWarning: The fit did not converge. Consider the following:
1) Enable float64 with ``jax.config.update('jax_enable_x64', True)`` 
2) Increase the max number of iterations or increase tolerance (if reasonable). These parameters can be specified by providing a ``solver_kwargs`` dictionary. For the available options see the ``self.solver.__init__`` docstrings.
  warnings.warn(

predictor area:  33%|███▎      | 1/3 [00:06<00:12,  6.04s/it]

/home/runner/.local/lib/python3.12/site-packages/nemos/glm/glm.py:768: RuntimeWarning: The fit did not converge. Consider the following:
1) Enable float64 with ``jax.config.update('jax_enable_x64', True)`` 
2) Increase the max number of iterations or increase tolerance (if reasonable). These parameters can be specified by providing a ``solver_kwargs`` dictionary. For the available options see the ``self.solver.__init__`` docstrings.
  warnings.warn(
predictor area:  67%|██████▋   | 2/3 [00:11<00:05,  5.74s/it]

/home/runner/.local/lib/python3.12/site-packages/nemos/glm/glm.py:768: RuntimeWarning: The fit did not converge. Consider the following:
1) Enable float64 with ``jax.config.update('jax_enable_x64', True)`` 
2) Increase the max number of iterations or increase tolerance (if reasonable). These parameters can be specified by providing a ``solver_kwargs`` dictionary. For the available options see the ``self.solver.__init__`` docstrings.
  warnings.warn(
predictor area: 100%|██████████| 3/3 [00:16<00:00,  5.30s/it]


                                                             

predicted area:  33%|███▎      | 1/3 [00:16<00:32, 16.38s/it]

predictor area:   0%|          | 0/3 [00:00<?, ?it/s]

/home/runner/.local/lib/python3.12/site-packages/nemos/glm/glm.py:768: RuntimeWarning: The fit did not converge. Consider the following:
1) Enable float64 with ``jax.config.update('jax_enable_x64', True)`` 
2) Increase the max number of iterations or increase tolerance (if reasonable). These parameters can be specified by providing a ``solver_kwargs`` dictionary. For the available options see the ``self.solver.__init__`` docstrings.
  warnings.warn(
predictor area:  33%|███▎      | 1/3 [00:04<00:08,  4.49s/it]

/home/runner/.local/lib/python3.12/site-packages/nemos/glm/glm.py:768: RuntimeWarning: The fit did not converge. Consider the following:
1) Enable float64 with ``jax.config.update('jax_enable_x64', True)`` 
2) Increase the max number of iterations or increase tolerance (if reasonable). These parameters can be specified by providing a ``solver_kwargs`` dictionary. For the available options see the ``self.solver.__init__`` docstrings.
  warnings.warn(
predictor area:  67%|██████▋   | 2/3 [00:09<00:04,  4.59s/it]

/home/runner/.local/lib/python3.12/site-packages/nemos/glm/glm.py:768: RuntimeWarning: The fit did not converge. Consider the following:
1) Enable float64 with ``jax.config.update('jax_enable_x64', True)`` 
2) Increase the max number of iterations or increase tolerance (if reasonable). These parameters can be specified by providing a ``solver_kwargs`` dictionary. For the available options see the ``self.solver.__init__`` docstrings.
  warnings.warn(
predictor area: 100%|██████████| 3/3 [00:13<00:00,  4.70s/it]


                                                             

predicted area:  67%|██████▋   | 2/3 [00:30<00:14, 14.99s/it]

predictor area:   0%|          | 0/3 [00:00<?, ?it/s]

/home/runner/.local/lib/python3.12/site-packages/nemos/glm/glm.py:768: RuntimeWarning: The fit did not converge. Consider the following:
1) Enable float64 with ``jax.config.update('jax_enable_x64', True)`` 
2) Increase the max number of iterations or increase tolerance (if reasonable). These parameters can be specified by providing a ``solver_kwargs`` dictionary. For the available options see the ``self.solver.__init__`` docstrings.
  warnings.warn(
predictor area:  33%|███▎      | 1/3 [00:04<00:08,  4.19s/it]

/home/runner/.local/lib/python3.12/site-packages/nemos/glm/glm.py:768: RuntimeWarning: The fit did not converge. Consider the following:
1) Enable float64 with ``jax.config.update('jax_enable_x64', True)`` 
2) Increase the max number of iterations or increase tolerance (if reasonable). These parameters can be specified by providing a ``solver_kwargs`` dictionary. For the available options see the ``self.solver.__init__`` docstrings.
  warnings.warn(
predictor area:  67%|██████▋   | 2/3 [00:08<00:04,  4.51s/it]

/home/runner/.local/lib/python3.12/site-packages/nemos/glm/glm.py:768: RuntimeWarning: The fit did not converge. Consider the following:
1) Enable float64 with ``jax.config.update('jax_enable_x64', True)`` 
2) Increase the max number of iterations or increase tolerance (if reasonable). These parameters can be specified by providing a ``solver_kwargs`` dictionary. For the available options see the ``self.solver.__init__`` docstrings.
  warnings.warn(
predictor area: 100%|██████████| 3/3 [00:13<00:00,  4.58s/it]


                                                             

predicted area: 100%|██████████| 3/3 [00:44<00:00, 14.38s/it]
                                                             

predicted area:   0%|          | 0/3 [00:00<?, ?it/s]

predictor area:   0%|          | 0/3 [00:00<?, ?it/s]

/home/runner/.local/lib/python3.12/site-packages/nemos/glm/glm.py:768: RuntimeWarning: The fit did not converge. Consider the following:
1) Enable float64 with ``jax.config.update('jax_enable_x64', True)`` 
2) Increase the max number of iterations or increase tolerance (if reasonable). These parameters can be specified by providing a ``solver_kwargs`` dictionary. For the available options see the ``self.solver.__init__`` docstrings.
  warnings.warn(

predictor area:  33%|███▎      | 1/3 [00:04<00:09,  4.62s/it]

/home/runner/.local/lib/python3.12/site-packages/nemos/glm/glm.py:768: RuntimeWarning: The fit did not converge. Consider the following:
1) Enable float64 with ``jax.config.update('jax_enable_x64', True)`` 
2) Increase the max number of iterations or increase tolerance (if reasonable). These parameters can be specified by providing a ``solver_kwargs`` dictionary. For the available options see the ``self.solver.__init__`` docstrings.
  warnings.warn(
predictor area:  67%|██████▋   | 2/3 [00:07<00:03,  3.60s/it]

/home/runner/.local/lib/python3.12/site-packages/nemos/glm/glm.py:768: RuntimeWarning: The fit did not converge. Consider the following:
1) Enable float64 with ``jax.config.update('jax_enable_x64', True)`` 
2) Increase the max number of iterations or increase tolerance (if reasonable). These parameters can be specified by providing a ``solver_kwargs`` dictionary. For the available options see the ``self.solver.__init__`` docstrings.
  warnings.warn(
predictor area: 100%|██████████| 3/3 [00:10<00:00,  3.30s/it]


                                                             

predicted area:  33%|███▎      | 1/3 [00:10<00:21, 10.50s/it]

predictor area:   0%|          | 0/3 [00:00<?, ?it/s]

/home/runner/.local/lib/python3.12/site-packages/nemos/glm/glm.py:768: RuntimeWarning: The fit did not converge. Consider the following:
1) Enable float64 with ``jax.config.update('jax_enable_x64', True)`` 
2) Increase the max number of iterations or increase tolerance (if reasonable). These parameters can be specified by providing a ``solver_kwargs`` dictionary. For the available options see the ``self.solver.__init__`` docstrings.
  warnings.warn(
predictor area:  33%|███▎      | 1/3 [00:02<00:05,  2.98s/it]

/home/runner/.local/lib/python3.12/site-packages/nemos/glm/glm.py:768: RuntimeWarning: The fit did not converge. Consider the following:
1) Enable float64 with ``jax.config.update('jax_enable_x64', True)`` 
2) Increase the max number of iterations or increase tolerance (if reasonable). These parameters can be specified by providing a ``solver_kwargs`` dictionary. For the available options see the ``self.solver.__init__`` docstrings.
  warnings.warn(
predictor area:  67%|██████▋   | 2/3 [00:05<00:02,  2.94s/it]

/home/runner/.local/lib/python3.12/site-packages/nemos/glm/glm.py:768: RuntimeWarning: The fit did not converge. Consider the following:
1) Enable float64 with ``jax.config.update('jax_enable_x64', True)`` 
2) Increase the max number of iterations or increase tolerance (if reasonable). These parameters can be specified by providing a ``solver_kwargs`` dictionary. For the available options see the ``self.solver.__init__`` docstrings.
  warnings.warn(
predictor area: 100%|██████████| 3/3 [00:08<00:00,  2.93s/it]


                                                             

predicted area:  67%|██████▋   | 2/3 [00:19<00:09,  9.52s/it]

predictor area:   0%|          | 0/3 [00:00<?, ?it/s]

/home/runner/.local/lib/python3.12/site-packages/nemos/glm/glm.py:768: RuntimeWarning: The fit did not converge. Consider the following:
1) Enable float64 with ``jax.config.update('jax_enable_x64', True)`` 
2) Increase the max number of iterations or increase tolerance (if reasonable). These parameters can be specified by providing a ``solver_kwargs`` dictionary. For the available options see the ``self.solver.__init__`` docstrings.
  warnings.warn(
predictor area:  33%|███▎      | 1/3 [00:02<00:05,  2.94s/it]

/home/runner/.local/lib/python3.12/site-packages/nemos/glm/glm.py:768: RuntimeWarning: The fit did not converge. Consider the following:
1) Enable float64 with ``jax.config.update('jax_enable_x64', True)`` 
2) Increase the max number of iterations or increase tolerance (if reasonable). These parameters can be specified by providing a ``solver_kwargs`` dictionary. For the available options see the ``self.solver.__init__`` docstrings.
  warnings.warn(
predictor area:  67%|██████▋   | 2/3 [00:05<00:02,  2.96s/it]

/home/runner/.local/lib/python3.12/site-packages/nemos/glm/glm.py:768: RuntimeWarning: The fit did not converge. Consider the following:
1) Enable float64 with ``jax.config.update('jax_enable_x64', True)`` 
2) Increase the max number of iterations or increase tolerance (if reasonable). These parameters can be specified by providing a ``solver_kwargs`` dictionary. For the available options see the ``self.solver.__init__`` docstrings.
  warnings.warn(
predictor area: 100%|██████████| 3/3 [00:08<00:00,  2.90s/it]


                                                             

predicted area: 100%|██████████| 3/3 [00:28<00:00,  9.18s/it]
                                                             

predicted area:   0%|          | 0/3 [00:00<?, ?it/s]

predictor area:   0%|          | 0/3 [00:00<?, ?it/s]

/home/runner/.local/lib/python3.12/site-packages/nemos/glm/glm.py:768: RuntimeWarning: The fit did not converge. Consider the following:
1) Enable float64 with ``jax.config.update('jax_enable_x64', True)`` 
2) Increase the max number of iterations or increase tolerance (if reasonable). These parameters can be specified by providing a ``solver_kwargs`` dictionary. For the available options see the ``self.solver.__init__`` docstrings.
  warnings.warn(

predictor area:  33%|███▎      | 1/3 [00:06<00:12,  6.37s/it]

/home/runner/.local/lib/python3.12/site-packages/nemos/glm/glm.py:768: RuntimeWarning: The fit did not converge. Consider the following:
1) Enable float64 with ``jax.config.update('jax_enable_x64', True)`` 
2) Increase the max number of iterations or increase tolerance (if reasonable). These parameters can be specified by providing a ``solver_kwargs`` dictionary. For the available options see the ``self.solver.__init__`` docstrings.
  warnings.warn(
predictor area:  67%|██████▋   | 2/3 [00:12<00:06,  6.17s/it]

/home/runner/.local/lib/python3.12/site-packages/nemos/glm/glm.py:768: RuntimeWarning: The fit did not converge. Consider the following:
1) Enable float64 with ``jax.config.update('jax_enable_x64', True)`` 
2) Increase the max number of iterations or increase tolerance (if reasonable). These parameters can be specified by providing a ``solver_kwargs`` dictionary. For the available options see the ``self.solver.__init__`` docstrings.
  warnings.warn(
predictor area: 100%|██████████| 3/3 [00:16<00:00,  5.36s/it]


                                                             

predicted area:  33%|███▎      | 1/3 [00:16<00:33, 16.88s/it]

predictor area:   0%|          | 0/3 [00:00<?, ?it/s]

/home/runner/.local/lib/python3.12/site-packages/nemos/glm/glm.py:768: RuntimeWarning: The fit did not converge. Consider the following:
1) Enable float64 with ``jax.config.update('jax_enable_x64', True)`` 
2) Increase the max number of iterations or increase tolerance (if reasonable). These parameters can be specified by providing a ``solver_kwargs`` dictionary. For the available options see the ``self.solver.__init__`` docstrings.
  warnings.warn(
predictor area:  33%|███▎      | 1/3 [00:05<00:10,  5.22s/it]

/home/runner/.local/lib/python3.12/site-packages/nemos/glm/glm.py:768: RuntimeWarning: The fit did not converge. Consider the following:
1) Enable float64 with ``jax.config.update('jax_enable_x64', True)`` 
2) Increase the max number of iterations or increase tolerance (if reasonable). These parameters can be specified by providing a ``solver_kwargs`` dictionary. For the available options see the ``self.solver.__init__`` docstrings.
  warnings.warn(
predictor area:  67%|██████▋   | 2/3 [00:10<00:05,  5.17s/it]

/home/runner/.local/lib/python3.12/site-packages/nemos/glm/glm.py:768: RuntimeWarning: The fit did not converge. Consider the following:
1) Enable float64 with ``jax.config.update('jax_enable_x64', True)`` 
2) Increase the max number of iterations or increase tolerance (if reasonable). These parameters can be specified by providing a ``solver_kwargs`` dictionary. For the available options see the ``self.solver.__init__`` docstrings.
  warnings.warn(
predictor area: 100%|██████████| 3/3 [00:15<00:00,  5.15s/it]


                                                             

predicted area:  67%|██████▋   | 2/3 [00:32<00:16, 16.08s/it]

predictor area:   0%|          | 0/3 [00:00<?, ?it/s]

/home/runner/.local/lib/python3.12/site-packages/nemos/glm/glm.py:768: RuntimeWarning: The fit did not converge. Consider the following:
1) Enable float64 with ``jax.config.update('jax_enable_x64', True)`` 
2) Increase the max number of iterations or increase tolerance (if reasonable). These parameters can be specified by providing a ``solver_kwargs`` dictionary. For the available options see the ``self.solver.__init__`` docstrings.
  warnings.warn(
predictor area:  33%|███▎      | 1/3 [00:04<00:09,  4.98s/it]

/home/runner/.local/lib/python3.12/site-packages/nemos/glm/glm.py:768: RuntimeWarning: The fit did not converge. Consider the following:
1) Enable float64 with ``jax.config.update('jax_enable_x64', True)`` 
2) Increase the max number of iterations or increase tolerance (if reasonable). These parameters can be specified by providing a ``solver_kwargs`` dictionary. For the available options see the ``self.solver.__init__`` docstrings.
  warnings.warn(
predictor area:  67%|██████▋   | 2/3 [00:10<00:05,  5.14s/it]

/home/runner/.local/lib/python3.12/site-packages/nemos/glm/glm.py:768: RuntimeWarning: The fit did not converge. Consider the following:
1) Enable float64 with ``jax.config.update('jax_enable_x64', True)`` 
2) Increase the max number of iterations or increase tolerance (if reasonable). These parameters can be specified by providing a ``solver_kwargs`` dictionary. For the available options see the ``self.solver.__init__`` docstrings.
  warnings.warn(
predictor area: 100%|██████████| 3/3 [00:14<00:00,  4.96s/it]


                                                             

predicted area: 100%|██████████| 3/3 [00:47<00:00, 15.59s/it]
                                                             

predicted area:   0%|          | 0/3 [00:00<?, ?it/s]

predictor area:   0%|          | 0/3 [00:00<?, ?it/s]

/home/runner/.local/lib/python3.12/site-packages/nemos/glm/glm.py:768: RuntimeWarning: The fit did not converge. Consider the following:
1) Enable float64 with ``jax.config.update('jax_enable_x64', True)`` 
2) Increase the max number of iterations or increase tolerance (if reasonable). These parameters can be specified by providing a ``solver_kwargs`` dictionary. For the available options see the ``self.solver.__init__`` docstrings.
  warnings.warn(

predictor area:  33%|███▎      | 1/3 [00:03<00:07,  3.69s/it]

/home/runner/.local/lib/python3.12/site-packages/nemos/glm/glm.py:768: RuntimeWarning: The fit did not converge. Consider the following:
1) Enable float64 with ``jax.config.update('jax_enable_x64', True)`` 
2) Increase the max number of iterations or increase tolerance (if reasonable). These parameters can be specified by providing a ``solver_kwargs`` dictionary. For the available options see the ``self.solver.__init__`` docstrings.
  warnings.warn(
predictor area:  67%|██████▋   | 2/3 [00:05<00:02,  2.77s/it]

/home/runner/.local/lib/python3.12/site-packages/nemos/glm/glm.py:768: RuntimeWarning: The fit did not converge. Consider the following:
1) Enable float64 with ``jax.config.update('jax_enable_x64', True)`` 
2) Increase the max number of iterations or increase tolerance (if reasonable). These parameters can be specified by providing a ``solver_kwargs`` dictionary. For the available options see the ``self.solver.__init__`` docstrings.
  warnings.warn(
predictor area: 100%|██████████| 3/3 [00:07<00:00,  2.46s/it]


                                                             

predicted area:  33%|███▎      | 1/3 [00:07<00:15,  7.93s/it]

predictor area:   0%|          | 0/3 [00:00<?, ?it/s]

/home/runner/.local/lib/python3.12/site-packages/nemos/glm/glm.py:768: RuntimeWarning: The fit did not converge. Consider the following:
1) Enable float64 with ``jax.config.update('jax_enable_x64', True)`` 
2) Increase the max number of iterations or increase tolerance (if reasonable). These parameters can be specified by providing a ``solver_kwargs`` dictionary. For the available options see the ``self.solver.__init__`` docstrings.
  warnings.warn(
predictor area:  33%|███▎      | 1/3 [00:02<00:04,  2.13s/it]

/home/runner/.local/lib/python3.12/site-packages/nemos/glm/glm.py:768: RuntimeWarning: The fit did not converge. Consider the following:
1) Enable float64 with ``jax.config.update('jax_enable_x64', True)`` 
2) Increase the max number of iterations or increase tolerance (if reasonable). These parameters can be specified by providing a ``solver_kwargs`` dictionary. For the available options see the ``self.solver.__init__`` docstrings.
  warnings.warn(
predictor area:  67%|██████▋   | 2/3 [00:04<00:02,  2.09s/it]

/home/runner/.local/lib/python3.12/site-packages/nemos/glm/glm.py:768: RuntimeWarning: The fit did not converge. Consider the following:
1) Enable float64 with ``jax.config.update('jax_enable_x64', True)`` 
2) Increase the max number of iterations or increase tolerance (if reasonable). These parameters can be specified by providing a ``solver_kwargs`` dictionary. For the available options see the ``self.solver.__init__`` docstrings.
  warnings.warn(
predictor area: 100%|██████████| 3/3 [00:06<00:00,  2.11s/it]


                                                             

predicted area:  67%|██████▋   | 2/3 [00:14<00:07,  7.00s/it]

predictor area:   0%|          | 0/3 [00:00<?, ?it/s]

/home/runner/.local/lib/python3.12/site-packages/nemos/glm/glm.py:768: RuntimeWarning: The fit did not converge. Consider the following:
1) Enable float64 with ``jax.config.update('jax_enable_x64', True)`` 
2) Increase the max number of iterations or increase tolerance (if reasonable). These parameters can be specified by providing a ``solver_kwargs`` dictionary. For the available options see the ``self.solver.__init__`` docstrings.
  warnings.warn(
predictor area:  33%|███▎      | 1/3 [00:02<00:04,  2.17s/it]

/home/runner/.local/lib/python3.12/site-packages/nemos/glm/glm.py:768: RuntimeWarning: The fit did not converge. Consider the following:
1) Enable float64 with ``jax.config.update('jax_enable_x64', True)`` 
2) Increase the max number of iterations or increase tolerance (if reasonable). These parameters can be specified by providing a ``solver_kwargs`` dictionary. For the available options see the ``self.solver.__init__`` docstrings.
  warnings.warn(
predictor area:  67%|██████▋   | 2/3 [00:04<00:02,  2.16s/it]

/home/runner/.local/lib/python3.12/site-packages/nemos/glm/glm.py:768: RuntimeWarning: The fit did not converge. Consider the following:
1) Enable float64 with ``jax.config.update('jax_enable_x64', True)`` 
2) Increase the max number of iterations or increase tolerance (if reasonable). These parameters can be specified by providing a ``solver_kwargs`` dictionary. For the available options see the ``self.solver.__init__`` docstrings.
  warnings.warn(
predictor area: 100%|██████████| 3/3 [00:06<00:00,  2.14s/it]


                                                             

predicted area: 100%|██████████| 3/3 [00:20<00:00,  6.75s/it]
                                                             

predicted area:   0%|          | 0/3 [00:00<?, ?it/s]

predictor area:   0%|          | 0/3 [00:00<?, ?it/s]

/home/runner/.local/lib/python3.12/site-packages/nemos/glm/glm.py:768: RuntimeWarning: The fit did not converge. Consider the following:
1) Enable float64 with ``jax.config.update('jax_enable_x64', True)`` 
2) Increase the max number of iterations or increase tolerance (if reasonable). These parameters can be specified by providing a ``solver_kwargs`` dictionary. For the available options see the ``self.solver.__init__`` docstrings.
  warnings.warn(
predictor area:  33%|███▎      | 1/3 [00:04<00:08,  4.06s/it]

/home/runner/.local/lib/python3.12/site-packages/nemos/glm/glm.py:768: RuntimeWarning: The fit did not converge. Consider the following:
1) Enable float64 with ``jax.config.update('jax_enable_x64', True)`` 
2) Increase the max number of iterations or increase tolerance (if reasonable). These parameters can be specified by providing a ``solver_kwargs`` dictionary. For the available options see the ``self.solver.__init__`` docstrings.
  warnings.warn(
predictor area:  67%|██████▋   | 2/3 [00:08<00:04,  4.45s/it]

/home/runner/.local/lib/python3.12/site-packages/nemos/glm/glm.py:768: RuntimeWarning: The fit did not converge. Consider the following:
1) Enable float64 with ``jax.config.update('jax_enable_x64', True)`` 
2) Increase the max number of iterations or increase tolerance (if reasonable). These parameters can be specified by providing a ``solver_kwargs`` dictionary. For the available options see the ``self.solver.__init__`` docstrings.
  warnings.warn(
predictor area: 100%|██████████| 3/3 [00:13<00:00,  4.59s/it]


                                                             

predicted area:  33%|███▎      | 1/3 [00:13<00:27, 13.57s/it]

predictor area:   0%|          | 0/3 [00:00<?, ?it/s]

/home/runner/.local/lib/python3.12/site-packages/nemos/glm/glm.py:768: RuntimeWarning: The fit did not converge. Consider the following:
1) Enable float64 with ``jax.config.update('jax_enable_x64', True)`` 
2) Increase the max number of iterations or increase tolerance (if reasonable). These parameters can be specified by providing a ``solver_kwargs`` dictionary. For the available options see the ``self.solver.__init__`` docstrings.
  warnings.warn(
predictor area:  33%|███▎      | 1/3 [00:04<00:08,  4.36s/it]

/home/runner/.local/lib/python3.12/site-packages/nemos/glm/glm.py:768: RuntimeWarning: The fit did not converge. Consider the following:
1) Enable float64 with ``jax.config.update('jax_enable_x64', True)`` 
2) Increase the max number of iterations or increase tolerance (if reasonable). These parameters can be specified by providing a ``solver_kwargs`` dictionary. For the available options see the ``self.solver.__init__`` docstrings.
  warnings.warn(
predictor area:  67%|██████▋   | 2/3 [00:09<00:04,  4.59s/it]

/home/runner/.local/lib/python3.12/site-packages/nemos/glm/glm.py:768: RuntimeWarning: The fit did not converge. Consider the following:
1) Enable float64 with ``jax.config.update('jax_enable_x64', True)`` 
2) Increase the max number of iterations or increase tolerance (if reasonable). These parameters can be specified by providing a ``solver_kwargs`` dictionary. For the available options see the ``self.solver.__init__`` docstrings.
  warnings.warn(
predictor area: 100%|██████████| 3/3 [00:15<00:00,  5.18s/it]


                                                             

predicted area:  67%|██████▋   | 2/3 [00:28<00:14, 14.43s/it]

predictor area:   0%|          | 0/3 [00:00<?, ?it/s]

/home/runner/.local/lib/python3.12/site-packages/nemos/glm/glm.py:768: RuntimeWarning: The fit did not converge. Consider the following:
1) Enable float64 with ``jax.config.update('jax_enable_x64', True)`` 
2) Increase the max number of iterations or increase tolerance (if reasonable). These parameters can be specified by providing a ``solver_kwargs`` dictionary. For the available options see the ``self.solver.__init__`` docstrings.
  warnings.warn(
predictor area:  33%|███▎      | 1/3 [00:04<00:08,  4.15s/it]

/home/runner/.local/lib/python3.12/site-packages/nemos/glm/glm.py:768: RuntimeWarning: The fit did not converge. Consider the following:
1) Enable float64 with ``jax.config.update('jax_enable_x64', True)`` 
2) Increase the max number of iterations or increase tolerance (if reasonable). These parameters can be specified by providing a ``solver_kwargs`` dictionary. For the available options see the ``self.solver.__init__`` docstrings.
  warnings.warn(
predictor area:  67%|██████▋   | 2/3 [00:08<00:04,  4.54s/it]

/home/runner/.local/lib/python3.12/site-packages/nemos/glm/glm.py:768: RuntimeWarning: The fit did not converge. Consider the following:
1) Enable float64 with ``jax.config.update('jax_enable_x64', True)`` 
2) Increase the max number of iterations or increase tolerance (if reasonable). These parameters can be specified by providing a ``solver_kwargs`` dictionary. For the available options see the ``self.solver.__init__`` docstrings.
  warnings.warn(
predictor area: 100%|██████████| 3/3 [00:13<00:00,  4.61s/it]


                                                             

predicted area: 100%|██████████| 3/3 [00:42<00:00, 14.10s/it]
                                                             

predicted area:   0%|          | 0/3 [00:00<?, ?it/s]

predictor area:   0%|          | 0/3 [00:00<?, ?it/s]

/home/runner/.local/lib/python3.12/site-packages/nemos/glm/glm.py:768: RuntimeWarning: The fit did not converge. Consider the following:
1) Enable float64 with ``jax.config.update('jax_enable_x64', True)`` 
2) Increase the max number of iterations or increase tolerance (if reasonable). These parameters can be specified by providing a ``solver_kwargs`` dictionary. For the available options see the ``self.solver.__init__`` docstrings.
  warnings.warn(
predictor area:  33%|███▎      | 1/3 [00:02<00:05,  2.51s/it]

/home/runner/.local/lib/python3.12/site-packages/nemos/glm/glm.py:768: RuntimeWarning: The fit did not converge. Consider the following:
1) Enable float64 with ``jax.config.update('jax_enable_x64', True)`` 
2) Increase the max number of iterations or increase tolerance (if reasonable). These parameters can be specified by providing a ``solver_kwargs`` dictionary. For the available options see the ``self.solver.__init__`` docstrings.
  warnings.warn(
predictor area:  67%|██████▋   | 2/3 [00:04<00:02,  2.26s/it]

/home/runner/.local/lib/python3.12/site-packages/nemos/glm/glm.py:768: RuntimeWarning: The fit did not converge. Consider the following:
1) Enable float64 with ``jax.config.update('jax_enable_x64', True)`` 
2) Increase the max number of iterations or increase tolerance (if reasonable). These parameters can be specified by providing a ``solver_kwargs`` dictionary. For the available options see the ``self.solver.__init__`` docstrings.
  warnings.warn(
predictor area: 100%|██████████| 3/3 [00:06<00:00,  2.17s/it]


                                                             

predicted area:  33%|███▎      | 1/3 [00:06<00:13,  6.74s/it]

predictor area:   0%|          | 0/3 [00:00<?, ?it/s]

/home/runner/.local/lib/python3.12/site-packages/nemos/glm/glm.py:768: RuntimeWarning: The fit did not converge. Consider the following:
1) Enable float64 with ``jax.config.update('jax_enable_x64', True)`` 
2) Increase the max number of iterations or increase tolerance (if reasonable). These parameters can be specified by providing a ``solver_kwargs`` dictionary. For the available options see the ``self.solver.__init__`` docstrings.
  warnings.warn(
predictor area:  33%|███▎      | 1/3 [00:02<00:04,  2.20s/it]

/home/runner/.local/lib/python3.12/site-packages/nemos/glm/glm.py:768: RuntimeWarning: The fit did not converge. Consider the following:
1) Enable float64 with ``jax.config.update('jax_enable_x64', True)`` 
2) Increase the max number of iterations or increase tolerance (if reasonable). These parameters can be specified by providing a ``solver_kwargs`` dictionary. For the available options see the ``self.solver.__init__`` docstrings.
  warnings.warn(
predictor area:  67%|██████▋   | 2/3 [00:04<00:02,  2.16s/it]

/home/runner/.local/lib/python3.12/site-packages/nemos/glm/glm.py:768: RuntimeWarning: The fit did not converge. Consider the following:
1) Enable float64 with ``jax.config.update('jax_enable_x64', True)`` 
2) Increase the max number of iterations or increase tolerance (if reasonable). These parameters can be specified by providing a ``solver_kwargs`` dictionary. For the available options see the ``self.solver.__init__`` docstrings.
  warnings.warn(
predictor area: 100%|██████████| 3/3 [00:06<00:00,  2.12s/it]


                                                             

predicted area:  67%|██████▋   | 2/3 [00:13<00:06,  6.56s/it]

predictor area:   0%|          | 0/3 [00:00<?, ?it/s]

/home/runner/.local/lib/python3.12/site-packages/nemos/glm/glm.py:768: RuntimeWarning: The fit did not converge. Consider the following:
1) Enable float64 with ``jax.config.update('jax_enable_x64', True)`` 
2) Increase the max number of iterations or increase tolerance (if reasonable). These parameters can be specified by providing a ``solver_kwargs`` dictionary. For the available options see the ``self.solver.__init__`` docstrings.
  warnings.warn(
predictor area:  33%|███▎      | 1/3 [00:02<00:04,  2.21s/it]

/home/runner/.local/lib/python3.12/site-packages/nemos/glm/glm.py:768: RuntimeWarning: The fit did not converge. Consider the following:
1) Enable float64 with ``jax.config.update('jax_enable_x64', True)`` 
2) Increase the max number of iterations or increase tolerance (if reasonable). These parameters can be specified by providing a ``solver_kwargs`` dictionary. For the available options see the ``self.solver.__init__`` docstrings.
  warnings.warn(
predictor area:  67%|██████▋   | 2/3 [00:04<00:02,  2.15s/it]

/home/runner/.local/lib/python3.12/site-packages/nemos/glm/glm.py:768: RuntimeWarning: The fit did not converge. Consider the following:
1) Enable float64 with ``jax.config.update('jax_enable_x64', True)`` 
2) Increase the max number of iterations or increase tolerance (if reasonable). These parameters can be specified by providing a ``solver_kwargs`` dictionary. For the available options see the ``self.solver.__init__`` docstrings.
  warnings.warn(
predictor area: 100%|██████████| 3/3 [00:06<00:00,  2.14s/it]


                                                             

predicted area: 100%|██████████| 3/3 [00:19<00:00,  6.53s/it]
                                                             

predicted area:   0%|          | 0/3 [00:00<?, ?it/s]

predictor area:   0%|          | 0/3 [00:00<?, ?it/s]

/home/runner/.local/lib/python3.12/site-packages/nemos/glm/glm.py:768: RuntimeWarning: The fit did not converge. Consider the following:
1) Enable float64 with ``jax.config.update('jax_enable_x64', True)`` 
2) Increase the max number of iterations or increase tolerance (if reasonable). These parameters can be specified by providing a ``solver_kwargs`` dictionary. For the available options see the ``self.solver.__init__`` docstrings.
  warnings.warn(

predictor area:  33%|███▎      | 1/3 [00:10<00:20, 10.19s/it]

/home/runner/.local/lib/python3.12/site-packages/nemos/glm/glm.py:768: RuntimeWarning: The fit did not converge. Consider the following:
1) Enable float64 with ``jax.config.update('jax_enable_x64', True)`` 
2) Increase the max number of iterations or increase tolerance (if reasonable). These parameters can be specified by providing a ``solver_kwargs`` dictionary. For the available options see the ``self.solver.__init__`` docstrings.
  warnings.warn(
predictor area:  67%|██████▋   | 2/3 [00:19<00:09,  9.87s/it]

/home/runner/.local/lib/python3.12/site-packages/nemos/glm/glm.py:768: RuntimeWarning: The fit did not converge. Consider the following:
1) Enable float64 with ``jax.config.update('jax_enable_x64', True)`` 
2) Increase the max number of iterations or increase tolerance (if reasonable). These parameters can be specified by providing a ``solver_kwargs`` dictionary. For the available options see the ``self.solver.__init__`` docstrings.
  warnings.warn(
predictor area: 100%|██████████| 3/3 [00:29<00:00,  9.76s/it]


                                                             

predicted area:  33%|███▎      | 1/3 [00:29<00:59, 29.55s/it]

predictor area:   0%|          | 0/3 [00:00<?, ?it/s]

/home/runner/.local/lib/python3.12/site-packages/nemos/glm/glm.py:768: RuntimeWarning: The fit did not converge. Consider the following:
1) Enable float64 with ``jax.config.update('jax_enable_x64', True)`` 
2) Increase the max number of iterations or increase tolerance (if reasonable). These parameters can be specified by providing a ``solver_kwargs`` dictionary. For the available options see the ``self.solver.__init__`` docstrings.
  warnings.warn(
predictor area:  33%|███▎      | 1/3 [00:09<00:19,  9.92s/it]

/home/runner/.local/lib/python3.12/site-packages/nemos/glm/glm.py:768: RuntimeWarning: The fit did not converge. Consider the following:
1) Enable float64 with ``jax.config.update('jax_enable_x64', True)`` 
2) Increase the max number of iterations or increase tolerance (if reasonable). These parameters can be specified by providing a ``solver_kwargs`` dictionary. For the available options see the ``self.solver.__init__`` docstrings.
  warnings.warn(
predictor area:  67%|██████▋   | 2/3 [00:19<00:09,  9.84s/it]

/home/runner/.local/lib/python3.12/site-packages/nemos/glm/glm.py:768: RuntimeWarning: The fit did not converge. Consider the following:
1) Enable float64 with ``jax.config.update('jax_enable_x64', True)`` 
2) Increase the max number of iterations or increase tolerance (if reasonable). These parameters can be specified by providing a ``solver_kwargs`` dictionary. For the available options see the ``self.solver.__init__`` docstrings.
  warnings.warn(
predictor area: 100%|██████████| 3/3 [00:29<00:00,  9.82s/it]


                                                             

predicted area:  67%|██████▋   | 2/3 [00:59<00:29, 29.58s/it]

predictor area:   0%|          | 0/3 [00:00<?, ?it/s]

/home/runner/.local/lib/python3.12/site-packages/nemos/glm/glm.py:768: RuntimeWarning: The fit did not converge. Consider the following:
1) Enable float64 with ``jax.config.update('jax_enable_x64', True)`` 
2) Increase the max number of iterations or increase tolerance (if reasonable). These parameters can be specified by providing a ``solver_kwargs`` dictionary. For the available options see the ``self.solver.__init__`` docstrings.
  warnings.warn(
predictor area:  33%|███▎      | 1/3 [00:09<00:19,  9.79s/it]

/home/runner/.local/lib/python3.12/site-packages/nemos/glm/glm.py:768: RuntimeWarning: The fit did not converge. Consider the following:
1) Enable float64 with ``jax.config.update('jax_enable_x64', True)`` 
2) Increase the max number of iterations or increase tolerance (if reasonable). These parameters can be specified by providing a ``solver_kwargs`` dictionary. For the available options see the ``self.solver.__init__`` docstrings.
  warnings.warn(
predictor area:  67%|██████▋   | 2/3 [00:20<00:10, 10.51s/it]

/home/runner/.local/lib/python3.12/site-packages/nemos/glm/glm.py:768: RuntimeWarning: The fit did not converge. Consider the following:
1) Enable float64 with ``jax.config.update('jax_enable_x64', True)`` 
2) Increase the max number of iterations or increase tolerance (if reasonable). These parameters can be specified by providing a ``solver_kwargs`` dictionary. For the available options see the ``self.solver.__init__`` docstrings.
  warnings.warn(
predictor area: 100%|██████████| 3/3 [00:30<00:00, 10.20s/it]


                                                             

predicted area: 100%|██████████| 3/3 [01:29<00:00, 30.11s/it]
                                                             

predicted area:   0%|          | 0/3 [00:00<?, ?it/s]

predictor area:   0%|          | 0/3 [00:00<?, ?it/s]

/home/runner/.local/lib/python3.12/site-packages/nemos/glm/glm.py:768: RuntimeWarning: The fit did not converge. Consider the following:
1) Enable float64 with ``jax.config.update('jax_enable_x64', True)`` 
2) Increase the max number of iterations or increase tolerance (if reasonable). These parameters can be specified by providing a ``solver_kwargs`` dictionary. For the available options see the ``self.solver.__init__`` docstrings.
  warnings.warn(

predictor area:  33%|███▎      | 1/3 [00:05<00:10,  5.22s/it]

/home/runner/.local/lib/python3.12/site-packages/nemos/glm/glm.py:768: RuntimeWarning: The fit did not converge. Consider the following:
1) Enable float64 with ``jax.config.update('jax_enable_x64', True)`` 
2) Increase the max number of iterations or increase tolerance (if reasonable). These parameters can be specified by providing a ``solver_kwargs`` dictionary. For the available options see the ``self.solver.__init__`` docstrings.
  warnings.warn(
predictor area:  67%|██████▋   | 2/3 [00:08<00:04,  4.11s/it]

/home/runner/.local/lib/python3.12/site-packages/nemos/glm/glm.py:768: RuntimeWarning: The fit did not converge. Consider the following:
1) Enable float64 with ``jax.config.update('jax_enable_x64', True)`` 
2) Increase the max number of iterations or increase tolerance (if reasonable). These parameters can be specified by providing a ``solver_kwargs`` dictionary. For the available options see the ``self.solver.__init__`` docstrings.
  warnings.warn(
predictor area: 100%|██████████| 3/3 [00:11<00:00,  3.78s/it]


                                                             

predicted area:  33%|███▎      | 1/3 [00:11<00:23, 11.96s/it]

predictor area:   0%|          | 0/3 [00:00<?, ?it/s]

/home/runner/.local/lib/python3.12/site-packages/nemos/glm/glm.py:768: RuntimeWarning: The fit did not converge. Consider the following:
1) Enable float64 with ``jax.config.update('jax_enable_x64', True)`` 
2) Increase the max number of iterations or increase tolerance (if reasonable). These parameters can be specified by providing a ``solver_kwargs`` dictionary. For the available options see the ``self.solver.__init__`` docstrings.
  warnings.warn(
predictor area:  33%|███▎      | 1/3 [00:03<00:06,  3.38s/it]

/home/runner/.local/lib/python3.12/site-packages/nemos/glm/glm.py:768: RuntimeWarning: The fit did not converge. Consider the following:
1) Enable float64 with ``jax.config.update('jax_enable_x64', True)`` 
2) Increase the max number of iterations or increase tolerance (if reasonable). These parameters can be specified by providing a ``solver_kwargs`` dictionary. For the available options see the ``self.solver.__init__`` docstrings.
  warnings.warn(
predictor area:  67%|██████▋   | 2/3 [00:06<00:03,  3.35s/it]

/home/runner/.local/lib/python3.12/site-packages/nemos/glm/glm.py:768: RuntimeWarning: The fit did not converge. Consider the following:
1) Enable float64 with ``jax.config.update('jax_enable_x64', True)`` 
2) Increase the max number of iterations or increase tolerance (if reasonable). These parameters can be specified by providing a ``solver_kwargs`` dictionary. For the available options see the ``self.solver.__init__`` docstrings.
  warnings.warn(
predictor area: 100%|██████████| 3/3 [00:10<00:00,  3.39s/it]


                                                             

predicted area:  67%|██████▋   | 2/3 [00:22<00:10, 10.91s/it]

predictor area:   0%|          | 0/3 [00:00<?, ?it/s]

/home/runner/.local/lib/python3.12/site-packages/nemos/glm/glm.py:768: RuntimeWarning: The fit did not converge. Consider the following:
1) Enable float64 with ``jax.config.update('jax_enable_x64', True)`` 
2) Increase the max number of iterations or increase tolerance (if reasonable). These parameters can be specified by providing a ``solver_kwargs`` dictionary. For the available options see the ``self.solver.__init__`` docstrings.
  warnings.warn(
predictor area:  33%|███▎      | 1/3 [00:03<00:06,  3.38s/it]

/home/runner/.local/lib/python3.12/site-packages/nemos/glm/glm.py:768: RuntimeWarning: The fit did not converge. Consider the following:
1) Enable float64 with ``jax.config.update('jax_enable_x64', True)`` 
2) Increase the max number of iterations or increase tolerance (if reasonable). These parameters can be specified by providing a ``solver_kwargs`` dictionary. For the available options see the ``self.solver.__init__`` docstrings.
  warnings.warn(
predictor area:  67%|██████▋   | 2/3 [00:06<00:03,  3.41s/it]

/home/runner/.local/lib/python3.12/site-packages/nemos/glm/glm.py:768: RuntimeWarning: The fit did not converge. Consider the following:
1) Enable float64 with ``jax.config.update('jax_enable_x64', True)`` 
2) Increase the max number of iterations or increase tolerance (if reasonable). These parameters can be specified by providing a ``solver_kwargs`` dictionary. For the available options see the ``self.solver.__init__`` docstrings.
  warnings.warn(
predictor area: 100%|██████████| 3/3 [00:10<00:00,  3.39s/it]


                                                             

predicted area: 100%|██████████| 3/3 [00:32<00:00, 10.59s/it]
                                                             

Visualization#

We visualize the mean pseudo-R² per brain area pair. We normalize each row by the within-area self-prediction performance, so that the baseline predictability of each area is factored out — values close to 0 mean the cross-area prediction is no better than self-prediction.

mat = results.pivot_table(
    index="predicted", columns="predictor", values="pr2", aggfunc="mean"
).astype(float)

# Extract within-area scores before normalising
within_scores = pd.Series(np.diag(mat), index=mat.index)
mat_norm = mat.sub(within_scores, axis=0)

mask_diagonal = np.eye(len(mat_norm), dtype=bool)
sns.heatmap(
    mat_norm,
    annot=True,
    fmt=".4f",
    cmap="RdYlGn",
    mask=mask_diagonal,
    cbar_kws={"shrink": 0.7, "label": "normalised pseudo-R² (cross − within)"},
)
plt.xlabel("predictor")
plt.ylabel("predicted")
plt.tight_layout()
_images/a0ca893d81d6084e200992a1a68b27d5c404ca65d0989252d04bbe3562ae564b.png

Summary#

results["normalised_pr2"] = results["pr2"] - results["predicted"].map(within_scores)

cross_area = results[results["predicted"] != results["predictor"]]
best = (
    cross_area.groupby(["predicted", "predictor"])["normalised_pr2"]
    .mean()
    .reset_index()
    .sort_values("normalised_pr2", ascending=False)
)
best_pairs_df = pd.DataFrame(best_pairs)
print("\n=== Best pair per dataset ===")
print(best_pairs_df.to_string(index=False))

pair_counts = (
    best_pairs_df.groupby(["predictor", "predicted"])
    .size()
    .reset_index(name="count")
    .sort_values("count", ascending=False)
)
pair_counts["count"] = pair_counts["count"].astype(int)
print("\n=== Pair occurrence counts ===")
print(pair_counts.to_string(index=False))
=== Best pair per dataset ===
 dataset  predictor  predicted  normalised_pr2
       1          3          2        0.012889
       2          1          2       -0.001974
       3          3          1       -0.002168
       4          2          3       -0.001701
       5          2          1        0.001648
       6          2          3        0.155562
       7          1          2        0.001470
       8          3          2       -0.000929
       9          2          1       -0.004115
      10          3          1        0.000480
      11          2          3       -0.002711
      12          1          2       -0.009639
      13          2          3        0.000740
      14          2          3        0.002417
      15          3          1       -0.001382
      16          1          2        0.000221
      17          2          1       -0.005094
      18          3          2        0.025465

=== Pair occurrence counts ===
 predictor  predicted  count
         2          3      5
         1          2      4
         2          1      3
         3          1      3
         3          2      3

Answer#

most_common = pair_counts.iloc[0]
print(
    f"Most common best pair across datasets: {most_common['predictor']}{most_common['predicted']}"
    f"  ({int(most_common['count'])}/{len(best_pairs_df)} datasets)"
)
Most common best pair across datasets: 2 → 3  (5/18 datasets)