blob: 550700b421a22ea6564b28557d394dfa940b78ad [file] [log] [blame]
!function(r,n){"object"==typeof exports&&"object"==typeof module?module.exports=n():"function"==typeof define&&define.amd?define([],n):"object"==typeof exports?exports.ecStat=n():r.ecStat=n()}(this,function(){return function(r){function n(e){if(t[e])return t[e].exports;var o=t[e]={exports:{},id:e,loaded:!1};return r[e].call(o.exports,o,o.exports,n),o.loaded=!0,o.exports}var t={};return n.m=r,n.c=t,n.p="",n(0)}([function(r,n,t){r.exports=t(12)},function(r,n,t){var e;e=function(r){function n(r){return r=null===r?NaN:+r,"number"==typeof r&&!isNaN(r)}function t(r){return isFinite(r)&&r===Math.round(r)}return{isNumber:n,isInteger:t}}.call(n,t,n,r),!(void 0!==e&&(r.exports=e))},function(r,n,t){var e;e=function(r){return function(r,n){var t=r.length;if(!t)return 0;if(n<=0||t<2)return r[0];if(n>=1)return r[t-1];var e=(t-1)*n,o=Math.floor(e),a=r[o],u=r[o+1];return a+(u-a)*(e-o)}}.call(n,t,n,r),!(void 0!==e&&(r.exports=e))},function(r,n,t){var e;e=function(r){function n(r){for(var n=[];t(r);)n.push(r.length),r=r[0];return n}function t(r){return"[object Array]"===l.call(r)}function e(r,n){for(var t=[],e=0;e<r;e++){t[e]=[];for(var o=0;o<n;o++)t[e][o]=0}return t}function o(r){for(var n=0,t=0;t<r.length;t++)n+=r[t];return n}function a(r,n){for(var t=0,e=0;e<r.length;e++)t+=r[e][n];return t}function u(r,n){return r>n?1:r<n?-1:r===n?0:NaN}function i(r,n,t,e){for(null==t&&(t=0),null==e&&(e=r.length);t<e;){var o=Math.floor((t+e)/2),a=u(r[o],n);if(a>0)e=o;else{if(!(a<0))return o+1;t=o+1}}return t}function f(r,n,t){if(r&&n){if(r.map&&r.map===h)return r.map(n,t);for(var e=[],o=0,a=r.length;o<a;o++)e.push(n.call(t,r[o],o,r));return e}}var l=Object.prototype.toString,s=Array.prototype,h=s.map;return{size:n,isArray:t,zeros:e,sum:o,sumOfColumn:a,ascending:u,bisect:i,map:f}}.call(n,t,n,r),!(void 0!==e&&(r.exports=e))},function(r,n,t){var e;e=function(r){function n(r){if(!o(r))throw new Error("Invalid data type, you should input an array");var n=[],t=a(r);if(1===t.length)for(var e=0;e<t[0];e++)i(r[e])&&n.push(r[e]);else if(2===t.length)for(var e=0;e<t[0];e++){for(var u=!0,f=0;f<t[1];f++)i(r[e][f])||(u=!1);u&&n.push(r[e])}return n}var e=t(3),o=e.isArray,a=e.size,u=t(1),i=u.isNumber;return n}.call(n,t,n,r),!(void 0!==e&&(r.exports=e))},function(r,n,t){var e;e=function(r){var n=t(9);return function(r){var t=n(r);return t?Math.sqrt(t):t}}.call(n,t,n,r),!(void 0!==e&&(r.exports=e))},function(r,n,t){var e;e=function(r){function n(r){for(var n=-(1/0),t=0;t<r.length;t++)o(r[t])&&r[t]>n&&(n=r[t]);return n}var e=t(1),o=e.isNumber;return n}.call(n,t,n,r),!(void 0!==e&&(r.exports=e))},function(r,n,t){var e;e=function(r){function n(r){var n=r.length;return n?e(r)/r.length:0}var e=t(10);return n}.call(n,t,n,r),!(void 0!==e&&(r.exports=e))},function(r,n,t){var e;e=function(r){function n(r){for(var n=1/0,t=0;t<r.length;t++)o(r[t])&&r[t]<n&&(n=r[t]);return n}var e=t(1),o=e.isNumber;return n}.call(n,t,n,r),!(void 0!==e&&(r.exports=e))},function(r,n,t){var e;e=function(r){function n(r){var n=r.length;if(!n||n<2)return 0;if(r.length>=2){for(var t,e=a(r),u=0,i=0;i<r.length;i++)o(r[i])&&(t=r[i]-e,u+=t*t);return u/r.length-1}}var e=t(1),o=e.isNumber,a=t(7);return n}.call(n,t,n,r),!(void 0!==e&&(r.exports=e))},function(r,n,t){var e;e=function(r){function n(r){var n=r.length;if(!n)return 0;for(var t=0,e=0;e<n;e++)o(r[e])&&(t+=r[e]);return t}var e=t(1),o=e.isNumber;return n}.call(n,t,n,r),!(void 0!==e&&(r.exports=e))},function(r,n,t){var e;e=function(r){function n(r,n){for(var t,o,i,f,s=l(r),h=c(s[0],2),v=a(r,n),p=!0;p;){p=!1;for(var d=0;d<s[0];d++){t=1/0,o=-1;for(var M=0;M<n;M++)i=u(r[d],v[M]),i<t&&(t=i,o=M);h[d][0]!==o&&(p=!0),h[d][0]=o,h[d][1]=g(t,2)}for(var d=0;d<n;d++){f=[];for(var M=0;M<h.length;M++)h[M][0]===d&&f.push(r[M]);v[d]=e(f)}}var x={centroids:v,clusterAssigned:h};return x}function e(r){for(var n,t,e=l(r),o=[],a=0;a<e[1];a++){n=0;for(var u=0;u<e[0];u++)n+=r[u][a];t=n/e[0],o.push(t)}return o}function o(r,t,o){function a(){if(E<t){y=1/0;for(var r,e,o,a=0;a<x.length;a++){b=[],w=[];for(var u=0;u<d.length;u++)d[u][0]===a?b.push(v[u]):w.push(d[u][1]);N=n(b,2),A=s(N.clusterAssigned,1),q=h(w),A+q<y&&(y=q+A,r=a,e=N.centroids,o=N.clusterAssigned)}for(var u=0;u<o.length;u++)0===o[u][0]?o[u][0]=r:1===o[u][0]&&(o[u][0]=x.length);for(x[r]=e[0],x.push(e[1]),u=0,a=0;u<d.length&&a<o.length;u++)d[u][0]===r&&(d[u][0]=o[a][0],d[u][1]=o[a++][1]);for(var i=[],u=0;u<x.length;u++){i[u]=[];for(var a=0;a<d.length;a++)d[a][0]===u&&i[u].push(v[a])}j.clusterAssment=d,j.centroids=x,j.pointsInCluster=i,E++}else j.isEnd=!0;return j}for(var f,v=i(r),p=l(v),d=c(p[0],2),M=e(v),x=[M],m=0;m<p[0];m++)f=u(v[m],M),d[m][1]=g(f,2);var y,b,w,N,A,q,E=1,j={isEnd:!1},z={next:a};if(o)return z;for(var j;!(j=z.next()).isEnd;);return j}function a(r,n){for(var t,e,o,a=l(r),u=c(n,a[1]),i=0;i<a[1];i++){t=r[0][i],e=r[0][i];for(var f=1;f<a[0];f++)r[f][i]<t&&(t=r[f][i]),r[f][i]>e&&(e=r[f][i]);o=e-t;for(var f=0;f<n;f++)u[f][i]=t+o*Math.random()}return u}function u(r,n){if(!v(r)&&!v(n))return p(g(r-n,2));for(var t=0,e=0;e<r.length;e++)t+=g(r[e]-n[e],2);return p(t)}var i=t(4),f=t(3),l=f.size,s=f.sumOfColumn,h=f.sum,c=f.zeros,v=f.isArray,p=Math.sqrt,g=Math.pow;return{kMeans:n,hierarchicalKMeans:o}}.call(n,t,n,r),!(void 0!==e&&(r.exports=e))},function(r,n,t){var e;e=function(r){return{clustering:t(11),regression:t(14),statistics:t(15),histogram:t(13)}}.call(n,t,n,r),!(void 0!==e&&(r.exports=e))},function(r,n,t){var e;e=function(r){function n(r,n){n=null==n?p.squareRoot:p[n];for(var t=i(r),a=e(t),u=o(t),f=n(t,u,a),l=v(u,a,f),g=h(Math.ceil(u/l)*l,Math.floor(a/l)*l,l),d=g.length,M=new Array(d+1),x=0;x<=d;x++)M[x]={},M[x].sample=[],M[x].x0=x>0?g[x-1]:g[x]-u===l?u:g[x]-l,M[x].x1=x<d?g[x]:a-g[x-1]===l?a:g[x-1]+l;for(var x=0;x<t.length;x++)u<=t[x]&&t[x]<=a&&M[c(g,t[x],0,d)].sample.push(t[x]);var r=s(M,function(r){return[(r.x0+r.x1)/2,r.sample.length]});return{bins:M,data:r}}var e=t(6),o=t(8),a=t(2),u=t(5),i=t(4),f=t(3),l=f.ascending,s=f.map,h=t(17),c=f.bisect,v=t(18),p={squareRoot:function(r){var n=Math.ceil(Math.sqrt(r.length));return n>50?50:n},scott:function(r,n,t){return Math.ceil((t-n)/(3.5*u(r)*Math.pow(r.length,-1/3)))},freedmanDiaconis:function(r,n,t){return r.sort(l),Math.ceil((t-n)/(2*(a(r,.75)-a(r,.25))*Math.pow(r.length,-1/3)))},sturges:function(r){return Math.ceil(Math.log(r.length)/Math.LN2)+1}};return n}.call(n,t,n,r),!(void 0!==e&&(r.exports=e))},function(r,n,t){var e;e=function(r){function n(r,n){for(var t=0;t<r.length-1;t++){for(var e=t,o=t+1;o<r.length-1;o++)Math.abs(r[t][o])>Math.abs(r[t][e])&&(e=o);for(var a=t;a<r.length;a++){var u=r[a][t];r[a][t]=r[a][e],r[a][e]=u}for(var i=t+1;i<r.length-1;i++)for(var f=r.length-1;f>=t;f--)r[f][i]-=r[f][t]/r[t][t]*r[t][i]}for(var l=new Array(n),s=r.length-1,o=r.length-2;o>=0;o--){for(var u=0,t=o+1;t<r.length-1;t++)u+=r[t][o]*l[t];l[o]=(r[s][o]-u)/r[o][o]}return l}var e=t(4),o={linear:function(r){for(var n=e(r),t=0,o=0,a=0,u=0,i=n.length,f=0;f<i;f++)t+=n[f][0],o+=n[f][1],a+=n[f][0]*n[f][1],u+=n[f][0]*n[f][0];for(var l=(i*a-t*o)/(i*u-t*t),s=o/i-l*t/i,h=[],c=0;c<n.length;c++){var v=[n[c][0],l*n[c][0]+s];h.push(v)}var p="y = "+Math.round(100*l)/100+"x + "+Math.round(100*s)/100;return{points:h,parameter:{gradient:l,intercept:s},expression:p}},linearThroughOrigin:function(r){for(var n=e(r),t=0,o=0,a=0;a<n.length;a++)t+=n[a][0]*n[a][0],o+=n[a][0]*n[a][1];for(var u=o/t,i=[],f=0;f<n.length;f++){var l=[n[f][0],n[f][0]*u];i.push(l)}var s="y = "+Math.round(100*u)/100+"x";return{points:i,parameter:{gradient:u},expression:s}},exponential:function(r){for(var n=e(r),t=0,o=0,a=0,u=0,i=0,f=0,l=0;l<n.length;l++)t+=n[l][0],o+=n[l][1],f+=n[l][0]*n[l][1],a+=n[l][0]*n[l][0]*n[l][1],u+=n[l][1]*Math.log(n[l][1]),i+=n[l][0]*n[l][1]*Math.log(n[l][1]);for(var s=o*a-f*f,h=Math.pow(Math.E,(a*u-f*i)/s),c=(o*i-f*u)/s,v=[],p=0;p<n.length;p++){var g=[n[p][0],h*Math.pow(Math.E,c*n[p][0])];v.push(g)}var d="y = "+Math.round(100*h)/100+"e^("+Math.round(100*c)/100+"x)";return{points:v,parameter:{coefficient:h,index:c},expression:d}},logarithmic:function(r){for(var n=e(r),t=0,o=0,a=0,u=0,i=0;i<n.length;i++)t+=Math.log(n[i][0]),o+=n[i][1]*Math.log(n[i][0]),a+=n[i][1],u+=Math.pow(Math.log(n[i][0]),2);for(var f=(i*o-a*t)/(i*u-t*t),l=(a-f*t)/i,s=[],h=0;h<n.length;h++){var c=[n[h][0],f*Math.log(n[h][0])+l];s.push(c)}var v="y = "+Math.round(100*l)/100+" + "+Math.round(100*f)/100+"ln(x)";return{points:s,parameter:{gradient:f,intercept:l},expression:v}},polynomial:function(r,t){var o=e(r);"undefined"==typeof t&&(t=2);for(var a=[],u=[],i=t+1,f=0;f<i;f++){for(var l=0,s=0;s<o.length;s++)l+=o[s][1]*Math.pow(o[s][0],f);u.push(l);for(var h=[],c=0;c<i;c++){for(var v=0,p=0;p<o.length;p++)v+=Math.pow(o[p][0],f+c);h.push(v)}a.push(h)}a.push(u);for(var g=n(a,i),d=[],f=0;f<o.length;f++){for(var M=0,s=0;s<g.length;s++)M+=g[s]*Math.pow(o[f][0],s);d.push([o[f][0],M])}for(var x="y = ",f=g.length-1;f>=0;f--)x+=f>1?Math.round(g[f]*Math.pow(10,f+1))/Math.pow(10,f+1)+"x^"+f+" + ":1===f?Math.round(100*g[f])/100+"x + ":Math.round(100*g[f])/100;return{points:d,parameter:g,expression:x}}},a=function(r,n,t){return o[r](n,t)};return a}.call(n,t,n,r),!(void 0!==e&&(r.exports=e))},function(r,n,t){var e;e=function(r){var n={};return n.max=t(6),n.deviation=t(5),n.mean=t(7),n.median=t(16),n.min=t(8),n.max=t(2),n.max=t(9),n.sum=t(10),n}.call(n,t,n,r),!(void 0!==e&&(r.exports=e))},function(r,n,t){var e;e=function(r){function n(r){return e(r,.5)}var e=t(2);return n}.call(n,t,n,r),!(void 0!==e&&(r.exports=e))},function(r,n,t){var e;e=function(r){return function(r,n,t){var e=arguments.length;e<2?(n=r,r=0,t=1):t=e<3?1:+t;for(var o=Math.ceil((n-r)/t),a=new Array(o+1),u=0;u<o+1;u++)a[u]=r+u*t;return a}}.call(n,t,n,r),!(void 0!==e&&(r.exports=e))},function(r,n,t){var e;e=function(r){return function(r,n,t){var e=Math.abs(n-r)/t,o=Math.pow(10,Math.floor(Math.log(e)/Math.LN10)),a=e/o;return a>=Math.sqrt(50)?o*=10:a>=Math.sqrt(10)?o*=5:a>=Math.sqrt(2)&&(o*=2),n>=r?o:-o}}.call(n,t,n,r),!(void 0!==e&&(r.exports=e))}])});