时间序列模拟与预测实战

1、生成一个包含500个时间步的随机游走序列。可以选择一个非零的初始值。此外,通过向np.random.seed()传递不同的整数来更改随机种子。

以下是使用 Python 和 NumPy 库实现生成 500 个时间步的随机游走序列的代码示例:

import numpy as np

# 设置随机种子
np.random.seed(123)

# 选择一个非零的初始值
initial_value = 10

# 生成随机增量
steps = np.random.normal(loc=0, scale=1, size=499)

# 构建随机游走序列
random_walk = np.cumsum(steps)

random_walk = np.insert(random_walk, 0, initial_value)

print(random_walk)

在上述代码中,我们首先设置了随机种子为 123 ,然后选择了一个初始值 10 。接着,我们生成了 499 个服从标准正态分布的随机增量,并使用 np.cumsum() 函数计算累积和。最后,我们使用 np.insert() 函数将初始值插入到序列的开头,得到了包含 500 个时间步的随机游走序列。

2、绘制你模拟的随机游走图。

以下是绘制模拟随机游走图的代码示例:

import numpy as np
import matplotlib.pyplot as plt

# 设置随机种子
np.random.seed(42)

# 生成1000个随机数
steps = np.random.standard_normal(1000)

# 初始化序列的第一个值为0
steps[0] = 0

# 计算累积和
random_walk = np.cumsum(steps)

# 绘制图形
fig, ax = plt.subplots()
ax.plot(random_walk)
ax.set_xlabel('Timesteps')
ax.set_ylabel('Value')

plt.tight_layout()
plt.show()

3、请简述平稳性检验的常见方法及相关原理,并说明如何根据检验结果判断时间序列是否平稳,同时举例说明其应用。

平稳性检验方法

常见的平稳性检验方法是增广迪基-富勒(ADF)检验。

检验原理

  • 原假设 :时间序列中存在单位根。
  • 备择假设 :时间序列中不存在单位根,即时间序列是平稳的。

检验结果解读

  • ADF统计量 :为一个负数,该值越负,越能拒绝原假设。
  • p值 :在Python实现中会返回p值,若p值小于0.05,则可拒绝原假设,认为序列是平稳的。

应用示例

在对以下数据进行分析时,均使用了ADF检验来判断时间序列是否平稳:

  • 航空公司月度乘客总数数据
  • 宏观经济数据(实际可支配收入和实际消费)
  • 季度每股收益数据

若检验结果显示序列不平稳,则通过差分等变换使其平稳后再次进行检验。

4、将你模拟的随机游走数据拆分为训练集和测试集,训练集包含前400个时间步,剩下的100个时间步作为测试集。

可使用类似以下代码进行拆分(假设模拟的随机游走数据存储在变量 random_walk 中):

import pandas as pd

df = pd.DataFrame({'value': random_walk})
train = df[:400]
test = df[400:]
]

##5、将最后5天的数据保留作为测试集,其余部分作为训练集。
可以使用类似如下代码实现(以 `Python` 和 `Pandas` 为例):

```python
train = df[:-5]
test = df[-5:]

其中 df 是你的数据集。

6、判断一个时间序列是否为随机游走

判断时间序列是否为随机游走的步骤

判断一个时间序列是否为随机游走,可按以下步骤进行:

  1. 收集数据 :获取需要分析的时间序列数据。
  2. 测试平稳性 :对数据进行平稳性检验。
    - 若数据 不平稳 ,则对其进行变换(如差分、对数变换等),直到序列变得平稳。
  3. 绘制自相关函数(ACF) :对平稳化后的序列绘制自相关图。
    - 若结果显示 不存在显著的自相关性 ,则可以认为该序列为随机游走。

实际应用结果

  • 模拟数据 进行上述测试后,确认其为随机游走。
  • 谷歌(GOOGL)收盘价数据 进行相同测试后,也确认其为随机游走。

7、如果不是随机游走,请解释原因。

若时间序列数据不满足“一阶差分平稳且无自相关”这一条件,则不是随机游走。
即数据不平稳且经变换后仍无法达到平稳,或者绘制自相关函数(ACF)图显示存在自相关时,就不是随机游走。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值