如何设计一个算法来寻找多个变量的协方差?

zxlwwiss  于 2021-06-03  发布在  Hadoop
关注(0)|答案(1)|浏览(234)

下面是两个变量的协方差方程,和xyz。

下面是求和xyz之间协方差的算法。

Algorithm 1: Calculate Covariance
1. cov = 0
2. for i = 0 to size - 1
3.  cov = cov + (return_abc[i] - avg_abc) * (return_xyz[i] - avg_xyz)
4. end for
5. cov = cov / size - 1
6. end

如何设计一个算法来找出样本中一个变量与其余变量之间的协方差?例如,我如何找到苹果股票和纳斯达克其他股票(约3100家公司)之间的协方差?

de90aj5v

de90aj5v1#

http://www.investopedia.com/articles/financial-theory/11/calculating-covariance.asp
如果你只看一天结束时的价格(为简单起见),并且你想将一只股票与所有其他股票进行比较,那么试着将其他股票都视为一个元素,即:

n=number of days to analyze
marketReturn = average(return of each stock that isn't APPLE)
marketAverage = (sum of marketReturn's)/n
appleAverage = (sum of APPLE returns)/n

然后在你分析的天数的样本大小上应用总和。

Answer = (((day 1 APPLE return %)-(appleAverage))*((day 1 marketReturn %)-(marketAverage)) + ((day 2 APPLE return %)-(appleAverage))*((day 2 marketReturn %)-(marketAverage)) + ...)/(n-1)

我想如果你想单独检查每一只股票:

for(x=0;x<numStocksNotAPPLE;++x)//increment through each stock
{
    covariantList[x]=(((day 1 APPLE return percent)-(appleAverage))*((day 1 stock[x] percent)-(stock[x] average)) + ... + (((day n APPLE return %)-(appleAverage))*((day n stock[x] %)-(stock[x] average)))/(n-1)
}//that should give you a covariant APPLE vs each stock

如果你只想要一个数字,你可以取协方差列表的平均值:

foreach(covariantList c)
{
    sum+=c
}

averageCovariant = sum/covariantList.size

请记住,这是所有的psuedo代码,我不声称它是任何功能

相关问题