参数 T=5,F1=依赖因子(1),F2=依赖因子(2)
1 截取过去T个月的数据
2 对第t个月的日收益率做 F2_t=a+b*F1_t+sigma(t),t=1,…T
3 计算 分子=sum{ [ (sigma(t) +simgma(t-1) +simgma(t-3) ]^2 ,t=3,…,T}
4 计算 分母=sum{ (sigma(t)^2+simgma(t-1)^2+simgma(t-3)^2 ,t=3,…,T}
5 因子计算公式为 分子/分母
假设现在的sigma列表为
sigma= [13.713393005548433, -17.09159674304776, 3.986902527863278, 7.566984305377153, -8.175683095741116]
思路:
1,simga=[e1,e2,e3,e4,e5] .t=3, 对应 sigma(3)=e3=3.986902527863278开始计算 , 分子= (e3+e2+e1)^2+(e4+e3+e2)^2+(e5+e4+e3)^2
2,sum{ [ (sigma(t) +simgma(t-1) +simgma(t-3) ]^2 ,t=3,…,T}=(e3+e2+e1)^2+(e4+e3+e2)^2+(e5+e4+e3)^2
3,sigma只有5项,最多到 sigma(5)=e5
4,分母=(e3^2+e2^2+e1^2)+(e4^2+e3^2+e2^2)+(e5^2+e4^2+e3^2)
5, 分子是最近三项加起来后的平方,然后累计 。 分母是最近三项平方后相加,然后累计
sigma= [13.713393005548433, -17.09159674304776, 3.986902527863278, 7.566984305377153, -8.175683095741116]
INPUT=[sigma[x-2:x+1] for x in range(len(sigma)) if x>=2]
numerator=sum(list(map(lambda x:sum(x)**2,INPUT)))
denomerator=sum(list(map(lambda x:x[0]**2+x[1]**2+x[2]**2,INPUT)))
numerator/denomerator