Estimate Pearson correlation coefficient from stream of data(从数据流中估计皮尔逊相关系数)
本文介绍了从数据流中估计皮尔逊相关系数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
如果数据是以区块形式接收的而不是存储收到的数据对,是否有办法估计两个变量之间的相关性?
例如,我们收到以下对:
[(x1,y1),(x2,y2),(x3,y3)]
[(x4,y4)]
[(x5,y5),(x6,y6)]
我们必须估计x1:6和y1:6之间的相关性。
非最优解:
即使此定义有效:
它不是最优的,因为如果流上的值很大,平方的值很容易溢出。
推荐答案
是,可以递增计算。该方法是Welford算法的一个小推广,见here, for example
您维护许多变量,每次数据传入时都会更新它们。在每个阶段,这些是到目前为止看到的数据的平均值初始化:
int n = 0; // number of points
double mx = 0.0; // mean of x's
double my = 0.0; // mean of y's
double vx = 0.0; // variance of x's
double vy = 0.0; // variance of y's
double cxy = 0.0; // covariance of x and y
更新(新值x,y in)
n += 1;
double f = 1.0/n;
double dx = x - mx;
double dy = y - my;
mx += f*dx;
my += f*dy;
vx = (1.0-f)*(vx + f*dx*dx);
vy = (1.0-f)*(vy + f*dy*dy);
cxy= (1.0-f)*(cxy+ f*dx*dy);
就这些变量而言
rxy = cxy/sqrt( vx*vy)
请注意,如前面所示,仅在一对之后,vx和vy将为零。
如果Rxy的估计流是嘈杂的,不要感到惊讶。对相关性的估计往往是如此。
这篇关于从数据流中估计皮尔逊相关系数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
沃梦达教程
本文标题为:从数据流中估计皮尔逊相关系数


猜你喜欢
- 检查具有纬度和经度的地理点是否在 shapefile 中 2022-01-01
- 我如何卸载 PyTorch? 2022-01-01
- 如何使用PYSPARK从Spark获得批次行 2022-01-01
- 使用公司代理使Python3.x Slack(松弛客户端) 2022-01-01
- ";find_element_by_name(';name';)";和&QOOT;FIND_ELEMENT(BY NAME,';NAME';)";之间有什么区别? 2022-01-01
- 计算测试数量的Python单元测试 2022-01-01
- YouTube API v3 返回截断的观看记录 2022-01-01
- 使用 Cython 将 Python 链接到共享库 2022-01-01
- CTR 中的 AES 如何用于 Python 和 PyCrypto? 2022-01-01
- 我如何透明地重定向一个Python导入? 2022-01-01