协方差和相关系数的计算.ppt
- 格式:ppt
- 大小:1.32 MB
- 文档页数:24
协⽅差相关矩阵相关系数通过两组统计数据计算⽽得的协⽅差可以评估这两组统计数据的相似程度。
样本:A = [a1, a2, ..., an]B = [b1, b2, ..., bn]平均值:ave_a = (a1 + a2 +...+ an)/nave_b = (b1 + b2 +...+ bn)/m离差(⽤样本中的每⼀个元素减去平均数,求得数据的误差程度):dev_a = [a1, a2, ..., an] - ave_adev_b = [b1, b2, ..., bn] - ave_b协⽅差协⽅差可以简单反映两组统计样本的相关性,值为正,则为正相关;值为负,则为负相关,绝对值越⼤相关性越强。
cov_ab = ave(dev_a x dev_b)cov_ba = ave(dev_b x dev_a)案例:计算两组数据的协⽅差,并绘图观察。
import numpy as npimport matplotlib.pyplot as mpa = np.random.randint(1, 30, 10)b = np.random.randint(1, 30, 10)#平均值ave_a = np.mean(a)ave_b = np.mean(b)#离差dev_a = a - ave_adev_b = b - ave_b#协⽅差cov_ab = np.mean(dev_a*dev_b)cov_ba = np.mean(dev_b*dev_a)print('a与b数组:', a, b)print('a与b样本⽅差:', np.sum(dev_a**2)/(len(dev_a)-1), np.sum(dev_b**2)/(len(dev_b)-1))print('a与b协⽅差:',cov_ab, cov_ba)#绘图,查看两条图线的相关性mp.figure('COV LINES', facecolor='lightgray')mp.title('COV LINES', fontsize=16)mp.xlabel('x', fontsize=14)mp.ylabel('y', fontsize=14)x = np.arange(0, 10)#a,b两条线mp.plot(x, a, color='dodgerblue', label='Line1')mp.plot(x, b, color='limegreen', label='Line2')#a,b两条线的平均线mp.plot([0, 9], [ave_a, ave_a], color='dodgerblue', linestyle='--', alpha=0.7, linewidth=3)mp.plot([0, 9], [ave_b, ave_b], color='limegreen', linestyle='--', alpha=0.7, linewidth=3)mp.grid(linestyle='--', alpha=0.5)mp.legend()mp.tight_layout()mp.show()相关系数协⽅差除去两组统计样本的乘积是⼀个[-1, 1]之间的数。