python lambda 的使用

参数 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

 

 

 

 

你可能感兴趣的:(python)