loess

语法

loess(X, Y, resampleRule, [closed='left'], [origin='start_day'], [outputX=false], [bandwidth=0.3], [robustnessIter=4], [accuracy=1e-12])

详情

该函数根据 resampleRule, closed, origin 确定的采样规则,对 X 进行重采样操作。并根据重采样后的 X,对 Y 按照局部回归算法进行插值(Loess Interpolatiion)。

若不指定 outputX,仅返回一个对 Y 插值后的向量。若指定 outputX = true,则返回一个 tuple,其第一个元素为 X 重采样后的向量,第二个元素为对 Y 插值后的向量。

参数

X 严格递增的时间类型向量。

YX 等长的数值型向量。

resampleRule 一个字符串,可选值请参考 resamplerule 参数。

closedoriginresampleclosedorigin 参数。

outputX 布尔类型,表示是否输出 X 按照 resampleRule, closed, origin 重采样后的向量。默认值为 false。

bandwidth 数值型标量,取值范围为(0,1]。对特定点进行 loess 拟合时,计算最小二乘回归时会考虑最接近当前点的这部分源点。

robustnessIter 正整数,表示进行 loess 平滑处理时进行的鲁棒性迭代的次数。

accuracy 一个大于0的数。若鲁棒性迭代过程中的中值残差小于此参数设置值,则停止迭代。

例子

loess([2016.02.14 00:00:00, 2016.02.15 00:00:00, 2016.02.16 00:00:00], [1.0, 2.0, 4.0], resampleRule=`60min, bandwidth=1)

// output
[1,1.0521,1.104,1.1558,1.2072,1.2582,1.3086,1.3584,1.4074,1.4556,
1.5027,1.5488,1.5937,1.6374,1.6795,1.7202,1.7593,1.7966,1.832,1.8655,
1.897,1.9263,1.9533,1.9779,2,2.0195,2.0366,2.0513,2.0637,2.0739,
2.082,2.0882,2.0926,2.0952,2.0962,2.0957,2.0938,2.0905,2.0861,2.0806,
2.0741,2.0667,2.0586,2.0498,2.0405,2.0308,2.0207,2.0104,2]