
.. DO NOT EDIT.
.. THIS FILE WAS AUTOMATICALLY GENERATED BY SPHINX-GALLERY.
.. TO MAKE CHANGES, EDIT THE SOURCE PYTHON FILE:
.. "auto_examples/03-combat-based/06-plot_combatgam_with_mareos.py"
.. LINE NUMBERS ARE GIVEN BELOW.

.. only:: html

    .. note::
        :class: sphx-glr-download-link-note

        :ref:`Go to the end <sphx_glr_download_auto_examples_03-combat-based_06-plot_combatgam_with_mareos.py>`
        to download the full example code.

.. rst-class:: sphx-glr-example-title

.. _sphx_glr_auto_examples_03-combat-based_06-plot_combatgam_with_mareos.py:


Using ComBatGAM with MAREoS dataset
===================================

.. GENERATED FROM PYTHON SOURCE LINES 7-9

Imports
-------

.. GENERATED FROM PYTHON SOURCE LINES 9-30

.. code-block:: Python


    import warnings

    import matplotlib.pyplot as plt
    import pandas as pd
    import seaborn as sns
    from sklearn.ensemble import RandomForestClassifier
    from sklearn.exceptions import ConvergenceWarning
    from sklearn.linear_model import LogisticRegression
    from sklearn.metrics import balanced_accuracy_score

    from uniharmony import verbosity
    from uniharmony.combat import ComBatGAM
    from uniharmony.datasets import load_MAREoS


    sns.set_theme(style="whitegrid")
    verbosity("debug")
    warnings.filterwarnings(action="ignore", category=ConvergenceWarning)









.. GENERATED FROM PYTHON SOURCE LINES 31-38

Data loading
------------
Load MAREoS benchmark dataset

- ``datasets = load_MAREoS()`` loads simulated neuroimaging benchmark data.
- The dataset contains multiple scenarios (``true`` vs ``eos`` effects; ``simple`` vs ``interaction``; example 1/2).


.. GENERATED FROM PYTHON SOURCE LINES 38-57

.. code-block:: Python



    # Load the MAREoS dataset (made for benchmarking harmonisation methods)
    datasets = load_MAREoS()

    # Define the different effects, effect types, and examples to iterate over
    effects = ["true", "eos"]
    effect_types = ["simple", "interaction"]
    effect_examples = ["1", "2"]

    random_state = 23

    # Assign an empty list to each key in the results dictionary
    unharmonized_results = []
    neurocombat_results = []

    # Define the harmonisation model to use (ComBatGAM in this case)
    harm_model = ComBatGAM()





.. rst-class:: sphx-glr-script-out

 .. code-block:: none

    2026-05-18 13:04:40 [info     ] MAREoS datasets already exist at: /home/runner/.cache/uniharmony/MAREoS
    2026-05-18 13:04:40 [info     ] Getting data file: /home/runner/.cache/uniharmony/MAREoS/public_datasets/eos_simple1_data.csv
    2026-05-18 13:04:40 [info     ] Getting data file: /home/runner/.cache/uniharmony/MAREoS/public_datasets/eos_simple2_data.csv
    2026-05-18 13:04:40 [info     ] Getting data file: /home/runner/.cache/uniharmony/MAREoS/public_datasets/eos_interaction1_data.csv
    2026-05-18 13:04:40 [info     ] Getting data file: /home/runner/.cache/uniharmony/MAREoS/public_datasets/eos_interaction2_data.csv
    2026-05-18 13:04:40 [info     ] Getting data file: /home/runner/.cache/uniharmony/MAREoS/public_datasets/true_simple1_data.csv
    2026-05-18 13:04:40 [info     ] Getting data file: /home/runner/.cache/uniharmony/MAREoS/public_datasets/true_simple2_data.csv
    2026-05-18 13:04:40 [info     ] Getting data file: /home/runner/.cache/uniharmony/MAREoS/public_datasets/true_interaction1_data.csv
    2026-05-18 13:04:40 [info     ] Getting data file: /home/runner/.cache/uniharmony/MAREoS/public_datasets/true_interaction2_data.csv




.. GENERATED FROM PYTHON SOURCE LINES 58-75

Experiments
-----------
- Iterates all combinations:
    - ``effect`` = ``true`` or ``eos``
    - ``effect_type`` = ``simple`` or ``interaction``
    - ``example`` = ``1`` or ``2``
- For each combination:
    - Choose classifier: logistic regression for simple; random forest for interaction.
    - Extract data: ``X``, ``y``, ``sites``, ``folds``.
    - Do leave-one-fold-out cross-validation:
        - train on folds != current fold
        - test on fold == current fold
    - Train baseline classifier on unharmonized training data and compute balanced accuracy on raw test.
    - Harmonize training with ``NeuroComBat.fit_transform(...)``, then train classifier, transform test,
      compute balanced accuracy.
- Collect results into two lists and then into DataFrames.


.. GENERATED FROM PYTHON SOURCE LINES 77-159

.. code-block:: Python


    for effect in effects:
        for e_types in effect_types:
            if e_types == "interaction":
                clf = RandomForestClassifier(n_estimators=10, random_state=random_state)
            elif e_types == "simple":
                clf = LogisticRegression(random_state=random_state)
            for e_example in effect_examples:
                example = effect + "_" + e_types + e_example
                print(f"Running experiment: {example}")
                data = datasets[example]

                sites = data["sites"]
                X = data["X"]
                folds = data["folds"]
                folds = pd.Series(folds)
                sites = data["sites"]

                target = data["y"]

                covars = target.ravel().reshape(-1, 1)

                for fold in folds.unique():
                    # Train Data
                    X = data["X"].copy()
                    y = data["y"].copy()
                    sites = data["sites"].copy()

                    # Train Target
                    X_train = X[data["folds"] != fold]
                    site_train = sites[data["folds"] != fold]

                    y_train = y[data["folds"] != fold]

                    # Test data
                    X_test = X[data["folds"] == fold]
                    site_test = sites[data["folds"] == fold]

                    # Test target
                    y_test = y[data["folds"] == fold]

                    # Unharmonized baseline model
                    clf.fit(X_train, y_train)
                    unharmonized_results.append(
                        [
                            balanced_accuracy_score(y_true=y_test, y_pred=clf.predict(X=X_test)),
                            fold,
                            effect,
                            e_types,
                            e_example,
                            example,
                        ]
                    )

                    # ComBatGAM (do not include target as covariate - avoiding data leakage)
                    X_train_harm = harm_model.fit_transform(X=X_train, sites=site_train, smooth_covariates=y_train.reshape(-1, 1))
                    # Fit the model with the harmonized train
                    clf.fit(X_train_harm, y_train)
                    # harmonize the test data
                    X_test_harm = harm_model.transform(X=X_test, sites=site_test, smooth_covariates=y_test.reshape(-1, 1))

                    neurocombat_results.append(
                        [
                            balanced_accuracy_score(y_true=y_test, y_pred=clf.predict(X=X_test_harm)),
                            fold,
                            effect,
                            e_types,
                            e_example,
                            example,
                        ]
                    )

    # Results to dataframe
    unharmonized_results = pd.DataFrame(data=unharmonized_results, columns=["bACC", "Fold", "Effect", "Type", "Example", "Name"])
    unharmonized_results["Method"] = "Unharmonized Baseline"

    neurocombat_results = pd.DataFrame(data=neurocombat_results, columns=["bACC", "Fold", "Effect", "Type", "Example", "Name"])
    neurocombat_results["Method"] = "ComBatGAM"

    results = pd.concat([unharmonized_results, neurocombat_results])






