sinefit文档

sinefit符合正弦曲线的最小二乘估计时间序列数据的周期1年。

相关功能,请参阅sinevalsinefit_bootstrap文档。

回到气候数据工具的内容

内容

语法

英尺= sinefit (t、y)英尺= sinefit(…,“体重”,重量)英尺= sinefit(…,“术语”,TermOption)[英尺,rmse] = sinefit (…)

描述

英国《金融时报》= sinefit (t, y)适合与1年的周期性正弦信号输入数据y收集的时候t。输入*可以在datenum datetime,或datestr格式,不需要定期采样。输出英国《金融时报》包含在下面描述的计算系数的术语。

英尺= sinefit(…,“体重”,w)加权适用于每一个观察y。例如,如果正式的错误犯错y,你可能会让w = 1. /犯错。^ 2。默认情况下,w = 1(大小(y))

英国《金融时报》= sinefit (TermOption…,“条款”)计算指定哪些术语的正弦信号。TermOption可以2、3、4或5:

(英国《金融时报》,rmse) = sinefit (…)返回的残差的均方根误差y删除后的正弦。这是一个测量正弦信号的数据,但对于更深入地理解的不确定性,包括时间的不确定性,看到sinefit_bootstrap

示例1:符合正弦曲线的玩具数据

在这个例子中我们会编造一些数据与已知的参数,然后使用sinefit适合一个正弦信号数据。假设你有100测量之间的1月1日2005今天。使用sineval生成一个sinudoid 75单位振幅,每年有一个最大值在123天(7月5日),和一个长期的线性趋势,每年-2.2个单位。注意,在sineval我们还必须输入一个有点奇怪的价值5 e3的截距,也就是零,但不是很有意义我们在21世纪。

使它更大的挑战sinefit,我们还会添加高斯噪声标准差的36个单位。(这是一个可观的噪声相对于75单位正弦信号的振幅。)

% 100随机日期2005年1月1日,今天:t = datenum (2005年1月1日的)+ (now-datenum (2005年1月1日的))*兰德(100 1);%的正弦信号幅值75;max 123天(7月5日);趋势-2.2户/年:sine_parameters = (75 123 5 e3 -2.2);呃= 36 * randn(大小(t));%随机误差y = sineval (75 123 5 e3 -2.2, t) +犯错;%正弦信号加噪声%画出100数据点:图(1)情节(t y“o”)轴%去除空格盒子%去除帧datetick (“x”,“keeplimits”)%格式x日期标签

信不信由你,数据集是正弦。很容易看到如果我们使用正弦性质机灵绘制的所有数据的函数的一天:

图(2)情节(机灵(t), y,“o”)轴盒子包含年的一天

在这个玩具的数据集,我们知道我们应该有一个正弦信号的振幅75户,最大值在123天,每年-2.2个单位的长期趋势。因为我们故意添加36单位的高斯噪声,我们知道正弦信号应与“测量”的36个单位的均方根误差。

(英国《金融时报》,ft_error) = sinefit (t y“条款”4)
英尺= 1.0 e + 03 ft_error = 33.9327 * 0.0864 0.1186 7.6751 -0.0035

上面的号码告诉我们sinefit已确定100嘈杂的据点具有正弦信号的振幅吗英国《金融时报》(1)单位,我们看到的是接近规定的值为75,附近的一个最大值的第123天,和一个线性趋势每年约-2.2个单位。可选的第二个的输出sinefit功能告诉我们正弦信号匹配的“测量”1-sigma不确定性ft_error,这是符合规定的高斯噪声的价值。

这是正弦曲线适合数据:

%每日从第一个数据数组的最后:t_daily = min (t):马克斯(t);%的正弦信号在日常决议:y_daily = sineval(英国《金融时报》,t_daily);图(1)%回到第一个图持有情节(t_daily y_daily)

示例1 b:指定权重

假设你知道正式的错误与每个观测相关联y。一些测量结果有较高的不确定性比其他人与他们有关。从犯错向量我们使用上面开出噪音,我们将每个观察体重y是这样的:

