协方差是统计学中使用的一种数值,用于描述两个变量间的线性关系。两个变量的协方差越大,它们在一系列数据点范围内的取值所呈现出的趋势就越相近(换句话说,两个变量的曲线距离彼此较近)。一般来说,两组数值x和y的协方差可以用这个公式计算:1/(n -1)Σ(xi - xavg)(yi - yavg)。其中n为样本量,xi是每个x点的取值,xavg为x的平均值,yi和yavg也类似。

1 使用标准方差公式

java 协方差 协方差计算方差_java 协方差

把你的数据整理成一系列(x,y)取值点。你只需要两个变量x和y的一系列取值就可以计算出方差。如果你使用的是一个图上的数据点,你的数据应该来自图上的一系列(x,y)交点。或者,则需要通过数学方法找出两个变量的一一对应值。

记下相对应的x/y数据对的数量。这就是“n”,即样本大小,计算方差时需要用到。
举个例子,假设我们开了一家熟食店,需要确定所发出的优惠券是否会对销量产生影响。我们可以将x定义为“在优惠日发放出去的优惠券数量”,将y定义为“当日销量”。
为了方便起见,我们使用上图中的表格作为参考,即,第一天我们发放出x=1优惠券,卖出y=8,第二天发放x=3优惠券,卖出y=6,等等。

2 计算x的平均值

计算x的平均值。在得到一系列x/y取值之后,剩下的工作就不多了。首先计算x的平均值,将所有的x值相加再除以样本量(进一步参考我们关于计算平均值的文章)。

在我们的例子中,我们需要将上表中“x”栏中的数值相加,再除以数值的个数。计算1+3+2+5…,最终得到44。再除以9,得到44/9 = 4.89就是x的平均值

java 协方差 协方差计算方差_线性代数_02

3 计算y的平均值

下一步是计算y的平均值,和计算x的平均值方法一样:把y的值相加,除以样本量

在我们的例子中,应该计算8+6+9+4…得到49。除以样本量,得到49/9 = 5.44即为y的平均值。见下

java 协方差 协方差计算方差_线性代数_03

4 将计算出的值代入公式中

1/(n-1)Σ(xi - xavg)(yi - yavg)。注意公式中的sigma(Σ)符号,意思是每个x值都要减去平均值,再加起来(y也一样)。计算量比较大,所以需要非常仔细,避免出错。

|

java 协方差 协方差计算方差_方差_04

协方差值等于1意味着完全正相关。协方差值永远介于1和-1之间。在这个范围外的值说明计算出错了。根据协方差值接近1或-1的程度得出结论。例如,如果协方差值正好等于1,则两个变量完全正相关。也就是说,一个变量会随着另一个变量的增加而增加(减少而减少)。这种关系是完全线性的——无论变量取值多大或多小,两个变量之间的关系都一样。