如何分析非周期时间序列中的趋势


12

假设我有以下非周期性的时间序列。显然,这种趋势正在减少,我想通过一些测试(使用p值)证明这一趋势。由于值之间存在强烈的时间(序列)自相关,因此我无法使用经典的线性回归。

library(forecast)
my.ts <- ts(c(10,11,11.5,10,10.1,9,11,10,8,9,9,
               6,5,5,4,3,3,2,1,2,4,4,2,1,1,0.5,1),
            start = 1, end = 27,frequency = 1)
plot(my.ts, col = "black", type = "p",
     pch = 20, cex = 1.2, ylim = c(0,13))
# line of moving averages 
lines(ma(my.ts,3),col="red", lty = 2, lwd = 2)

在此处输入图片说明

我有什么选择?


4
我认为该系列是非周期性(frequency=1)的事实在这里几乎没有意义。一个更相关的问题可能是您是否愿意为模型指定功能形式。
理查德·哈迪

1
有关数据是什么的更多信息可能对建模有用。
bdeonovic '16

数据是每年在水库中计数的某些物种的个体计数(以千计)。
拉迪斯拉夫·纳索

1
@LadislavNado与您提供的示例一样,您的系列短吗?我问是因为如果这样,由于样本量大,它减少了可采用的方法数量。
蒂姆

1
减少方面的明显性与比例有关,在我看来,应予以考虑
Laurent Duval 2016年

Answers:


7

正如您所说,示例数据中的趋势是显而易见的。如果您只想通过假设检验证明这一事实,那么除了使用线性回归(显而易见的参数选择)外,还可以使用非参数Mann-Kendall检验来检验单调趋势。该测试用于

