【问题标题】:MATLAB: How can I create autocorrelated data?MATLAB:如何创建自相关数据?
【发布时间】:2015-11-17 14:39:53
【问题描述】:

我希望在 MATLAB 中创建一个自相关数据点的向量,其中滞后 1 高于滞后 2,依此类推。

如果我查看滞后 1 数据对 (1, 2), (3, 4), (5, 6), ...,则相关性相对较高,但在滞后 2 时,相关性会降低。

我在 R 中找到了一种方法

x <- filter(rnorm(1000), filter=rep(1,3), circular=TRUE)

但是,我不确定如何在 MATLAB 中做同样的事情。理想情况下,我希望能够精确调整数据的自相关程度。

【问题讨论】:

    标签: matlab


    【解决方案1】:

    数学:

    一组用于平稳时间序列自相关的标准模型被称为“自回归模型”,例如。具有 1 项的自回归模型称为 AR(1),并且是:

                                  y_t = a + b*y_{t-1} + e_t
    

    AR(1) 听起来很简单,但实际上它是一个非常强大的工具。例如。具有 p 个自回归项的 AR(p) 实际上是 p 维向量上的 AR(1)。 (Check Wikipedia page.) 另请注意 b=1,给出非平稳随机游走。

    一种更直观的方式来写出正在发生的事情(在 |b| u = a / (1 - b)(原来 u 是 AR(1) 的无条件均值),然后使用一些代数:

                        y_t - u = b * ( y_{t-1} - u) + e_t
    

    也就是说,与无条件均值 u 的差值会受到一些衰减项 b 的影响,然后添加一个冲击项 e_t。 (你想要-1&lt;b&lt;1 来保证平稳性)

    代码:

    由于 e_t 表示冲击项,因此非常容易模拟。例如。模拟 AR(1):

    a = 0; b = .4; sigma = 1; T = 1000;
    y0 = a / (1 - b); %eg initialize to unconditional mean of stationary time series
    
    y = zeros(T,1);
    y(1) = a + b * y0 + randn() * sigma;
    for t = 2:T
        y(t) = a + b * y(t-1) + randn() * sigma;
    end
    

    此代码并不意味着快速,而是说明性的。 AR(1) 模型意味着某种类型的相关结构,但是添加 AR 或 MA 项,您可以拟合一些非常时髦的东西。 (MA是移动平均模型)

    可以使用autocorr(y) 测试样本自相关性。作为参考,时间序列数学的圣经是汉密尔顿的书时间序列分析

    【讨论】:

    • @user1205901 您的系列中的时间步数。
    • 我没有使用内置的 MATLAB 函数 sigma,sigma 应该是你的冲击项 epsilon 的标准差。
    • 是的。随机游走没有无条件的意思!如果你有 y_t = y_{t-1} + e_t 并问什么是 E[y_t],它是未定义的!我可能会在太多的话题上蹦蹦跳跳,以至于无法非常清楚。时间序列分析的一个关键区别是您是否拥有平稳时间序列或非平稳时间序列。示例:GDP(国内生产总值)可能是非平稳随机游走。另一方面,GDP 增长(即 GDP 的变化)可能是一个平稳的时间序列。经济平均每年增长约2%。最简单的 GDP 模型,可能是关于对数 GDP 变化的 AR(1)。
    • @user1205901 不...想法是您可以使用时间序列模型来提取随机冲击 \epsilon_t 的一些估计值。假设真正的数据生成模型是 y_t = .7 y_{t-1} + \epsilon_t。 \epsilon_t 是白噪声时间序列,没有自相关(例如,只是 randn(T, 1))。时间序列 y_t 将是自相关的。如果我估计模型 y_t = b * y_{t-1} + e_t,我会得到一个估计值 b(希望在 0.7 左右),还有一个残差的时间序列,e_t 是对序列 \epsilon_t 的估计。
    • @user1205901 真正松散/草率的类比:假设您有一些平面位置的时间序列 y_t 和一些随机控制输入的随机时间序列 e_t。时间序列模型允许您在两者之间来回切换。
    猜你喜欢
    • 2018-12-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-06
    • 2018-10-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多