w = 1. /犯错。^ 2;图散射(机灵(t), y, 25日,w,“填充”)轴包含年的一天cb = colorbar;ylabel (cb、“重量”)cmocean (“安保”0.01)caxis ([0])

上面的图显示,我们给更多的重量值较低的错误。现在使用sinefit指定的权重:

英国《金融时报》= sinefit (t y“重量”w,“条款”4)
英尺= 1.0 e + 03 * 0.0764 0.1233 5.1464 -0.0023

未加权的解决方案比较,你会发现这个版本产生一个更准确的系数。

示例1 c:更多的不确定性量化

更深入分析的不确定性正弦信号,检查出来sinefit_bootstrap,可以为每个这样的参数提供1-sigma水平的不确定性(给它几秒钟):

ftb = sinefit_bootstrap (t y“条款”4);% 1σ为每个参数的不确定性:性病(ftb)
ans = 1.0 e + 03 * 0.0055 0.0029 1.6112 0.0008

它告诉我们sinefit应该准确1-sigma的振幅(大约5水平比较英国《金融时报》(1)规定的振幅来证明自己);时间大概在4天内应该准确;和趋势应该是准确的在每年1单位。

示例2:真正的海冰数据符合正弦曲线

让我们看看一些真正的海冰数据国家冰雪数据中心。我打包一个时间序列的海冰范围.mat格式,并包含在这个文件交换上传你可以跟随:

%样本数据加载:负载seaice_extent%绘制原始数据:图绘制(t, extent_N)盒子ylabel“NH海冰范围(10 ^ 6公里^ 2)”

很明显,数据有一些周期性的1 /年频率。多少北半球海冰范围随subannual时间表,它通常达到最大值时,又有多少是海冰变化的长期趋势?

%配合一个正弦信号:英国《金融时报》= sinefit (t extent_N“条款”4)
英尺= 4.4079 66.8394 125.2987 -0.0569

类似的例子1的输出sinefit告诉我们北极海冰往往随每年大约441万平方公里,它达到最高66天左右(3月7日)(请参见下面的note),和北半球的海冰已经自1978年以来每年减少了60000平方公里。

这是正弦曲线符合策划的原始数据:

持有情节(t, sineval(英国《金融时报》,t))传说(“原始数据”,的适合sinefit”)

和放大一点看结构:

xlim ([datetime (1995、1、1) datetime (2000、1、1)))

注意,用户

一个简短的注意相关的所有参数估计sinefit:这些参数描述最佳适合的正弦信号,但这并不一定意味着他们完全描述底层数据本身的行为。例如,气候平均而言,北半球海冰范围实际上通常达到最大值71天左右(3月12日),而sinefit说最佳正弦信号的最大值发生在第66天(3月7日)。这是因为真正的海冰范围的行为是更复杂的比一个简单的正弦信号。在你的工作中,一定要考虑正确行为的区别和1 /年的真实行为的频率分量。

示例3:数据立方体

这个功能还在测试,但这是我使用的代码测试:

负载pacific_sst英国《金融时报》= sinefit (t,风场,“条款”3);图次要情节(1、3、1)imagescn(经度、纬度、英尺(:,:1)标题正弦信号幅度的cmoceanampcb = colorbar;ylabel (cb、“季节性\ circC级”)轴图像次要情节(1、3、2)imagescn(经度、纬度、英尺(:,:2)标题正弦信号相位的cmocean阶段caxis(365年[1])cb = colorbar;ylabel (cb、月的最大温度的)cbdate (cb、“嗯”)轴图像次要情节(1、3、3)imagescn(经度、纬度、英尺(:,:,3)标题的平均温度cmoceancb = colorbar;ylabel (cb、的平均温度)轴图像

上面没有太令人吃惊:浅水全年温度变化比深水,和赤道附近的一切都几乎没有季节性。中间的面板显示了我们最温暖的水域发生在8月或9月在北半球,或在二月或三月在南半球。第三个面板是常数抵消有效平均海面温度。

作者信息

这个函数的一部分气候数据为Matlab工具箱。的sinefit,sineval,sinefit_bootstrap功能以及支持文档是乍得a·格林写的德克萨斯大学的地金宝app球物理研究所。