UNPKG

@stdlib/esm

Version:

ES module distribution for Stdlib, a standard library for JavaScript and Node.js.

3 lines 5.21 kB
// This file is a part of stdlib. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 import i from"./../../assert/has-own-property.js";import e from"./../../assert/is-plain-object.js";import t from"./../../assert/is-positive-integer.js";import r from"./../../assert/is-boolean.js";import a from"./../../utils/copy.js";import n from"./../../utils/define-read-only-property.js";import o from"./../../utils/define-read-only-accessor.js";import s from"./../../math/base/special/max.js";import l from"./../../math/base/special/sqrt.js";import m from"./../../math/base/special/roundn.js";import f from"./../base/dists/t/quantile.js";import p from"./../../assert/is-number.js";import u from"./../../assert/is-string.js";import v from"./../../assert/is-nan.js";import c from"./../../math/base/assert/is-positive-zero.js";import h from"./../../math/base/assert/is-negative-zero.js";import d from"./../../math/base/assert/is-nan.js";import b from"./../../constants/math/float64-pinf.js";import g from"./../../constants/math/float64-ninf.js";var j=i,w=e,y=p.isPrimitive,T=u.isPrimitive,E=v;function x(i,e){if(!w(e))return new TypeError("invalid argument. Options argument must be an object. Value: `"+e+"`.");if(j(e,"alpha")){if(i.alpha=e.alpha,!y(i.alpha)||E(i.alpha))return new TypeError("invalid option. `alpha` option must be a number primitive. Option: `"+i.alpha+"`.");if(i.alpha<0||i.alpha>1)return new RangeError("invalid option. `alpha` option must be on the interval [0,1]. Option: `"+i.alpha+"`.")}return j(e,"alternative")&&(i.alternative=e.alternative,!T(i.alternative))?new TypeError("invalid option. `alternative` option must be a string primitive. Option: `"+i.alternative+"`."):null}var N=.05,O="two-sided",V=4,k=!0,z={alpha:N,alternative:O,digits:V,decision:k},P=c,q=h,R=d,A=b,W=g;function D(i,e,t){var r,a,n;return r=A,a=W,n=0,function(o,s){var l,m,f;if(R(o))n=e,r=o,a=o;else if(n<e)n+=1,(o<r||o===r&&q(o))&&(r=o),(o>a||o===a&&P(o))&&(a=o);else if(t[s]===r&&o>r||t[s]===a&&o<a||R(t[s])){for(r=o,a=o,f=0;f<e;f++)if(f!==s){if(m=t[f],R(m)){r=m,a=m;break}(m<r||m===r&&q(m))&&(r=m),(m>a||m===a&&P(m))&&(a=m)}}else if(o<r)r=o;else if(o>a)a=o;else if(0===o){if(l=q(o),o===r)if(t[s]===r&&q(t[s])&&!1===l){for(r=o,f=0;f<e;f++)if(f!==s&&q(t[f])){r=t[f];break}}else l&&(r=o);if(o===a)if(t[s]===a&&P(t[s])&&l){for(a=o,f=0;f<e;f++)if(f!==s&&P(t[f])){a=t[f];break}}else!1===l&&(a=o)}return i[0]=r,i[1]=a,i}}var F=d,G=l;function M(i,e,t){var r,a,n,o,s,l;return l=e-1,n=0,o=0,s=0,function(m,f){var p,u;if(F(m))s=e,o=NaN,n=NaN;else{if(s<e)return n+=(r=m-o)*(m-(o+=r/(s+=1))),i[0]=o,i[1]=1===s?0:G(n/(s-1)),i;if(1===s)return o=m,n=0,i[0]=m,i[1]=0,i;if(F(t[f])){for(s=1,o=m,n=0,p=0;p<e;p++)if(p!==f){if(u=t[p],F(u)){s=e,o=NaN,n=NaN;break}n+=(r=u-o)*(u-(o+=r/(s+=1)))}}else!1===F(n)&&(a=t[f],n+=(r=m-a)*(a-o+(m-(o+=r/e))))}return i[0]=o,i[1]=G(n/l),i}}var B=i,C=e,H=t.isPrimitive,I=r.isPrimitive,J=a,K=n,L=o,Q=s,S=l,U=m,X=f,Y=x,Z=z,$=D,_=M;function ii(i){var e,t,r,a,n,o,s,l,m,f,p,u,v,c,h;if(!H(i))throw new TypeError("invalid argument. Window size must be a positive integer. Value: `"+i+"`.");if(i<3)throw new RangeError("invalid argument. Window size must be greater than or equal to 3. Value: `"+i+"`.");if(a=J(Z),arguments.length>1&&(n=Y(a,arguments[1])))throw n;return o=new Array(i),u=i-2,p=0,c=0,v=0,h=-1,s="min"===a.alternative||"max"===a.alternative?a.alpha/i:a.alpha/(2*i),f=X(1-s,u),p=(i-1)*f/S(i*(u+f*f)),r=$(l=[0,0],i,o),e=_(m=[0,0],i,o),L(t={},"rejected",b),K(t,"alpha",a.alpha),K(t,"criticalValue",p),L(t,"statistic",g),K(t,"df",u),L(t,"mean",j),L(t,"sd",w),L(t,"min",y),L(t,"max",T),K(t,"alt",a.alternative),K(t,"method","Grubbs' Test"),K(t,"print",E),d;function d(n){var s;return 0===arguments.length?v<i?null:t:(v+=1,e(n,h=(h+1)%i),r(n,h),o[h]=n,v<i?null:("min"===a.alternative?c=(m[0]-l[0])/m[1]:"max"===a.alternative?c=(l[1]-m[0])/m[1]:(s=Q(m[0]-l[0],l[1]-m[0]),c=s/m[1]),t))}function b(){return c>p}function g(){return c}function j(){return m[0]}function w(){return m[1]}function y(){return l[0]}function T(){return l[1]}function E(i){var e,r,n;if(r=a.digits,e=a.decision,arguments.length>0){if(!C(i))throw new TypeError("invalid argument. Must provide an object. Value: `"+i+"`.");if(B(i,"digits")){if(!H(i.digits))throw new TypeError("invalid option. `digits` option must be a positive integer. Option: `"+i.digits+"`.");r=i.digits}if(B(i,"decision")){if(!I(i.decision))throw new TypeError("invalid option. `decision` option must be boolean. Option: `"+i.decision+"`.");e=i.decision}}return n="",n+=t.method,n+="\n\n",n+="Alternative hypothesis: ","max"===a.alternative?n+="The maximum value ("+l[1]+") is an outlier":"min"===a.alternative?n+="The minimum value ("+l[0]+") is an outlier":(n+="The ",m[0]-l[0]>l[1]-m[0]?n+="minimum value ("+l[0]+")":n+="maximum value ("+l[1]+")",n+=" is an outlier"),n+="\n\n",n+=" criticalValue: "+U(p,-r)+"\n",n+=" statistic: "+U(c,-r)+"\n",n+=" df: "+u+"\n",n+="\n",e&&(n+="Test Decision: ",n+=c>p?"Reject null in favor of alternative at "+100*a.alpha+"% significance level":"Fail to reject null in favor of alternative at "+100*a.alpha+"% significance level",n+="\n"),n}}var ei=ii;export default ei; //# sourceMappingURL=mgrubbs.js.map