.. rst-class:: sphx-glr-script-out

 .. code-block:: none

    Running experiment: true_simple1
    2026-05-18 13:04:40 [debug    ] Fitting
    2026-05-18 13:04:40 [info     ] If you intend to build a machine learning (ML) model,then make sure that you DO *NOT* preserve the ML model's target as covariate. You will be required to provide the covariate also at transform time, and this will produce data leakage. If you are performing a statistical analysis and want to preserve a variable of interest, then it is correct to specify it as covariate.
    2026-05-18 13:04:40 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:04:40 [debug    ] Final formula for smoothing: y ~ x0 + x1 + x2 + x3 + x4 + x5 + x6 + x7 - 1
    2026-05-18 13:05:04 [debug    ] Transforming
    2026-05-18 13:05:04 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:05:04 [debug    ] Transforming
    2026-05-18 13:05:04 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:05:04 [debug    ] Fitting
    2026-05-18 13:05:04 [info     ] If you intend to build a machine learning (ML) model,then make sure that you DO *NOT* preserve the ML model's target as covariate. You will be required to provide the covariate also at transform time, and this will produce data leakage. If you are performing a statistical analysis and want to preserve a variable of interest, then it is correct to specify it as covariate.
    2026-05-18 13:05:04 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:05:04 [debug    ] Final formula for smoothing: y ~ x0 + x1 + x2 + x3 + x4 + x5 + x6 + x7 - 1
    2026-05-18 13:05:26 [debug    ] Transforming
    2026-05-18 13:05:26 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:05:26 [debug    ] Transforming
    2026-05-18 13:05:26 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:05:26 [debug    ] Fitting
    2026-05-18 13:05:26 [info     ] If you intend to build a machine learning (ML) model,then make sure that you DO *NOT* preserve the ML model's target as covariate. You will be required to provide the covariate also at transform time, and this will produce data leakage. If you are performing a statistical analysis and want to preserve a variable of interest, then it is correct to specify it as covariate.
    2026-05-18 13:05:26 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:05:26 [debug    ] Final formula for smoothing: y ~ x0 + x1 + x2 + x3 + x4 + x5 + x6 + x7 - 1
    2026-05-18 13:05:48 [debug    ] Transforming
    2026-05-18 13:05:48 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:05:48 [debug    ] Transforming
    2026-05-18 13:05:48 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:05:48 [debug    ] Fitting
    2026-05-18 13:05:48 [info     ] If you intend to build a machine learning (ML) model,then make sure that you DO *NOT* preserve the ML model's target as covariate. You will be required to provide the covariate also at transform time, and this will produce data leakage. If you are performing a statistical analysis and want to preserve a variable of interest, then it is correct to specify it as covariate.
    2026-05-18 13:05:48 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:05:48 [debug    ] Final formula for smoothing: y ~ x0 + x1 + x2 + x3 + x4 + x5 + x6 + x7 - 1
    2026-05-18 13:06:10 [debug    ] Transforming
    2026-05-18 13:06:10 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:06:10 [debug    ] Transforming
    2026-05-18 13:06:10 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:06:10 [debug    ] Fitting
    2026-05-18 13:06:10 [info     ] If you intend to build a machine learning (ML) model,then make sure that you DO *NOT* preserve the ML model's target as covariate. You will be required to provide the covariate also at transform time, and this will produce data leakage. If you are performing a statistical analysis and want to preserve a variable of interest, then it is correct to specify it as covariate.
    2026-05-18 13:06:10 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:06:10 [debug    ] Final formula for smoothing: y ~ x0 + x1 + x2 + x3 + x4 + x5 + x6 + x7 - 1
    2026-05-18 13:06:32 [debug    ] Transforming
    2026-05-18 13:06:32 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:06:32 [debug    ] Transforming
    2026-05-18 13:06:32 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:06:32 [debug    ] Fitting
    2026-05-18 13:06:32 [info     ] If you intend to build a machine learning (ML) model,then make sure that you DO *NOT* preserve the ML model's target as covariate. You will be required to provide the covariate also at transform time, and this will produce data leakage. If you are performing a statistical analysis and want to preserve a variable of interest, then it is correct to specify it as covariate.
    2026-05-18 13:06:32 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:06:32 [debug    ] Final formula for smoothing: y ~ x0 + x1 + x2 + x3 + x4 + x5 + x6 + x7 - 1
    2026-05-18 13:06:54 [debug    ] Transforming
    2026-05-18 13:06:54 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:06:54 [debug    ] Transforming
    2026-05-18 13:06:54 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:06:54 [debug    ] Fitting
    2026-05-18 13:06:54 [info     ] If you intend to build a machine learning (ML) model,then make sure that you DO *NOT* preserve the ML model's target as covariate. You will be required to provide the covariate also at transform time, and this will produce data leakage. If you are performing a statistical analysis and want to preserve a variable of interest, then it is correct to specify it as covariate.
    2026-05-18 13:06:54 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:06:54 [debug    ] Final formula for smoothing: y ~ x0 + x1 + x2 + x3 + x4 + x5 + x6 + x7 - 1
    2026-05-18 13:07:16 [debug    ] Transforming
    2026-05-18 13:07:16 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:07:16 [debug    ] Transforming
    2026-05-18 13:07:16 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:07:16 [debug    ] Fitting
    2026-05-18 13:07:16 [info     ] If you intend to build a machine learning (ML) model,then make sure that you DO *NOT* preserve the ML model's target as covariate. You will be required to provide the covariate also at transform time, and this will produce data leakage. If you are performing a statistical analysis and want to preserve a variable of interest, then it is correct to specify it as covariate.
    2026-05-18 13:07:16 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:07:16 [debug    ] Final formula for smoothing: y ~ x0 + x1 + x2 + x3 + x4 + x5 + x6 + x7 - 1
    2026-05-18 13:07:38 [debug    ] Transforming
    2026-05-18 13:07:38 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:07:38 [debug    ] Transforming
    2026-05-18 13:07:38 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:07:38 [debug    ] Fitting
    2026-05-18 13:07:38 [info     ] If you intend to build a machine learning (ML) model,then make sure that you DO *NOT* preserve the ML model's target as covariate. You will be required to provide the covariate also at transform time, and this will produce data leakage. If you are performing a statistical analysis and want to preserve a variable of interest, then it is correct to specify it as covariate.
    2026-05-18 13:07:38 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:07:38 [debug    ] Final formula for smoothing: y ~ x0 + x1 + x2 + x3 + x4 + x5 + x6 + x7 - 1
    2026-05-18 13:08:00 [debug    ] Transforming
    2026-05-18 13:08:00 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:08:00 [debug    ] Transforming
    2026-05-18 13:08:00 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:08:00 [debug    ] Fitting
    2026-05-18 13:08:00 [info     ] If you intend to build a machine learning (ML) model,then make sure that you DO *NOT* preserve the ML model's target as covariate. You will be required to provide the covariate also at transform time, and this will produce data leakage. If you are performing a statistical analysis and want to preserve a variable of interest, then it is correct to specify it as covariate.
    2026-05-18 13:08:00 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:08:00 [debug    ] Final formula for smoothing: y ~ x0 + x1 + x2 + x3 + x4 + x5 + x6 + x7 - 1
    2026-05-18 13:08:22 [debug    ] Transforming
    2026-05-18 13:08:22 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:08:22 [debug    ] Transforming
    2026-05-18 13:08:22 [debug    ] Setting up smoothing using B-Splines
    Running experiment: true_simple2
    2026-05-18 13:08:22 [debug    ] Fitting
    2026-05-18 13:08:22 [info     ] If you intend to build a machine learning (ML) model,then make sure that you DO *NOT* preserve the ML model's target as covariate. You will be required to provide the covariate also at transform time, and this will produce data leakage. If you are performing a statistical analysis and want to preserve a variable of interest, then it is correct to specify it as covariate.
    2026-05-18 13:08:22 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:08:22 [debug    ] Final formula for smoothing: y ~ x0 + x1 + x2 + x3 + x4 + x5 + x6 + x7 - 1
    2026-05-18 13:08:44 [debug    ] Transforming
    2026-05-18 13:08:44 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:08:44 [debug    ] Transforming
    2026-05-18 13:08:44 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:08:44 [debug    ] Fitting
    2026-05-18 13:08:44 [info     ] If you intend to build a machine learning (ML) model,then make sure that you DO *NOT* preserve the ML model's target as covariate. You will be required to provide the covariate also at transform time, and this will produce data leakage. If you are performing a statistical analysis and want to preserve a variable of interest, then it is correct to specify it as covariate.
    2026-05-18 13:08:44 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:08:44 [debug    ] Final formula for smoothing: y ~ x0 + x1 + x2 + x3 + x4 + x5 + x6 + x7 - 1
    2026-05-18 13:09:07 [debug    ] Transforming
    2026-05-18 13:09:07 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:09:07 [debug    ] Transforming
    2026-05-18 13:09:07 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:09:07 [debug    ] Fitting
    2026-05-18 13:09:07 [info     ] If you intend to build a machine learning (ML) model,then make sure that you DO *NOT* preserve the ML model's target as covariate. You will be required to provide the covariate also at transform time, and this will produce data leakage. If you are performing a statistical analysis and want to preserve a variable of interest, then it is correct to specify it as covariate.
    2026-05-18 13:09:07 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:09:07 [debug    ] Final formula for smoothing: y ~ x0 + x1 + x2 + x3 + x4 + x5 + x6 + x7 - 1
    2026-05-18 13:09:29 [debug    ] Transforming
    2026-05-18 13:09:29 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:09:29 [debug    ] Transforming
    2026-05-18 13:09:29 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:09:29 [debug    ] Fitting
    2026-05-18 13:09:29 [info     ] If you intend to build a machine learning (ML) model,then make sure that you DO *NOT* preserve the ML model's target as covariate. You will be required to provide the covariate also at transform time, and this will produce data leakage. If you are performing a statistical analysis and want to preserve a variable of interest, then it is correct to specify it as covariate.
    2026-05-18 13:09:29 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:09:29 [debug    ] Final formula for smoothing: y ~ x0 + x1 + x2 + x3 + x4 + x5 + x6 + x7 - 1
    2026-05-18 13:09:52 [debug    ] Transforming
    2026-05-18 13:09:52 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:09:52 [debug    ] Transforming
    2026-05-18 13:09:52 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:09:52 [debug    ] Fitting
    2026-05-18 13:09:52 [info     ] If you intend to build a machine learning (ML) model,then make sure that you DO *NOT* preserve the ML model's target as covariate. You will be required to provide the covariate also at transform time, and this will produce data leakage. If you are performing a statistical analysis and want to preserve a variable of interest, then it is correct to specify it as covariate.
    2026-05-18 13:09:52 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:09:52 [debug    ] Final formula for smoothing: y ~ x0 + x1 + x2 + x3 + x4 + x5 + x6 + x7 - 1
    2026-05-18 13:10:14 [debug    ] Transforming
    2026-05-18 13:10:14 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:10:14 [debug    ] Transforming
    2026-05-18 13:10:14 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:10:14 [debug    ] Fitting
    2026-05-18 13:10:14 [info     ] If you intend to build a machine learning (ML) model,then make sure that you DO *NOT* preserve the ML model's target as covariate. You will be required to provide the covariate also at transform time, and this will produce data leakage. If you are performing a statistical analysis and want to preserve a variable of interest, then it is correct to specify it as covariate.
    2026-05-18 13:10:14 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:10:14 [debug    ] Final formula for smoothing: y ~ x0 + x1 + x2 + x3 + x4 + x5 + x6 + x7 - 1
    2026-05-18 13:10:36 [debug    ] Transforming
    2026-05-18 13:10:36 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:10:36 [debug    ] Transforming
    2026-05-18 13:10:36 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:10:36 [debug    ] Fitting
    2026-05-18 13:10:36 [info     ] If you intend to build a machine learning (ML) model,then make sure that you DO *NOT* preserve the ML model's target as covariate. You will be required to provide the covariate also at transform time, and this will produce data leakage. If you are performing a statistical analysis and want to preserve a variable of interest, then it is correct to specify it as covariate.
    2026-05-18 13:10:36 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:10:36 [debug    ] Final formula for smoothing: y ~ x0 + x1 + x2 + x3 + x4 + x5 + x6 + x7 - 1
    2026-05-18 13:10:58 [debug    ] Transforming
    2026-05-18 13:10:58 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:10:58 [debug    ] Transforming
    2026-05-18 13:10:58 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:10:58 [debug    ] Fitting
    2026-05-18 13:10:58 [info     ] If you intend to build a machine learning (ML) model,then make sure that you DO *NOT* preserve the ML model's target as covariate. You will be required to provide the covariate also at transform time, and this will produce data leakage. If you are performing a statistical analysis and want to preserve a variable of interest, then it is correct to specify it as covariate.
    2026-05-18 13:10:58 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:10:58 [debug    ] Final formula for smoothing: y ~ x0 + x1 + x2 + x3 + x4 + x5 + x6 + x7 - 1
    2026-05-18 13:11:19 [debug    ] Transforming
    2026-05-18 13:11:19 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:11:19 [debug    ] Transforming
    2026-05-18 13:11:19 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:11:19 [debug    ] Fitting
    2026-05-18 13:11:19 [info     ] If you intend to build a machine learning (ML) model,then make sure that you DO *NOT* preserve the ML model's target as covariate. You will be required to provide the covariate also at transform time, and this will produce data leakage. If you are performing a statistical analysis and want to preserve a variable of interest, then it is correct to specify it as covariate.
    2026-05-18 13:11:19 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:11:19 [debug    ] Final formula for smoothing: y ~ x0 + x1 + x2 + x3 + x4 + x5 + x6 + x7 - 1
    2026-05-18 13:11:41 [debug    ] Transforming
    2026-05-18 13:11:41 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:11:41 [debug    ] Transforming
    2026-05-18 13:11:41 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:11:41 [debug    ] Fitting
    2026-05-18 13:11:41 [info     ] If you intend to build a machine learning (ML) model,then make sure that you DO *NOT* preserve the ML model's target as covariate. You will be required to provide the covariate also at transform time, and this will produce data leakage. If you are performing a statistical analysis and want to preserve a variable of interest, then it is correct to specify it as covariate.
    2026-05-18 13:11:41 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:11:41 [debug    ] Final formula for smoothing: y ~ x0 + x1 + x2 + x3 + x4 + x5 + x6 + x7 - 1
    2026-05-18 13:12:03 [debug    ] Transforming
    2026-05-18 13:12:03 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:12:03 [debug    ] Transforming
    2026-05-18 13:12:03 [debug    ] Setting up smoothing using B-Splines
    Running experiment: true_interaction1
    2026-05-18 13:12:03 [debug    ] Fitting
    2026-05-18 13:12:03 [info     ] If you intend to build a machine learning (ML) model,then make sure that you DO *NOT* preserve the ML model's target as covariate. You will be required to provide the covariate also at transform time, and this will produce data leakage. If you are performing a statistical analysis and want to preserve a variable of interest, then it is correct to specify it as covariate.
    2026-05-18 13:12:03 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:12:03 [debug    ] Final formula for smoothing: y ~ x0 + x1 + x2 + x3 + x4 + x5 + x6 + x7 - 1
    2026-05-18 13:12:24 [debug    ] Transforming
    2026-05-18 13:12:24 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:12:24 [debug    ] Transforming
    2026-05-18 13:12:24 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:12:24 [debug    ] Fitting
    2026-05-18 13:12:24 [info     ] If you intend to build a machine learning (ML) model,then make sure that you DO *NOT* preserve the ML model's target as covariate. You will be required to provide the covariate also at transform time, and this will produce data leakage. If you are performing a statistical analysis and want to preserve a variable of interest, then it is correct to specify it as covariate.
    2026-05-18 13:12:24 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:12:24 [debug    ] Final formula for smoothing: y ~ x0 + x1 + x2 + x3 + x4 + x5 + x6 + x7 - 1
    2026-05-18 13:12:45 [debug    ] Transforming
    2026-05-18 13:12:45 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:12:45 [debug    ] Transforming
    2026-05-18 13:12:45 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:12:45 [debug    ] Fitting
    2026-05-18 13:12:45 [info     ] If you intend to build a machine learning (ML) model,then make sure that you DO *NOT* preserve the ML model's target as covariate. You will be required to provide the covariate also at transform time, and this will produce data leakage. If you are performing a statistical analysis and want to preserve a variable of interest, then it is correct to specify it as covariate.
    2026-05-18 13:12:45 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:12:45 [debug    ] Final formula for smoothing: y ~ x0 + x1 + x2 + x3 + x4 + x5 + x6 + x7 - 1
    2026-05-18 13:13:06 [debug    ] Transforming
    2026-05-18 13:13:06 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:13:06 [debug    ] Transforming
    2026-05-18 13:13:06 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:13:06 [debug    ] Fitting
    2026-05-18 13:13:06 [info     ] If you intend to build a machine learning (ML) model,then make sure that you DO *NOT* preserve the ML model's target as covariate. You will be required to provide the covariate also at transform time, and this will produce data leakage. If you are performing a statistical analysis and want to preserve a variable of interest, then it is correct to specify it as covariate.
    2026-05-18 13:13:06 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:13:06 [debug    ] Final formula for smoothing: y ~ x0 + x1 + x2 + x3 + x4 + x5 + x6 + x7 - 1
    2026-05-18 13:13:28 [debug    ] Transforming
    2026-05-18 13:13:28 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:13:28 [debug    ] Transforming
    2026-05-18 13:13:28 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:13:28 [debug    ] Fitting
    2026-05-18 13:13:28 [info     ] If you intend to build a machine learning (ML) model,then make sure that you DO *NOT* preserve the ML model's target as covariate. You will be required to provide the covariate also at transform time, and this will produce data leakage. If you are performing a statistical analysis and want to preserve a variable of interest, then it is correct to specify it as covariate.
    2026-05-18 13:13:28 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:13:28 [debug    ] Final formula for smoothing: y ~ x0 + x1 + x2 + x3 + x4 + x5 + x6 + x7 - 1
    2026-05-18 13:13:49 [debug    ] Transforming
    2026-05-18 13:13:49 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:13:49 [debug    ] Transforming
    2026-05-18 13:13:49 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:13:49 [debug    ] Fitting
    2026-05-18 13:13:49 [info     ] If you intend to build a machine learning (ML) model,then make sure that you DO *NOT* preserve the ML model's target as covariate. You will be required to provide the covariate also at transform time, and this will produce data leakage. If you are performing a statistical analysis and want to preserve a variable of interest, then it is correct to specify it as covariate.
    2026-05-18 13:13:49 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:13:49 [debug    ] Final formula for smoothing: y ~ x0 + x1 + x2 + x3 + x4 + x5 + x6 + x7 - 1
    2026-05-18 13:14:10 [debug    ] Transforming
    2026-05-18 13:14:10 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:14:10 [debug    ] Transforming
    2026-05-18 13:14:10 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:14:10 [debug    ] Fitting
    2026-05-18 13:14:10 [info     ] If you intend to build a machine learning (ML) model,then make sure that you DO *NOT* preserve the ML model's target as covariate. You will be required to provide the covariate also at transform time, and this will produce data leakage. If you are performing a statistical analysis and want to preserve a variable of interest, then it is correct to specify it as covariate.
    2026-05-18 13:14:10 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:14:10 [debug    ] Final formula for smoothing: y ~ x0 + x1 + x2 + x3 + x4 + x5 + x6 + x7 - 1
    2026-05-18 13:14:32 [debug    ] Transforming
    2026-05-18 13:14:32 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:14:32 [debug    ] Transforming
    2026-05-18 13:14:32 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:14:32 [debug    ] Fitting
    2026-05-18 13:14:32 [info     ] If you intend to build a machine learning (ML) model,then make sure that you DO *NOT* preserve the ML model's target as covariate. You will be required to provide the covariate also at transform time, and this will produce data leakage. If you are performing a statistical analysis and want to preserve a variable of interest, then it is correct to specify it as covariate.
    2026-05-18 13:14:32 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:14:32 [debug    ] Final formula for smoothing: y ~ x0 + x1 + x2 + x3 + x4 + x5 + x6 + x7 - 1
    2026-05-18 13:14:53 [debug    ] Transforming
    2026-05-18 13:14:53 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:14:53 [debug    ] Transforming
    2026-05-18 13:14:53 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:14:53 [debug    ] Fitting
    2026-05-18 13:14:53 [info     ] If you intend to build a machine learning (ML) model,then make sure that you DO *NOT* preserve the ML model's target as covariate. You will be required to provide the covariate also at transform time, and this will produce data leakage. If you are performing a statistical analysis and want to preserve a variable of interest, then it is correct to specify it as covariate.
    2026-05-18 13:14:53 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:14:53 [debug    ] Final formula for smoothing: y ~ x0 + x1 + x2 + x3 + x4 + x5 + x6 + x7 - 1
    2026-05-18 13:15:14 [debug    ] Transforming
    2026-05-18 13:15:14 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:15:14 [debug    ] Transforming
    2026-05-18 13:15:14 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:15:14 [debug    ] Fitting
    2026-05-18 13:15:14 [info     ] If you intend to build a machine learning (ML) model,then make sure that you DO *NOT* preserve the ML model's target as covariate. You will be required to provide the covariate also at transform time, and this will produce data leakage. If you are performing a statistical analysis and want to preserve a variable of interest, then it is correct to specify it as covariate.
    2026-05-18 13:15:14 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:15:14 [debug    ] Final formula for smoothing: y ~ x0 + x1 + x2 + x3 + x4 + x5 + x6 + x7 - 1
    2026-05-18 13:15:36 [debug    ] Transforming
    2026-05-18 13:15:36 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:15:36 [debug    ] Transforming
    2026-05-18 13:15:36 [debug    ] Setting up smoothing using B-Splines
    Running experiment: true_interaction2
    2026-05-18 13:15:36 [debug    ] Fitting
    2026-05-18 13:15:36 [info     ] If you intend to build a machine learning (ML) model,then make sure that you DO *NOT* preserve the ML model's target as covariate. You will be required to provide the covariate also at transform time, and this will produce data leakage. If you are performing a statistical analysis and want to preserve a variable of interest, then it is correct to specify it as covariate.
    2026-05-18 13:15:36 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:15:36 [debug    ] Final formula for smoothing: y ~ x0 + x1 + x2 + x3 + x4 + x5 + x6 + x7 - 1
    2026-05-18 13:15:58 [debug    ] Transforming
    2026-05-18 13:15:58 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:15:58 [debug    ] Transforming
    2026-05-18 13:15:58 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:15:58 [debug    ] Fitting
    2026-05-18 13:15:58 [info     ] If you intend to build a machine learning (ML) model,then make sure that you DO *NOT* preserve the ML model's target as covariate. You will be required to provide the covariate also at transform time, and this will produce data leakage. If you are performing a statistical analysis and want to preserve a variable of interest, then it is correct to specify it as covariate.
    2026-05-18 13:15:58 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:15:58 [debug    ] Final formula for smoothing: y ~ x0 + x1 + x2 + x3 + x4 + x5 + x6 + x7 - 1
    2026-05-18 13:16:19 [debug    ] Transforming
    2026-05-18 13:16:19 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:16:19 [debug    ] Transforming
    2026-05-18 13:16:19 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:16:19 [debug    ] Fitting
    2026-05-18 13:16:19 [info     ] If you intend to build a machine learning (ML) model,then make sure that you DO *NOT* preserve the ML model's target as covariate. You will be required to provide the covariate also at transform time, and this will produce data leakage. If you are performing a statistical analysis and want to preserve a variable of interest, then it is correct to specify it as covariate.
    2026-05-18 13:16:19 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:16:19 [debug    ] Final formula for smoothing: y ~ x0 + x1 + x2 + x3 + x4 + x5 + x6 + x7 - 1
    2026-05-18 13:16:41 [debug    ] Transforming
    2026-05-18 13:16:41 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:16:41 [debug    ] Transforming
    2026-05-18 13:16:41 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:16:41 [debug    ] Fitting
    2026-05-18 13:16:41 [info     ] If you intend to build a machine learning (ML) model,then make sure that you DO *NOT* preserve the ML model's target as covariate. You will be required to provide the covariate also at transform time, and this will produce data leakage. If you are performing a statistical analysis and want to preserve a variable of interest, then it is correct to specify it as covariate.
    2026-05-18 13:16:41 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:16:41 [debug    ] Final formula for smoothing: y ~ x0 + x1 + x2 + x3 + x4 + x5 + x6 + x7 - 1
    2026-05-18 13:17:03 [debug    ] Transforming
    2026-05-18 13:17:03 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:17:03 [debug    ] Transforming
    2026-05-18 13:17:03 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:17:03 [debug    ] Fitting
    2026-05-18 13:17:03 [info     ] If you intend to build a machine learning (ML) model,then make sure that you DO *NOT* preserve the ML model's target as covariate. You will be required to provide the covariate also at transform time, and this will produce data leakage. If you are performing a statistical analysis and want to preserve a variable of interest, then it is correct to specify it as covariate.
    2026-05-18 13:17:03 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:17:03 [debug    ] Final formula for smoothing: y ~ x0 + x1 + x2 + x3 + x4 + x5 + x6 + x7 - 1
    2026-05-18 13:17:25 [debug    ] Transforming
    2026-05-18 13:17:25 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:17:25 [debug    ] Transforming
    2026-05-18 13:17:25 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:17:25 [debug    ] Fitting
    2026-05-18 13:17:25 [info     ] If you intend to build a machine learning (ML) model,then make sure that you DO *NOT* preserve the ML model's target as covariate. You will be required to provide the covariate also at transform time, and this will produce data leakage. If you are performing a statistical analysis and want to preserve a variable of interest, then it is correct to specify it as covariate.
    2026-05-18 13:17:25 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:17:25 [debug    ] Final formula for smoothing: y ~ x0 + x1 + x2 + x3 + x4 + x5 + x6 + x7 - 1
    2026-05-18 13:17:46 [debug    ] Transforming
    2026-05-18 13:17:46 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:17:46 [debug    ] Transforming
    2026-05-18 13:17:46 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:17:46 [debug    ] Fitting
    2026-05-18 13:17:46 [info     ] If you intend to build a machine learning (ML) model,then make sure that you DO *NOT* preserve the ML model's target as covariate. You will be required to provide the covariate also at transform time, and this will produce data leakage. If you are performing a statistical analysis and want to preserve a variable of interest, then it is correct to specify it as covariate.
    2026-05-18 13:17:46 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:17:46 [debug    ] Final formula for smoothing: y ~ x0 + x1 + x2 + x3 + x4 + x5 + x6 + x7 - 1
    2026-05-18 13:18:08 [debug    ] Transforming
    2026-05-18 13:18:08 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:18:08 [debug    ] Transforming
    2026-05-18 13:18:08 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:18:08 [debug    ] Fitting
    2026-05-18 13:18:08 [info     ] If you intend to build a machine learning (ML) model,then make sure that you DO *NOT* preserve the ML model's target as covariate. You will be required to provide the covariate also at transform time, and this will produce data leakage. If you are performing a statistical analysis and want to preserve a variable of interest, then it is correct to specify it as covariate.
    2026-05-18 13:18:08 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:18:08 [debug    ] Final formula for smoothing: y ~ x0 + x1 + x2 + x3 + x4 + x5 + x6 + x7 - 1
    2026-05-18 13:18:29 [debug    ] Transforming
    2026-05-18 13:18:29 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:18:29 [debug    ] Transforming
    2026-05-18 13:18:29 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:18:29 [debug    ] Fitting
    2026-05-18 13:18:29 [info     ] If you intend to build a machine learning (ML) model,then make sure that you DO *NOT* preserve the ML model's target as covariate. You will be required to provide the covariate also at transform time, and this will produce data leakage. If you are performing a statistical analysis and want to preserve a variable of interest, then it is correct to specify it as covariate.
    2026-05-18 13:18:29 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:18:29 [debug    ] Final formula for smoothing: y ~ x0 + x1 + x2 + x3 + x4 + x5 + x6 + x7 - 1
    2026-05-18 13:18:51 [debug    ] Transforming
    2026-05-18 13:18:51 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:18:51 [debug    ] Transforming
    2026-05-18 13:18:51 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:18:51 [debug    ] Fitting
    2026-05-18 13:18:51 [info     ] If you intend to build a machine learning (ML) model,then make sure that you DO *NOT* preserve the ML model's target as covariate. You will be required to provide the covariate also at transform time, and this will produce data leakage. If you are performing a statistical analysis and want to preserve a variable of interest, then it is correct to specify it as covariate.
    2026-05-18 13:18:51 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:18:51 [debug    ] Final formula for smoothing: y ~ x0 + x1 + x2 + x3 + x4 + x5 + x6 + x7 - 1
    2026-05-18 13:19:13 [debug    ] Transforming
    2026-05-18 13:19:13 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:19:13 [debug    ] Transforming
    2026-05-18 13:19:13 [debug    ] Setting up smoothing using B-Splines
    Running experiment: eos_simple1
    2026-05-18 13:19:13 [debug    ] Fitting
    2026-05-18 13:19:13 [info     ] If you intend to build a machine learning (ML) model,then make sure that you DO *NOT* preserve the ML model's target as covariate. You will be required to provide the covariate also at transform time, and this will produce data leakage. If you are performing a statistical analysis and want to preserve a variable of interest, then it is correct to specify it as covariate.
    2026-05-18 13:19:13 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:19:13 [debug    ] Final formula for smoothing: y ~ x0 + x1 + x2 + x3 + x4 + x5 + x6 + x7 - 1
    2026-05-18 13:19:18 [debug    ] Transforming
    2026-05-18 13:19:18 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:19:18 [debug    ] Transforming
    2026-05-18 13:19:18 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:19:18 [debug    ] Fitting
    2026-05-18 13:19:18 [info     ] If you intend to build a machine learning (ML) model,then make sure that you DO *NOT* preserve the ML model's target as covariate. You will be required to provide the covariate also at transform time, and this will produce data leakage. If you are performing a statistical analysis and want to preserve a variable of interest, then it is correct to specify it as covariate.
    2026-05-18 13:19:18 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:19:18 [debug    ] Final formula for smoothing: y ~ x0 + x1 + x2 + x3 + x4 + x5 + x6 + x7 - 1
    2026-05-18 13:19:22 [debug    ] Transforming
    2026-05-18 13:19:22 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:19:22 [debug    ] Transforming
    2026-05-18 13:19:22 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:19:22 [debug    ] Fitting
    2026-05-18 13:19:22 [info     ] If you intend to build a machine learning (ML) model,then make sure that you DO *NOT* preserve the ML model's target as covariate. You will be required to provide the covariate also at transform time, and this will produce data leakage. If you are performing a statistical analysis and want to preserve a variable of interest, then it is correct to specify it as covariate.
    2026-05-18 13:19:22 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:19:22 [debug    ] Final formula for smoothing: y ~ x0 + x1 + x2 + x3 + x4 + x5 + x6 + x7 - 1
    2026-05-18 13:19:27 [debug    ] Transforming
    2026-05-18 13:19:27 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:19:27 [debug    ] Transforming
    2026-05-18 13:19:27 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:19:27 [debug    ] Fitting
    2026-05-18 13:19:27 [info     ] If you intend to build a machine learning (ML) model,then make sure that you DO *NOT* preserve the ML model's target as covariate. You will be required to provide the covariate also at transform time, and this will produce data leakage. If you are performing a statistical analysis and want to preserve a variable of interest, then it is correct to specify it as covariate.
    2026-05-18 13:19:27 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:19:27 [debug    ] Final formula for smoothing: y ~ x0 + x1 + x2 + x3 + x4 + x5 + x6 + x7 - 1
    2026-05-18 13:19:31 [debug    ] Transforming
    2026-05-18 13:19:31 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:19:31 [debug    ] Transforming
    2026-05-18 13:19:31 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:19:31 [debug    ] Fitting
    2026-05-18 13:19:31 [info     ] If you intend to build a machine learning (ML) model,then make sure that you DO *NOT* preserve the ML model's target as covariate. You will be required to provide the covariate also at transform time, and this will produce data leakage. If you are performing a statistical analysis and want to preserve a variable of interest, then it is correct to specify it as covariate.
    2026-05-18 13:19:31 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:19:31 [debug    ] Final formula for smoothing: y ~ x0 + x1 + x2 + x3 + x4 + x5 + x6 + x7 - 1
    2026-05-18 13:19:36 [debug    ] Transforming
    2026-05-18 13:19:36 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:19:36 [debug    ] Transforming
    2026-05-18 13:19:36 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:19:36 [debug    ] Fitting
    2026-05-18 13:19:36 [info     ] If you intend to build a machine learning (ML) model,then make sure that you DO *NOT* preserve the ML model's target as covariate. You will be required to provide the covariate also at transform time, and this will produce data leakage. If you are performing a statistical analysis and want to preserve a variable of interest, then it is correct to specify it as covariate.
    2026-05-18 13:19:36 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:19:36 [debug    ] Final formula for smoothing: y ~ x0 + x1 + x2 + x3 + x4 + x5 + x6 + x7 - 1
    2026-05-18 13:19:40 [debug    ] Transforming
    2026-05-18 13:19:40 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:19:40 [debug    ] Transforming
    2026-05-18 13:19:40 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:19:40 [debug    ] Fitting
    2026-05-18 13:19:40 [info     ] If you intend to build a machine learning (ML) model,then make sure that you DO *NOT* preserve the ML model's target as covariate. You will be required to provide the covariate also at transform time, and this will produce data leakage. If you are performing a statistical analysis and want to preserve a variable of interest, then it is correct to specify it as covariate.
    2026-05-18 13:19:40 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:19:40 [debug    ] Final formula for smoothing: y ~ x0 + x1 + x2 + x3 + x4 + x5 + x6 + x7 - 1
    2026-05-18 13:19:45 [debug    ] Transforming
    2026-05-18 13:19:45 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:19:45 [debug    ] Transforming
    2026-05-18 13:19:45 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:19:45 [debug    ] Fitting
    2026-05-18 13:19:45 [info     ] If you intend to build a machine learning (ML) model,then make sure that you DO *NOT* preserve the ML model's target as covariate. You will be required to provide the covariate also at transform time, and this will produce data leakage. If you are performing a statistical analysis and want to preserve a variable of interest, then it is correct to specify it as covariate.
    2026-05-18 13:19:45 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:19:45 [debug    ] Final formula for smoothing: y ~ x0 + x1 + x2 + x3 + x4 + x5 + x6 + x7 - 1
    2026-05-18 13:19:49 [debug    ] Transforming
    2026-05-18 13:19:49 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:19:49 [debug    ] Transforming
    2026-05-18 13:19:49 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:19:49 [debug    ] Fitting
    2026-05-18 13:19:49 [info     ] If you intend to build a machine learning (ML) model,then make sure that you DO *NOT* preserve the ML model's target as covariate. You will be required to provide the covariate also at transform time, and this will produce data leakage. If you are performing a statistical analysis and want to preserve a variable of interest, then it is correct to specify it as covariate.
    2026-05-18 13:19:49 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:19:49 [debug    ] Final formula for smoothing: y ~ x0 + x1 + x2 + x3 + x4 + x5 + x6 + x7 - 1
    2026-05-18 13:19:54 [debug    ] Transforming
    2026-05-18 13:19:54 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:19:54 [debug    ] Transforming
    2026-05-18 13:19:54 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:19:54 [debug    ] Fitting
    2026-05-18 13:19:54 [info     ] If you intend to build a machine learning (ML) model,then make sure that you DO *NOT* preserve the ML model's target as covariate. You will be required to provide the covariate also at transform time, and this will produce data leakage. If you are performing a statistical analysis and want to preserve a variable of interest, then it is correct to specify it as covariate.
    2026-05-18 13:19:54 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:19:54 [debug    ] Final formula for smoothing: y ~ x0 + x1 + x2 + x3 + x4 + x5 + x6 + x7 - 1
    2026-05-18 13:19:58 [debug    ] Transforming
    2026-05-18 13:19:58 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:19:58 [debug    ] Transforming
    2026-05-18 13:19:58 [debug    ] Setting up smoothing using B-Splines
    Running experiment: eos_simple2
    2026-05-18 13:19:58 [debug    ] Fitting
    2026-05-18 13:19:58 [info     ] If you intend to build a machine learning (ML) model,then make sure that you DO *NOT* preserve the ML model's target as covariate. You will be required to provide the covariate also at transform time, and this will produce data leakage. If you are performing a statistical analysis and want to preserve a variable of interest, then it is correct to specify it as covariate.
    2026-05-18 13:19:58 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:19:58 [debug    ] Final formula for smoothing: y ~ x0 + x1 + x2 + x3 + x4 + x5 + x6 + x7 - 1
    2026-05-18 13:20:20 [debug    ] Transforming
    2026-05-18 13:20:20 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:20:20 [debug    ] Transforming
    2026-05-18 13:20:20 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:20:20 [debug    ] Fitting
    2026-05-18 13:20:20 [info     ] If you intend to build a machine learning (ML) model,then make sure that you DO *NOT* preserve the ML model's target as covariate. You will be required to provide the covariate also at transform time, and this will produce data leakage. If you are performing a statistical analysis and want to preserve a variable of interest, then it is correct to specify it as covariate.
    2026-05-18 13:20:20 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:20:20 [debug    ] Final formula for smoothing: y ~ x0 + x1 + x2 + x3 + x4 + x5 + x6 + x7 - 1
    2026-05-18 13:20:42 [debug    ] Transforming
    2026-05-18 13:20:42 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:20:42 [debug    ] Transforming
    2026-05-18 13:20:42 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:20:42 [debug    ] Fitting
    2026-05-18 13:20:42 [info     ] If you intend to build a machine learning (ML) model,then make sure that you DO *NOT* preserve the ML model's target as covariate. You will be required to provide the covariate also at transform time, and this will produce data leakage. If you are performing a statistical analysis and want to preserve a variable of interest, then it is correct to specify it as covariate.
    2026-05-18 13:20:42 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:20:42 [debug    ] Final formula for smoothing: y ~ x0 + x1 + x2 + x3 + x4 + x5 + x6 + x7 - 1
    2026-05-18 13:21:04 [debug    ] Transforming
    2026-05-18 13:21:04 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:21:04 [debug    ] Transforming
    2026-05-18 13:21:04 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:21:04 [debug    ] Fitting
    2026-05-18 13:21:04 [info     ] If you intend to build a machine learning (ML) model,then make sure that you DO *NOT* preserve the ML model's target as covariate. You will be required to provide the covariate also at transform time, and this will produce data leakage. If you are performing a statistical analysis and want to preserve a variable of interest, then it is correct to specify it as covariate.
    2026-05-18 13:21:04 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:21:04 [debug    ] Final formula for smoothing: y ~ x0 + x1 + x2 + x3 + x4 + x5 + x6 + x7 - 1
    2026-05-18 13:21:26 [debug    ] Transforming
    2026-05-18 13:21:26 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:21:26 [debug    ] Transforming
    2026-05-18 13:21:26 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:21:26 [debug    ] Fitting
    2026-05-18 13:21:26 [info     ] If you intend to build a machine learning (ML) model,then make sure that you DO *NOT* preserve the ML model's target as covariate. You will be required to provide the covariate also at transform time, and this will produce data leakage. If you are performing a statistical analysis and want to preserve a variable of interest, then it is correct to specify it as covariate.
    2026-05-18 13:21:26 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:21:26 [debug    ] Final formula for smoothing: y ~ x0 + x1 + x2 + x3 + x4 + x5 + x6 + x7 - 1
    2026-05-18 13:21:48 [debug    ] Transforming
    2026-05-18 13:21:48 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:21:48 [debug    ] Transforming
    2026-05-18 13:21:48 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:21:48 [debug    ] Fitting
    2026-05-18 13:21:48 [info     ] If you intend to build a machine learning (ML) model,then make sure that you DO *NOT* preserve the ML model's target as covariate. You will be required to provide the covariate also at transform time, and this will produce data leakage. If you are performing a statistical analysis and want to preserve a variable of interest, then it is correct to specify it as covariate.
    2026-05-18 13:21:48 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:21:48 [debug    ] Final formula for smoothing: y ~ x0 + x1 + x2 + x3 + x4 + x5 + x6 + x7 - 1
    2026-05-18 13:22:10 [debug    ] Transforming
    2026-05-18 13:22:10 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:22:10 [debug    ] Transforming
    2026-05-18 13:22:10 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:22:10 [debug    ] Fitting
    2026-05-18 13:22:10 [info     ] If you intend to build a machine learning (ML) model,then make sure that you DO *NOT* preserve the ML model's target as covariate. You will be required to provide the covariate also at transform time, and this will produce data leakage. If you are performing a statistical analysis and want to preserve a variable of interest, then it is correct to specify it as covariate.
    2026-05-18 13:22:10 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:22:10 [debug    ] Final formula for smoothing: y ~ x0 + x1 + x2 + x3 + x4 + x5 + x6 + x7 - 1
    2026-05-18 13:22:32 [debug    ] Transforming
    2026-05-18 13:22:32 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:22:32 [debug    ] Transforming
    2026-05-18 13:22:32 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:22:32 [debug    ] Fitting
    2026-05-18 13:22:32 [info     ] If you intend to build a machine learning (ML) model,then make sure that you DO *NOT* preserve the ML model's target as covariate. You will be required to provide the covariate also at transform time, and this will produce data leakage. If you are performing a statistical analysis and want to preserve a variable of interest, then it is correct to specify it as covariate.
    2026-05-18 13:22:32 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:22:32 [debug    ] Final formula for smoothing: y ~ x0 + x1 + x2 + x3 + x4 + x5 + x6 + x7 - 1
    2026-05-18 13:22:54 [debug    ] Transforming
    2026-05-18 13:22:54 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:22:54 [debug    ] Transforming
    2026-05-18 13:22:54 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:22:54 [debug    ] Fitting
    2026-05-18 13:22:54 [info     ] If you intend to build a machine learning (ML) model,then make sure that you DO *NOT* preserve the ML model's target as covariate. You will be required to provide the covariate also at transform time, and this will produce data leakage. If you are performing a statistical analysis and want to preserve a variable of interest, then it is correct to specify it as covariate.
    2026-05-18 13:22:54 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:22:54 [debug    ] Final formula for smoothing: y ~ x0 + x1 + x2 + x3 + x4 + x5 + x6 + x7 - 1
    2026-05-18 13:23:16 [debug    ] Transforming
    2026-05-18 13:23:16 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:23:16 [debug    ] Transforming
    2026-05-18 13:23:16 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:23:16 [debug    ] Fitting
    2026-05-18 13:23:16 [info     ] If you intend to build a machine learning (ML) model,then make sure that you DO *NOT* preserve the ML model's target as covariate. You will be required to provide the covariate also at transform time, and this will produce data leakage. If you are performing a statistical analysis and want to preserve a variable of interest, then it is correct to specify it as covariate.
    2026-05-18 13:23:16 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:23:16 [debug    ] Final formula for smoothing: y ~ x0 + x1 + x2 + x3 + x4 + x5 + x6 + x7 - 1
    2026-05-18 13:23:38 [debug    ] Transforming
    2026-05-18 13:23:38 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:23:38 [debug    ] Transforming
    2026-05-18 13:23:38 [debug    ] Setting up smoothing using B-Splines
    Running experiment: eos_interaction1
    2026-05-18 13:23:38 [debug    ] Fitting
    2026-05-18 13:23:38 [info     ] If you intend to build a machine learning (ML) model,then make sure that you DO *NOT* preserve the ML model's target as covariate. You will be required to provide the covariate also at transform time, and this will produce data leakage. If you are performing a statistical analysis and want to preserve a variable of interest, then it is correct to specify it as covariate.
    2026-05-18 13:23:38 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:23:38 [debug    ] Final formula for smoothing: y ~ x0 + x1 + x2 + x3 + x4 + x5 + x6 + x7 - 1
    2026-05-18 13:23:59 [debug    ] Transforming
    2026-05-18 13:23:59 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:23:59 [debug    ] Transforming
    2026-05-18 13:23:59 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:24:00 [debug    ] Fitting
    2026-05-18 13:24:00 [info     ] If you intend to build a machine learning (ML) model,then make sure that you DO *NOT* preserve the ML model's target as covariate. You will be required to provide the covariate also at transform time, and this will produce data leakage. If you are performing a statistical analysis and want to preserve a variable of interest, then it is correct to specify it as covariate.
    2026-05-18 13:24:00 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:24:00 [debug    ] Final formula for smoothing: y ~ x0 + x1 + x2 + x3 + x4 + x5 + x6 + x7 - 1
    2026-05-18 13:24:21 [debug    ] Transforming
    2026-05-18 13:24:21 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:24:21 [debug    ] Transforming
    2026-05-18 13:24:21 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:24:21 [debug    ] Fitting
    2026-05-18 13:24:21 [info     ] If you intend to build a machine learning (ML) model,then make sure that you DO *NOT* preserve the ML model's target as covariate. You will be required to provide the covariate also at transform time, and this will produce data leakage. If you are performing a statistical analysis and want to preserve a variable of interest, then it is correct to specify it as covariate.
    2026-05-18 13:24:21 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:24:21 [debug    ] Final formula for smoothing: y ~ x0 + x1 + x2 + x3 + x4 + x5 + x6 + x7 - 1
    2026-05-18 13:24:42 [debug    ] Transforming
    2026-05-18 13:24:42 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:24:42 [debug    ] Transforming
    2026-05-18 13:24:42 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:24:42 [debug    ] Fitting
    2026-05-18 13:24:42 [info     ] If you intend to build a machine learning (ML) model,then make sure that you DO *NOT* preserve the ML model's target as covariate. You will be required to provide the covariate also at transform time, and this will produce data leakage. If you are performing a statistical analysis and want to preserve a variable of interest, then it is correct to specify it as covariate.
    2026-05-18 13:24:42 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:24:42 [debug    ] Final formula for smoothing: y ~ x0 + x1 + x2 + x3 + x4 + x5 + x6 + x7 - 1
    2026-05-18 13:25:03 [debug    ] Transforming
    2026-05-18 13:25:03 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:25:03 [debug    ] Transforming
    2026-05-18 13:25:03 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:25:03 [debug    ] Fitting
    2026-05-18 13:25:03 [info     ] If you intend to build a machine learning (ML) model,then make sure that you DO *NOT* preserve the ML model's target as covariate. You will be required to provide the covariate also at transform time, and this will produce data leakage. If you are performing a statistical analysis and want to preserve a variable of interest, then it is correct to specify it as covariate.
    2026-05-18 13:25:03 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:25:03 [debug    ] Final formula for smoothing: y ~ x0 + x1 + x2 + x3 + x4 + x5 + x6 + x7 - 1
    2026-05-18 13:25:24 [debug    ] Transforming
    2026-05-18 13:25:24 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:25:24 [debug    ] Transforming
    2026-05-18 13:25:24 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:25:24 [debug    ] Fitting
    2026-05-18 13:25:24 [info     ] If you intend to build a machine learning (ML) model,then make sure that you DO *NOT* preserve the ML model's target as covariate. You will be required to provide the covariate also at transform time, and this will produce data leakage. If you are performing a statistical analysis and want to preserve a variable of interest, then it is correct to specify it as covariate.
    2026-05-18 13:25:24 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:25:24 [debug    ] Final formula for smoothing: y ~ x0 + x1 + x2 + x3 + x4 + x5 + x6 + x7 - 1
    2026-05-18 13:25:45 [debug    ] Transforming
    2026-05-18 13:25:45 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:25:45 [debug    ] Transforming
    2026-05-18 13:25:45 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:25:45 [debug    ] Fitting
    2026-05-18 13:25:45 [info     ] If you intend to build a machine learning (ML) model,then make sure that you DO *NOT* preserve the ML model's target as covariate. You will be required to provide the covariate also at transform time, and this will produce data leakage. If you are performing a statistical analysis and want to preserve a variable of interest, then it is correct to specify it as covariate.
    2026-05-18 13:25:45 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:25:45 [debug    ] Final formula for smoothing: y ~ x0 + x1 + x2 + x3 + x4 + x5 + x6 + x7 - 1
    2026-05-18 13:26:06 [debug    ] Transforming
    2026-05-18 13:26:06 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:26:06 [debug    ] Transforming
    2026-05-18 13:26:06 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:26:06 [debug    ] Fitting
    2026-05-18 13:26:06 [info     ] If you intend to build a machine learning (ML) model,then make sure that you DO *NOT* preserve the ML model's target as covariate. You will be required to provide the covariate also at transform time, and this will produce data leakage. If you are performing a statistical analysis and want to preserve a variable of interest, then it is correct to specify it as covariate.
    2026-05-18 13:26:06 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:26:06 [debug    ] Final formula for smoothing: y ~ x0 + x1 + x2 + x3 + x4 + x5 + x6 + x7 - 1
    2026-05-18 13:26:27 [debug    ] Transforming
    2026-05-18 13:26:27 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:26:28 [debug    ] Transforming
    2026-05-18 13:26:28 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:26:28 [debug    ] Fitting
    2026-05-18 13:26:28 [info     ] If you intend to build a machine learning (ML) model,then make sure that you DO *NOT* preserve the ML model's target as covariate. You will be required to provide the covariate also at transform time, and this will produce data leakage. If you are performing a statistical analysis and want to preserve a variable of interest, then it is correct to specify it as covariate.
    2026-05-18 13:26:28 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:26:28 [debug    ] Final formula for smoothing: y ~ x0 + x1 + x2 + x3 + x4 + x5 + x6 + x7 - 1
    2026-05-18 13:26:49 [debug    ] Transforming
    2026-05-18 13:26:49 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:26:49 [debug    ] Transforming
    2026-05-18 13:26:49 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:26:49 [debug    ] Fitting
    2026-05-18 13:26:49 [info     ] If you intend to build a machine learning (ML) model,then make sure that you DO *NOT* preserve the ML model's target as covariate. You will be required to provide the covariate also at transform time, and this will produce data leakage. If you are performing a statistical analysis and want to preserve a variable of interest, then it is correct to specify it as covariate.
    2026-05-18 13:26:49 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:26:49 [debug    ] Final formula for smoothing: y ~ x0 + x1 + x2 + x3 + x4 + x5 + x6 + x7 - 1
    2026-05-18 13:27:10 [debug    ] Transforming
    2026-05-18 13:27:10 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:27:10 [debug    ] Transforming
    2026-05-18 13:27:10 [debug    ] Setting up smoothing using B-Splines
    Running experiment: eos_interaction2
    2026-05-18 13:27:10 [debug    ] Fitting
    2026-05-18 13:27:10 [info     ] If you intend to build a machine learning (ML) model,then make sure that you DO *NOT* preserve the ML model's target as covariate. You will be required to provide the covariate also at transform time, and this will produce data leakage. If you are performing a statistical analysis and want to preserve a variable of interest, then it is correct to specify it as covariate.
    2026-05-18 13:27:10 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:27:10 [debug    ] Final formula for smoothing: y ~ x0 + x1 + x2 + x3 + x4 + x5 + x6 + x7 - 1
    2026-05-18 13:27:14 [debug    ] Transforming
    2026-05-18 13:27:14 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:27:14 [debug    ] Transforming
    2026-05-18 13:27:14 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:27:14 [debug    ] Fitting
    2026-05-18 13:27:14 [info     ] If you intend to build a machine learning (ML) model,then make sure that you DO *NOT* preserve the ML model's target as covariate. You will be required to provide the covariate also at transform time, and this will produce data leakage. If you are performing a statistical analysis and want to preserve a variable of interest, then it is correct to specify it as covariate.
    2026-05-18 13:27:14 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:27:14 [debug    ] Final formula for smoothing: y ~ x0 + x1 + x2 + x3 + x4 + x5 + x6 + x7 - 1
    2026-05-18 13:27:19 [debug    ] Transforming
    2026-05-18 13:27:19 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:27:19 [debug    ] Transforming
    2026-05-18 13:27:19 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:27:19 [debug    ] Fitting
    2026-05-18 13:27:19 [info     ] If you intend to build a machine learning (ML) model,then make sure that you DO *NOT* preserve the ML model's target as covariate. You will be required to provide the covariate also at transform time, and this will produce data leakage. If you are performing a statistical analysis and want to preserve a variable of interest, then it is correct to specify it as covariate.
    2026-05-18 13:27:19 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:27:19 [debug    ] Final formula for smoothing: y ~ x0 + x1 + x2 + x3 + x4 + x5 + x6 + x7 - 1
    2026-05-18 13:27:23 [debug    ] Transforming
    2026-05-18 13:27:23 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:27:23 [debug    ] Transforming
    2026-05-18 13:27:23 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:27:23 [debug    ] Fitting
    2026-05-18 13:27:23 [info     ] If you intend to build a machine learning (ML) model,then make sure that you DO *NOT* preserve the ML model's target as covariate. You will be required to provide the covariate also at transform time, and this will produce data leakage. If you are performing a statistical analysis and want to preserve a variable of interest, then it is correct to specify it as covariate.
    2026-05-18 13:27:23 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:27:23 [debug    ] Final formula for smoothing: y ~ x0 + x1 + x2 + x3 + x4 + x5 + x6 + x7 - 1
    2026-05-18 13:27:27 [debug    ] Transforming
    2026-05-18 13:27:27 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:27:27 [debug    ] Transforming
    2026-05-18 13:27:27 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:27:28 [debug    ] Fitting
    2026-05-18 13:27:28 [info     ] If you intend to build a machine learning (ML) model,then make sure that you DO *NOT* preserve the ML model's target as covariate. You will be required to provide the covariate also at transform time, and this will produce data leakage. If you are performing a statistical analysis and want to preserve a variable of interest, then it is correct to specify it as covariate.
    2026-05-18 13:27:28 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:27:28 [debug    ] Final formula for smoothing: y ~ x0 + x1 + x2 + x3 + x4 + x5 + x6 + x7 - 1
    2026-05-18 13:27:32 [debug    ] Transforming
    2026-05-18 13:27:32 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:27:32 [debug    ] Transforming
    2026-05-18 13:27:32 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:27:32 [debug    ] Fitting
    2026-05-18 13:27:32 [info     ] If you intend to build a machine learning (ML) model,then make sure that you DO *NOT* preserve the ML model's target as covariate. You will be required to provide the covariate also at transform time, and this will produce data leakage. If you are performing a statistical analysis and want to preserve a variable of interest, then it is correct to specify it as covariate.
    2026-05-18 13:27:32 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:27:32 [debug    ] Final formula for smoothing: y ~ x0 + x1 + x2 + x3 + x4 + x5 + x6 + x7 - 1
    2026-05-18 13:27:36 [debug    ] Transforming
    2026-05-18 13:27:36 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:27:36 [debug    ] Transforming
    2026-05-18 13:27:36 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:27:36 [debug    ] Fitting
    2026-05-18 13:27:36 [info     ] If you intend to build a machine learning (ML) model,then make sure that you DO *NOT* preserve the ML model's target as covariate. You will be required to provide the covariate also at transform time, and this will produce data leakage. If you are performing a statistical analysis and want to preserve a variable of interest, then it is correct to specify it as covariate.
    2026-05-18 13:27:36 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:27:36 [debug    ] Final formula for smoothing: y ~ x0 + x1 + x2 + x3 + x4 + x5 + x6 + x7 - 1
    2026-05-18 13:27:41 [debug    ] Transforming
    2026-05-18 13:27:41 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:27:41 [debug    ] Transforming
    2026-05-18 13:27:41 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:27:41 [debug    ] Fitting
    2026-05-18 13:27:41 [info     ] If you intend to build a machine learning (ML) model,then make sure that you DO *NOT* preserve the ML model's target as covariate. You will be required to provide the covariate also at transform time, and this will produce data leakage. If you are performing a statistical analysis and want to preserve a variable of interest, then it is correct to specify it as covariate.
    2026-05-18 13:27:41 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:27:41 [debug    ] Final formula for smoothing: y ~ x0 + x1 + x2 + x3 + x4 + x5 + x6 + x7 - 1
    2026-05-18 13:27:45 [debug    ] Transforming
    2026-05-18 13:27:45 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:27:45 [debug    ] Transforming
    2026-05-18 13:27:45 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:27:45 [debug    ] Fitting
    2026-05-18 13:27:45 [info     ] If you intend to build a machine learning (ML) model,then make sure that you DO *NOT* preserve the ML model's target as covariate. You will be required to provide the covariate also at transform time, and this will produce data leakage. If you are performing a statistical analysis and want to preserve a variable of interest, then it is correct to specify it as covariate.
    2026-05-18 13:27:45 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:27:45 [debug    ] Final formula for smoothing: y ~ x0 + x1 + x2 + x3 + x4 + x5 + x6 + x7 - 1
    2026-05-18 13:27:49 [debug    ] Transforming
    2026-05-18 13:27:49 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:27:50 [debug    ] Transforming
    2026-05-18 13:27:50 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:27:50 [debug    ] Fitting
    2026-05-18 13:27:50 [info     ] If you intend to build a machine learning (ML) model,then make sure that you DO *NOT* preserve the ML model's target as covariate. You will be required to provide the covariate also at transform time, and this will produce data leakage. If you are performing a statistical analysis and want to preserve a variable of interest, then it is correct to specify it as covariate.
    2026-05-18 13:27:50 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:27:50 [debug    ] Final formula for smoothing: y ~ x0 + x1 + x2 + x3 + x4 + x5 + x6 + x7 - 1
    2026-05-18 13:27:54 [debug    ] Transforming
    2026-05-18 13:27:54 [debug    ] Setting up smoothing using B-Splines
    2026-05-18 13:27:54 [debug    ] Transforming
    2026-05-18 13:27:54 [debug    ] Setting up smoothing using B-Splines




