1 Star 0 Fork 4

王布衣/ta-lib

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
curve_regression.go 1023 Bytes
一键复制 编辑 原始数据 按行查看 历史
王布衣 提交于 2年前 . add Files
package linear
import (
"gitee.com/quant1x/gox/api"
"gitee.com/quant1x/pandas/stat"
)
// CurveRegression 曲线回归
//
// curve regression
// https://blog.csdn.net/llittleSun/article/details/115045660
// 默认只预1个周期
// argv 第一个参数为数据长度, 即周期数, 默认为S的长度
func CurveRegression(S stat.Series, argv ...int) stat.Series {
N := S.Len()
if len(argv) > 0 {
N = argv[0]
}
if N > S.Len() {
N = S.Len()
}
y := S.Select(api.RangeFinite(-N)).DTypes()
x := stat.Arange[stat.DType](1, float64(N)+1, 1)
t1 := stat.Pow[stat.DType](x, 2)
t2 := x
t3 := stat.Ones[stat.DType](x)
A := stat.Concat1D(t1, t2, t3)
T := stat.Transpose2D(A)
w0 := stat.Dot2D[stat.DType](T, A)
w1 := stat.Inverse(w0)
w2 := stat.Dot2D(w1, T)
W := stat.Dot2D1[stat.DType](w2, y)
d1 := stat.Arange[stat.DType](1, stat.DType(N)+2, 1)
d21 := stat.Pow(d1, 2)
d2 := stat.NDArray[stat.DType](d21).Mul(W[0])
d3 := stat.NDArray[stat.DType](d1).Mul(W[1]).Add(W[2])
D := d2.Add(d3)
return D
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/quant1x/ta-lib.git
git@gitee.com:quant1x/ta-lib.git
quant1x
ta-lib
ta-lib
v0.1.9

搜索帮助