评估关注变量是否随时间呈单调上升或下降趋势。单调向上(向下)趋势意味着变量随时间不断增加(减小),但是趋势可能是线性的,也可能不是线性的。(http://vsp.pnnl.gov/help/Vsample/Design_Trend_Mann_Kendall.htm

此外,正如吉尔伯特(Gilbert,1987)所述,

这是特别有用的,因为允许缺少值,并且数据不需要符合任何特定的分布

测试统计量是所有可能对之间的负差与正差,即xjxin(n1)/2

S=i=1n1j=i+1nsgn(xjxi)

其中是一个符号函数可以用来计算统计量,该统计量与相关性相似,因为它的范围是至,其中符号表示负或正趋势,并且值与趋势的斜率成比例。sgn()S τ1+1τ

τ=Sn(n1)/2

最后,您可以计算。对于大小为样本,可以使用预先计算的值表来表示不同的值和不同的样本大小(请参见Gilbert,1987)。对于较大的样本,首先需要计算方差pn10pSS

var(S)=118[n(n1)(2n+5)p=1gtp(tp1)(2tp+5)]

然后计算测试统计信息ZMK

ZMK={S1var(S)if S>00if S=0S+1var(S)if S<0

将值与标准正常值进行比较 ZMK

  • ZMKZ1α表示上升趋势,
  • ZMKZ1α表示下降趋势,
  • |ZMK|Z1α/2表示上升或下降趋势。

该线程中,您可以找到实现此测试的R代码。

由于将统计量与所有可能的观察对进行了比较,因此可以对这种情况使用明显的置换检验,而不是对值使用正态近似。首先,您从数据中计算出统计量,然后随机地对数据进行随机混洗,并针对每个样本进行计算。仅是表示上升趋势或表示下降趋势的情况的比例。p 小号p š 数据小号置换小号数据小号置换SpSpSdataSpermutationSdataSpermutation


吉尔伯特,RO(1987)。环境污染监测的统计方法。纽约州威利市。

Önöz,B.和Bayazit,M.(2003年)。统计测试用于趋势检测的功能。 土耳其工程与环境科学杂志,27(4),247-251。


1

您遇到的问题“由于值之间存在强烈的时间(序列)自相关,因此我无法使用经典线性回归。” 实际上是一个机会。我采用了27个值,并使用AUTOBOX一款软件(由我协助开发),该软件可以(可选)自动确定可能的模型。这是实际/拟合和预测图在此处输入图片说明。残差的ACF在此处,此处为残差图在此处输入图片说明。模型在这里在此处输入图片说明,在这里在此处输入图片说明和这里在此处输入图片说明。两个系数恰当地描述了估计的“趋势”或“漂移”数据,即周期差异为-.596。请注意,这是一种趋势,您的模型使用计数1,2,... 27作为预测变量。如果您的数据表明这种趋势,那么该软件将发现它更适用。我将尝试找到我的较早的职位,该职位全面详细/对比了这两种趋势。在此确定随机趋势模型检测初始趋势或离群值

在此处输入图片说明


2
Autobox预测错过了打破近期趋势的1996、1999、2000、2009每个有趣的点。这几乎就像相移了一年。在这方面,它没有任何解释。
阿克萨卡尔州

您先前的建议(将舌头放在舌头上)适合于数据的高次多项式,可以满足您的要求。但是我们不是要拟合,而是要建模。由于某些外部/未知因素,残差图似乎足以描述错误过程。所有模型都是错误的,但有些是有用的。我认为这是一个有用的模型,但是如果您认为自己可以做得更好,请发布结果,以便我们所有人学习。ARIMA模型没有任何解释,因为过去只是被省略变量的代理。
IrishStat

2
在这种情况下,似乎与统计没有太大关系。这根本不是一个有趣的统计问题。有一个明显的趋势,OP必须研究该现象的物理学。我认为这些模型拟合(例如来自Autobox)只是在错误的方向上引导OP。他们没有透露任何有价值的东西。
阿克萨卡尔州

问题是分析是否可以代替人眼...分析揭示了人眼所支持的东西,这就是为什么我们进行统计学以执行可能要做的事而不是眼前的事。AUTOBOX解决方案将OP朝正确的方向引导,即向下。在我看来,您的评论根本无法产生效果,但正如我先前所问的那样(礼貌地),请提供基于统计的可行替代方案。我认为这是一个非常有趣的统计问题,需要一个答案。请提供一个。
IrishStat

1

您可以使用Spearman的秩相关系数来确定数据单调的程度。对于单调递增的数据,它返回正值;对于单调递减的数据,它返回负值(在-1和+1之间)。上面的链接,也有部分交易显着性检验,但我相信大多数的软件包会为您计算当相关系数p值做了(在Matlab如:[RHO,PVAL] = corr(...);在R: cor.test(x,...)


0

您可以使用OLS,因为没有串行自相关(至少在您提供的样本中);注意Durbin-Watson检验统计值为1.966(≈2)。

因此,x1的明显负系数估计就是您需要说的

观察到的[某些物种]的数量每年减少约1,000。

要么

观察到的[某些物种]的数量每年减少628至1,408(在95%的置信度下)。

假设用于计算物种的方法具有良好的覆盖率,并且在您的样本中多年来保持一致。

在此处输入图片说明

这是使用以下Python代码生成的(对不起;没有R方便):

import numpy as np
import statsmodels.api as sm

y = [10,12,10,11,8,9,6,4,2,4]
x = np.arange(len(y))
x = sm.add_constant(x)

mod = sm.OLS(y, x)
result = mod.fit()
print(result.summary())

0

知道数据源将非常有帮助,并且知道的值是否会变为my.ts负数也非常有用。

但是,快速浏览一下图,而不是看到恒定的线性趋势,我宁愿时间序列不是平稳的,因此是积分的。例如,股票价格也被整合,但是股票回报率不再(它们在0附近波动)。

也可以使用增强迪基富勒检验来检验该假设:

require(tseries)
adf.test(my.ts)

Augmented Dickey-Fuller Test
Dickey-Fuller = -2.9557, Lag order = 2, p-value = 0.7727
alternative hypothesis: stationary

如果p值不低于0.05,则没有证据表明该过程是平稳的。

为了使数据稳定,您必须对其进行区别:

diff.ts <- diff(my.ts)
plot(diff.ts)

在此处输入图片说明

现在数据不再显示趋势,您唯一会发现的是2阶自回归项(使用acf(diff.ts))。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.