.. GENERATED FROM PYTHON SOURCE LINES 160-162

Plotting
--------

.. GENERATED FROM PYTHON SOURCE LINES 162-193

.. code-block:: Python


    fig, ax = plt.subplots(1, 1, figsize=[15, 7])

    harm_methods = [
        "ComBatGAM",
        "Unharmonized Baseline",
    ]

    sns.swarmplot(data=results, x="Name", y="bACC", hue="Method", hue_order=harm_methods, dodge=True, ax=ax)

    sns.boxplot(
        data=results,
        color="w",
        zorder=1,
        x="Name",
        y="bACC",
        hue="Method",
        hue_order=harm_methods,
        dodge=True,
        ax=ax,
        palette=["w"] * len(harm_methods),
    )
    handles, labels = ax.get_legend_handles_labels()
    ax.legend(handles[: len(harm_methods)], labels[: len(harm_methods)])
    ax.axhline(0.5, lw=2, color="k", ls="--", alpha=0.7, label="Chance level")
    plt.grid(axis="y")
    plt.grid(axis="y")
    plt.xticks(rotation=45)

    plt.show()




.. image-sg:: /auto_examples/03-combat-based/images/sphx_glr_06-plot_combatgam_with_mareos_001.png
   :alt: 06 plot combatgam with mareos
   :srcset: /auto_examples/03-combat-based/images/sphx_glr_06-plot_combatgam_with_mareos_001.png
   :class: sphx-glr-single-img





