趋势文档

趋势计算的线性趋势由最小二乘数据系列。数据不需要是等距的。

另请参阅detrend3

回到气候数据工具的内容

内容

语法

tr (y) tr = =趋势趋势(y, Fs) tr =趋势(y, t) tr =趋势(…,“暗”,暗)tr =趋势(…,“omitnan”) (tr, p) =趋势(…)(tr, p) =趋势(corrOptions……)

描述

tr =趋势(y)计算每个样本的线性趋势y

tr =趋势(y, Fs)指定采样率Fs。例如,每年获得一种趋势在每月的决议,从收集的数据集Fs等于12。这个语法假设所有值在y是等距的。

tr =趋势(y, t)指定一个向量t相对于计算的趋势。t的每个元素对应于一个测量y,当使用这种语法,乘以需要是等距的。单位的趋势(y)单位/单位(t)如果的单位t在天(如datenum),乘以365.25每年获得的趋势。

tr =趋势(…,“暗”,暗)计算指定的维度以及趋势。默认情况下,如果y是一个一维数组,趋势是计算y的第一nonsingleton维度;如果y是一个二维矩阵,趋势是calcaulated行(维度1)y;如果y是一个三维矩阵,这一趋势计算维度3。

tr =趋势(…,“omitnan”)解决了最小二乘的趋势,即使不是所有的值y是有限的。此选项可能有点慢如果许多网格细胞包含了一些,但不是全部,nan。要谨慎使用“omitnan”选择:趋势是计算只在有限的时间间隔数据存在。因此,例如,如果一些网格细胞包含有限的数据只有一年的一个10年记录,有可能是明显的“十年”趋势报告的趋势函数可以是一个别名的信号。因此,“omitnan”选择时只能使用nan整个时间记录分布比较均匀。

(tr, p) =趋势(…)返回统计学意义的假定值的趋势。(需要统计工具箱)

(tr, p) =趋势(corrOptions……)corr accpted指定任何可选名称-值对参数的函数。例如,“类型”,“假象”指定计算肯德尔τ的相关系数。

示例1:一维数组

这是一个时间序列样本在每年12次:

Fs = 12;%采样率(每年12个样本)t = (2000:1 / Fs: 2007)”;%单位向量在Fs采样时间y = t + 123 * 40 *兰特(大小(t)) - 8 e4;%迫使每秒40单位y的趋势情节(t, y)包含“时间”ylabel一些变量的

很容易覆盖,阴谋与趋势线polyplot是这样的:

持有polyplot (t, y, 1)

…但这一趋势的数值是什么?换句话说,斜率是多大?当我们定义y,我们指定,它应该是40 * t(加上一些随机噪声和一个偏移量),所以这种趋势应该约40:

趋势(y)
ans = 3.2710

这种趋势甚至还没有接近40 !因为如果我们不指定采样频率或时间向量,趋势函数给出了趋势y每个样本。指定每年12个样品的采样率是这样的:

趋势(y, Fs)
ans = 39.2522

…和that's the value close to 40 that we were expecting. It's not exactly 40 because we intentionally added noise, but it's about 40, as expected.

您可能已经注意到现在的趋势可以计算任何三种方式,并且每个会给同样的答案。你可以乘采样率的趋势,或者你可以指定的采样率趋势函数,或者您可以指定相应的向量t,他们会给出相同的答案:

[趋势(y) * Fs趋势(y, Fs)趋势(y, t)]
ans = 39.2522 39.2522 39.2522

示例2:2 d数据

如果你有一堆测量所有排队相同的时候,趋势函数可以计算出所有的趋势,计算高效的方式。考虑这四种时间序列建立的y数组中定义我们示例1:

% [y y + 400非常嘈杂的y只有噪音);A = [y y y + 400 + 200 * randn(大小(y)) 100 *兰德(大小(y))];图绘制(t)传说(第一列的,第2列的,第三列的,“列4”,“位置”,“西北”)包含“时间”ylabel一些变量的盒子从轴%去除难看的框架传说boxoff从传奇%去除难看的框架

每一列的趋势可以这样计算:

趋势(t)
ans = 39.2522 39.2522 56.5252 2.6557

这就是我们预期:大约40户/年列1和2,相同的数据除了抵消;第三列的趋势,而不是一个趋势noise-only列4。

这些趋势显著吗?使用可选的第二个函数输出看到:

(tr, p) =趋势(t),
tr = 39.2522 0.0000 0.0000 0.0732 39.2522 56.5252 2.6557 p = 0.0000

p值前三列显示统计学意义,但第四列告诉我们,任何趋势测量有可能是垃圾。

如果你的数据穿过列通过时间而不是行吗?指定尺寸:

(tr, p) =趋势(',t,“暗”,2)
tr = 39.2522 0.0000 0.0000 0.0732 39.2522 56.5252 2.6557 p = 0.0000

示例3:一个3 d数据集

下面是一个示例数据集,下降的速度-π/时间片。使用expand3创建示例数据集,然后加一堆噪音让事情有趣:

% 60 x80网格下降-π在每一帧:Y = expand3(的(80)-π* (1:10 0));%增加一堆噪音和一个偏移量:Y = Y + 10 * randn(大小(Y)) + 900;

这是趋势Y:

显示亮度图像colorbar趋势(Y)

看起来像噪音,但这只是噪音我们故意放在那里。注意colorbar规模,周围所有的值中心-π,与预期完全一致。

示例4:海洋表面温度

加载示例pacific_sst。垫的数据集,其中包含每月网格海面温度数据,并计算趋势。

负载pacific_sst(tr, p) =趋势(sst, 12);图imagescn(经度、纬度、tr) cb = colorbar;ylabel (cb、的SST趋势\ circC年^ {1}”)cmocean (“平衡”,“主”)%设置colormap中间为零

马克地区画点画的统计学意义。首先,这意味着定义统计学意义。假设所有的假定值小于0.01是统计学意义:

StatisticallySignificant = p < 0.01;

识别重要的地区点画函数。一个小问题是点画坚持网格输入,所以我们不得不把那些纬度数组为网格meshgrid:

(经度、纬度)= meshgrid(经度、纬度);持有点画(经度、纬度、StatisticallySignificant)文本(-85年,60岁,“哈德逊湾”,“绿色”,“高级”,“水平的”,“中心”,“fontangle”,“斜体”)

示例4 b:“omitnan”选项

敏锐的观察者可能已经注意到,在上图中,哈德逊湾的趋势是未定义的。然而,我们确实有很多好的数据!看看总数有限测量的SST数据集:

图imagescn(经度、纬度、总和(isfinite (sst), 3)) cb = colorbar;ylabel (cb、海温测量的和有限的)caxis(802年[650])

在上图中,我们看到,有超过600的好风场测量在哈德逊湾,即使那不是完整的802个月记录,应该是很多计算最小二乘的趋势。在这种情况下,我们可以使用“omitnan”选择:

(tr, p) =趋势(sst, 12日“omitnan”);图imagescn(经度、纬度、tr) cb = colorbar;ylabel (cb、的SST趋势\ circC年^ {1}”)cmocean (“平衡”,“主”)%设置colormap中间为零持有点画(经度、纬度、p < 0.01)%是统计上显著的地区

上面我们看到,哈得逊湾的变暖趋势,具有统计学意义。

作者信息

这个函数的一部分气候数据为Matlab工具箱。的功能和支持文档是乍得a·格林写的金宝app德州大学奥斯丁分校。