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