时间序列预测ARIMA/LSTM/Prophet 实战1. 时间序列基础时间序列成分 ├── 趋势Trend长期变化方向 ├── 季节性Seasonality周期性变化 ├── 周期性Cyclical非固定周期波动 └── 噪声Noise随机波动2. ARIMAfromstatsmodels.tsa.arima.modelimportARIMAfromstatsmodels.tsa.stattoolsimportadfuller# 平稳性检验resultadfuller(data)print(fADF Statistic:{result[0]})print(fp-value:{result[1]})# 差分使数据平稳data_diffdata.diff().dropna()# ARIMA 模型modelARIMA(data,order(1,1,1))model_fitmodel.fit()print(model_fit.summary())# 预测forecastmodel_fit.forecast(steps30)3. LSTMimporttorchimporttorch.nnasnnclassLSTMModel(nn.Module):def__init__(self,input_size,hidden_size,num_layers,output_size):super().__init__()self.lstmnn.LSTM(input_size,hidden_size,num_layers,batch_firstTrue)self.fcnn.Linear(hidden_size,output_size)defforward(self,x):lstm_out,_self.lstm(x)outself.fc(lstm_out[:,-1,:])returnout# 数据准备defcreate_sequences(data,seq_length):X,y[],[]foriinrange(len(data)-seq_length):X.append(data[i:iseq_length])y.append(data[iseq_length])returnnp.array(X),np.array(y)4. ProphetfromprophetimportProphet# 数据格式ds(日期), y(值)dfpd.DataFrame({ds:dates,y:values})modelProphet(yearly_seasonalityTrue,weekly_seasonalityTrue,daily_seasonalityFalse)model.fit(df)# 预测futuremodel.make_future_dataframe(periods30)forecastmodel.predict(future)# 可视化model.plot(forecast)model.plot_components(forecast)总结方法适用场景优势ARIMA线性/平稳序列统计理论完善LSTM非线性/复杂模式捕捉长期依赖Prophet有季节性的业务数据自动处理节假日