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