.. GENERATED FROM PYTHON SOURCE LINES 194-199

.. admonition:: Take-home message

   ComBatGAM removes the ``eos`` site effect while preserving the "true" signal.
   The plot and results demonstrate the method’s ability to reduce spurious
   site-related variation and maintain true biological effect performance.


.. rst-class:: sphx-glr-timing

   **Total running time of the script:** (23 minutes 14.802 seconds)


.. _sphx_glr_download_auto_examples_03-combat-based_06-plot_combatgam_with_mareos.py:

.. only:: html

  .. container:: sphx-glr-footer sphx-glr-footer-example

    .. container:: sphx-glr-download sphx-glr-download-jupyter

      :download:`Download Jupyter notebook: 06-plot_combatgam_with_mareos.ipynb <06-plot_combatgam_with_mareos.ipynb>`

    .. container:: sphx-glr-download sphx-glr-download-python

      :download:`Download Python source code: 06-plot_combatgam_with_mareos.py <06-plot_combatgam_with_mareos.py>`

    .. container:: sphx-glr-download sphx-glr-download-zip

      :download:`Download zipped: 06-plot_combatgam_with_mareos.zip <06-plot_combatgam_with_mareos.zip>`


.. only:: html

 .. rst-class:: sphx-glr-signature

    `Gallery generated by Sphinx-Gallery <https://sphinx-gallery.github.io>`_
