New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

glm

Package Overview
Dependencies
Maintainers
1
Versions
2
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

glm - npm Package Compare versions

Comparing version 0.0.1 to 1.0.0

2

glm.js

@@ -536,3 +536,3 @@ (function(exports){

}
exports.GLM.version = "0.0.1";
exports.GLM.version = "1.0.0";
exports.GLM.testing = exports.GLM.testing || {};

@@ -539,0 +539,0 @@

@@ -1,1 +0,1 @@

(function(e){e.GLM=function(t,n){function i(t){return e.GLM.utils.isArray(t[0])||(t=e.GLM.utils.transpose(e.GLM.utils.atleast_2d(t))),e.GLM.utils.add_constant(t)}t||(t=e.GLM.families.Gaussian()),n||(n="none");var r={};return r.family=t,r.weights=null,r.fit=function(t,n){return n=i(n),r.weights=e.GLM.optimization.IRLS(t,n,r.family),this},r.predict=function(t){t=i(t);var n=e.GLM.utils.dot(t,r.weights);return r.family.fitted(n)},r};var t=function(e,t){var n=Math.abs(e),r=Math.abs(t),i;return n>r?(i=r/n,n*Math.sqrt(1+i*i)):r>0?(i=n/r,r*Math.sqrt(1+i*i)):0};e.GLM.thinsvd=function(e){var n,r,i,s,o,u,a,f,l=e.length<e[0].length,c=[];if(l)for(n=0;n<e[0].length;n++){c[n]=[];for(r=0;r<e.length;r++)c[n][r]=e[r][n]}else for(n=0;n<e.length;n++){c[n]=[];for(r=0;r<e[0].length;r++)c[n][r]=e[n][r]}e=c;var h=e.length,p=e[0].length,d=Math.min(h,p),v=[],m=[];for(n=0;n<h;n++){m[n]=[];for(r=0;r<p;r++)m[n][r]=0}var g=[];for(n=0;n<p;n++)g[n]=[];var y=[],b=[],w=!0,E=!0,S=Math.min(h-1,p),x=Math.max(0,Math.min(p-2,h));for(i=0;i<Math.max(S,x);i++){if(i<S){v[i]=0;for(n=i;n<h;n++)v[i]=t(v[i],e[n][i]);if(v[i]!==0){e[i][i]<0&&(v[i]=-v[i]);for(n=i;n<h;n++)e[n][i]/=v[i];e[i][i]+=1}v[i]=-v[i]}for(r=i+1;r<p;r++){if(i<S&&v[i]!==0){s=0;for(n=i;n<h;n++)s+=e[n][i]*e[n][r];s=-s/e[i][i];for(n=i;n<h;n++)e[n][r]+=s*e[n][i]}y[r]=e[i][r]}if(w&&i<S)for(n=i;n<h;n++)m[n][i]=e[n][i];if(i<x){y[i]=0;for(n=i+1;n<p;n++)y[i]=t(y[i],y[n]);if(y[i]!==0){y[i+1]<0&&(y[i]=-y[i]);for(n=i+1;n<p;n++)y[n]/=y[i];y[i+1]+=1}y[i]=-y[i];if(i+1<h&&y[i]!==0){for(n=i+1;n<h;n++)b[n]=0;for(r=i+1;r<p;r++)for(n=i+1;n<h;n++)b[n]+=y[r]*e[n][r];for(r=i+1;r<p;r++){s=-y[r]/y[i+1];for(n=i+1;n<h;n++)e[n][r]+=s*b[n]}}if(E)for(n=i+1;n<p;n++)g[n][i]=y[n]}}var T=Math.min(p,h+1);S<p&&(v[S]=e[S][S]),h<T&&(v[T-1]=0),x+1<T&&(y[x]=e[x][T-1]),y[T-1]=0;if(w){for(r=S;r<d;r++){for(n=0;n<h;n++)m[n][r]=0;m[r][r]=1}for(i=S-1;i>=0;i--)if(v[i]!==0){for(r=i+1;r<d;r++){s=0;for(n=i;n<h;n++)s+=m[n][i]*m[n][r];s=-s/m[i][i];for(n=i;n<h;n++)m[n][r]+=s*m[n][i]}for(n=i;n<h;n++)m[n][i]=-m[n][i];m[i][i]=1+m[i][i];for(n=0;n<i-1;n++)m[n][i]=0}else{for(n=0;n<h;n++)m[n][i]=0;m[i][i]=1}}if(E)for(i=p-1;i>=0;i--){if(i<x&&y[i]!==0)for(r=i+1;r<d;r++){s=0;for(n=i+1;n<p;n++)s+=g[n][i]*g[n][r];s=-s/g[i+1][i];for(n=i+1;n<p;n++)g[n][r]+=s*g[n][i]}for(n=0;n<p;n++)g[n][i]=0;g[i][i]=1}var N=T-1,C=0,k=0,L=2.2205e-16,A=1.6034e-291;while(T>0){var O;for(i=T-2;i>=-1;i--){if(i==-1)break;if(Math.abs(y[i])<=A+L*(Math.abs(v[i])+Math.abs(v[i+1]))){y[i]=0;break}}if(i==T-2)O=4;else{var M;for(M=T-1;M>=i;M--){if(M==i)break;s=(M!=T?Math.abs(y[M]):0)+(M!=i+1?Math.abs(y[M-1]):0);if(Math.abs(v[M])<=A+L*s){v[M]=0;break}}M==i?O=3:M==T-1?O=1:(O=2,i=M)}i++;if(O==1){o=y[T-2],y[T-2]=0;for(r=T-2;r>=i;r--){s=t(v[r],o),a=v[r]/s,f=o/s,v[r]=s,r!=i&&(o=-f*y[r-1],y[r-1]=a*y[r-1]);if(E)for(n=0;n<p;n++)s=a*g[n][r]+f*g[n][T-1],g[n][T-1]=-f*g[n][r]+a*g[n][T-1],g[n][r]=s}}else if(O==2){o=y[i-1],y[i-1]=0;for(r=i;r<T;r++){s=t(v[r],o),a=v[r]/s,f=o/s,v[r]=s,o=-f*y[r],y[r]=a*y[r];if(w)for(n=0;n<h;n++)s=a*m[n][r]+f*m[n][i-1],m[n][i-1]=-f*m[n][r]+a*m[n][i-1],m[n][r]=s}}else if(O==3){var _=Math.max(Math.max(Math.max(Math.max(Math.abs(v[T-1]),Math.abs(v[T-2])),Math.abs(y[T-2])),Math.abs(v[i])),Math.abs(y[i])),D=v[T-1]/_,P=v[T-2]/_,H=y[T-2]/_,B=v[i]/_,j=y[i]/_,F=((P+D)*(P-D)+H*H)/2,I=D*H*D*H,q=0;if(F!==0||I!==0)q=Math.sqrt(F*F+I),F<0&&(q=-q),q=I/(F+q);o=(B+D)*(B-D)+q,u=B*j;for(r=i;r<T-1;r++){s=t(o,u),a=o/s,f=u/s,r!=i&&(y[r-1]=s),o=a*v[r]+f*y[r],y[r]=a*y[r]-f*v[r],u=f*v[r+1],v[r+1]=a*v[r+1];if(E)for(n=0;n<p;n++)s=a*g[n][r]+f*g[n][r+1],g[n][r+1]=-f*g[n][r]+a*g[n][r+1],g[n][r]=s;s=t(o,u),a=o/s,f=u/s,v[r]=s,o=a*y[r]+f*v[r+1],v[r+1]=-f*y[r]+a*v[r+1],u=f*y[r+1],y[r+1]=a*y[r+1];if(w&&r<h-1)for(n=0;n<h;n++)s=a*m[n][r]+f*m[n][r+1],m[n][r+1]=-f*m[n][r]+a*m[n][r+1],m[n][r]=s}y[T-2]=o,C+=1}else if(O==4){if(v[i]<=0){v[i]=v[i]<0?-v[i]:0;if(E)for(n=0;n<=N;n++)g[n][i]=-g[n][i]}while(i<N){if(v[i]>=v[i+1])break;s=v[i],v[i]=v[i+1],v[i+1]=s;if(E&&i<p-1)for(n=0;n<p;n++)s=g[n][i+1],g[n][i+1]=g[n][i],g[n][i]=s;if(w&&i<h-1)for(n=0;n<h;n++)s=m[n][i+1],m[n][i+1]=m[n][i],m[n][i]=s;i++}k+=C,C=0,T--}}return l?[g,v,m,k]:[m,v,g,k]},e.GLM.version="0.0.1",e.GLM.testing=e.GLM.testing||{},e.GLM.testing.arrayEqual=function(e,t){if(e.length!=t.length)return!1;for(var n=0;n<e.length;n++)if(e[n]!=t[n])return!1;return!0},e.GLM.testing.fuzzyArrayEqual=function(t,n,r){r||(r=1e-4);if(!e.GLM.testing.arrayEqual(e.GLM.utils.shape(t),e.GLM.utils.shape(n)))return!1;if(e.GLM.utils.isArray(t[0])){for(var i=0;i<t.length;i++)if(!e.GLM.testing.fuzzyArrayEqual(t[i],n[i],r))return!1}else for(var i=0;i<t.length;i++)if(Math.abs(t[i]-n[i])>r)return!1;return!0},e.GLM.utils=e.GLM.utils||{},e.GLM.utils.mean=function(e){var t=0;for(var n=0;n<e.length;n++)t+=e[n];return t/e.length},e.GLM.utils.checkConvergence=function(e,t,n,r){var i=1e-8;return t!=null&&Math.abs(e-t)<i||n>r},e.GLM.utils.softThreshold=function(e,t){var n=Math.abs(e);return t<n?e>0?e-t:e+t:0},e.GLM.utils.makeArray=function(t,n){var r=[];for(var i=0;i<t;i++)r.push(e.GLM.utils.clone(n));return r},e.GLM.utils.zeros=function(t){var n;if(e.GLM.utils.isArray(t)){n=e.GLM.utils.makeArray(t[0],0);for(var r=1;r<t.length;r++)n=e.GLM.utils.makeArray(t[r],n)}else n=e.GLM.utils.makeArray(t,0);return n},e.GLM.utils.map=function(e,t){var n=[];for(var r=0;r<e.length;r++)n.push(t(e[r],r));return n},e.GLM.utils.isArray=function(e){return e.constructor==Array},e.GLM.utils.atleast_2d=function(t){return e.GLM.utils.isArray(t[0])?t:[t]},e.GLM.utils.add_constant=function(t){return e.GLM.utils.map(t,function(e){e.push(1)}),t},e.GLM.utils.dot=function(t,n){var r,i=e.GLM.utils.isArray(t[0]),s=e.GLM.utils.isArray(n[0]),o=t.length,u=n[0].length;if(i&s){r=e.GLM.utils.zeros([u,o]);for(var a=0;a<o;a++)for(var f=0;f<u;f++)for(var l=0;l<n.length;l++)r[a][f]+=t[a][l]*n[l][f];return r}if(i)return e.GLM.utils.transpose(e.GLM.utils.dot(t,e.GLM.utils.transpose([n])))[0];if(s)return e.GLM.utils.dot([t],n);r=0;for(var a=0;a<t.length;a++)r+=t[a]*n[a];return r},e.GLM.utils.shape=function(t){return e.GLM.utils.isArray(t[0])?[t.length,t[0].length]:[t.length]},e.GLM.utils.transpose=function(t){var n=[];t=e.GLM.utils.atleast_2d(t);for(var r=0;r<t[0].length;r++)n[r]=e.GLM.utils.zeros(t.length);for(var r=0;r<t.length;r++)for(var i=0;i<t[0].length;i++)n[i][r]=t[r][i];return n},e.GLM.utils.identity=function(t){var n=e.GLM.utils.makeArray(t,e.GLM.utils.makeArray(t,0));for(var r=0;r<t;r++)n[r][r]=1;return n},e.GLM.utils.clone=function(e){if(null==e||"object"!=typeof e)return e;var t=e.constructor();for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);return t},e.GLM.utils.mul=function(t,n){return e.GLM.utils.map(t,function(e,t){return e*n[t]})},e.GLM.utils.inverse=function(t){var n=t.length,r=e.GLM.utils.zeros([n,n]);for(var i=0;i<n;i++)for(var s=0;s<n;s++)r[i][s]=0;for(var i=0;i<n;i++)r[i][i]=1;for(var o=0;o<n;o++){for(var i=o;i<n;i++){var u=t[i][o];for(var s=o;s<n;s++)t[i][s]/=u;for(var s=0;s<n;s++)r[i][s]/=u}for(var i=o+1;i<n;i++){for(var s=o;s<n;s++)t[i][s]-=t[o][s];for(var s=0;s<n;s++)r[i][s]-=r[o][s]}}for(var i=n-2;i>=0;i--)for(var s=n-1;s>i;s--){for(var o=0;o<n;o++)r[i][o]-=t[i][s]*r[s][o];for(var o=0;o<n;o++)t[i][o]-=t[i][s]*t[s][o]}return r},e.GLM.utils.linspace=function(e,t,n){var r=[],i=(t+0-e)/n;for(var s=0;s<n;s++)r.push(e+s*i);return r},e.GLM.families=e.GLM.families||{},e.GLM.families.Binomial=function(t){return t||(t=e.GLM.links.Logit()),model={},model.initialMu=function(e){var t=[];for(var n=0;n<e.length;n++)t.push((e[n]+.5)/2);return t},model.deviance=function(e,t){var n=0;for(var r=0;r<t.length;r++){var i=e[r]==1?1:0;n+=i*Math.log(t[r]+1e-200)+(1-i)*Math.log(1-t[r]+1e-200)}return 2*n},model.link=t,model.predict=function(e){return model.link(e)},model.weights=function(t){function n(e){return e<1e-10?1e-10:e>1-1e-10?1-1e-10:e}var r=e.GLM.utils.map(t,function(e){return n(e)*(1-n(e))});return e.GLM.utils.map(model.link.derivative(t),function(e,t){return 1/(Math.pow(e,2)*r[t])})},model.fitted=function(e){return model.link.inverse(e)},model},e.GLM.families.Gaussian=function(t){t||(t=e.GLM.links.Identity());var n={};return n.deviance=function(e,t){var n=0;for(var r=0;r<e.length;r++)n+=Math.pow(e[r]-t[r],2);return n},n.initialMu=function(t){var n=e.GLM.utils.mean(t),r=[];for(var i=0;i<t.length;i++)r.push((t[i]+n)/2);return r},n.link=t,n.predict=function(e){return n.link(e)},n.weights=function(t){var r=e.GLM.utils.makeArray(t.length,1);return e.GLM.utils.map(n.link.derivative(t),function(e,t){return 1/(Math.pow(e,2)/r[t])})},n.fitted=function(e){return n.link.inverse(e)},n},e.GLM.links=e.GLM.links||{};var n=function(t,n,r){var i=function(n){return e.GLM.utils.map(n,t)};return i.inverse=function(t){return e.GLM.utils.map(t,n)},i.derivative=function(t){return e.GLM.utils.map(t,r)},i};e.GLM.links.Logit=function(){var t=function(t){return e.GLM.utils.map(t,function(e){return Math.log(e/(1-e))})};return t.inverse=function(t){return e.GLM.utils.map(t,function(e){var t=Math.exp(e);return t/(1+t)})},t.derivative=function(t){return e.GLM.utils.map(t,function(e){return 1/(e*(1-e))})},t},e.GLM.links.Power=function(t){var n=function(n){return e.GLM.utils.map(n,function(e){return Math.pow(e,t)})};return n.inverse=function(n){return e.GLM.utils.map(n,function(e){return Math.pow(e,1/t)})},n.derivative=function(n){return e.GLM.utils.map(n,function(e){return t*Math.pow(e,t-1)})},n},e.GLM.links.Identity=function(){return e.GLM.links.Power(1)},e.GLM.links.Log=function(){var t=function(t){return e.GLM.utils.map(t,Math.log)};return t.inverse=function(t){return e.GLM.utils.map(t,Math.exp)},t.derivative=function(t){return e.GLM.utils.map(t,function(e){return 1/e})},t},e.GLM.links.NegativeBinomial=function(t){var n=function(n){return e.GLM.utils.map(n,function(e){return Math.log(e/(e+1/t))})};return n.inverse=function(n){return e.GLM.utils.map(n,function(e){return Math.exp(e)/(t*(1-Math.exp(e)))})},n.derivative=function(n){return e.GLM.utils.map(n,function(e){return 1/(e+t*Math.pow(e,2))})},n},e.GLM.optimization=e.optimization||{},e.GLM.optimization.IRLS=function(t,n,r){var i=!1,s=0,o=5,u=r.initialMu(t),a=r.predict(u),f=r.deviance(t,u),l=null,c=e.GLM.utils.makeArray(t.length,1);while(!i){var h=e.GLM.utils.mul(c,r.weights(u));oldDeviance=f;var p=0,d=r.link.derivative(u),v=e.GLM.utils.map(a,function(e,n){return e+d[n]*(t[n]-u[n])});l=e.GLM.optimization.linearSolve(v,n,h),a=e.GLM.utils.dot(n,l),u=r.fitted(a),f=r.deviance(t,u),i=e.GLM.utils.checkConvergence(f,oldDeviance,s,o),s+=1}return l},e.GLM.optimization.linearSolve=function(t,n,r){function i(t,n){return e.GLM.utils.isArray(t[0])?e.GLM.utils.map(n,function(n,r){return e.GLM.utils.map(t[r],function(e){return Math.sqrt(n)*e})}):e.GLM.utils.map(n,function(e,n){return Math.sqrt(e)*t[n]})}function s(t){var n=e.GLM.utils.identity(t.length);for(var r=0;r<t.length;r++)n[r][r]/=t[r];return n}t=i(t,r),n=i(n,r);var o=e.GLM.thinsvd(e.GLM.utils.dot(e.GLM.utils.transpose(n),n)),u=o[0],a=s(o[1]),f=o[2],l=e.GLM.utils.dot(u,e.GLM.utils.dot(a,e.GLM.utils.inverse(f))),c=e.GLM.utils.dot(e.GLM.utils.dot(l,e.GLM.utils.transpose(n)),t);return c}})(this);
(function(e){e.GLM=function(t,n){function i(t){return e.GLM.utils.isArray(t[0])||(t=e.GLM.utils.transpose(e.GLM.utils.atleast_2d(t))),e.GLM.utils.add_constant(t)}t||(t=e.GLM.families.Gaussian()),n||(n="none");var r={};return r.family=t,r.weights=null,r.fit=function(t,n){return n=i(n),r.weights=e.GLM.optimization.IRLS(t,n,r.family),this},r.predict=function(t){t=i(t);var n=e.GLM.utils.dot(t,r.weights);return r.family.fitted(n)},r};var t=function(e,t){var n=Math.abs(e),r=Math.abs(t),i;return n>r?(i=r/n,n*Math.sqrt(1+i*i)):r>0?(i=n/r,r*Math.sqrt(1+i*i)):0};e.GLM.thinsvd=function(e){var n,r,i,s,o,u,a,f,l=e.length<e[0].length,c=[];if(l)for(n=0;n<e[0].length;n++){c[n]=[];for(r=0;r<e.length;r++)c[n][r]=e[r][n]}else for(n=0;n<e.length;n++){c[n]=[];for(r=0;r<e[0].length;r++)c[n][r]=e[n][r]}e=c;var h=e.length,p=e[0].length,d=Math.min(h,p),v=[],m=[];for(n=0;n<h;n++){m[n]=[];for(r=0;r<p;r++)m[n][r]=0}var g=[];for(n=0;n<p;n++)g[n]=[];var y=[],b=[],w=!0,E=!0,S=Math.min(h-1,p),x=Math.max(0,Math.min(p-2,h));for(i=0;i<Math.max(S,x);i++){if(i<S){v[i]=0;for(n=i;n<h;n++)v[i]=t(v[i],e[n][i]);if(v[i]!==0){e[i][i]<0&&(v[i]=-v[i]);for(n=i;n<h;n++)e[n][i]/=v[i];e[i][i]+=1}v[i]=-v[i]}for(r=i+1;r<p;r++){if(i<S&&v[i]!==0){s=0;for(n=i;n<h;n++)s+=e[n][i]*e[n][r];s=-s/e[i][i];for(n=i;n<h;n++)e[n][r]+=s*e[n][i]}y[r]=e[i][r]}if(w&&i<S)for(n=i;n<h;n++)m[n][i]=e[n][i];if(i<x){y[i]=0;for(n=i+1;n<p;n++)y[i]=t(y[i],y[n]);if(y[i]!==0){y[i+1]<0&&(y[i]=-y[i]);for(n=i+1;n<p;n++)y[n]/=y[i];y[i+1]+=1}y[i]=-y[i];if(i+1<h&&y[i]!==0){for(n=i+1;n<h;n++)b[n]=0;for(r=i+1;r<p;r++)for(n=i+1;n<h;n++)b[n]+=y[r]*e[n][r];for(r=i+1;r<p;r++){s=-y[r]/y[i+1];for(n=i+1;n<h;n++)e[n][r]+=s*b[n]}}if(E)for(n=i+1;n<p;n++)g[n][i]=y[n]}}var T=Math.min(p,h+1);S<p&&(v[S]=e[S][S]),h<T&&(v[T-1]=0),x+1<T&&(y[x]=e[x][T-1]),y[T-1]=0;if(w){for(r=S;r<d;r++){for(n=0;n<h;n++)m[n][r]=0;m[r][r]=1}for(i=S-1;i>=0;i--)if(v[i]!==0){for(r=i+1;r<d;r++){s=0;for(n=i;n<h;n++)s+=m[n][i]*m[n][r];s=-s/m[i][i];for(n=i;n<h;n++)m[n][r]+=s*m[n][i]}for(n=i;n<h;n++)m[n][i]=-m[n][i];m[i][i]=1+m[i][i];for(n=0;n<i-1;n++)m[n][i]=0}else{for(n=0;n<h;n++)m[n][i]=0;m[i][i]=1}}if(E)for(i=p-1;i>=0;i--){if(i<x&&y[i]!==0)for(r=i+1;r<d;r++){s=0;for(n=i+1;n<p;n++)s+=g[n][i]*g[n][r];s=-s/g[i+1][i];for(n=i+1;n<p;n++)g[n][r]+=s*g[n][i]}for(n=0;n<p;n++)g[n][i]=0;g[i][i]=1}var N=T-1,C=0,k=0,L=2.2205e-16,A=1.6034e-291;while(T>0){var O;for(i=T-2;i>=-1;i--){if(i==-1)break;if(Math.abs(y[i])<=A+L*(Math.abs(v[i])+Math.abs(v[i+1]))){y[i]=0;break}}if(i==T-2)O=4;else{var M;for(M=T-1;M>=i;M--){if(M==i)break;s=(M!=T?Math.abs(y[M]):0)+(M!=i+1?Math.abs(y[M-1]):0);if(Math.abs(v[M])<=A+L*s){v[M]=0;break}}M==i?O=3:M==T-1?O=1:(O=2,i=M)}i++;if(O==1){o=y[T-2],y[T-2]=0;for(r=T-2;r>=i;r--){s=t(v[r],o),a=v[r]/s,f=o/s,v[r]=s,r!=i&&(o=-f*y[r-1],y[r-1]=a*y[r-1]);if(E)for(n=0;n<p;n++)s=a*g[n][r]+f*g[n][T-1],g[n][T-1]=-f*g[n][r]+a*g[n][T-1],g[n][r]=s}}else if(O==2){o=y[i-1],y[i-1]=0;for(r=i;r<T;r++){s=t(v[r],o),a=v[r]/s,f=o/s,v[r]=s,o=-f*y[r],y[r]=a*y[r];if(w)for(n=0;n<h;n++)s=a*m[n][r]+f*m[n][i-1],m[n][i-1]=-f*m[n][r]+a*m[n][i-1],m[n][r]=s}}else if(O==3){var _=Math.max(Math.max(Math.max(Math.max(Math.abs(v[T-1]),Math.abs(v[T-2])),Math.abs(y[T-2])),Math.abs(v[i])),Math.abs(y[i])),D=v[T-1]/_,P=v[T-2]/_,H=y[T-2]/_,B=v[i]/_,j=y[i]/_,F=((P+D)*(P-D)+H*H)/2,I=D*H*D*H,q=0;if(F!==0||I!==0)q=Math.sqrt(F*F+I),F<0&&(q=-q),q=I/(F+q);o=(B+D)*(B-D)+q,u=B*j;for(r=i;r<T-1;r++){s=t(o,u),a=o/s,f=u/s,r!=i&&(y[r-1]=s),o=a*v[r]+f*y[r],y[r]=a*y[r]-f*v[r],u=f*v[r+1],v[r+1]=a*v[r+1];if(E)for(n=0;n<p;n++)s=a*g[n][r]+f*g[n][r+1],g[n][r+1]=-f*g[n][r]+a*g[n][r+1],g[n][r]=s;s=t(o,u),a=o/s,f=u/s,v[r]=s,o=a*y[r]+f*v[r+1],v[r+1]=-f*y[r]+a*v[r+1],u=f*y[r+1],y[r+1]=a*y[r+1];if(w&&r<h-1)for(n=0;n<h;n++)s=a*m[n][r]+f*m[n][r+1],m[n][r+1]=-f*m[n][r]+a*m[n][r+1],m[n][r]=s}y[T-2]=o,C+=1}else if(O==4){if(v[i]<=0){v[i]=v[i]<0?-v[i]:0;if(E)for(n=0;n<=N;n++)g[n][i]=-g[n][i]}while(i<N){if(v[i]>=v[i+1])break;s=v[i],v[i]=v[i+1],v[i+1]=s;if(E&&i<p-1)for(n=0;n<p;n++)s=g[n][i+1],g[n][i+1]=g[n][i],g[n][i]=s;if(w&&i<h-1)for(n=0;n<h;n++)s=m[n][i+1],m[n][i+1]=m[n][i],m[n][i]=s;i++}k+=C,C=0,T--}}return l?[g,v,m,k]:[m,v,g,k]},e.GLM.version="1.0.0",e.GLM.testing=e.GLM.testing||{},e.GLM.testing.arrayEqual=function(e,t){if(e.length!=t.length)return!1;for(var n=0;n<e.length;n++)if(e[n]!=t[n])return!1;return!0},e.GLM.testing.fuzzyArrayEqual=function(t,n,r){r||(r=1e-4);if(!e.GLM.testing.arrayEqual(e.GLM.utils.shape(t),e.GLM.utils.shape(n)))return!1;if(e.GLM.utils.isArray(t[0])){for(var i=0;i<t.length;i++)if(!e.GLM.testing.fuzzyArrayEqual(t[i],n[i],r))return!1}else for(var i=0;i<t.length;i++)if(Math.abs(t[i]-n[i])>r)return!1;return!0},e.GLM.utils=e.GLM.utils||{},e.GLM.utils.mean=function(e){var t=0;for(var n=0;n<e.length;n++)t+=e[n];return t/e.length},e.GLM.utils.checkConvergence=function(e,t,n,r){var i=1e-8;return t!=null&&Math.abs(e-t)<i||n>r},e.GLM.utils.softThreshold=function(e,t){var n=Math.abs(e);return t<n?e>0?e-t:e+t:0},e.GLM.utils.makeArray=function(t,n){var r=[];for(var i=0;i<t;i++)r.push(e.GLM.utils.clone(n));return r},e.GLM.utils.zeros=function(t){var n;if(e.GLM.utils.isArray(t)){n=e.GLM.utils.makeArray(t[0],0);for(var r=1;r<t.length;r++)n=e.GLM.utils.makeArray(t[r],n)}else n=e.GLM.utils.makeArray(t,0);return n},e.GLM.utils.map=function(e,t){var n=[];for(var r=0;r<e.length;r++)n.push(t(e[r],r));return n},e.GLM.utils.isArray=function(e){return e.constructor==Array},e.GLM.utils.atleast_2d=function(t){return e.GLM.utils.isArray(t[0])?t:[t]},e.GLM.utils.add_constant=function(t){return e.GLM.utils.map(t,function(e){e.push(1)}),t},e.GLM.utils.dot=function(t,n){var r,i=e.GLM.utils.isArray(t[0]),s=e.GLM.utils.isArray(n[0]),o=t.length,u=n[0].length;if(i&s){r=e.GLM.utils.zeros([u,o]);for(var a=0;a<o;a++)for(var f=0;f<u;f++)for(var l=0;l<n.length;l++)r[a][f]+=t[a][l]*n[l][f];return r}if(i)return e.GLM.utils.transpose(e.GLM.utils.dot(t,e.GLM.utils.transpose([n])))[0];if(s)return e.GLM.utils.dot([t],n);r=0;for(var a=0;a<t.length;a++)r+=t[a]*n[a];return r},e.GLM.utils.shape=function(t){return e.GLM.utils.isArray(t[0])?[t.length,t[0].length]:[t.length]},e.GLM.utils.transpose=function(t){var n=[];t=e.GLM.utils.atleast_2d(t);for(var r=0;r<t[0].length;r++)n[r]=e.GLM.utils.zeros(t.length);for(var r=0;r<t.length;r++)for(var i=0;i<t[0].length;i++)n[i][r]=t[r][i];return n},e.GLM.utils.identity=function(t){var n=e.GLM.utils.makeArray(t,e.GLM.utils.makeArray(t,0));for(var r=0;r<t;r++)n[r][r]=1;return n},e.GLM.utils.clone=function(e){if(null==e||"object"!=typeof e)return e;var t=e.constructor();for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);return t},e.GLM.utils.mul=function(t,n){return e.GLM.utils.map(t,function(e,t){return e*n[t]})},e.GLM.utils.inverse=function(t){var n=t.length,r=e.GLM.utils.zeros([n,n]);for(var i=0;i<n;i++)for(var s=0;s<n;s++)r[i][s]=0;for(var i=0;i<n;i++)r[i][i]=1;for(var o=0;o<n;o++){for(var i=o;i<n;i++){var u=t[i][o];for(var s=o;s<n;s++)t[i][s]/=u;for(var s=0;s<n;s++)r[i][s]/=u}for(var i=o+1;i<n;i++){for(var s=o;s<n;s++)t[i][s]-=t[o][s];for(var s=0;s<n;s++)r[i][s]-=r[o][s]}}for(var i=n-2;i>=0;i--)for(var s=n-1;s>i;s--){for(var o=0;o<n;o++)r[i][o]-=t[i][s]*r[s][o];for(var o=0;o<n;o++)t[i][o]-=t[i][s]*t[s][o]}return r},e.GLM.utils.linspace=function(e,t,n){var r=[],i=(t+0-e)/n;for(var s=0;s<n;s++)r.push(e+s*i);return r},e.GLM.families=e.GLM.families||{},e.GLM.families.Binomial=function(t){return t||(t=e.GLM.links.Logit()),model={},model.initialMu=function(e){var t=[];for(var n=0;n<e.length;n++)t.push((e[n]+.5)/2);return t},model.deviance=function(e,t){var n=0;for(var r=0;r<t.length;r++){var i=e[r]==1?1:0;n+=i*Math.log(t[r]+1e-200)+(1-i)*Math.log(1-t[r]+1e-200)}return 2*n},model.link=t,model.predict=function(e){return model.link(e)},model.weights=function(t){function n(e){return e<1e-10?1e-10:e>1-1e-10?1-1e-10:e}var r=e.GLM.utils.map(t,function(e){return n(e)*(1-n(e))});return e.GLM.utils.map(model.link.derivative(t),function(e,t){return 1/(Math.pow(e,2)*r[t])})},model.fitted=function(e){return model.link.inverse(e)},model},e.GLM.families.Gaussian=function(t){t||(t=e.GLM.links.Identity());var n={};return n.deviance=function(e,t){var n=0;for(var r=0;r<e.length;r++)n+=Math.pow(e[r]-t[r],2);return n},n.initialMu=function(t){var n=e.GLM.utils.mean(t),r=[];for(var i=0;i<t.length;i++)r.push((t[i]+n)/2);return r},n.link=t,n.predict=function(e){return n.link(e)},n.weights=function(t){var r=e.GLM.utils.makeArray(t.length,1);return e.GLM.utils.map(n.link.derivative(t),function(e,t){return 1/(Math.pow(e,2)/r[t])})},n.fitted=function(e){return n.link.inverse(e)},n},e.GLM.links=e.GLM.links||{};var n=function(t,n,r){var i=function(n){return e.GLM.utils.map(n,t)};return i.inverse=function(t){return e.GLM.utils.map(t,n)},i.derivative=function(t){return e.GLM.utils.map(t,r)},i};e.GLM.links.Logit=function(){var t=function(t){return e.GLM.utils.map(t,function(e){return Math.log(e/(1-e))})};return t.inverse=function(t){return e.GLM.utils.map(t,function(e){var t=Math.exp(e);return t/(1+t)})},t.derivative=function(t){return e.GLM.utils.map(t,function(e){return 1/(e*(1-e))})},t},e.GLM.links.Power=function(t){var n=function(n){return e.GLM.utils.map(n,function(e){return Math.pow(e,t)})};return n.inverse=function(n){return e.GLM.utils.map(n,function(e){return Math.pow(e,1/t)})},n.derivative=function(n){return e.GLM.utils.map(n,function(e){return t*Math.pow(e,t-1)})},n},e.GLM.links.Identity=function(){return e.GLM.links.Power(1)},e.GLM.links.Log=function(){var t=function(t){return e.GLM.utils.map(t,Math.log)};return t.inverse=function(t){return e.GLM.utils.map(t,Math.exp)},t.derivative=function(t){return e.GLM.utils.map(t,function(e){return 1/e})},t},e.GLM.links.NegativeBinomial=function(t){var n=function(n){return e.GLM.utils.map(n,function(e){return Math.log(e/(e+1/t))})};return n.inverse=function(n){return e.GLM.utils.map(n,function(e){return Math.exp(e)/(t*(1-Math.exp(e)))})},n.derivative=function(n){return e.GLM.utils.map(n,function(e){return 1/(e+t*Math.pow(e,2))})},n},e.GLM.optimization=e.optimization||{},e.GLM.optimization.IRLS=function(t,n,r){var i=!1,s=0,o=5,u=r.initialMu(t),a=r.predict(u),f=r.deviance(t,u),l=null,c=e.GLM.utils.makeArray(t.length,1);while(!i){var h=e.GLM.utils.mul(c,r.weights(u));oldDeviance=f;var p=0,d=r.link.derivative(u),v=e.GLM.utils.map(a,function(e,n){return e+d[n]*(t[n]-u[n])});l=e.GLM.optimization.linearSolve(v,n,h),a=e.GLM.utils.dot(n,l),u=r.fitted(a),f=r.deviance(t,u),i=e.GLM.utils.checkConvergence(f,oldDeviance,s,o),s+=1}return l},e.GLM.optimization.linearSolve=function(t,n,r){function i(t,n){return e.GLM.utils.isArray(t[0])?e.GLM.utils.map(n,function(n,r){return e.GLM.utils.map(t[r],function(e){return Math.sqrt(n)*e})}):e.GLM.utils.map(n,function(e,n){return Math.sqrt(e)*t[n]})}function s(t){var n=e.GLM.utils.identity(t.length);for(var r=0;r<t.length;r++)n[r][r]/=t[r];return n}t=i(t,r),n=i(n,r);var o=e.GLM.thinsvd(e.GLM.utils.dot(e.GLM.utils.transpose(n),n)),u=o[0],a=s(o[1]),f=o[2],l=e.GLM.utils.dot(u,e.GLM.utils.dot(a,e.GLM.utils.inverse(f))),c=e.GLM.utils.dot(e.GLM.utils.dot(l,e.GLM.utils.transpose(n)),t);return c}})(this);
{
"name": "glm",
"version": "0.0.1",
"version": "1.0.0",
"description": "Generalized Linear Models",

@@ -11,3 +11,3 @@ "keywords": [

],
"homepage": "https://github.com/rallysf/glm.js",
"homepage": "https://github.com/rallysf/glm",
"main": "./glm.js",

@@ -14,0 +14,0 @@ "repository": {

@@ -9,3 +9,3 @@ var util = require("util"),

"keywords": ["glm", "statistics", "model", "machine-learning"],
"homepage": "https://github.com/rallysf/glm.js",
"homepage": "https://github.com/rallysf/glm",
"main": "./glm.js",

@@ -12,0 +12,0 @@ "repository": {

@@ -1,1 +0,1 @@

exports.GLM.version = "0.0.1";
exports.GLM.version = "1.0.0";

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc