我正在努力在带有 m3 芯片的 Mac 上编译和使用 X-13ARIMA-SEAT,并在
statsmodels中使用
sm.tsa.x13_arima_analysis(s, x12path='/usr/local/bin/x13as')
来调用它。终于成功了,现在一步步分享方法。
另外,我想知道如何使用Python库如statsmodels或其他季节性调整工具使用tramo-seats来季节性调整数据?
首先,我们可以从 macOS Apple Silicon (ARM64) 的链接 SourceForge 下载 X-13ARIMA-SEATS 二进制文件并安装。详细步骤如下:
第 1 步:下载适用于 macOS Apple Silicon 的 X-13ARIMA-SEATS
从 SourceForge 下载适用于 macOS Apple Silicon 的 X-13ARIMA-SEATS 二进制文件:
curl -L -o x13as-mac-arm64.tar.gz https://sourceforge.net/projects/gretl/files/x13as/x13as-mac-arm64.tar.gz/download
第2步:解压下载的文件
解压下载的tar.gz文件:
重击:
tar -xzvf x13as-mac-arm64.tar.gz
第3步:将可执行文件移动到系统路径
将解压后的x13as可执行文件移至
/usr/local/bin
目录并确保其具有执行权限:
重击:
sudo mv x13as /usr/local/bin/x13as
sudo chmod +x /usr/local/bin/x13as
第 4 步:测试安装
测试x13as安装成功:
重击:
x13as
如果一切顺利,您应该看到以下错误消息,表明二进制文件工作正常:
information on how to run X-13ARIMA-SEATS.
X-13ARIMA-SEATS Seasonal Adjustment Program
Version Number 1.1 Build 61
Execution began Jul 14, 2022 19.38.34
ERROR: Must specify either an input specification file name
(-i infile or infile) or an input metafile name (-m metafile).
See Section 2 of the X-13ARIMA-SEATS Reference Manual for more
information on how to run X-13ARIMA-SEATS.
第5步:在Python中使用X-13ARIMA-SEATS
我们可以使用 statsmodels 库在 Python 中调用 X-13ARIMA-SEATS:
import statsmodels.api as sm
import pandas as pd
import numpy as np
# Generate test data
np.random.seed(0)
n_periods = 120 # 10 years, 12 months per year
date_range = pd.date_range(start='2010-01-01', periods=n_periods, freq='M')
seasonal_pattern = np.sin(2 * np.pi * date_range.month / 12)
trend = np.linspace(0, 10, n_periods)
noise = np.random.normal(0, 0.5, n_periods)
data = 10 + trend + seasonal_pattern + noise
# Create time series data
s = pd.Series(data, index=date_range)
# Seasonal Adjustment using X-13ARIMA-SEATS
res = sm.tsa.x13_arima_analysis(s, x12path='/usr/local/bin/x13as')
# Print Results
print(res.summary())
# Plot the Original Data and Seasonally Adjusted Data
import matplotlib.pyplot as plt
fig, ax = plt.subplots(figsize=(12, 8))
s.plot(ax=ax, label='Original Data')
res.seasadj.plot(ax=ax, label='Seasonally Adjusted Data')
plt.legend()
plt.title('Seasonal Adjustment using X-13ARIMA-SEATS')
plt.show()
出:
通过这些步骤,您应该能够在 macOS 上成功安装和使用 X-13ARIMA-SEATS。