python实现FORCAST线性回归预测值函数

FORCAST线性回归预测值函数是部分软件里面的函数,不同软件函数名称有差异。
以下内容说明节选自某软件

FORCAST该函数的说明如下:
FORCAST(X,N):为X的N周期线性回归预测值。
注:
1、N包含当前k线。
2、N为有效值,但当前的k线数不足N根,该函数返回空值;
3、N为0时,该函数返回空值;
4、N为空值,该函数返回空值;
5、N可以是变量
算法举例:用最小平方法计算FORCAST(C,3)在最近一根K线上的值
1、建立一元线性方程:y=a+bi+m
2、y的估计值:y(i)^=a+b
i
3、求残差:m=y(i)-y(i)=y(i)-a-bi
4、误差平方和:
Q=m(1)m(1)+…+m(3)m(3)=[y(1)-a-b1][y(1)-a-b
1]+…+[y(3)-a-b3][y(3)-a-b3]
5、对线性方程中的参数a,b求一阶偏导:
2
{[y(1)-a-b1]+…+[y(3)-a-b3]}(-1)=0
2
[y(1)-a-b1](-1)+…+[y(3)-a-b3](-3)=0
6、联立以上两个公式,解出a,b的值:
a=(y(1)+y(2)+y(3))/3-b(i(1)+i(2)+i(3))/3
b=(y(1)i(1)+y(2)i(2)+y(3)i(3)-(3((i(1)+i(2)+i(3))/3)((y(1)+y(2)+y(3))/3))/((i(1)2+i(2)2+i(3)2)-3*((i(1)+i(2)+i(3))/3)2)
7、将a,b,i值带入1,求出y值
以上公式用麦语言函数可以表示如下:
BB3
C+2REF(C,1)+REF(C,2)-(3((1+2+3)/3)MA(C,3)))/((SQUARE(1)+SQUARE(2)+SQUARE(3))-3SQUARE((1+2+3)/3));
AA:MA(C,3)-BB*(1+2+3)/3;
YY:AA+BB*3;

实际实现结果:


class forcast():
    def __int__(self):
        pass
    def cal(self,d_list):
        i=1
        sumx=0
        while i<=len(d_list):
            sumx=i*d_list[i-1]+sumx
            i=i+1
        l1=list(range(1,len(d_list)+1))
        r1=sum(l1)
        r2=r1*np.mean(d_list)

        l2=[]
        for v1 in l1:
            l2.append(v1*v1)
        r3=sum(l2)
        r4=len(d_list)*(r1/len(d_list)*(r1/len(d_list)))

        r5=(sumx-r2)/(r3-r4)
        r6=np.mean(d_list)-r5*r1/len(d_list)

        rs=r6+r5*len(d_list)

        return rs
  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值