我正在阅读有关使用 phython 进行时间序列预测的书。 当我在自回归模型中输入Python代码时,出现了一个问题。
Python脚本如下,
def generate_timeseries(signal, noise=None):
time_sampler = ts.TimeSampler(stop_time=20)
regular_time_samples = time_sampler.sample_regular_time(num_points=100)
timeseries = ts.TimeSeries(signal_generator=signal, noise_generator=noise)
samples, signals, errors = timeseries.sample(regular_time_samples)
return samples, regular_time_samples, signals, errors
signal = ts.signals.AutoRegressive(ar_param=[1.5, -0.75])
samples, regular_time_samples, signals, errors = generate_timeseries(signal=signal)
出现如下错误消息。
ValueError:用序列设置数组元素。请求的数组在 1 维之后具有不均匀的形状。检测到的形状为 (2,) + 不均匀部分。
请给我任何建议来解决这个问题。
谢谢你。
我已阅读此站点中的解决方案或与此错误相关的任何博客,但找不到确切的解决方案。
该错误表明您应该使用序列设置数组元素。不要分配
ar_param=[1.5, -0.75]
,而是尝试使用 ar_param=[1.5 -0.75]
,它应该可以工作。这是完整的代码:
import timesynth as ts
# Initializing TimeSampler
time_sampler = ts.TimeSampler(stop_time=20)
# Sampling regular time samples
regular_time_samples = time_sampler.sample_regular_time(num_points=100)
# Initializing AR model
ar_p = ts.signals.AutoRegressive(ar_param=[1.5 -0.75])
ar_p_series = ts.TimeSeries(signal_generator=ar_p)
samples = ar_p_series.sample(regular_time_samples)
plt.plot(regular_time_samples, samples[0])