@stdlib/stats-incr-mpcorr
Version:
Compute a moving sample Pearson product-moment correlation coefficient incrementally.
6 lines (5 loc) • 2.02 kB
JavaScript
;var D=function(e,w){return function(){return w||e((w={exports:{}}).exports,w),w.exports}};var S=D(function(O,I){
var G=require('@stdlib/assert-is-positive-integer/dist').isPrimitive,C=require('@stdlib/assert-is-number/dist').isPrimitive,o=require('@stdlib/math-base-assert-is-nan/dist'),k=require('@stdlib/math-base-special-sqrt/dist'),H=require('@stdlib/array-float64/dist'),A=require('@stdlib/error-tools-fmtprodmsg/dist');function J(e,w,M){var i,h,T,p,m,g,c,v,s,N,d,t,n,E,a,r,P,u;if(!G(e))throw new TypeError(A('1Ip4b',e));if(i=new H(2*e),P=e-1,g=0,c=0,a=0,E=-1,r=0,arguments.length>1){if(!C(w))throw new TypeError(A('1Ip4A',w));if(!C(M))throw new TypeError(A('1Ip4B',M));return v=w,s=M,B}return v=0,s=0,z;function z(f,l){var q,b,V,j,F;if(arguments.length===0)return r===0?null:r===1?0:r<e?a/(r-1)/(N*d):a/P/(N*d);if(E=(E+1)%e,u=2*E,o(f)||o(l))r=e,a=NaN;else{if(r<e)return i[u]=f,i[u+1]=l,r+=1,t=f-v,v+=t/r,g+=t*(f-v),n=l-s,s+=n/r,m=l-s,c+=n*m,a+=t*m,r===1?0:(V=r-1,N=k(g/V),d=k(c/V),a/V/(N*d));if(r===1)return 0;if(o(i[u])||o(i[u+1])){for(r=1,v=f,s=l,g=0,c=0,a=0,j=0;j<e;j++)if(F=2*j,F!==u){if(q=i[F],b=i[F+1],o(q)||o(b)){r=e,a=NaN;break}r+=1,t=q-v,v+=t/r,g+=t*(q-v),n=b-s,s+=n/r,m=b-s,c+=n*m,a+=t*m}}else o(a)===!1&&(h=i[u]-v,p=i[u+1]-s,T=f-v,m=l-s,t=T-h,n=m-p,v+=t/e,s+=n/e,g+=t*(h+(f-v)),c+=n*(p+(l-s)),a+=T*m-h*p-t*n/e)}return i[u]=f,i[u+1]=l,N=k(g/P),d=k(c/P),a/P/(N*d)}function B(f,l){var q,b;if(arguments.length===0)return r===0?null:r<e?a/r/(N*d):a/e/(N*d);if(E=(E+1)%e,u=2*E,o(f)||o(l))r=e,a=NaN;else{if(r<e)return i[u]=f,i[u+1]=l,r+=1,t=f-v,g+=t*t,n=l-s,c+=n*n,a+=t*n,N=k(g/r),d=k(c/r),a/r/(N*d);if(o(i[u])||o(i[u+1])){for(g=0,c=0,a=0,q=0;q<e;q++)if(b=2*q,b!==u){if(o(i[b])||o(i[b+1])){r=e,a=NaN;break}t=i[b]-v,g+=t*t,n=i[b+1]-s,c+=n*n,a+=t*n}}else o(a)===!1&&(h=i[u]-v,T=f-v,p=i[u+1]-s,m=l-s,g+=(T-h)*(T+h),c+=(m-p)*(m+p),a+=T*m-h*p)}return i[u]=f,i[u+1]=l,N=k(g/e),d=k(c/e),a/e/(N*d)}}I.exports=J
});var K=S();module.exports=K;
/** @license Apache-2.0 */
//# sourceMappingURL=index.js.map