You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The adoption of Windows on ARM (WoA) devices is steadily increasing, yet many Python wheels are still not available for this platform.
GitHub Actions now offer native CI runners for Windows on ARM devices (windows-11-arm), enabling automated builds and testing.
Currently, official statsmodels Python wheels are not provided for Windows ARM64 and thus users/developers were facing difficulties using popular statsmodels library natively.
Now SciPy and NumPy are released for Windows on ARM, having statsmodel wheels for Windows on ARM would be highly appreciated :)
@bashtage this is really great and highly appreciable, thanks for adding the support. I could see that Pandas already supports Windows ARM builds in the wheel builder, might be releasing wheels in the next minor release. Could you share some information (ETA) on the next official release for statsmodel?
Ideally it would be sometime this fall, but hard to say. First pandas, then maybe some patches, and only then would be put out a wheel on PYPi. This said, dailies will be available on anaconda in the coming days.
There are many failing tests when trying to run on Windows on Arm. I don't have any hardward so would really need someone to work through these failures and find the root cause (and submit PRs).
Small correction - the failures are actually segfaults. Most appear to be related to models that use the Poisson. I suspect that there is an issue somewhere in SciPy or NumPy as we don't have any compiled code in these models.
2025-10-30T18:09:48.5055765Z File "C:\Users\runneradmin\AppData\Local\Temp\cibw-run-w3cdw1ru\cp313-win_arm64\venv-test\Lib\site-packages\numpy\linalg\_linalg.py", line 669 in inv
2025-10-30T18:09:48.5056878Z File "C:\Users\runneradmin\AppData\Local\Temp\cibw-run-w3cdw1ru\cp313-win_arm64\venv-test\Lib\site-packages\statsmodels\genmod\generalized_linear_model.py", line 1387 in _fit_gradient
2025-10-30T18:09:48.5058174Z File "C:\Users\runneradmin\AppData\Local\Temp\cibw-run-w3cdw1ru\cp313-win_arm64\venv-test\Lib\site-packages\statsmodels\genmod\generalized_linear_model.py", line 1305 in fit
2025-10-30T18:09:48.5059299Z File "C:\Users\runneradmin\AppData\Local\Temp\cibw-run-w3cdw1ru\cp313-win_arm64\venv-test\Lib\site-packages\statsmodels\base\_penalized.py", line 213 in fit
2025-10-30T18:09:48.5060682Z File "C:\Users\runneradmin\AppData\Local\Temp\cibw-run-w3cdw1ru\cp313-win_arm64\venv-test\Lib\site-packages\statsmodels\base\_screening.py", line 297 in screen_exog
2025-10-30T18:09:48.5061956Z File "C:\Users\runneradmin\AppData\Local\Temp\cibw-run-w3cdw1ru\cp313-win_arm64\venv-test\Lib\site-packages\statsmodels\base\tests\test_screening.py", line 160 in test_glmpoisson_screening
Looks like a segfault in matrix inversion via NumPy.
After skipping two tests that segfault on win-arm64, the test suite passes. The next challenge is determinine how to get the nightlies to upload. We use miniforge which does not have an arm64 installer. Any ideas?
Switch to building all wheels, then accumulate them all in a single job with artifact-upload/artifact-download, then upload them in a single job running on Linux x86-64 (scipy-release just switched to this, TBD if there are any issues with rate limits).
I was wrong about the passing of Windows-ARM64. It is still consistently segfaulting inv operations, e.g.,
File "C:\Users\runneradmin\AppData\Local\Temp\cibw-run-3ijbha8c\cp313-win_arm64\venv-test\Lib\site-packages\numpy\linalg\_linalg.py", line 648 in inv
File "C:\Users\runneradmin\AppData\Local\Temp\cibw-run-3ijbha8c\cp313-win_arm64\venv-test\Lib\site-packages\statsmodels\tsa\statespace\kalman_smoother.py", line 1687 in smoothed_state_gain
This needs to be fixed upstream (OpenBLAS or NumPy, depending) before it will be possible to release for Windows-ARM64.
If anyone has a Windows-ARM64 devide wiht a different CPU, it would be great if you could see if the statsmodels test suit can run on your CPU (to see if it is a kernel-specific bug in OpenBLAS)
Activity
bashtage commentedon Sep 12, 2025
Need a pandas release that supports arm64 on Windows in order to test, which is required before we can release.
bashtage commentedon Sep 12, 2025
First attempt failed due to changes in NumPy's npymath library structure.
#xref numpy/numpy#29747
MGN-GIT commentedon Sep 12, 2025
@bashtage I have a local Windows on ARM setup, let try to reproduce from my side and let you know
bashtage commentedon Sep 13, 2025
main is now building on win-arm64
Probably won't be on PyPI until the next release, and we will likely need win-arm64 pandas since it is required for the tests.
MGN-GIT commentedon Sep 13, 2025
@bashtage this is really great and highly appreciable, thanks for adding the support. I could see that Pandas already supports Windows ARM builds in the wheel builder, might be releasing wheels in the next minor release. Could you share some information (ETA) on the next official release for statsmodel?
bashtage commentedon Sep 13, 2025
Ideally it would be sometime this fall, but hard to say. First pandas, then maybe some patches, and only then would be put out a wheel on PYPi. This said, dailies will be available on anaconda in the coming days.
bashtage commentedon Sep 13, 2025
Available now at
https://anaconda.org/scientific-python-nightly-wheels/statsmodels/files
MGN-GIT commentedon Sep 13, 2025
Thanks, will keep an eye on Panda's release
bashtage commentedon Oct 30, 2025
There are many failing tests when trying to run on Windows on Arm. I don't have any hardward so would really need someone to work through these failures and find the root cause (and submit PRs).
bashtage commentedon Oct 30, 2025
Small correction - the failures are actually segfaults. Most appear to be related to models that use the Poisson. I suspect that there is an issue somewhere in SciPy or NumPy as we don't have any compiled code in these models.
bashtage commentedon Oct 31, 2025
First hint as to the ultimate source
Looks like a segfault in matrix inversion via NumPy.
khmyznikov commentedon Jan 21, 2026
@bashtage segfaults on scipy sides are gone. pandas just got 3.0 release with WoA support.
bashtage commentedon Jan 21, 2026
We can see what happens now then.
khmyznikov commentedon Mar 27, 2026
@bashtage I don't see any nighthly builds anymore for some reason... What's the current state of this effort? Any new blocking issues?
bashtage commentedon Mar 28, 2026
They seem to be here:
https://anaconda.org/channels/scientific-python-nightly-wheels/packages/statsmodels/files
bashtage commentedon Mar 28, 2026
Oh, you are looking for ARM. I don't think we've had ARM succeed yet, and it isn't part of the nightly build.
khmyznikov commentedon Mar 28, 2026
@bashtage I bet it was there last September. What's the current issues? Still some instabilities have occurs? Could you point me to the logs?
bashtage commentedon Mar 29, 2026
The test suit segfailts in
np.linalg.inv. See the log here https://github.com/MacPython/statsmodels-wheels/actions/runs/23712035908/job/69073225754rgommers commentedon Mar 29, 2026
I think that's a known issue: numpy/numpy#29442
bashtage commentedon Mar 31, 2026
After skipping two tests that segfault on win-arm64, the test suite passes. The next challenge is determinine how to get the nightlies to upload. We use miniforge which does not have an arm64 installer. Any ideas?
rgommers commentedon Mar 31, 2026
Two options:
artifact-upload/artifact-download, then upload them in a single job running on Linux x86-64 (scipy-releasejust switched to this, TBD if there are any issues with rate limits).win-arm64specially like so: https://github.com/numpy/numpy-release/blob/2c5bc070bce1ac72bafdb66f115f1446916e67a2/.github/workflows/wheels.yml#L150-L168bashtage commentedon Apr 1, 2026
I was wrong about the passing of Windows-ARM64. It is still consistently segfaulting
invoperations, e.g.,This needs to be fixed upstream (OpenBLAS or NumPy, depending) before it will be possible to release for Windows-ARM64.
bashtage commentedon Apr 1, 2026
If anyone has a Windows-ARM64 devide wiht a different CPU, it would be great if you could see if the statsmodels test suit can run on your CPU (to see if it is a kernel-specific bug in OpenBLAS)
bashtage commentedon Apr 1, 2026
I will add the failing Windows-ARM64 build so that if it is fixed upstream, the wheels will start showing up in nightlies.
xref MacPython/statsmodels-wheels#191
xieofxie commentedon Sep 23, 2026
it shows up now https://anaconda.org/channels/scientific-python-nightly-wheels/packages/statsmodels/files?file_q=win_arm64 and also in pypi. so it is resolved ?
bashtage commentedon Sep 28, 2026
I think it is resolved. They still fail the test suite but this is upstream to us.