如何使用滑动窗口线性回归预测测试阶段的股票价格?
滑动窗口线性回归预测未来股票价格的逻辑
先澄清训练阶段的核心逻辑
你在训练数据上的操作本质是内样本一步预测验证:对第i天(15≤i≤149),用它之前的15天数据(第i-15到i-1天)拟合线性模型$f_i$,然后预测第i天的收盘价——这是用“过去15天”预测“次日”,而非预测当天(你之前的区间表述$[i-15,i)$是左闭右开,对应的正是前15天的完整窗口)。
预测第150-169天的两种核心方式
方式1:基于真实数据的滚动窗口(用于事后对比测试数据)
这是最适合和测试数据做精度对比的方式,完全模拟“每日用最新真实历史数据预测次日”的场景:
- 预测第150天:用训练数据的最后15天(第135到149天)的真实收盘价拟合线性模型,预测第150天的价格
- 预测第151天:用第136到150天的真实收盘价(其中第150天是测试数据的真实值)拟合新的线性模型,预测第151天的价格
- 以此类推,直到第169天:用第154到168天的真实收盘价拟合模型,预测第169天的价格
- 这种方式没有引入预测误差的累积,每一步都用真实的历史数据,能准确反映模型对“次日价格”的预测能力,适合和测试数据做直接对比。
方式2:基于预测数据的滚动窗口(模拟真实无前瞻的预测场景)
如果是模拟实际交易中无法提前获取未来真实数据的情况,就需要用已有的预测值替代真实值来滚动窗口:
- 预测第150天:同样用第135到149天的真实数据拟合模型,得到预测值$\hat{P}_{150}$
- 预测第151天:用第136到149天的真实数据 + 第150天的预测值$\hat{P}{150}$组成新的15天窗口,拟合模型后预测$\hat{P}{151}$
- 后续每一天都重复此逻辑:用前14天的真实/已预测数据 + 前一天的预测值组成窗口,拟合模型预测当天价格
- 这种方式的误差会随预测天数增加而累积,但它是真正的“无前瞻预测”,能体现模型在实际应用中的表现。
关键注意点
无论哪种方式,你的线性模型都是基于“窗口内的时间序列趋势”来预测下一个时间点的价格——自变量通常是窗口内的相对时间(比如窗口内第0天到第14天),因变量是对应天数的收盘价,拟合后代入下一个时间点(窗口内第15天)得到预测值。
内容的提问来源于stack exchange,提问作者Dan1618
相关产品推荐
相关产品推荐

