Skip to content

BUG: Bambi logistic regression fails on M1 silicon #6415

Open
@tarmojuristo

Description

@tarmojuristo

Describe the issue:

Running a logistic regression in Bambi with default settings fails. However, if chains=1 is set in model.fit() then everything works fine.

Reproduceable code example:

import bambi as bmb
import numpy as np

data = bmb.load_data("adults")

age_mean = np.mean(data["age"])
age_std = np.std(data["age"])

data["age"] = (data["age"] - age_mean) / age_std

model = bmb.Model("income['>50K'] ~ sex + age", data, family="bernoulli")
fitted = model.fit(draws=1000)

Error message:

Auto-assigning NUTS sampler...
Initializing NUTS using jitter+adapt_diag...
Multiprocess sampling (4 chains in 4 jobs)
NUTS: [Intercept, sex, age]
Traceback (most recent call last):000 00:00<? Sampling 4 chains, 0 divergences]
  File "/Users/tarmo/Desktop/SALK/streamlit-model/example.py", line 12, in <module>
    fitted = model.fit(draws=1000)
  File "/Users/tarmo/mambaforge/envs/pymc/lib/python3.10/site-packages/bambi/models.py", line 271, in fit
    return self.backend.run(
  File "/Users/tarmo/mambaforge/envs/pymc/lib/python3.10/site-packages/bambi/backend/pymc.py", line 98, in run
    result = self._run_mcmc(
  File "/Users/tarmo/mambaforge/envs/pymc/lib/python3.10/site-packages/bambi/backend/pymc.py", line 289, in _run_mcmc
    idata = pm.sample(
  File "/Users/tarmo/mambaforge/envs/pymc/lib/python3.10/site-packages/pymc/sampling/mcmc.py", line 529, in sample
    mtrace = _mp_sample(**sample_args, **parallel_args)
  File "/Users/tarmo/mambaforge/envs/pymc/lib/python3.10/site-packages/pymc/sampling/mcmc.py", line 1019, in _mp_sample
    for draw in sampler:
  File "/Users/tarmo/mambaforge/envs/pymc/lib/python3.10/site-packages/pymc/sampling/parallel.py", line 449, in __iter__
    draw = ProcessAdapter.recv_draw(self._active)
  File "/Users/tarmo/mambaforge/envs/pymc/lib/python3.10/site-packages/pymc/sampling/parallel.py", line 320, in recv_draw
    msg = ready[0].recv()
  File "/Users/tarmo/mambaforge/envs/pymc/lib/python3.10/multiprocessing/connection.py", line 255, in recv
    buf = self._recv_bytes()
  File "/Users/tarmo/mambaforge/envs/pymc/lib/python3.10/multiprocessing/connection.py", line 419, in _recv_bytes
    buf = self._recv(4)
  File "/Users/tarmo/mambaforge/envs/pymc/lib/python3.10/multiprocessing/connection.py", line 388, in _recv
    raise EOFError
EOFError

PyMC version information:

PyMC 5.0.1
PyTensor 2.8.11
Python 3.10
MacOS Ventura 13.0.1 on M1
mambaforge

Context for the issue:

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions