series_fit_2lines()

对序列应用两段线性回归,并返回多个列。

采用包含动态数值数组的表达式作为输入,并应用两段线性回归,以便识别和量化序列中的趋势变化。 该函数针对序列索引进行迭代。 在每次迭代中,该函数将序列拆分为两部分,为每个部分单独拟合一条线(使用 series_fit_line()),并计算总相关系数平方。 最好的拆分方式是最大限度提高相关系数平方值;函数将返回其参数:

参数 说明
rsquare R 平方是对拟合质量的标准度量。 它是 [0-1] 范围内的数字,其中 1 表示拟合度最好,0 表示数据无序,与任何直线均不拟合。
split_idx 两段的拆分点的索引(从零开始)。
variance 输入数据的方差。
rvariance 剩余方差,即输入数据值和近似数据值之间的方差(按两个线段)。
line_fit 包含一系列最佳拟合线值的数值数组。 序列长度等于输入数组的长度。 它主要用于绘制图表。
right_rsquare 拆分点右侧线的相关系数平方,请参阅 series_fit_line()
right_slope 右近似线(形式为 y=ax+b)的斜率。
right_interception 左近似线的截距(即 y=ax+b 中的 b)。
right_variance 拆分点右侧输入数据的方差。
right_rvariance 拆分点右侧输入数据的剩余方差。
left_rsquare 拆分点左侧线的相关系数平方,请参阅 series_fit_line()
left_slope 左近似线(形式为 y=ax+b)的斜率。
left_interception 左近似线(形式为 y=ax+b)的截距。
left_variance 拆分点左侧输入数据的方差。
left_rvariance 拆分点左侧输入数据的剩余方差。

注意

此函数返回多个列,因此不能用作另一个函数的参数。

语法

project series_fit_2lines(series)

详细了解语法约定

  • 将会返回上述所有列,其名称为:series_fit_2lines_x_rsquare、series_fit_2lines_x_split_idx 等。

project (rs, si, v)=series_fit_2lines(series)

  • 将会返回以下列:rs(相关系数平方)、si(拆分索引)、v(方差),其余列的名称将会类似于 series_fit_2lines_x_rvariance、series_fit_2lines_x_line_fit 等。

extend (rs, si, v)=series_fit_2lines(series)

  • 将仅返回:rs(相关系数平方)、si(拆分索引)和 v(方差)。

参数

客户 类型​​ 必需 说明
series dynamic 数值的数组。

提示

使用此函数最便捷的方法是将其应用于 make-series 运算符的结果。

示例

print
    id=' ',
    x=range(bin(now(), 1h) - 11h, bin(now(), 1h), 1h),
    y=dynamic([1, 2.2, 2.5, 4.7, 5.0, 12, 10.3, 10.3, 9, 8.3, 6.2])
| extend
    (Slope, Interception, RSquare, Variance, RVariance, LineFit)=series_fit_line(y),
    (RSquare2, SplitIdx, Variance2, RVariance2, LineFit2)=series_fit_2lines(y)
| project id, x, y, LineFit, LineFit2
| render timechart

Series fit 2 lines.