我重新取样方法可以用于增加非线性时间序列?
28日视图(30天)
显示旧的评论
我有一个时间序列的数据结构(我),从0到360(度),这只会增加从一个样本时间序列中的下一个(即。,总是这样:0,1,2,3,4…360年,从未0,1、2、1,2,3,…360)。时间序列不增加以线性方式,一个数据点到下一个0到360之间的任何数量可能会增加。我想重新取样时间序列增加/减少样本的数量。我试着重新取样标准()函数以及一些其他方法涉及linspace(),没有工作。我需要保留的时间序列只会增加从一个样本,和从未减少。有重新取样方法,在这里工作吗?
0评论
接受的答案
约翰D 'Errico
2023年6月14日22:00
这确实是一个插值问题。你可以叫它重采样,但插值是所有。并使用只是interp1你可以做任何事。最简单的就是使用线性插值。这里是一个简单的系列,是单调,但也很难插入如果你想要一个单调interpolant。
y = cumsum (randi (10 1 10)。^ 3);
纽约=元素个数(y);
x = 1:纽约;
情节(x, y,“o”)
现在,如果我是用样条,例如,它会产生结果,并不单调。
xint = linspace(1纽约5 *纽约- 4);% 4每个原始点之间新的点。
xint yspl = interp1 (x, y,样条的);%这不会单调
xint ylin = interp1 (x, y,“线性”);%线性一定单调
xint ypchip = interp1 (x, y,“pchip”);% pchip也总是单调
情节(x, y,“罗”xint yspl,的r -xint ylin,“g -”xint ypchip,“k -”)
网格在
传奇(“原创系列”,“样条”,“线性”,“Pchip”)
所以红色曲线(花键)不是单调这个蹩脚的系列。绿色的,但它只是连接点线性插值。不是不好,而是没有壮观。黑色的曲线尽可能平滑,也单调。