虚假回归(随机游走)

机器算法验证 时间序列 随机游走 虚假相关
2022-04-02 09:31:30

我了解到,如果您只使用 OLS,随机游走过程对另一个过程的回归会导致看似具有统计意义的关系。但是,为什么我们会得到如此大的 t 统计量?为什么我们通常的假设检验机制不起作用?

特别是,我正在考虑将一个随机游走回归到另一个随机游走。不仅仅是一般的虚假回归。

2个回答

考虑什么是随机游走:每个新值只是旧值的一个小扰动。

当解释变量和同步响应都是随机游走时,点对是平面中具有相似性质的随机游走:每个新点都是从上一个。这个 2D 随机游走映射了众所周知的醉汉在灯柱附近的黑暗中蹒跚而行:他不会在很长一段时间内覆盖灯柱周围的所有地面。通常情况下,他会朝某个随机的方向蹒跚而行,直到第一次冲出任意距离进入深夜才绕过灯柱的另一边。因此,如果您只绘制一小段步行,这些点往往会排成一行。xtyt(xt,yt) 这会产生看似“重要”的关系。

普通最小二乘法(和大多数其他程序)错误地确定了显着性,因为(1)它们假设条件响应是相互独立的——但显然它们不是——并且(2)它们没有考虑随机(和序列相关)解释变量的变化。这是真正重要的第一个特征:它还会欺骗其他旨在解释xt.

为了说明这一说法,这里有 20 个单独的此类步行的地图,每个步行有 30 个(高斯)步骤。为了向您展示序列,起点用黑点标记,随后的点以越来越浅的阴影绘制。在每一个上,我都叠加了 OLS 拟合(一条白线段),围绕它的是该拟合的两侧 95% 置信区间。在超过一半的情况下(包括前两行中的所有情况),该置信区间没有包围水平线,表明斜率“显着”非零。

数字

这种行为会持续任意长的时间(直观地说,由于这些游走的分形性质:它们在所有尺度上都在质量上相似)。这是运行 3000 步而不是 30 步的相同类型的模拟。R生成数字的代码随后会出现以供您欣赏。其中大部分用于制作数字:模拟本身是在一行中完成的。

图 2

n.sim <- 20 # Number of iterations
n <- 30     # Length of each iteration
#
# The simulation.
# It produces an n by n.sim by 2 array; the last dimension separates 'x' from 'y'.
#
xy <- apply(array(rnorm(n.sim*2*n), c(n, n.sim, 2)), 2:3, cumsum)
#
# Post-processing to prepare for plotting.
#
library(data.table)
X <- data.table(x=c(xy[,,1]), 
                y=c(xy[,,2]),
                Iteration=factor(rep(1:n.sim, each=n)),
                Time=rep(1:n, n.sim))
P <- X[, (p=summary(lm(y ~ x))$coefficients[2,4]), by=Iteration]
setnames(P, "V1", "p-value")
Beta <- X[, (Beta=coef(lm(y ~ x))[2]), by=Iteration]
Beta[, Abs.beta := signif(abs(V1), 1)]
X <- P[Beta[X, on="Iteration"], on="Iteration"]
setorder(X, `p-value`, -Abs.beta, Iteration)
#
# Plotting.
#
library(ggplot2)
ggplot(X, aes(x, y, color=Time)) + 
  geom_point(show.legend=FALSE) + 
  geom_path(show.legend=FALSE, size=1.1) + 
  geom_smooth(method=lm, color="White") + 
  facet_wrap(~ `p-value` + Iteration, scales="free") + 
  theme(
    strip.background = element_blank(), strip.text.x = element_blank(), axis.text=element_blank()
  )

当因变量和自变量都是随机游走时,这并不总是一个问题。如果两个变量是协整的,那么您仍然可以运行 OLS。它不会是最好的选择,但它会保留其良好的特性。

那么为什么有时会出现问题呢?在随机游走中,您会得到随时间按比例增加的方差。此外,您可以设置任意大的值,并且随机游走过程在某个点穿过它的概率非零。因此,如果您获得两个足够长的独立随机游走过程样本,那么即使它们的漂移为零,它们也很有可能检测到“假”趋势。仅仅因为在系列赛结束时他们离开始的地方很远的可能性非常高——这看起来像是一种趋势(漂移)。一旦你有两个趋势,就会有相关性,一个虚假的(假的)。