UNPKG

statistical-js

Version:
2 lines 17.8 kB
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define("statistical",[],t):"object"==typeof exports?exports.statistical=t():e.statistical=t()}(this,function(){return function(e){function t(a){if(n[a])return n[a].exports;var r=n[a]={exports:{},id:a,loaded:!1};return e[a].call(r.exports,r,r.exports,t),r.loaded=!0,r.exports}var n={};return t.m=e,t.c=n,t.p="",t(0)}([function(e,t,n){e.exports=n(1)},function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0});var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}(),u=n(2),o=a(u),s=n(3),l=a(s),c=n(4),h=a(c),f=n(5),d=a(f),v=n(8),m=a(v),p=function(){function e(){r(this,e),this._validator=new h["default"],this._settings={cache:{enabled:!0,rootElementCount:10,subElementCount:30}}}return i(e,[{key:"settings",get:function(){return this._settings},set:function(e){this._settings={cache:{enabled:e.cache.enabled,rootElementCount:e.cache.rootElementCount||this._settings.cache.rootElementCount,subElementCount:e.cache.subElementCount||this._settings.cache.subElementCount}},l["default"].settings=this._settings.cache}},{key:"methods",get:function(){return o["default"].cache(new d["default"],l["default"])}},{key:"ml",get:function(){return{Perceptron:m["default"]}}}]),e}(),y=new p;t["default"]=y,e.exports=t["default"]},function(e,t){"use strict";function n(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0});var a=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}(),r=function(){function e(){n(this,e)}return a(e,[{key:"cache",value:function(e,t){return new Proxy(e,{get:function(e,n){return n in e&&"function"==typeof e[n]?function(){var a=void 0;if(t.settings.enabled){var r=t.find(n,arguments.length<=0?void 0:arguments[0]);if(r)return r.result;a=e[n].apply(e,arguments),t.update(n,{dataSet:arguments.length<=0?void 0:arguments[0],result:a})}else a=e[n].apply(e,arguments);return a}:Reflect.get(e,n)}})}}]),e}(),i=new r;t["default"]=i,e.exports=t["default"]},function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0});var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}(),u=n(4),o=a(u),s=function(){function e(){r(this,e),this._validator=new o["default"],this._cache={},this._settings={enabled:!0,rootElementCount:10,subElementCount:30}}return i(e,[{key:"update",value:function(e,t){Object.keys(this._cache).length>=this._settings.rootElementCount&&delete this._cache[Object.keys(this._cache)[0]],this._cache[e]&&this._cache[e].length>=this._settings.subElementCount&&this._cache[e].splice(0,1),this._cache[e]=this._cache[e]||[],this._cache[e].push({date:(new Date).getTime(),dataSet:t.dataSet,result:t.result})}},{key:"find",value:function(e,t){var n=this._cache[e]||[],a=null;return n.some(function(e){return e.dataSet===t&&(a=e,!0)}),a}},{key:"reset",value:function(){this._cache={}}},{key:"settings",get:function(){return this._settings},set:function(e){this._settings={enabled:e.enabled,rootElementCount:e.rootElementCount||this._settings.rootElementCount,subElementCount:e.subElementCount||this._settings.subElementCount}}},{key:"cache",get:function(){return this._cache}}]),e}(),l=new s;t["default"]=l,e.exports=t["default"]},function(e,t){"use strict";function n(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0});var a=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}(),r=function(){function e(){n(this,e)}return a(e,[{key:"validate",value:function(e,t,n){if("undefined"==typeof t)throw new Error("Missing parameter "+e);n.map(function(n){switch(n){case"isArray":if(!Array.isArray(t))throw new Error("Parameter "+e+" must be an array");break;case"isNumber":if("number"!=typeof t)throw new Error("Parameter "+e+" must be a number");break;case"isString":if("string"!=typeof t)throw new Error("Parameter "+e+" must be a string");break;case"isFunction":if("function"!=typeof t)throw new Error("Parameter "+e+" must be a function");break;case"length > 0":if(0===t.length)throw new Error("Parameter "+e+" must have more than 0 values");break;case"positive":if(t<0)throw new Error("Parameter "+e+" must be positive");break;case"strictlyPositive":if(t<=0)throw new Error("Parameter "+e+" must be strictly positive");break;case"length =":if(t[0].length!==t[1].length)throw new Error("Parameter "+e+" must have the same number of values");break;default:if(!Array.isArray(n))throw new Error("Rule not implemented : "+n);var a=!n.map(function(e){return"number"==typeof e}).includes(!1);if(a&&2===n.length&&(t<n[0]||t>n[1]))throw new Error("Parameter "+e+" must fall between "+n[0]+" and "+n[1])}})}}]),e}();t["default"]=r,e.exports=t["default"]},function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0});var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}(),u=n(4),o=a(u),s=n(6),l=a(s),c=n(7),h=a(c),f=function(){function e(){r(this,e),this._validator=new o["default"],this._chiSquaredProbTable=h["default"],this._epsilon=l["default"]}return i(e,[{key:"min",value:function(e){return this._validator.validate("sample",e,["isArray","length > 0"]),e.sort(function(e,t){return e-t})[0]}},{key:"max",value:function(e){return this._validator.validate("sample",e,["isArray","length > 0"]),e.sort(function(e,t){return e+t})[0]}},{key:"sum",value:function(e){return this._validator.validate("sample",e,["isArray","length > 0"]),e.reduce(function(e,t){return e+t},0)}},{key:"median",value:function(e){this._validator.validate("sample",e,["isArray","length > 0"]);var t=Math.floor(e.length/2),n=e.length%2===0;return e=e.sort(function(e,t){return e-t}),n?(e[t-1]+e[t])/2:e[t]}},{key:"mode",value:function t(e){this._validator.validate("sample",e,["isArray","length > 0"]);var n={},t=[],a=0;return e.map(function(r,i){e[i]in n||(n[e[i]]=0),n[e[i]]++,n[e[i]]===a&&t.push(e[i]),n[e[i]]>a&&(a=n[e[i]],t=[e[i]])}),t.length>1?t:t[0]}},{key:"mean",value:function(e){return this._validator.validate("sample",e,["isArray","length > 0"]),this.sum(e)/e.length}},{key:"variance",value:function(e){this._validator.validate("sample",e,["isArray","length > 0"]);var t=this.mean(e),n=e.length;return this.sum(e.map(function(e){return Math.pow(e-t,2)}))/n}},{key:"stdDeviation",value:function(e){return this._validator.validate("sample",e,["isArray","length > 0"]),Math.sqrt(this.variance(e))}},{key:"quantile",value:function(e,t){this._validator.validate("sample",e,["isArray","length > 0"]),this._validator.validate("index",t,["isNumber",[0,1]]);var n=e.sort(function(e,t){return e-t});return n[Math.ceil(e.length*t-1)]}},{key:"percentile",value:function(e,t){this._validator.validate("sample",e,["isArray","length > 0"]),this._validator.validate("index",t,["isNumber",[0,100]]);var n=e.sort(function(e,t){return e-t});return n[Math.ceil(t/100*e.length)]}},{key:"summary",value:function(e){return this._validator.validate("sample",e,["isArray","length > 0"]),{min:this.min(e),max:this.max(e),sum:this.sum(e),median:this.median(e),mode:this.mode(e),mean:this.mean(e),variance:this.variance(e),stdDeviation:this.stdDeviation(e),quantile:{q1:this.quantile(e,.25),q3:this.quantile(e,.75)}}}},{key:"factorial",value:function(e){this._validator.validate("n",e,["isNumber","positive"]);for(var t=1,n=2;n<=e;n++)t*=n;return t}},{key:"geometricMean",value:function(e){return this._validator.validate("sample",e,["isArray","length > 0"]),Math.pow(e.reduce(function(e,t){return e*t},1),1/e.length)}},{key:"harmonicMean",value:function(e){return this._validator.validate("sample",e,["isArray","length > 0"]),e.length/e.reduce(function(e,t){return e+1/t},0)}},{key:"interQuartileRange",value:function(e){return this._validator.validate("sample",e,["isArray","length > 0"]),this.quantile(e,.75)-this.quantile(e,.25)}},{key:"sampleVariance",value:function(e){this._validator.validate("sample",e,["isArray","length > 0"]);var t=this.mean(e),n=e.length-1;return this.sum(e.map(function(e){return Math.pow(e-t,2)}))/n}},{key:"sampleStdDeviation",value:function(e){return this._validator.validate("sample",e,["isArray","length > 0"]),Math.sqrt(this.sampleVariance(e))}},{key:"covariance",value:function(e,t){this._validator.validate("sample1",e,["isArray","length > 0"]),this._validator.validate("sample2",t,["isArray","length > 0"]),this._validator.validate("sample1 and sample2",[e,t],["length ="]);var n=this.mean(e),a=this.mean(t),r=e.reduce(function(e,r,i){return e+=(r-n)*(t[i]-a)},0),i=e.length-1;return r/i}},{key:"binomial",value:function(e,t){this._validator.validate("trials",e,["isNumber"]),this._validator.validate("probability",t,["isNumber",[0,1]]);var n=0,a=0,r={};do r[n]=this.factorial(e)/(this.factorial(n)*this.factorial(e-n))*(Math.pow(t,n)*Math.pow(1-t,e-n)),a+=r[n],n++;while(a<1-this._epsilon);return r}},{key:"bernoulli",value:function(e){return this._validator.validate("p",e,["isNumber",[0,1]]),this.binomial(1,e)}},{key:"poisson",value:function(e){this._validator.validate("lambda",e,["strictlyPositive"]);var t=0,n=0,a={};do a[t]=Math.pow(Math.E,-e)*Math.pow(e,t)/this.factorial(t),n+=a[t],t++;while(n<1-this._epsilon);return a}},{key:"chiSquaredGoodnessOfFit",value:function(e,t,n){this._validator.validate("sample",e,["isArray","length > 0"]),this._validator.validate("distributionType",t,["isFunction"]),this._validator.validate("significance",n,["isNumber","positive"]);var a=[];a=e.reduce(function(e,t){return void 0===e[t]&&(e[t]=0),e[t]+=1,e},[]).filter(function(e){return void 0!==e});var r=this.mean(e),i=t(r),u=[];u=Object.entries(i).reduce(function(t,n,r){return a[r]&&(t[r]=n[1]*e.length),t},[]),u=Object.entries(u).reduceRight(function(e,t){return e[1]<3&&(t[1]+=e[1]),t});var o=0;o=Object.entries(a).reduce(function(e,t,n){return e+=Math.pow(t[1]-u[n],2)/u[n]},o);var s=1,l=Object.keys(a).length-s-1;return this._chiSquaredProbTable[l][n]<o}},{key:"tTestOneSample",value:function(e,t){this._validator.validate("sample",e,["isArray","length > 0"]),this._validator.validate("mu",t,["isNumber"]);var n=this.mean(e),a=this.stdDeviation(e),r=Math.sqrt(e.length);return(n-t)/(a/r)}},{key:"tTestTwoSample",value:function(e,t){this._validator.validate("sample1",e,["isArray","length > 0"]),this._validator.validate("sample2",t,["isArray","length > 0"]);var n=e.length,a=t.length,r=this.mean(e),i=this.mean(t),u=this.sampleVariance(e),o=this.sampleVariance(t),s=((n-1)*u+(a-1)*o)/(n+a-2);return(r-i)/Math.sqrt(s*(1/(n+1)/a))}},{key:"linearRegression",value:function(e){this._validator.validate("data",e,["isArray"]);var t=e.length;if(1===t)return{slope:u,intersect:e[0][1]};var n=0,a=0,r=0,i=0;e.forEach(function(e){n+=e[0],a+=e[1],r+=Math.pow(e[0],2),i+=e[0]*e[1]});var u=(t*i-n*a)/(t*r-n*n),o=a/t-u*n/t;return{slope:u,intersect:o}}},{key:"chiSquaredProbTable",get:function(){return this._chiSquaredProbTable}}]),e}();t["default"]=f,e.exports=t["default"]},function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=1e-4;t["default"]=n,e.exports=t["default"]},function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n={1:{.995:0,.99:0,.975:0,.95:0,.9:.02,.5:.45,.1:2.71,.05:3.84,.025:5.02,.01:6.63,.005:7.88},2:{.995:.01,.99:.02,.975:.05,.95:.1,.9:.21,.5:1.39,.1:4.61,.05:5.99,.025:7.38,.01:9.21,.005:10.6},3:{.995:.07,.99:.11,.975:.22,.95:.35,.9:.58,.5:2.37,.1:6.25,.05:7.81,.025:9.35,.01:11.34,.005:12.84},4:{.995:.21,.99:.3,.975:.48,.95:.71,.9:1.06,.5:3.36,.1:7.78,.05:9.49,.025:11.14,.01:13.28,.005:14.86},5:{.995:.41,.99:.55,.975:.83,.95:1.15,.9:1.61,.5:4.35,.1:9.24,.05:11.07,.025:12.83,.01:15.09,.005:16.75},6:{.995:.68,.99:.87,.975:1.24,.95:1.64,.9:2.2,.5:5.35,.1:10.65,.05:12.59,.025:14.45,.01:16.81,.005:18.55},7:{.995:.99,.99:1.25,.975:1.69,.95:2.17,.9:2.83,.5:6.35,.1:12.02,.05:14.07,.025:16.01,.01:18.48,.005:20.28},8:{.995:1.34,.99:1.65,.975:2.18,.95:2.73,.9:3.49,.5:7.34,.1:13.36,.05:15.51,.025:17.53,.01:20.09,.005:21.96},9:{.995:1.73,.99:2.09,.975:2.7,.95:3.33,.9:4.17,.5:8.34,.1:14.68,.05:16.92,.025:19.02,.01:21.67,.005:23.59},10:{.995:2.16,.99:2.56,.975:3.25,.95:3.94,.9:4.87,.5:9.34,.1:15.99,.05:18.31,.025:20.48,.01:23.21,.005:25.19},11:{.995:2.6,.99:3.05,.975:3.82,.95:4.57,.9:5.58,.5:10.34,.1:17.28,.05:19.68,.025:21.92,.01:24.72,.005:26.76},12:{.995:3.07,.99:3.57,.975:4.4,.95:5.23,.9:6.3,.5:11.34,.1:18.55,.05:21.03,.025:23.34,.01:26.22,.005:28.3},13:{.995:3.57,.99:4.11,.975:5.01,.95:5.89,.9:7.04,.5:12.34,.1:19.81,.05:22.36,.025:24.74,.01:27.69,.005:29.82},14:{.995:4.07,.99:4.66,.975:5.63,.95:6.57,.9:7.79,.5:13.34,.1:21.06,.05:23.68,.025:26.12,.01:29.14,.005:31.32},15:{.995:4.6,.99:5.23,.975:6.27,.95:7.26,.9:8.55,.5:14.34,.1:22.31,.05:25,.025:27.49,.01:30.58,.005:32.8},16:{.995:5.14,.99:5.81,.975:6.91,.95:7.96,.9:9.31,.5:15.34,.1:23.54,.05:26.3,.025:28.85,.01:32,.005:34.27},17:{.995:5.7,.99:6.41,.975:7.56,.95:8.67,.9:10.09,.5:16.34,.1:24.77,.05:27.59,.025:30.19,.01:33.41,.005:35.72},18:{.995:6.26,.99:7.01,.975:8.23,.95:9.39,.9:10.87,.5:17.34,.1:25.99,.05:28.87,.025:31.53,.01:34.81,.005:37.16},19:{.995:6.84,.99:7.63,.975:8.91,.95:10.12,.9:11.65,.5:18.34,.1:27.2,.05:30.14,.025:32.85,.01:36.19,.005:38.58},20:{.995:7.43,.99:8.26,.975:9.59,.95:10.85,.9:12.44,.5:19.34,.1:28.41,.05:31.41,.025:34.17,.01:37.57,.005:40},21:{.995:8.03,.99:8.9,.975:10.28,.95:11.59,.9:13.24,.5:20.34,.1:29.62,.05:32.67,.025:35.48,.01:38.93,.005:41.4},22:{.995:8.64,.99:9.54,.975:10.98,.95:12.34,.9:14.04,.5:21.34,.1:30.81,.05:33.92,.025:36.78,.01:40.29,.005:42.8},23:{.995:9.26,.99:10.2,.975:11.69,.95:13.09,.9:14.85,.5:22.34,.1:32.01,.05:35.17,.025:38.08,.01:41.64,.005:44.18},24:{.995:9.89,.99:10.86,.975:12.4,.95:13.85,.9:15.66,.5:23.34,.1:33.2,.05:36.42,.025:39.36,.01:42.98,.005:45.56},25:{.995:10.52,.99:11.52,.975:13.12,.95:14.61,.9:16.47,.5:24.34,.1:34.28,.05:37.65,.025:40.65,.01:44.31,.005:46.93},26:{.995:11.16,.99:12.2,.975:13.84,.95:15.38,.9:17.29,.5:25.34,.1:35.56,.05:38.89,.025:41.92,.01:45.64,.005:48.29},27:{.995:11.81,.99:12.88,.975:14.57,.95:16.15,.9:18.11,.5:26.34,.1:36.74,.05:40.11,.025:43.19,.01:46.96,.005:49.65},28:{.995:12.46,.99:13.57,.975:15.31,.95:16.93,.9:18.94,.5:27.34,.1:37.92,.05:41.34,.025:44.46,.01:48.28,.005:50.99},29:{.995:13.12,.99:14.26,.975:16.05,.95:17.71,.9:19.77,.5:28.34,.1:39.09,.05:42.56,.025:45.72,.01:49.59,.005:52.34},30:{.995:13.79,.99:14.95,.975:16.79,.95:18.49,.9:20.6,.5:29.34,.1:40.26,.05:43.77,.025:46.98,.01:50.89,.005:53.67},40:{.995:20.71,.99:22.16,.975:24.43,.95:26.51,.9:29.05,.5:39.34,.1:51.81,.05:55.76,.025:59.34,.01:63.69,.005:66.77},50:{.995:27.99,.99:29.71,.975:32.36,.95:34.76,.9:37.69,.5:49.33,.1:63.17,.05:67.5,.025:71.42,.01:76.15,.005:79.49},60:{.995:35.53,.99:37.48,.975:40.48,.95:43.19,.9:46.46,.5:59.33,.1:74.4,.05:79.08,.025:83.3,.01:88.38,.005:91.95},70:{.995:43.28,.99:45.44,.975:48.76,.95:51.74,.9:55.33,.5:69.33,.1:85.53,.05:90.53,.025:95.02,.01:100.42,.005:104.22},80:{.995:51.17,.99:53.54,.975:57.15,.95:60.39,.9:64.28,.5:79.33,.1:96.58,.05:101.88,.025:106.63,.01:112.33,.005:116.32},90:{.995:59.2,.99:61.75,.975:65.65,.95:69.13,.9:73.29,.5:89.33,.1:107.57,.05:113.14,.025:118.14,.01:124.12,.005:128.3},100:{.995:67.33,.99:70.06,.975:74.22,.95:77.93,.9:82.36,.5:99.33,.1:118.5,.05:124.34,.025:129.56,.01:135.81,.005:140.17}};t["default"]=n,e.exports=t["default"]},function(e,t){"use strict";function n(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0});var a=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}(),r=function(){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};n(this,e),this._bias=t._bias||1,this._learningRate=t._learningRate||.2,this._weights=[]}return a(e,[{key:"predict",value:function(e){if(!e)throw new Error("Missing parameter input.");var t=0;return this._weights.map(function(n,a){t+=n*e[a]}),t+this._bias>0?1:0}},{key:"train",value:function(e){var t=this;if(!e["in"])throw new Error("Missing parameter input.");this._weights=this._weights.length?this._weights:e["in"];var n=this.predict(e["in"]);return n!==e.out&&!function(){var a=e.out-n;t._weights=t._weights.map(function(n,r){return n+=t._learningRate*a*e["in"][r]}),t._bias+=a}(),this}}]),e}();t["default"]=r,e.exports=t["default"]}])}); //# sourceMappingURL=statistical.min.js.map