@danielsimonjr/mathts-functions 0.40.0 → 0.41.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +6 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +381 -2
- package/dist/ml/glm.d.ts +45 -0
- package/dist/ml/glm.d.ts.map +1 -0
- package/dist/numeric/solveODE.d.ts +23 -1
- package/dist/numeric/solveODE.d.ts.map +1 -1
- package/dist/stats/mvn.d.ts +33 -0
- package/dist/stats/mvn.d.ts.map +1 -0
- package/dist/stats/power-analysis.d.ts +32 -0
- package/dist/stats/power-analysis.d.ts.map +1 -0
- package/dist/typed/dist-objects.d.ts.map +1 -1
- package/package.json +2 -2
package/dist/index.d.ts
CHANGED
|
@@ -104,4 +104,10 @@ export { maxFlow, minCut, astar, hungarian } from './graph/optimization.js';
|
|
|
104
104
|
export type { MaxFlowResult, MinCutResult, AStarResult, HungarianResult, } from './graph/optimization.js';
|
|
105
105
|
export { interval, Interval } from './numeric/interval.js';
|
|
106
106
|
export { graphColoring, maxClique, louvainCommunities, katzCentrality, isIsomorphic, } from './graph/community-coloring.js';
|
|
107
|
+
export { glm } from './ml/glm.js';
|
|
108
|
+
export type { GlmFamily, GlmLink, GlmOptions, GlmResult } from './ml/glm.js';
|
|
109
|
+
export { mvnPdf, mvnSample } from './stats/mvn.js';
|
|
110
|
+
export type { MvnVector, MvnCov, MvnSampleOptions } from './stats/mvn.js';
|
|
111
|
+
export { tTestPower } from './stats/power-analysis.js';
|
|
112
|
+
export type { TTestPowerAlternative, TTestPowerOptions } from './stats/power-analysis.js';
|
|
107
113
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -11817,6 +11817,25 @@ function _fdJacobian(f, t, y, f0) {
|
|
|
11817
11817
|
}
|
|
11818
11818
|
return J;
|
|
11819
11819
|
}
|
|
11820
|
+
function _jacobianAt(f, t, y, f0, options) {
|
|
11821
|
+
const n = y.length;
|
|
11822
|
+
if (options.jac) {
|
|
11823
|
+
const J = options.jac(t, y);
|
|
11824
|
+
const ok = Array.isArray(J) && J.length === n && J.every((row2) => Array.isArray(row2) && row2.length === n);
|
|
11825
|
+
if (!ok) {
|
|
11826
|
+
throw new Error(
|
|
11827
|
+
`The "jac" option must return an ${n}\xD7${n} matrix (n = state dimension); got a mismatched shape`
|
|
11828
|
+
);
|
|
11829
|
+
}
|
|
11830
|
+
return J;
|
|
11831
|
+
}
|
|
11832
|
+
return _fdJacobian(f, t, y, f0);
|
|
11833
|
+
}
|
|
11834
|
+
function _fdTimeDerivative(f, t, y, f0) {
|
|
11835
|
+
const delt = Math.sqrt(Number.EPSILON * Math.max(1e-5, Math.abs(t)));
|
|
11836
|
+
const fp = _fArr(f, t + delt, y);
|
|
11837
|
+
return f0.map((v, i) => (fp[i] - v) / delt);
|
|
11838
|
+
}
|
|
11820
11839
|
function rosenbrockSolve(f, tspan, y0raw, options = {}) {
|
|
11821
11840
|
const t0 = tspan[0];
|
|
11822
11841
|
const tf = tspan[1];
|
|
@@ -11853,7 +11872,7 @@ function rosenbrockSolve(f, tspan, y0raw, options = {}) {
|
|
|
11853
11872
|
while ((dir > 0 ? t < tf : t > tf) && iter < maxIter) {
|
|
11854
11873
|
if (Math.abs(h) > Math.abs(tf - t)) h = tf - t;
|
|
11855
11874
|
const F0 = _fArr(f, t, y);
|
|
11856
|
-
const J =
|
|
11875
|
+
const J = _jacobianAt(f, t, y, F0, options);
|
|
11857
11876
|
const W = identityMinus(J, h * gamma2);
|
|
11858
11877
|
const k1 = _luSolve(W, F0);
|
|
11859
11878
|
const y1 = y.map((yi, i) => yi + 0.5 * h * k1[i]);
|
|
@@ -11894,6 +11913,145 @@ function rosenbrockSolve(f, tspan, y0raw, options = {}) {
|
|
|
11894
11913
|
}
|
|
11895
11914
|
return { t: tOut, y: yOut };
|
|
11896
11915
|
}
|
|
11916
|
+
var RODAS = {
|
|
11917
|
+
gamma: 0.25,
|
|
11918
|
+
alpha2: 0.386,
|
|
11919
|
+
alpha3: 0.21,
|
|
11920
|
+
alpha4: 0.63,
|
|
11921
|
+
d1: 0.25,
|
|
11922
|
+
d2: -0.1043,
|
|
11923
|
+
d3: 0.1035,
|
|
11924
|
+
d4: -0.03620000000000023,
|
|
11925
|
+
a21: 1.544,
|
|
11926
|
+
a31: 0.9466785280815826,
|
|
11927
|
+
a32: 0.2557011698983284,
|
|
11928
|
+
a41: 3.314825187068521,
|
|
11929
|
+
a42: 2.896124015972201,
|
|
11930
|
+
a43: 0.9986419139977817,
|
|
11931
|
+
a51: 1.221224509226641,
|
|
11932
|
+
a52: 6.019134481288629,
|
|
11933
|
+
a53: 12.53708332932087,
|
|
11934
|
+
a54: -0.687886036105895,
|
|
11935
|
+
C21: -5.6688,
|
|
11936
|
+
C31: -2.430093356833875,
|
|
11937
|
+
C32: -0.2063599157091915,
|
|
11938
|
+
C41: -0.1073529058151375,
|
|
11939
|
+
C42: -9.594562251023355,
|
|
11940
|
+
C43: -20.47028614809616,
|
|
11941
|
+
C51: 7.496443313967647,
|
|
11942
|
+
C52: -10.24680431464352,
|
|
11943
|
+
C53: -33.99990352819905,
|
|
11944
|
+
C54: 11.7089089320616,
|
|
11945
|
+
C61: 8.083246795921522,
|
|
11946
|
+
C62: -7.981132988064893,
|
|
11947
|
+
C63: -31.52159432874371,
|
|
11948
|
+
C64: 16.31930543123136,
|
|
11949
|
+
C65: -6.058818238834054
|
|
11950
|
+
};
|
|
11951
|
+
function rodasSolve(f, tspan, y0raw, options = {}) {
|
|
11952
|
+
const t0 = tspan[0];
|
|
11953
|
+
const tf = tspan[1];
|
|
11954
|
+
if (!(typeof t0 === "number" && typeof tf === "number")) {
|
|
11955
|
+
throw new Error('The "RODAS" stiff method requires numeric tspan');
|
|
11956
|
+
}
|
|
11957
|
+
if (!y0raw.every((v) => typeof v === "number")) {
|
|
11958
|
+
throw new Error('The "RODAS" stiff method requires plain-number state (y0)');
|
|
11959
|
+
}
|
|
11960
|
+
const y0 = y0raw;
|
|
11961
|
+
const n = y0.length;
|
|
11962
|
+
const dir = tf >= t0 ? 1 : -1;
|
|
11963
|
+
const g = RODAS.gamma;
|
|
11964
|
+
const rtol = options.tol ? options.tol : 1e-4;
|
|
11965
|
+
const atol = rtol * 1e-3;
|
|
11966
|
+
const maxIter = options.maxIter ? options.maxIter : 1e5;
|
|
11967
|
+
const span = Math.abs(tf - t0);
|
|
11968
|
+
let t = t0;
|
|
11969
|
+
let y = y0.slice();
|
|
11970
|
+
let h;
|
|
11971
|
+
if (options.firstStep) {
|
|
11972
|
+
h = dir * Math.abs(options.firstStep);
|
|
11973
|
+
} else {
|
|
11974
|
+
const f0 = f(t, y);
|
|
11975
|
+
const d0 = _rmsNorm(y);
|
|
11976
|
+
const d1 = _rmsNorm(Array.isArray(f0) ? f0 : [f0]);
|
|
11977
|
+
h = dir * Math.min(d0 < 1e-5 || d1 < 1e-5 ? 1e-6 : 0.01 * (d0 / d1), span);
|
|
11978
|
+
}
|
|
11979
|
+
const tOut = [t];
|
|
11980
|
+
const yOut = [y.slice()];
|
|
11981
|
+
let iter = 0;
|
|
11982
|
+
while ((dir > 0 ? t < tf : t > tf) && iter < maxIter) {
|
|
11983
|
+
if (Math.abs(h) > Math.abs(tf - t)) h = tf - t;
|
|
11984
|
+
const F0 = _fArr(f, t, y);
|
|
11985
|
+
const J = _jacobianAt(f, t, y, F0, options);
|
|
11986
|
+
const fx = _fdTimeDerivative(f, t, y, F0);
|
|
11987
|
+
const E = J.map((row2, i) => row2.map((v, j) => (i === j ? 1 / (g * h) : 0) - v));
|
|
11988
|
+
const k1 = _luSolve(
|
|
11989
|
+
E,
|
|
11990
|
+
F0.map((v, i) => v + h * RODAS.d1 * fx[i])
|
|
11991
|
+
);
|
|
11992
|
+
const g2 = y.map((yi, i) => yi + RODAS.a21 * k1[i]);
|
|
11993
|
+
const f2 = _fArr(f, t + RODAS.alpha2 * h, g2);
|
|
11994
|
+
const k2 = _luSolve(
|
|
11995
|
+
E,
|
|
11996
|
+
f2.map((v, i) => v + RODAS.C21 * k1[i] / h + h * RODAS.d2 * fx[i])
|
|
11997
|
+
);
|
|
11998
|
+
const g3 = y.map((yi, i) => yi + RODAS.a31 * k1[i] + RODAS.a32 * k2[i]);
|
|
11999
|
+
const f3 = _fArr(f, t + RODAS.alpha3 * h, g3);
|
|
12000
|
+
const k3 = _luSolve(
|
|
12001
|
+
E,
|
|
12002
|
+
f3.map((v, i) => v + (RODAS.C31 * k1[i] + RODAS.C32 * k2[i]) / h + h * RODAS.d3 * fx[i])
|
|
12003
|
+
);
|
|
12004
|
+
const g4 = y.map((yi, i) => yi + RODAS.a41 * k1[i] + RODAS.a42 * k2[i] + RODAS.a43 * k3[i]);
|
|
12005
|
+
const f4 = _fArr(f, t + RODAS.alpha4 * h, g4);
|
|
12006
|
+
const k4 = _luSolve(
|
|
12007
|
+
E,
|
|
12008
|
+
f4.map(
|
|
12009
|
+
(v, i) => v + (RODAS.C41 * k1[i] + RODAS.C42 * k2[i] + RODAS.C43 * k3[i]) / h + h * RODAS.d4 * fx[i]
|
|
12010
|
+
)
|
|
12011
|
+
);
|
|
12012
|
+
const g5 = y.map(
|
|
12013
|
+
(yi, i) => yi + RODAS.a51 * k1[i] + RODAS.a52 * k2[i] + RODAS.a53 * k3[i] + RODAS.a54 * k4[i]
|
|
12014
|
+
);
|
|
12015
|
+
const f5 = _fArr(f, t + h, g5);
|
|
12016
|
+
const k5 = _luSolve(
|
|
12017
|
+
E,
|
|
12018
|
+
f5.map(
|
|
12019
|
+
(v, i) => v + (RODAS.C51 * k1[i] + RODAS.C52 * k2[i] + RODAS.C53 * k3[i] + RODAS.C54 * k4[i]) / h
|
|
12020
|
+
)
|
|
12021
|
+
);
|
|
12022
|
+
const g6 = g5.map((v, i) => v + k5[i]);
|
|
12023
|
+
const f6 = _fArr(f, t + h, g6);
|
|
12024
|
+
const k6 = _luSolve(
|
|
12025
|
+
E,
|
|
12026
|
+
f6.map(
|
|
12027
|
+
(v, i) => v + (RODAS.C61 * k1[i] + RODAS.C62 * k2[i] + RODAS.C63 * k3[i] + RODAS.C64 * k4[i] + RODAS.C65 * k5[i]) / h
|
|
12028
|
+
)
|
|
12029
|
+
);
|
|
12030
|
+
const yNew = g6.map((v, i) => v + k6[i]);
|
|
12031
|
+
let errNorm = 0;
|
|
12032
|
+
for (let i = 0; i < n; i++) {
|
|
12033
|
+
const sc = atol + rtol * Math.max(Math.abs(y[i]), Math.abs(yNew[i]));
|
|
12034
|
+
errNorm += (k6[i] / sc) ** 2;
|
|
12035
|
+
}
|
|
12036
|
+
errNorm = Math.sqrt(errNorm / n);
|
|
12037
|
+
if (errNorm <= 1 || Math.abs(h) <= 1e-14 * Math.abs(t)) {
|
|
12038
|
+
t += h;
|
|
12039
|
+
y = yNew;
|
|
12040
|
+
tOut.push(t);
|
|
12041
|
+
yOut.push(y.slice());
|
|
12042
|
+
}
|
|
12043
|
+
h *= Math.min(6, Math.max(0.2, 0.9 * Math.pow(errNorm || 1e-10, -1 / 4)));
|
|
12044
|
+
const maxStepR = options.maxStep;
|
|
12045
|
+
const minStepR = options.minStep;
|
|
12046
|
+
if (maxStepR && Math.abs(h) > maxStepR) h = dir * maxStepR;
|
|
12047
|
+
else if (minStepR && Math.abs(h) < minStepR) h = dir * minStepR;
|
|
12048
|
+
iter++;
|
|
12049
|
+
}
|
|
12050
|
+
if (iter >= maxIter) {
|
|
12051
|
+
throw new Error("Maximum number of iterations reached, try changing options");
|
|
12052
|
+
}
|
|
12053
|
+
return { t: tOut, y: yOut };
|
|
12054
|
+
}
|
|
11897
12055
|
var createSolveODE = /* @__PURE__ */ factory(
|
|
11898
12056
|
name,
|
|
11899
12057
|
dependencies,
|
|
@@ -12199,7 +12357,8 @@ var createSolveODE = /* @__PURE__ */ factory(
|
|
|
12199
12357
|
const methods = {
|
|
12200
12358
|
RK23: _rk23,
|
|
12201
12359
|
RK45: _rk45,
|
|
12202
|
-
ROSENBROCK: rosenbrockSolve
|
|
12360
|
+
ROSENBROCK: rosenbrockSolve,
|
|
12361
|
+
RODAS: rodasSolve
|
|
12203
12362
|
};
|
|
12204
12363
|
if (method.toUpperCase() in methods) {
|
|
12205
12364
|
const methodOptions = { ...opt };
|
|
@@ -51430,6 +51589,222 @@ function isIsomorphic(graphA, graphB) {
|
|
|
51430
51589
|
}
|
|
51431
51590
|
return backtrack(0);
|
|
51432
51591
|
}
|
|
51592
|
+
|
|
51593
|
+
// src/ml/glm.ts
|
|
51594
|
+
function getLink(link) {
|
|
51595
|
+
if (link === "log") {
|
|
51596
|
+
return {
|
|
51597
|
+
linkInv: (eta) => Math.exp(eta),
|
|
51598
|
+
dMuDEta: (mu) => mu,
|
|
51599
|
+
linkFn: (mu) => Math.log(mu)
|
|
51600
|
+
};
|
|
51601
|
+
}
|
|
51602
|
+
return {
|
|
51603
|
+
linkInv: (eta) => 1 / eta,
|
|
51604
|
+
dMuDEta: (mu) => -mu * mu,
|
|
51605
|
+
linkFn: (mu) => 1 / mu
|
|
51606
|
+
};
|
|
51607
|
+
}
|
|
51608
|
+
function getFamily(family) {
|
|
51609
|
+
if (family === "poisson") {
|
|
51610
|
+
return {
|
|
51611
|
+
variance: (mu) => mu,
|
|
51612
|
+
deviance: (y, mu) => {
|
|
51613
|
+
const term = y > 0 ? y * Math.log(y / mu) : 0;
|
|
51614
|
+
return 2 * (term - (y - mu));
|
|
51615
|
+
},
|
|
51616
|
+
defaultLink: "log",
|
|
51617
|
+
validLinks: ["log"],
|
|
51618
|
+
mustart: (y) => y.map((yi) => yi + 0.1),
|
|
51619
|
+
validateY: (y) => {
|
|
51620
|
+
if (y.some((yi) => yi < 0 || !Number.isFinite(yi))) {
|
|
51621
|
+
throw new Error("glm: poisson family requires non-negative, finite y");
|
|
51622
|
+
}
|
|
51623
|
+
}
|
|
51624
|
+
};
|
|
51625
|
+
}
|
|
51626
|
+
return {
|
|
51627
|
+
variance: (mu) => mu * mu,
|
|
51628
|
+
deviance: (y, mu) => 2 * (-Math.log(y / mu) + (y - mu) / mu),
|
|
51629
|
+
defaultLink: "log",
|
|
51630
|
+
validLinks: ["log", "inverse"],
|
|
51631
|
+
mustart: (y) => y.slice(),
|
|
51632
|
+
validateY: (y) => {
|
|
51633
|
+
if (y.some((yi) => yi <= 0 || !Number.isFinite(yi))) {
|
|
51634
|
+
throw new Error("glm: gamma family requires strictly positive, finite y");
|
|
51635
|
+
}
|
|
51636
|
+
}
|
|
51637
|
+
};
|
|
51638
|
+
}
|
|
51639
|
+
function glm(X, y, opts) {
|
|
51640
|
+
const n = X.length;
|
|
51641
|
+
if (n === 0) throw new Error("glm: empty design matrix");
|
|
51642
|
+
if (y.length !== n) throw new Error(`glm: length mismatch (X has ${n} rows, y has ${y.length})`);
|
|
51643
|
+
const family = getFamily(opts.family);
|
|
51644
|
+
family.validateY(y);
|
|
51645
|
+
const link = opts.link ?? family.defaultLink;
|
|
51646
|
+
if (!family.validLinks.includes(link)) {
|
|
51647
|
+
throw new Error(`glm: ${opts.family} family does not support the ${link} link`);
|
|
51648
|
+
}
|
|
51649
|
+
const linkFns = getLink(link);
|
|
51650
|
+
const useIntercept = opts.intercept !== false;
|
|
51651
|
+
const design = useIntercept ? X.map((row2) => [1, ...row2]) : X.map((row2) => [...row2]);
|
|
51652
|
+
const p = design[0].length;
|
|
51653
|
+
if (n <= p) throw new Error(`glm: need more observations (${n}) than parameters (${p})`);
|
|
51654
|
+
const tol = opts.tol ?? 1e-10;
|
|
51655
|
+
const maxIter = opts.maxIter ?? 100;
|
|
51656
|
+
let eta = family.mustart(y).map((mu2) => linkFns.linkFn(mu2));
|
|
51657
|
+
let beta2 = new Array(p).fill(0);
|
|
51658
|
+
let iterations = 0;
|
|
51659
|
+
for (let iter = 0; iter < maxIter; iter++) {
|
|
51660
|
+
iterations = iter + 1;
|
|
51661
|
+
const mu2 = eta.map((e) => linkFns.linkInv(e));
|
|
51662
|
+
const w = new Array(n);
|
|
51663
|
+
const z = new Array(n);
|
|
51664
|
+
for (let i = 0; i < n; i++) {
|
|
51665
|
+
const dMuDEta = linkFns.dMuDEta(mu2[i]);
|
|
51666
|
+
const v = family.variance(mu2[i]);
|
|
51667
|
+
w[i] = Math.max(dMuDEta * dMuDEta / v, 1e-12);
|
|
51668
|
+
z[i] = eta[i] + (y[i] - mu2[i]) / dMuDEta;
|
|
51669
|
+
}
|
|
51670
|
+
const XtWX = Array.from({ length: p }, () => new Array(p).fill(0));
|
|
51671
|
+
const XtWz = new Array(p).fill(0);
|
|
51672
|
+
for (let i = 0; i < n; i++) {
|
|
51673
|
+
const wi = w[i];
|
|
51674
|
+
const row2 = design[i];
|
|
51675
|
+
for (let a = 0; a < p; a++) {
|
|
51676
|
+
const wa = wi * row2[a];
|
|
51677
|
+
for (let b = 0; b < p; b++) {
|
|
51678
|
+
XtWX[a][b] += wa * row2[b];
|
|
51679
|
+
}
|
|
51680
|
+
XtWz[a] += wa * z[i];
|
|
51681
|
+
}
|
|
51682
|
+
}
|
|
51683
|
+
const ridgeEps = 1e-10;
|
|
51684
|
+
const regularized = XtWX.map((row2, a) => row2.map((v, b) => a === b ? v + ridgeEps : v));
|
|
51685
|
+
let newBeta;
|
|
51686
|
+
try {
|
|
51687
|
+
newBeta = linsolve(regularized, XtWz);
|
|
51688
|
+
} catch {
|
|
51689
|
+
break;
|
|
51690
|
+
}
|
|
51691
|
+
const newEta = design.map((row2) => row2.reduce((s, v, j) => s + v * newBeta[j], 0));
|
|
51692
|
+
let maxDiff = 0;
|
|
51693
|
+
for (let i = 0; i < n; i++) maxDiff = Math.max(maxDiff, Math.abs(newEta[i] - eta[i]));
|
|
51694
|
+
beta2 = newBeta;
|
|
51695
|
+
eta = newEta;
|
|
51696
|
+
if (maxDiff < tol) break;
|
|
51697
|
+
}
|
|
51698
|
+
const mu = eta.map((e) => linkFns.linkInv(e));
|
|
51699
|
+
const deviance = y.reduce((sum3, yi, i) => sum3 + family.deviance(yi, mu[i]), 0);
|
|
51700
|
+
const predict = (x) => {
|
|
51701
|
+
const Dx = useIntercept ? x.map((row2) => [1, ...row2]) : x.map((row2) => [...row2]);
|
|
51702
|
+
return Dx.map((row2) => linkFns.linkInv(row2.reduce((s, v, j) => s + v * beta2[j], 0)));
|
|
51703
|
+
};
|
|
51704
|
+
return { coefficients: beta2, fittedValues: mu, deviance, iterations, predict };
|
|
51705
|
+
}
|
|
51706
|
+
|
|
51707
|
+
// src/stats/mvn.ts
|
|
51708
|
+
function normalizeMvnInputs(mean7, cov2) {
|
|
51709
|
+
if (typeof mean7 === "number") {
|
|
51710
|
+
if (typeof cov2 !== "number") {
|
|
51711
|
+
throw new Error("mvn: cov must be a scalar variance when mean is a scalar");
|
|
51712
|
+
}
|
|
51713
|
+
if (!(cov2 > 0)) throw new Error("mvn: variance must be positive");
|
|
51714
|
+
return { meanArr: [mean7], covArr: [[cov2]] };
|
|
51715
|
+
}
|
|
51716
|
+
if (typeof cov2 === "number") {
|
|
51717
|
+
throw new Error("mvn: cov must be a k\xD7k matrix when mean is a vector");
|
|
51718
|
+
}
|
|
51719
|
+
const meanArr = [...mean7];
|
|
51720
|
+
const k = meanArr.length;
|
|
51721
|
+
const covArr = cov2.map((row2) => [...row2]);
|
|
51722
|
+
if (covArr.length !== k || covArr.some((row2) => row2.length !== k)) {
|
|
51723
|
+
throw new Error(`mvn: cov must be ${k}x${k} matching mean length ${k}`);
|
|
51724
|
+
}
|
|
51725
|
+
for (let i = 0; i < k; i++) {
|
|
51726
|
+
for (let j = i + 1; j < k; j++) {
|
|
51727
|
+
const tol = 1e-9 * (1 + Math.abs(covArr[i][j]));
|
|
51728
|
+
if (Math.abs(covArr[i][j] - covArr[j][i]) > tol) {
|
|
51729
|
+
throw new Error("mvn: cov must be symmetric");
|
|
51730
|
+
}
|
|
51731
|
+
}
|
|
51732
|
+
}
|
|
51733
|
+
return { meanArr, covArr };
|
|
51734
|
+
}
|
|
51735
|
+
function mvnPdf(x, mean7, cov2) {
|
|
51736
|
+
const { meanArr, covArr } = normalizeMvnInputs(mean7, cov2);
|
|
51737
|
+
const xArr = typeof x === "number" ? [x] : [...x];
|
|
51738
|
+
if (xArr.length !== meanArr.length) {
|
|
51739
|
+
throw new Error(`mvnPdf: x must have length ${meanArr.length} (matching mean)`);
|
|
51740
|
+
}
|
|
51741
|
+
return multivariateNormal(meanArr, covArr).pdf(xArr);
|
|
51742
|
+
}
|
|
51743
|
+
function mvnSample(mean7, cov2, n, opts) {
|
|
51744
|
+
if (!Number.isInteger(n) || n < 1) throw new Error("mvnSample: n must be a positive integer");
|
|
51745
|
+
const { meanArr, covArr } = normalizeMvnInputs(mean7, cov2);
|
|
51746
|
+
const k = meanArr.length;
|
|
51747
|
+
const { L } = cholesky(covArr);
|
|
51748
|
+
const rng = createRng(opts?.seed ?? null);
|
|
51749
|
+
const samples = new Array(n);
|
|
51750
|
+
for (let s = 0; s < n; s++) {
|
|
51751
|
+
const z = new Array(k);
|
|
51752
|
+
for (let i = 0; i < k; i++) {
|
|
51753
|
+
const u1 = Math.max(rng(), 1e-300);
|
|
51754
|
+
const u2 = rng();
|
|
51755
|
+
z[i] = Math.sqrt(-2 * Math.log(u1)) * Math.cos(2 * Math.PI * u2);
|
|
51756
|
+
}
|
|
51757
|
+
const row2 = new Array(k);
|
|
51758
|
+
for (let i = 0; i < k; i++) {
|
|
51759
|
+
let sum3 = meanArr[i];
|
|
51760
|
+
for (let j = 0; j <= i; j++) sum3 += L[i][j] * z[j];
|
|
51761
|
+
row2[i] = sum3;
|
|
51762
|
+
}
|
|
51763
|
+
samples[s] = row2;
|
|
51764
|
+
}
|
|
51765
|
+
return samples;
|
|
51766
|
+
}
|
|
51767
|
+
|
|
51768
|
+
// src/stats/power-analysis.ts
|
|
51769
|
+
function powerAt(effectSize, nobs, alpha, alt) {
|
|
51770
|
+
const df = 2 * (nobs - 1);
|
|
51771
|
+
const nc = effectSize * Math.sqrt(nobs / 2);
|
|
51772
|
+
if (alt === "larger") {
|
|
51773
|
+
const tCrit2 = studentTQuantile(1 - alpha, df);
|
|
51774
|
+
return 1 - noncentralTCDF(tCrit2, df, nc);
|
|
51775
|
+
}
|
|
51776
|
+
if (alt === "smaller") {
|
|
51777
|
+
const tCrit2 = studentTQuantile(alpha, df);
|
|
51778
|
+
return noncentralTCDF(tCrit2, df, nc);
|
|
51779
|
+
}
|
|
51780
|
+
const tCrit = studentTQuantile(1 - alpha / 2, df);
|
|
51781
|
+
return 1 - noncentralTCDF(tCrit, df, nc) + noncentralTCDF(-tCrit, df, nc);
|
|
51782
|
+
}
|
|
51783
|
+
function tTestPower(effectSize, nobsOrPower, alpha, opts = {}) {
|
|
51784
|
+
if (!(alpha > 0 && alpha < 1)) throw new Error("tTestPower: alpha must be in (0, 1)");
|
|
51785
|
+
const alt = opts.alternative ?? "two-sided";
|
|
51786
|
+
if (opts.solveFor === "nobs") {
|
|
51787
|
+
const targetPower = nobsOrPower;
|
|
51788
|
+
if (!(targetPower > 0 && targetPower < 1)) {
|
|
51789
|
+
throw new Error('tTestPower: target power must be in (0, 1) when solveFor is "nobs"');
|
|
51790
|
+
}
|
|
51791
|
+
if (effectSize === 0) throw new Error("tTestPower: cannot solve for nobs when effectSize is 0");
|
|
51792
|
+
let lo = 2 + 1e-9;
|
|
51793
|
+
let hi = 1e7;
|
|
51794
|
+
if (powerAt(effectSize, hi, alpha, alt) < targetPower) {
|
|
51795
|
+
throw new Error("tTestPower: target power unreachable even at nobs = 1e7");
|
|
51796
|
+
}
|
|
51797
|
+
for (let it = 0; it < 200; it++) {
|
|
51798
|
+
const mid = (lo + hi) / 2;
|
|
51799
|
+
if (powerAt(effectSize, mid, alpha, alt) < targetPower) lo = mid;
|
|
51800
|
+
else hi = mid;
|
|
51801
|
+
}
|
|
51802
|
+
return (lo + hi) / 2;
|
|
51803
|
+
}
|
|
51804
|
+
const nobs = nobsOrPower;
|
|
51805
|
+
if (!(nobs > 1)) throw new Error("tTestPower: nobs must be greater than 1");
|
|
51806
|
+
return powerAt(effectSize, nobs, alpha, alt);
|
|
51807
|
+
}
|
|
51433
51808
|
export {
|
|
51434
51809
|
ARRAY_WORKER_THRESHOLD,
|
|
51435
51810
|
CAS_BATCH_THRESHOLD,
|
|
@@ -51857,6 +52232,7 @@ export {
|
|
|
51857
52232
|
getAssumptions,
|
|
51858
52233
|
getComputePool,
|
|
51859
52234
|
getMatrixDataType,
|
|
52235
|
+
glm,
|
|
51860
52236
|
globalMinimize,
|
|
51861
52237
|
gmean,
|
|
51862
52238
|
gmres,
|
|
@@ -52088,6 +52464,8 @@ export {
|
|
|
52088
52464
|
multiplyScalar,
|
|
52089
52465
|
multivariateNormal,
|
|
52090
52466
|
multivariateTaylor,
|
|
52467
|
+
mvnPdf,
|
|
52468
|
+
mvnSample,
|
|
52091
52469
|
nearestNeighbor,
|
|
52092
52470
|
negativeBinomialDist,
|
|
52093
52471
|
nelderMead,
|
|
@@ -52371,6 +52749,7 @@ export {
|
|
|
52371
52749
|
symbolicPartialDerivative,
|
|
52372
52750
|
symbolicProduct,
|
|
52373
52751
|
tDist,
|
|
52752
|
+
tTestPower,
|
|
52374
52753
|
tan,
|
|
52375
52754
|
tangentLine,
|
|
52376
52755
|
tanh,
|
package/dist/ml/glm.d.ts
ADDED
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/** Supported exponential-family distributions. */
|
|
2
|
+
export type GlmFamily = 'poisson' | 'gamma';
|
|
3
|
+
/** Supported link functions. */
|
|
4
|
+
export type GlmLink = 'log' | 'inverse';
|
|
5
|
+
export interface GlmOptions {
|
|
6
|
+
/** Exponential family: `'poisson'` (counts) or `'gamma'` (positive continuous). */
|
|
7
|
+
family: GlmFamily;
|
|
8
|
+
/** Link function. Default `'log'` for both families (`'inverse'` — the Gamma
|
|
9
|
+
* canonical link — is also supported for `family: 'gamma'`). */
|
|
10
|
+
link?: GlmLink;
|
|
11
|
+
/** Prepend a column of ones (default true), matching `ols`'s convention. */
|
|
12
|
+
intercept?: boolean;
|
|
13
|
+
/** Convergence tolerance on the max-norm change in the linear predictor (default 1e-10). */
|
|
14
|
+
tol?: number;
|
|
15
|
+
/** Maximum IRLS iterations (default 100). */
|
|
16
|
+
maxIter?: number;
|
|
17
|
+
}
|
|
18
|
+
export interface GlmResult {
|
|
19
|
+
/** Fitted coefficients (intercept first, if included). */
|
|
20
|
+
coefficients: number[];
|
|
21
|
+
/** Fitted mean response `μ = linkInverse(Xβ)` for the training rows. */
|
|
22
|
+
fittedValues: number[];
|
|
23
|
+
/** Residual deviance `Σ d(yᵢ, μᵢ)` (family-specific unit deviance). */
|
|
24
|
+
deviance: number;
|
|
25
|
+
/** Number of IRLS iterations performed. */
|
|
26
|
+
iterations: number;
|
|
27
|
+
/** Predict the mean response for new rows. */
|
|
28
|
+
predict: (x: number[][]) => number[];
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Fit a generalized linear model `μ = linkInverse(Xβ)` by IRLS (Fisher
|
|
32
|
+
* scoring). Supports `family: 'poisson'` (log link only) and `family:
|
|
33
|
+
* 'gamma'` (log or inverse link).
|
|
34
|
+
*
|
|
35
|
+
* @param X - Design matrix (rows = observations, cols = predictors)
|
|
36
|
+
* @param y - Response vector (non-negative for Poisson, strictly positive for Gamma)
|
|
37
|
+
* @param opts - `family` (required), `link` (default `'log'`), `intercept`
|
|
38
|
+
* (default true), `tol` (default 1e-10), `maxIter` (default 100)
|
|
39
|
+
*
|
|
40
|
+
* @example
|
|
41
|
+
* glm([[1], [2], [3], [4], [5]], [1, 2, 3, 5, 8], { family: 'poisson' })
|
|
42
|
+
* // => coefficients ~= [-0.374104, 0.492678] (matches statsmodels sm.GLM(..., family=Poisson()))
|
|
43
|
+
*/
|
|
44
|
+
export declare function glm(X: number[][], y: number[], opts: GlmOptions): GlmResult;
|
|
45
|
+
//# sourceMappingURL=glm.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"glm.d.ts","sourceRoot":"","sources":["../../src/ml/glm.ts"],"names":[],"mappings":"AAmBA,kDAAkD;AAClD,MAAM,MAAM,SAAS,GAAG,SAAS,GAAG,OAAO,CAAC;AAE5C,gCAAgC;AAChC,MAAM,MAAM,OAAO,GAAG,KAAK,GAAG,SAAS,CAAC;AAExC,MAAM,WAAW,UAAU;IACzB,mFAAmF;IACnF,MAAM,EAAE,SAAS,CAAC;IAClB;oEACgE;IAChE,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,4EAA4E;IAC5E,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,4FAA4F;IAC5F,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,6CAA6C;IAC7C,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,SAAS;IACxB,0DAA0D;IAC1D,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,wEAAwE;IACxE,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,uEAAuE;IACvE,QAAQ,EAAE,MAAM,CAAC;IACjB,2CAA2C;IAC3C,UAAU,EAAE,MAAM,CAAC;IACnB,8CAA8C;IAC9C,OAAO,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,KAAK,MAAM,EAAE,CAAC;CACtC;AAiED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,UAAU,GAAG,SAAS,CAmF3E"}
|
|
@@ -3,7 +3,7 @@ import type { MathNumericType, MathArray, Unit } from '../types.js';
|
|
|
3
3
|
* Options for ODE solver
|
|
4
4
|
*/
|
|
5
5
|
interface ODEOptions {
|
|
6
|
-
method?: 'RK23' | 'RK45' | 'Rosenbrock';
|
|
6
|
+
method?: 'RK23' | 'RK45' | 'Rosenbrock' | 'RODAS';
|
|
7
7
|
tol?: number;
|
|
8
8
|
firstStep?: number | Unit;
|
|
9
9
|
minStep?: number | Unit;
|
|
@@ -11,6 +11,12 @@ interface ODEOptions {
|
|
|
11
11
|
minDelta?: number;
|
|
12
12
|
maxDelta?: number;
|
|
13
13
|
maxIter?: number;
|
|
14
|
+
/**
|
|
15
|
+
* Analytic Jacobian ∂fᵢ/∂yⱼ of the forcing function, used by the stiff methods (`Rosenbrock`
|
|
16
|
+
* and `RODAS`) in place of the default finite-difference Jacobian. Must return an n×n matrix
|
|
17
|
+
* (n = state dimension). Ignored by the explicit RK23/RK45 methods.
|
|
18
|
+
*/
|
|
19
|
+
jac?: (t: number, y: number[]) => number[][];
|
|
14
20
|
}
|
|
15
21
|
/**
|
|
16
22
|
* Forcing function type for ODE
|
|
@@ -36,6 +42,22 @@ export declare function rosenbrockSolve(f: ForcingFunction, tspan: unknown[], y0
|
|
|
36
42
|
t: number[];
|
|
37
43
|
y: number[][];
|
|
38
44
|
};
|
|
45
|
+
/**
|
|
46
|
+
* RODAS stiff ODE solver — Hairer & Wanner's 4th-order, 6-stage, L-stable Rosenbrock method. Like
|
|
47
|
+
* the 2nd-order `rosenbrockSolve` (ode23s) it is linearly implicit: it forms the iteration matrix
|
|
48
|
+
* `E = I/(γh) − J` once per step (Jacobian J analytic via `options.jac` or finite-differenced),
|
|
49
|
+
* LU-factorises it, and solves it against six successive right-hand sides. Being 4th order it
|
|
50
|
+
* reaches tight tolerances (rtol < 1e-6) in far fewer steps than ode23s, whose 2nd order forces
|
|
51
|
+
* many small steps there. It retains the `h·d_i·∂f/∂t` term (∂f/∂t finite-differenced once per
|
|
52
|
+
* step) so it stays 4th order on non-autonomous systems `f(t, y)`.
|
|
53
|
+
*
|
|
54
|
+
* Module-level (not factory-nested) for the same reason as `rosenbrockSolve`: pure numeric helpers
|
|
55
|
+
* with no factory-scope dependency. Plain-number state only (the Jacobian/linear solve are numeric).
|
|
56
|
+
*/
|
|
57
|
+
export declare function rodasSolve(f: ForcingFunction, tspan: unknown[], y0raw: unknown[], options?: ODEOptions): {
|
|
58
|
+
t: number[];
|
|
59
|
+
y: number[][];
|
|
60
|
+
};
|
|
39
61
|
export declare const createSolveODE: import("../utils/factory.js").FactoryFunction<any, any>;
|
|
40
62
|
export {};
|
|
41
63
|
//# sourceMappingURL=solveODE.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"solveODE.d.ts","sourceRoot":"","sources":["../../src/numeric/solveODE.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,eAAe,EAAE,SAAS,EAAU,IAAI,EAAa,MAAM,aAAa,CAAC;AAkCvF;;GAEG;AACH,UAAU,UAAU;IAClB,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"solveODE.d.ts","sourceRoot":"","sources":["../../src/numeric/solveODE.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,eAAe,EAAE,SAAS,EAAU,IAAI,EAAa,MAAM,aAAa,CAAC;AAkCvF;;GAEG;AACH,UAAU,UAAU;IAClB,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,YAAY,GAAG,OAAO,CAAC;IAClD,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;OAIG;IACH,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,MAAM,EAAE,EAAE,CAAC;CAC9C;AAUD;;GAEG;AACH,KAAK,eAAe,GAAG,CACrB,CAAC,EAAE,eAAe,EAClB,CAAC,EAAE,eAAe,GAAG,SAAS,KAC3B,eAAe,GAAG,SAAS,CAAC;AAkGjC;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,eAAe,CAC7B,CAAC,EAAE,eAAe,EAClB,KAAK,EAAE,OAAO,EAAE,EAChB,KAAK,EAAE,OAAO,EAAE,EAChB,OAAO,GAAE,UAAe,GACvB;IAAE,CAAC,EAAE,MAAM,EAAE,CAAC;IAAC,CAAC,EAAE,MAAM,EAAE,EAAE,CAAA;CAAE,CAuFhC;AAgDD;;;;;;;;;;;GAWG;AACH,wBAAgB,UAAU,CACxB,CAAC,EAAE,eAAe,EAClB,KAAK,EAAE,OAAO,EAAE,EAChB,KAAK,EAAE,OAAO,EAAE,EAChB,OAAO,GAAE,UAAe,GACvB;IAAE,CAAC,EAAE,MAAM,EAAE,CAAC;IAAC,CAAC,EAAE,MAAM,EAAE,EAAE,CAAA;CAAE,CA0HhC;AAED,eAAO,MAAM,cAAc,yDA6oB1B,CAAC"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/** A vector given either as a scalar (1-D case) or an array (k-D case). */
|
|
2
|
+
export type MvnVector = number | readonly number[];
|
|
3
|
+
/** A covariance given either as a scalar variance (1-D case) or a k×k matrix. */
|
|
4
|
+
export type MvnCov = number | readonly (readonly number[])[];
|
|
5
|
+
/**
|
|
6
|
+
* Multivariate-normal probability density, handling both the 1-D case
|
|
7
|
+
* (`x`/`mean` scalars, `cov` a scalar variance) and the general k-D case
|
|
8
|
+
* (`x`/`mean` length-k arrays, `cov` a k×k matrix). Reduces to the ordinary
|
|
9
|
+
* normal PDF when k=1.
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* mvnPdf([0, 0], [0, 0], [[1, 0], [0, 1]]); // ~0.15915494 (scipy multivariate_normal.pdf)
|
|
13
|
+
* mvnPdf(0, 0, 1); // ~0.3989422804 (standard normal density at 0)
|
|
14
|
+
*/
|
|
15
|
+
export declare function mvnPdf(x: MvnVector, mean: MvnVector, cov: MvnCov): number;
|
|
16
|
+
/** Options for {@link mvnSample}. */
|
|
17
|
+
export interface MvnSampleOptions {
|
|
18
|
+
/** Seed for the deterministic RNG (reproducible draws). Omit for a
|
|
19
|
+
* time-seeded, non-reproducible generator. */
|
|
20
|
+
seed?: string | number;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Draw `n` samples from a multivariate normal `N(mean, cov)` via `x = mean +
|
|
24
|
+
* L·z`, where `Σ = LLᵀ` (Cholesky) and `z` is a vector of independent standard
|
|
25
|
+
* normals (Box-Muller). Handles the 1-D case the same as {@link mvnPdf}.
|
|
26
|
+
* Returns an `n`-length array of length-k row vectors.
|
|
27
|
+
*
|
|
28
|
+
* @example
|
|
29
|
+
* mvnSample([1, 2], [[2, 0.5], [0.5, 1]], 20000, { seed: 42 });
|
|
30
|
+
* // empirical mean ~= [1, 2], empirical covariance ~= [[2, 0.5], [0.5, 1]]
|
|
31
|
+
*/
|
|
32
|
+
export declare function mvnSample(mean: MvnVector, cov: MvnCov, n: number, opts?: MvnSampleOptions): number[][];
|
|
33
|
+
//# sourceMappingURL=mvn.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mvn.d.ts","sourceRoot":"","sources":["../../src/stats/mvn.ts"],"names":[],"mappings":"AAgBA,2EAA2E;AAC3E,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,SAAS,MAAM,EAAE,CAAC;AACnD,iFAAiF;AACjF,MAAM,MAAM,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC,SAAS,MAAM,EAAE,CAAC,EAAE,CAAC;AAmC7D;;;;;;;;;GASG;AACH,wBAAgB,MAAM,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAOzE;AAED,qCAAqC;AACrC,MAAM,WAAW,gBAAgB;IAC/B;kDAC8C;IAC9C,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CACxB;AAED;;;;;;;;;GASG;AACH,wBAAgB,SAAS,CACvB,IAAI,EAAE,SAAS,EACf,GAAG,EAAE,MAAM,EACX,CAAC,EAAE,MAAM,EACT,IAAI,CAAC,EAAE,gBAAgB,GACtB,MAAM,EAAE,EAAE,CAwBZ"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/** Alternative hypothesis direction. */
|
|
2
|
+
export type TTestPowerAlternative = 'two-sided' | 'larger' | 'smaller';
|
|
3
|
+
export interface TTestPowerOptions {
|
|
4
|
+
/**
|
|
5
|
+
* `'power'` (default): the second positional argument is `nobs` (per-group
|
|
6
|
+
* sample size) and the function returns the power.
|
|
7
|
+
*
|
|
8
|
+
* `'nobs'`: the second positional argument is instead read as the *target
|
|
9
|
+
* power*, and the function solves (by bisection) for the per-group `nobs`
|
|
10
|
+
* (continuous, matching statsmodels' own continuous solver) needed to reach
|
|
11
|
+
* it.
|
|
12
|
+
*/
|
|
13
|
+
solveFor?: 'power' | 'nobs';
|
|
14
|
+
/** Default `'two-sided'`. */
|
|
15
|
+
alternative?: TTestPowerAlternative;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Statistical power of a two-sample t-test with equal group sizes.
|
|
19
|
+
*
|
|
20
|
+
* @param effectSize - Standardized effect size (Cohen's d)
|
|
21
|
+
* @param nobsOrPower - Per-group sample size (`solveFor: 'power'`, the
|
|
22
|
+
* default) or the target power to solve for (`solveFor: 'nobs'`)
|
|
23
|
+
* @param alpha - Significance level
|
|
24
|
+
* @param opts - `solveFor` (default `'power'`), `alternative` (default `'two-sided'`)
|
|
25
|
+
* @returns The power (default) or the required per-group `nobs` (`solveFor: 'nobs'`)
|
|
26
|
+
*
|
|
27
|
+
* @example
|
|
28
|
+
* tTestPower(0.5, 64, 0.05); // ~0.80146 (statsmodels tt_ind_solve_power)
|
|
29
|
+
* tTestPower(0.5, 0.8, 0.05, { solveFor: 'nobs' }); // ~63.77 (per-group nobs for 80% power)
|
|
30
|
+
*/
|
|
31
|
+
export declare function tTestPower(effectSize: number, nobsOrPower: number, alpha: number, opts?: TTestPowerOptions): number;
|
|
32
|
+
//# sourceMappingURL=power-analysis.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"power-analysis.d.ts","sourceRoot":"","sources":["../../src/stats/power-analysis.ts"],"names":[],"mappings":"AAeA,wCAAwC;AACxC,MAAM,MAAM,qBAAqB,GAAG,WAAW,GAAG,QAAQ,GAAG,SAAS,CAAC;AAEvE,MAAM,WAAW,iBAAiB;IAChC;;;;;;;;OAQG;IACH,QAAQ,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAC5B,6BAA6B;IAC7B,WAAW,CAAC,EAAE,qBAAqB,CAAC;CACrC;AAuBD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,UAAU,CACxB,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,MAAM,EACb,IAAI,GAAE,iBAAsB,GAC3B,MAAM,CA2BR"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dist-objects.d.ts","sourceRoot":"","sources":["../../src/typed/dist-objects.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"dist-objects.d.ts","sourceRoot":"","sources":["../../src/typed/dist-objects.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@danielsimonjr/mathts-functions",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.41.0",
|
|
4
4
|
"description": "Mathematical functions for MathTS - arithmetic, algebra, trigonometry, statistics, and more",
|
|
5
5
|
"author": "Daniel Simon Jr.",
|
|
6
6
|
"license": "MIT",
|
|
@@ -37,7 +37,7 @@
|
|
|
37
37
|
"@danielsimonjr/mathts-core": "^0.10.0",
|
|
38
38
|
"@danielsimonjr/mathts-expression": "^0.6.4",
|
|
39
39
|
"@danielsimonjr/mathts-gpu": "^0.2.0",
|
|
40
|
-
"@danielsimonjr/mathts-matrix": "^0.
|
|
40
|
+
"@danielsimonjr/mathts-matrix": "^0.6.0",
|
|
41
41
|
"@danielsimonjr/mathts-parallel": "^0.6.0",
|
|
42
42
|
"bignumber.js": "^9.1.2",
|
|
43
43
|
"complex.js": "^2.2.5",
|