@danielsimonjr/mathts-functions 0.30.0 → 0.32.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/descriptive-stats.d.ts +16 -0
- package/dist/descriptive-stats.d.ts.map +1 -1
- package/dist/index.d.ts +19 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1510 -566
- package/dist/ml/dbscan-knn.d.ts +52 -0
- package/dist/ml/dbscan-knn.d.ts.map +1 -0
- package/dist/ml/kde.d.ts +37 -0
- package/dist/ml/kde.d.ts.map +1 -0
- package/dist/ml/logistic-regression.d.ts +34 -0
- package/dist/ml/logistic-regression.d.ts.map +1 -0
- package/dist/ml/ols.d.ts +37 -0
- package/dist/ml/ols.d.ts.map +1 -0
- package/dist/ml/regularized-regression.d.ts +65 -0
- package/dist/ml/regularized-regression.d.ts.map +1 -0
- package/dist/stats/fit-distribution.d.ts +44 -0
- package/dist/stats/fit-distribution.d.ts.map +1 -0
- package/dist/stats/inference-extra.d.ts +46 -0
- package/dist/stats/inference-extra.d.ts.map +1 -0
- package/dist/stats/inference-extra2.d.ts +127 -0
- package/dist/stats/inference-extra2.d.ts.map +1 -0
- package/dist/stats/timeseries.d.ts +50 -0
- package/dist/stats/timeseries.d.ts.map +1 -0
- package/dist/typed/hypothesis.d.ts +24 -6
- package/dist/typed/hypothesis.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Density-based clustering (DBSCAN) + k-nearest-neighbour classifier/regressor
|
|
3
|
+
* (Phase 3 Task 4 — ML primitives).
|
|
4
|
+
*
|
|
5
|
+
* All three functions share brute-force Euclidean-distance neighbour search.
|
|
6
|
+
* The library's exported `kdTree` (`typed/geometry.ts`) has no radius-query
|
|
7
|
+
* method, so DBSCAN's ε-neighborhoods are computed O(n²) brute-force here —
|
|
8
|
+
* correct, just not the asymptotically fastest option. A kd-tree range-search
|
|
9
|
+
* (and a kd-tree-backed k-NN search) is future work if this becomes a hot path.
|
|
10
|
+
*/
|
|
11
|
+
/**
|
|
12
|
+
* DBSCAN density-based clustering. A point is a **core point** if its
|
|
13
|
+
* ε-neighborhood (including itself) has at least `minPts` members; clusters
|
|
14
|
+
* are grown by expanding outward from core points through their neighbors
|
|
15
|
+
* (density-reachability). Points reached only from a core point's
|
|
16
|
+
* neighborhood but that are not themselves core are labeled as border points
|
|
17
|
+
* of that cluster; points never reached are **noise** (`-1`).
|
|
18
|
+
*
|
|
19
|
+
* @param points - Row-vectors (n × d)
|
|
20
|
+
* @param eps - Neighborhood radius (Euclidean)
|
|
21
|
+
* @param minPts - Minimum neighborhood size (including the point itself) for a core point
|
|
22
|
+
* @returns 0-based cluster label per point; `-1` marks noise
|
|
23
|
+
*
|
|
24
|
+
* @example
|
|
25
|
+
* dbscan([[0, 0], [0.1, 0.1], [10, 10], [50, 50]], 1.0, 2)
|
|
26
|
+
* // => [0, 0, -1, -1] (one 2-point cluster, two noise points)
|
|
27
|
+
*/
|
|
28
|
+
export declare function dbscan(points: number[][], eps: number, minPts: number): number[];
|
|
29
|
+
/**
|
|
30
|
+
* k-nearest-neighbour classifier: majority vote of the `k` closest training
|
|
31
|
+
* points (Euclidean distance). Ties are broken by the label of the single
|
|
32
|
+
* nearest point among the tied labels.
|
|
33
|
+
*
|
|
34
|
+
* @param train - Training row-vectors (n × d)
|
|
35
|
+
* @param labels - Training labels (length n)
|
|
36
|
+
* @param query - Query row-vectors (m × d)
|
|
37
|
+
* @param k - Number of neighbors
|
|
38
|
+
* @returns Predicted label per query row
|
|
39
|
+
*/
|
|
40
|
+
export declare function knnClassify(train: number[][], labels: (number | string)[], query: number[][], k: number): (number | string)[];
|
|
41
|
+
/**
|
|
42
|
+
* k-nearest-neighbour regressor: mean of the `k` closest training targets
|
|
43
|
+
* (Euclidean distance).
|
|
44
|
+
*
|
|
45
|
+
* @param train - Training row-vectors (n × d)
|
|
46
|
+
* @param targets - Training targets (length n)
|
|
47
|
+
* @param query - Query row-vectors (m × d)
|
|
48
|
+
* @param k - Number of neighbors
|
|
49
|
+
* @returns Predicted (mean) target per query row
|
|
50
|
+
*/
|
|
51
|
+
export declare function knnRegress(train: number[][], targets: number[], query: number[][], k: number): number[];
|
|
52
|
+
//# sourceMappingURL=dbscan-knn.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dbscan-knn.d.ts","sourceRoot":"","sources":["../../src/ml/dbscan-knn.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAoBH;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAoChF;AASD;;;;;;;;;;GAUG;AACH,wBAAgB,WAAW,CACzB,KAAK,EAAE,MAAM,EAAE,EAAE,EACjB,MAAM,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,EAC3B,KAAK,EAAE,MAAM,EAAE,EAAE,EACjB,CAAC,EAAE,MAAM,GACR,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAwBrB;AAED;;;;;;;;;GASG;AACH,wBAAgB,UAAU,CACxB,KAAK,EAAE,MAAM,EAAE,EAAE,EACjB,OAAO,EAAE,MAAM,EAAE,EACjB,KAAK,EAAE,MAAM,EAAE,EAAE,EACjB,CAAC,EAAE,MAAM,GACR,MAAM,EAAE,CAMV"}
|
package/dist/ml/kde.d.ts
ADDED
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 1-D Gaussian kernel density estimation (Wave — ML primitives, Phase 3 Task 5).
|
|
3
|
+
*
|
|
4
|
+
* The first nonparametric density estimator in the library. Given samples
|
|
5
|
+
* `s_1..s_n`, estimates the density at query points via a sum of Gaussian
|
|
6
|
+
* "bumps" centered on each sample:
|
|
7
|
+
*
|
|
8
|
+
* density(x) = (1 / (n * h)) * sum_i phi((x - s_i) / h)
|
|
9
|
+
*
|
|
10
|
+
* where `phi` is the standard normal pdf and `h` is the bandwidth. Bandwidth
|
|
11
|
+
* defaults to Silverman's rule of thumb, which balances bias (too smooth)
|
|
12
|
+
* against variance (too noisy) using the sample spread.
|
|
13
|
+
*/
|
|
14
|
+
export interface GaussianKDEOptions {
|
|
15
|
+
/** Bandwidth (smoothing parameter). Defaults to Silverman's rule of thumb. */
|
|
16
|
+
bandwidth?: number;
|
|
17
|
+
}
|
|
18
|
+
export interface GaussianKDEResult {
|
|
19
|
+
/** Evaluate the estimated density at each of `xs`. */
|
|
20
|
+
evaluate: (xs: number[]) => number[];
|
|
21
|
+
/** The bandwidth actually used (either supplied or Silverman's rule). */
|
|
22
|
+
bandwidth: number;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* 1-D Gaussian kernel density estimation.
|
|
26
|
+
*
|
|
27
|
+
* @param samples - Observed sample values (n >= 2 for the default bandwidth;
|
|
28
|
+
* a single sample requires an explicit `opts.bandwidth`)
|
|
29
|
+
* @param opts - `bandwidth` (default: Silverman's rule of thumb)
|
|
30
|
+
* @returns `evaluate(xs)` — density at each query point — and the chosen `bandwidth`
|
|
31
|
+
*
|
|
32
|
+
* @example
|
|
33
|
+
* const kde = gaussianKDE([-1, 0, 0, 1]);
|
|
34
|
+
* kde.evaluate([0]); // => density near the sample center (a single peak)
|
|
35
|
+
*/
|
|
36
|
+
export declare function gaussianKDE(samples: number[], opts?: GaussianKDEOptions): GaussianKDEResult;
|
|
37
|
+
//# sourceMappingURL=kde.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"kde.d.ts","sourceRoot":"","sources":["../../src/ml/kde.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,MAAM,WAAW,kBAAkB;IACjC,8EAA8E;IAC9E,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,iBAAiB;IAChC,sDAAsD;IACtD,QAAQ,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,MAAM,EAAE,CAAC;IACrC,yEAAyE;IACzE,SAAS,EAAE,MAAM,CAAC;CACnB;AAqDD;;;;;;;;;;;GAWG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,IAAI,GAAE,kBAAuB,GAAG,iBAAiB,CAoB/F"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
export interface LogisticRegressionOptions {
|
|
2
|
+
/** Prepend a column of ones (default true). */
|
|
3
|
+
intercept?: boolean;
|
|
4
|
+
/** Convergence tolerance on the max-norm of the Newton step (default 1e-8). */
|
|
5
|
+
tol?: number;
|
|
6
|
+
/** Maximum IRLS iterations (default 100). */
|
|
7
|
+
maxIter?: number;
|
|
8
|
+
}
|
|
9
|
+
export interface LogisticRegressionResult {
|
|
10
|
+
/** Fitted coefficients for the original predictors (excludes the intercept). */
|
|
11
|
+
coefficients: number[];
|
|
12
|
+
/** Fitted intercept (0 if `opts.intercept === false`). */
|
|
13
|
+
intercept: number;
|
|
14
|
+
/** Predict class probabilities (P(y=1|x)) for new rows. */
|
|
15
|
+
predictProba: (x: number[][]) => number[];
|
|
16
|
+
/** Predict class labels (threshold 0.5) for new rows. */
|
|
17
|
+
predict: (x: number[][]) => number[];
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Binary logistic regression `P(y=1|x) = sigmoid(xᵀβ)` fit by IRLS (Newton-Raphson
|
|
21
|
+
* on the Bernoulli log-likelihood).
|
|
22
|
+
*
|
|
23
|
+
* @param X - Design matrix (rows = observations, cols = predictors)
|
|
24
|
+
* @param y - Binary labels, each in {0, 1}
|
|
25
|
+
* @param opts - `intercept` (default true) prepends a column of ones to X;
|
|
26
|
+
* `tol` (default 1e-8) convergence tolerance; `maxIter` (default 100)
|
|
27
|
+
* @returns Fitted coefficients/intercept plus `predict`/`predictProba`
|
|
28
|
+
*
|
|
29
|
+
* @example
|
|
30
|
+
* const m = logisticRegression([[-2], [-1], [1], [2]], [0, 0, 1, 1]);
|
|
31
|
+
* m.predict([[3]]) // => [1]
|
|
32
|
+
*/
|
|
33
|
+
export declare function logisticRegression(X: number[][], y: number[], opts?: LogisticRegressionOptions): LogisticRegressionResult;
|
|
34
|
+
//# sourceMappingURL=logistic-regression.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logistic-regression.d.ts","sourceRoot":"","sources":["../../src/ml/logistic-regression.ts"],"names":[],"mappings":"AASA,MAAM,WAAW,yBAAyB;IACxC,+CAA+C;IAC/C,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,+EAA+E;IAC/E,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,6CAA6C;IAC7C,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,wBAAwB;IACvC,gFAAgF;IAChF,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,0DAA0D;IAC1D,SAAS,EAAE,MAAM,CAAC;IAClB,2DAA2D;IAC3D,YAAY,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,KAAK,MAAM,EAAE,CAAC;IAC1C,yDAAyD;IACzD,OAAO,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,KAAK,MAAM,EAAE,CAAC;CACtC;AAkBD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,kBAAkB,CAChC,CAAC,EAAE,MAAM,EAAE,EAAE,EACb,CAAC,EAAE,MAAM,EAAE,EACX,IAAI,CAAC,EAAE,yBAAyB,GAC/B,wBAAwB,CAiG1B"}
|
package/dist/ml/ols.d.ts
ADDED
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
export interface OlsOptions {
|
|
2
|
+
/** Prepend a column of ones (default true). */
|
|
3
|
+
intercept?: boolean;
|
|
4
|
+
}
|
|
5
|
+
export interface OlsResult {
|
|
6
|
+
/** Fitted coefficients (intercept first, if included). */
|
|
7
|
+
coefficients: number[];
|
|
8
|
+
/** Standard error of each coefficient. */
|
|
9
|
+
stderr: number[];
|
|
10
|
+
/** t-statistic for each coefficient (H0: coefficient = 0). */
|
|
11
|
+
tValues: number[];
|
|
12
|
+
/** Two-sided p-value for each coefficient's t-statistic. */
|
|
13
|
+
pValues: number[];
|
|
14
|
+
/** Coefficient of determination. */
|
|
15
|
+
r2: number;
|
|
16
|
+
/** R² adjusted for the number of predictors. */
|
|
17
|
+
adjR2: number;
|
|
18
|
+
/** Overall model F-statistic (H0: all slope coefficients = 0). */
|
|
19
|
+
fStat: number;
|
|
20
|
+
/** Residuals y - Xβ. */
|
|
21
|
+
residuals: number[];
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Multiple linear regression `y ≈ Xβ` by ordinary least squares (normal equations),
|
|
25
|
+
* with full inference: standard errors, t/p-values per coefficient, R²/adjusted-R²,
|
|
26
|
+
* the overall model F-statistic, and residuals.
|
|
27
|
+
*
|
|
28
|
+
* @param X - Design matrix (rows = observations, cols = predictors)
|
|
29
|
+
* @param y - Response vector (length = number of observations)
|
|
30
|
+
* @param opts - `intercept` (default true) prepends a column of ones to X
|
|
31
|
+
*
|
|
32
|
+
* @example
|
|
33
|
+
* ols([[1, 1], [2, 0], [3, 1], [4, 0]], [6, 5, 10, 9])
|
|
34
|
+
* // => coefficients ~= [1, 2, 3] (y = 1 + 2*x1 + 3*x2), r2 = 1
|
|
35
|
+
*/
|
|
36
|
+
export declare function ols(X: number[][], y: number[], opts?: OlsOptions): OlsResult;
|
|
37
|
+
//# sourceMappingURL=ols.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ols.d.ts","sourceRoot":"","sources":["../../src/ml/ols.ts"],"names":[],"mappings":"AAUA,MAAM,WAAW,UAAU;IACzB,+CAA+C;IAC/C,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,SAAS;IACxB,0DAA0D;IAC1D,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,0CAA0C;IAC1C,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,8DAA8D;IAC9D,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,4DAA4D;IAC5D,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,oCAAoC;IACpC,EAAE,EAAE,MAAM,CAAC;IACX,gDAAgD;IAChD,KAAK,EAAE,MAAM,CAAC;IACd,kEAAkE;IAClE,KAAK,EAAE,MAAM,CAAC;IACd,wBAAwB;IACxB,SAAS,EAAE,MAAM,EAAE,CAAC;CACrB;AAqED;;;;;;;;;;;;GAYG;AACH,wBAAgB,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,IAAI,CAAC,EAAE,UAAU,GAAG,SAAS,CAmC5E"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
export interface RidgeOptions {
|
|
2
|
+
/** Center X/y and fit an unpenalized intercept (default true). */
|
|
3
|
+
intercept?: boolean;
|
|
4
|
+
}
|
|
5
|
+
export interface CoordinateDescentOptions extends RidgeOptions {
|
|
6
|
+
/** Maximum coordinate-descent sweeps (default 1000). */
|
|
7
|
+
maxIter?: number;
|
|
8
|
+
/** Convergence tolerance on the max coefficient change per sweep (default 1e-7). */
|
|
9
|
+
tol?: number;
|
|
10
|
+
}
|
|
11
|
+
export interface RegularizedRegressionResult {
|
|
12
|
+
/** Fitted coefficients, one per predictor column (intercept excluded). */
|
|
13
|
+
coefficients: number[];
|
|
14
|
+
/** Fitted intercept (0 if `opts.intercept === false`). */
|
|
15
|
+
intercept: number;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Ridge regression (L2-penalized least squares) with a closed-form solution on
|
|
19
|
+
* centered data: `β = (XᵀX + αI)⁻¹Xᵀy`. The intercept is never penalized.
|
|
20
|
+
*
|
|
21
|
+
* @param X - Design matrix (rows = observations, cols = predictors)
|
|
22
|
+
* @param y - Response vector (length = number of observations)
|
|
23
|
+
* @param alpha - L2 penalty strength (`alpha >= 0`; `alpha = 0` is OLS)
|
|
24
|
+
* @param opts - `intercept` (default true)
|
|
25
|
+
*
|
|
26
|
+
* @example
|
|
27
|
+
* ridge([[1], [2], [3], [4]], [2, 4, 6, 8], 0)
|
|
28
|
+
* // => { coefficients: [2], intercept: 0 } (recovers the exact OLS fit)
|
|
29
|
+
*/
|
|
30
|
+
export declare function ridge(X: number[][], y: number[], alpha: number, opts?: RidgeOptions): RegularizedRegressionResult;
|
|
31
|
+
/**
|
|
32
|
+
* Lasso regression (L1-penalized least squares) via cyclic coordinate descent
|
|
33
|
+
* with soft-thresholding on standardized columns. Unlike ridge, large enough
|
|
34
|
+
* penalties drive coefficients to exactly 0 (sparse solutions). The intercept
|
|
35
|
+
* is never penalized.
|
|
36
|
+
*
|
|
37
|
+
* @param X - Design matrix (rows = observations, cols = predictors)
|
|
38
|
+
* @param y - Response vector (length = number of observations)
|
|
39
|
+
* @param alpha - L1 penalty strength (`alpha >= 0`; `alpha = 0` ~ OLS)
|
|
40
|
+
* @param opts - `intercept` (default true), `maxIter` (default 1000), `tol` (default 1e-7)
|
|
41
|
+
*
|
|
42
|
+
* @example
|
|
43
|
+
* lasso([[1], [2], [3], [4]], [2, 4, 6, 8], 100)
|
|
44
|
+
* // => coefficients[0] === 0 (penalty overwhelms the signal)
|
|
45
|
+
*/
|
|
46
|
+
export declare function lasso(X: number[][], y: number[], alpha: number, opts?: CoordinateDescentOptions): RegularizedRegressionResult;
|
|
47
|
+
/**
|
|
48
|
+
* Elastic-net regression combining an L1 penalty (`alpha * l1Ratio`, soft-
|
|
49
|
+
* thresholded) and an L2 penalty (`alpha * (1 - l1Ratio)`, added to the
|
|
50
|
+
* coordinate-descent denominator) via the same cyclic coordinate descent as
|
|
51
|
+
* `lasso`. `l1Ratio = 1` is pure lasso; `l1Ratio = 0` is (coordinate-descent)
|
|
52
|
+
* ridge. The intercept is never penalized.
|
|
53
|
+
*
|
|
54
|
+
* @param X - Design matrix (rows = observations, cols = predictors)
|
|
55
|
+
* @param y - Response vector (length = number of observations)
|
|
56
|
+
* @param alpha - Overall penalty strength (`alpha >= 0`)
|
|
57
|
+
* @param l1Ratio - Mixing parameter in `[0, 1]` between L1 and L2
|
|
58
|
+
* @param opts - `intercept` (default true), `maxIter` (default 1000), `tol` (default 1e-7)
|
|
59
|
+
*
|
|
60
|
+
* @example
|
|
61
|
+
* elasticNet([[1], [2], [3], [4]], [2, 4, 6, 8], 0.1, 0.5)
|
|
62
|
+
* // => finite coefficients blending ridge shrinkage and lasso sparsity
|
|
63
|
+
*/
|
|
64
|
+
export declare function elasticNet(X: number[][], y: number[], alpha: number, l1Ratio: number, opts?: CoordinateDescentOptions): RegularizedRegressionResult;
|
|
65
|
+
//# sourceMappingURL=regularized-regression.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"regularized-regression.d.ts","sourceRoot":"","sources":["../../src/ml/regularized-regression.ts"],"names":[],"mappings":"AAgBA,MAAM,WAAW,YAAY;IAC3B,kEAAkE;IAClE,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,wBAAyB,SAAQ,YAAY;IAC5D,wDAAwD;IACxD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,oFAAoF;IACpF,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,2BAA2B;IAC1C,0EAA0E;IAC1E,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,0DAA0D;IAC1D,SAAS,EAAE,MAAM,CAAC;CACnB;AAqDD;;;;;;;;;;;;GAYG;AACH,wBAAgB,KAAK,CACnB,CAAC,EAAE,MAAM,EAAE,EAAE,EACb,CAAC,EAAE,MAAM,EAAE,EACX,KAAK,EAAE,MAAM,EACb,IAAI,CAAC,EAAE,YAAY,GAClB,2BAA2B,CAwB7B;AAyDD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,KAAK,CACnB,CAAC,EAAE,MAAM,EAAE,EAAE,EACb,CAAC,EAAE,MAAM,EAAE,EACX,KAAK,EAAE,MAAM,EACb,IAAI,CAAC,EAAE,wBAAwB,GAC9B,2BAA2B,CAc7B;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,UAAU,CACxB,CAAC,EAAE,MAAM,EAAE,EAAE,EACb,CAAC,EAAE,MAAM,EAAE,EACX,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EACf,IAAI,CAAC,EAAE,wBAAwB,GAC9B,2BAA2B,CAiB7B"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Maximum-likelihood distribution fitting (Phase 4 Task 1).
|
|
3
|
+
*
|
|
4
|
+
* `fitDistribution(name, data)` fits one of five common distributions to a
|
|
5
|
+
* sample by maximum likelihood and reports the fitted parameters plus the
|
|
6
|
+
* achieved log-likelihood.
|
|
7
|
+
*
|
|
8
|
+
* - `normal` — closed form: mu = mean, sigma = population std (ddof=0).
|
|
9
|
+
* - `exponential` — closed form: lambda = 1 / mean.
|
|
10
|
+
* - `lognormal` — fit a normal to ln(data) (requires all data > 0).
|
|
11
|
+
* - `poisson` — closed form: lambda = mean.
|
|
12
|
+
* - `gamma` — no closed form for the shape parameter. Given shape k,
|
|
13
|
+
* the MLE scale is theta = xbar / k; substituting back yields the
|
|
14
|
+
* 1-D shape equation `ln(k) - psi(k) = ln(xbar) - mean(ln x)`
|
|
15
|
+
* (psi = digamma), solved here with the secant method starting from the
|
|
16
|
+
* Choi & Wette (1969) initial guess.
|
|
17
|
+
*
|
|
18
|
+
* @packageDocumentation
|
|
19
|
+
*/
|
|
20
|
+
/** Supported distribution families for {@link fitDistribution}. */
|
|
21
|
+
export type DistributionName = 'normal' | 'exponential' | 'lognormal' | 'poisson' | 'gamma';
|
|
22
|
+
/** Result of {@link fitDistribution}: fitted parameters + achieved log-likelihood. */
|
|
23
|
+
export interface FitDistributionResult {
|
|
24
|
+
/** Fitted parameters, named per distribution (see {@link fitDistribution}). */
|
|
25
|
+
params: Record<string, number>;
|
|
26
|
+
/** Log-likelihood of `data` under the fitted parameters. */
|
|
27
|
+
logLikelihood: number;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Fit a distribution to `data` by maximum likelihood.
|
|
31
|
+
*
|
|
32
|
+
* @param name - Distribution family: 'normal' | 'exponential' | 'lognormal' | 'poisson' | 'gamma'
|
|
33
|
+
* @param data - Sample data
|
|
34
|
+
* @returns Fitted parameters and the log-likelihood achieved under them
|
|
35
|
+
*
|
|
36
|
+
* @example
|
|
37
|
+
* fitDistribution('normal', [2, 4, 4, 4, 5, 5, 7, 9]);
|
|
38
|
+
* // { params: { mean: 5, std: 2 }, logLikelihood: ... }
|
|
39
|
+
*
|
|
40
|
+
* fitDistribution('exponential', [1, 2, 3, 2]);
|
|
41
|
+
* // { params: { lambda: 0.5 }, logLikelihood: ... }
|
|
42
|
+
*/
|
|
43
|
+
export declare function fitDistribution(name: DistributionName, data: readonly number[]): FitDistributionResult;
|
|
44
|
+
//# sourceMappingURL=fit-distribution.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fit-distribution.d.ts","sourceRoot":"","sources":["../../src/stats/fit-distribution.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAMH,mEAAmE;AACnE,MAAM,MAAM,gBAAgB,GAAG,QAAQ,GAAG,aAAa,GAAG,WAAW,GAAG,SAAS,GAAG,OAAO,CAAC;AAE5F,sFAAsF;AACtF,MAAM,WAAW,qBAAqB;IACpC,+EAA+E;IAC/E,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,4DAA4D;IAC5D,aAAa,EAAE,MAAM,CAAC;CACvB;AA8FD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,eAAe,CAC7B,IAAI,EAAE,gBAAgB,EACtB,IAAI,EAAE,SAAS,MAAM,EAAE,GACtB,qBAAqB,CAoBvB"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/** Result of {@link chi2Contingency}. */
|
|
2
|
+
export interface Chi2ContingencyResult {
|
|
3
|
+
chi2: number;
|
|
4
|
+
pValue: number;
|
|
5
|
+
dof: number;
|
|
6
|
+
expected: number[][];
|
|
7
|
+
cramersV: number;
|
|
8
|
+
}
|
|
9
|
+
/** Options for {@link chi2Contingency}. */
|
|
10
|
+
export interface Chi2ContingencyOptions {
|
|
11
|
+
/** Apply the Yates continuity correction on 2x2 tables. Default true (matches scipy). */
|
|
12
|
+
correction?: boolean;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Chi-square test of independence on a contingency table.
|
|
16
|
+
*
|
|
17
|
+
* Expected counts `E_ij = rowSum_i * colSum_j / total`. `chi2 = sum((O_ij -
|
|
18
|
+
* E_ij)^2 / E_ij)`, with the Yates continuity correction
|
|
19
|
+
* `(|O_ij - E_ij| - 0.5)^2 / E_ij` applied on 2x2 tables when
|
|
20
|
+
* `opts.correction !== false` (default true, matching
|
|
21
|
+
* `scipy.stats.chi2_contingency`). `dof = (rows - 1) * (cols - 1)`; `pValue =
|
|
22
|
+
* 1 - chiSquaredCDF(chi2, dof)`. `cramersV = sqrt(chi2 / (total *
|
|
23
|
+
* min(rows-1, cols-1)))`.
|
|
24
|
+
*
|
|
25
|
+
* @example
|
|
26
|
+
* chi2Contingency([[10, 20], [30, 40]], { correction: false });
|
|
27
|
+
* // { chi2: 0.7937, pValue: 0.373, dof: 1, expected: [[12, 18], [28, 42]], cramersV }
|
|
28
|
+
*/
|
|
29
|
+
export declare function chi2Contingency(table: readonly (readonly number[])[], opts?: Chi2ContingencyOptions): Chi2ContingencyResult;
|
|
30
|
+
/** Supported multiple-testing correction methods. */
|
|
31
|
+
export type MultipleTestMethod = 'bonferroni' | 'holm' | 'bh';
|
|
32
|
+
/**
|
|
33
|
+
* Multiple-testing p-value adjustment, returned in the original input order.
|
|
34
|
+
* Matches `statsmodels.stats.multitest.multipletests`.
|
|
35
|
+
*
|
|
36
|
+
* - `bonferroni`: `min(1, p_i * n)`.
|
|
37
|
+
* - `holm` (step-down): sort ascending; adjusted_(k) = `min(1, max_{j<=k}
|
|
38
|
+
* (n - j + 1) * p_(j))`, enforced monotonic non-decreasing.
|
|
39
|
+
* - `bh` (Benjamini-Hochberg FDR, step-up): sort ascending; adjusted_(k) =
|
|
40
|
+
* `min(1, min_{j>=k} (n / j) * p_(j))`, enforced monotonic non-decreasing
|
|
41
|
+
* from the largest p-value down.
|
|
42
|
+
*
|
|
43
|
+
* @example multipleTest([0.01, 0.04, 0.5], 'bonferroni'); // [0.03, 0.12, 1]
|
|
44
|
+
*/
|
|
45
|
+
export declare function multipleTest(pValues: readonly number[], method: MultipleTestMethod): number[];
|
|
46
|
+
//# sourceMappingURL=inference-extra.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"inference-extra.d.ts","sourceRoot":"","sources":["../../src/stats/inference-extra.ts"],"names":[],"mappings":"AAaA,yCAAyC;AACzC,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,EAAE,EAAE,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,2CAA2C;AAC3C,MAAM,WAAW,sBAAsB;IACrC,yFAAyF;IACzF,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,eAAe,CAC7B,KAAK,EAAE,SAAS,CAAC,SAAS,MAAM,EAAE,CAAC,EAAE,EACrC,IAAI,GAAE,sBAA2B,GAChC,qBAAqB,CA0CvB;AAED,qDAAqD;AACrD,MAAM,MAAM,kBAAkB,GAAG,YAAY,GAAG,MAAM,GAAG,IAAI,CAAC;AAE9D;;;;;;;;;;;;GAYG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,EAAE,MAAM,EAAE,kBAAkB,GAAG,MAAM,EAAE,CAiC7F"}
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Noncentral chi-squared CDF via the Poisson-mixture representation:
|
|
3
|
+
*
|
|
4
|
+
* F(x; k, λ) = Σ_{j=0}^∞ Pois(j; λ/2) · chiSquaredCDF(x, k + 2j)
|
|
5
|
+
*
|
|
6
|
+
* Truncated once the cumulative Poisson mass covers `1 − 1e-12` of the total
|
|
7
|
+
* (past the Poisson mode, so truncation never fires during the rising phase).
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* noncentralChi2CDF(10, 3, 2); // ~0.89856 (scipy ncx2.cdf)
|
|
11
|
+
*/
|
|
12
|
+
export declare function noncentralChi2CDF(x: number, df: number, nc: number): number;
|
|
13
|
+
/**
|
|
14
|
+
* Noncentral F CDF via the Poisson-mixture representation over the numerator
|
|
15
|
+
* degrees of freedom:
|
|
16
|
+
*
|
|
17
|
+
* F(x; d1, d2, λ) = Σ_{j=0}^∞ Pois(j; λ/2) · fCDF(x·d1/(d1+2j), d1+2j, d2)
|
|
18
|
+
*
|
|
19
|
+
* Truncated the same way as {@link noncentralChi2CDF}.
|
|
20
|
+
*
|
|
21
|
+
* @example
|
|
22
|
+
* noncentralFCDF(2, 3, 10, 4); // ~0.46636 (scipy ncf.cdf)
|
|
23
|
+
*/
|
|
24
|
+
export declare function noncentralFCDF(x: number, dfn: number, dfd: number, nc: number): number;
|
|
25
|
+
/**
|
|
26
|
+
* Noncentral Student-t CDF via the mixture representation
|
|
27
|
+
* `T = (Z + δ) / sqrt(V/ν)`, `Z ~ N(0,1)`, `V ~ χ²_ν` independent:
|
|
28
|
+
*
|
|
29
|
+
* F(t; ν, δ) = E_V[ Φ(t·sqrt(V/ν) − δ) ] = ∫₀^∞ Φ(t·sqrt(v/ν) − δ) · χ²_ν(v) dv
|
|
30
|
+
*
|
|
31
|
+
* Evaluated by composite Simpson's rule over `v` (central-χ² density; `δ`
|
|
32
|
+
* only enters the normal-CDF term). The upper integration bound is set
|
|
33
|
+
* generously past the χ²_ν tail so the truncation error is negligible
|
|
34
|
+
* relative to the ~1e-4 Simpson discretization error at the panel count used.
|
|
35
|
+
*
|
|
36
|
+
* @example
|
|
37
|
+
* noncentralTCDF(1.5, 10, 2); // ~0.30479 (scipy nct.cdf)
|
|
38
|
+
*/
|
|
39
|
+
export declare function noncentralTCDF(t: number, df: number, nc: number): number;
|
|
40
|
+
/** Options shared by the circular-statistics functions. */
|
|
41
|
+
export interface CircularOptions {
|
|
42
|
+
/** Upper bound of the angular range. Default `2π`. */
|
|
43
|
+
high?: number;
|
|
44
|
+
/** Lower bound of the angular range. Default `0`. */
|
|
45
|
+
low?: number;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Circular (angular) mean, mapped back into `[low, high)`.
|
|
49
|
+
*
|
|
50
|
+
* `mean = atan2(Σsinθ, Σcosθ)`, where `θ` is `angles` rescaled into
|
|
51
|
+
* `[0, 2π)` when a non-default `[low, high)` range is given (matching
|
|
52
|
+
* `scipy.stats.circmean`).
|
|
53
|
+
*
|
|
54
|
+
* @example
|
|
55
|
+
* circmean([0.1, 0.2, 6.2]); // ~0.07236 (scipy circmean; wraps near 0)
|
|
56
|
+
*/
|
|
57
|
+
export declare function circmean(angles: readonly number[], opts?: CircularOptions): number;
|
|
58
|
+
/**
|
|
59
|
+
* Circular variance `1 − R`, where `R = |Σcosθ + iΣsinθ| / n` is the mean
|
|
60
|
+
* resultant length. `R ∈ [0, 1]`, so `circvar ∈ [0, 1]`.
|
|
61
|
+
*/
|
|
62
|
+
export declare function circvar(angles: readonly number[], opts?: CircularOptions): number;
|
|
63
|
+
/**
|
|
64
|
+
* Circular standard deviation `sqrt(−2·ln(R))` (matches `scipy.stats.circstd`
|
|
65
|
+
* with the default `normalize=False` low/high dispersion measure).
|
|
66
|
+
*/
|
|
67
|
+
export declare function circstd(angles: readonly number[], opts?: CircularOptions): number;
|
|
68
|
+
/**
|
|
69
|
+
* Von Mises probability density function (the circular analogue of the
|
|
70
|
+
* normal distribution).
|
|
71
|
+
*
|
|
72
|
+
* f(θ; μ, κ) = exp(κ·cos(θ − μ)) / (2π·I₀(κ))
|
|
73
|
+
*
|
|
74
|
+
* `I₀` is the modified Bessel function of the first kind, order 0
|
|
75
|
+
* (`besselIScalar` — the shared special-function scalar backing the public
|
|
76
|
+
* `besselI`).
|
|
77
|
+
*
|
|
78
|
+
* @example
|
|
79
|
+
* vonMisesPDF(0, 0, 2); // ~0.51589 (scipy vonmises.pdf(0, 2))
|
|
80
|
+
*/
|
|
81
|
+
export declare function vonMisesPDF(theta: number, mu: number, kappa: number): number;
|
|
82
|
+
/** Options for {@link mcnemar}. */
|
|
83
|
+
export interface McNemarOptions {
|
|
84
|
+
/** Apply the continuity correction (`|b−c| − 1`). Default `true`. */
|
|
85
|
+
correction?: boolean;
|
|
86
|
+
}
|
|
87
|
+
/** Result of {@link mcnemar}. */
|
|
88
|
+
export interface McNemarResult {
|
|
89
|
+
chi2: number;
|
|
90
|
+
pValue: number;
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* McNemar's test for paired nominal data on a 2x2 table
|
|
94
|
+
* `[[a, b], [c, d]]` (only the discordant pairs `b`, `c` matter):
|
|
95
|
+
*
|
|
96
|
+
* chi2 = (|b − c| − correction)² / (b + c)
|
|
97
|
+
*
|
|
98
|
+
* with the continuity correction (`1`) applied by default, matching
|
|
99
|
+
* `statsmodels.stats.contingency_tables.mcnemar`. `pValue = 1 −
|
|
100
|
+
* chiSquaredCDF(chi2, 1)`.
|
|
101
|
+
*
|
|
102
|
+
* @example
|
|
103
|
+
* mcnemar([[10, 5], [3, 12]], { correction: false }); // { chi2: 0.5, pValue: ... }
|
|
104
|
+
*/
|
|
105
|
+
export declare function mcnemar(table: readonly (readonly number[])[], opts?: McNemarOptions): McNemarResult;
|
|
106
|
+
/** Result of {@link cochranQ}. */
|
|
107
|
+
export interface CochranQResult {
|
|
108
|
+
Q: number;
|
|
109
|
+
pValue: number;
|
|
110
|
+
dof: number;
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Cochran's Q test — the extension of McNemar's test to `k > 2` matched
|
|
114
|
+
* binary treatments. `data` has one row per subject, one column per
|
|
115
|
+
* treatment (0/1 entries).
|
|
116
|
+
*
|
|
117
|
+
* Q = (k−1)·(k·ΣCⱼ² − N²) / (k·N − ΣRᵢ²)
|
|
118
|
+
*
|
|
119
|
+
* where `Cⱼ` are column sums, `Rᵢ` are row sums, and `N = ΣRᵢ`. `dof = k −
|
|
120
|
+
* 1`; `pValue = 1 − chiSquaredCDF(Q, k−1)`. Matches
|
|
121
|
+
* `statsmodels.stats.contingency_tables.cochrans_q`.
|
|
122
|
+
*
|
|
123
|
+
* @example
|
|
124
|
+
* cochranQ([[1, 1, 0], [1, 0, 0], [1, 1, 1], [0, 1, 0], [1, 1, 0]]);
|
|
125
|
+
*/
|
|
126
|
+
export declare function cochranQ(data: readonly (readonly number[])[]): CochranQResult;
|
|
127
|
+
//# sourceMappingURL=inference-extra2.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"inference-extra2.d.ts","sourceRoot":"","sources":["../../src/stats/inference-extra2.ts"],"names":[],"mappings":"AAgBA;;;;;;;;;;GAUG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,CAiB3E;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,CAkBtF;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,CAsBxE;AAED,2DAA2D;AAC3D,MAAM,WAAW,eAAe;IAC9B,sDAAsD;IACtD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,qDAAqD;IACrD,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAsBD;;;;;;;;;GASG;AACH,wBAAgB,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,EAAE,IAAI,GAAE,eAAoB,GAAG,MAAM,CAMtF;AAED;;;GAGG;AACH,wBAAgB,OAAO,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,EAAE,IAAI,GAAE,eAAoB,GAAG,MAAM,CAMrF;AAED;;;GAGG;AACH,wBAAgB,OAAO,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,EAAE,IAAI,GAAE,eAAoB,GAAG,MAAM,CAMrF;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAG5E;AAED,mCAAmC;AACnC,MAAM,WAAW,cAAc;IAC7B,qEAAqE;IACrE,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,iCAAiC;AACjC,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,OAAO,CACrB,KAAK,EAAE,SAAS,CAAC,SAAS,MAAM,EAAE,CAAC,EAAE,EACrC,IAAI,GAAE,cAAmB,GACxB,aAAa,CAYf;AAED,kCAAkC;AAClC,MAAM,WAAW,cAAc;IAC7B,CAAC,EAAE,MAAM,CAAC;IACV,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;CACb;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC,SAAS,MAAM,EAAE,CAAC,EAAE,GAAG,cAAc,CA8B7E"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Partial autocorrelation function up to `nlags` (inclusive), via the
|
|
3
|
+
* Levinson-Durbin recursion applied to the biased autocorrelations (`acf`).
|
|
4
|
+
* `pacf[0] = 1`. Matches `statsmodels.tsa.stattools.pacf(x, nlags, method='ldb')`.
|
|
5
|
+
*
|
|
6
|
+
* @example
|
|
7
|
+
* pacf([1, 2, 3, 2, 1, 2, 3, 2, 1, 2, 3, 2], 3) // => [1, 0, -0.8333..., 0]
|
|
8
|
+
*/
|
|
9
|
+
export declare function pacf(x: number[], nlags: number): number[];
|
|
10
|
+
/** Result of {@link ljungBox}. */
|
|
11
|
+
export interface LjungBoxResult {
|
|
12
|
+
statistic: number;
|
|
13
|
+
pValue: number;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Ljung-Box portmanteau test for autocorrelation up to lag `lags`.
|
|
17
|
+
* `Q = n(n+2) * Σ_{k=1}^{lags} ρ_k² / (n-k)`, `pValue = 1 - chiSquaredCDF(Q, lags)`.
|
|
18
|
+
* Matches `statsmodels.stats.diagnostic.acorr_ljungbox`.
|
|
19
|
+
*/
|
|
20
|
+
export declare function ljungBox(x: number[], lags: number): LjungBoxResult;
|
|
21
|
+
/**
|
|
22
|
+
* Durbin-Watson statistic for residual autocorrelation:
|
|
23
|
+
* `Σ_{t=2}^{n}(e_t - e_{t-1})² / Σ_{t=1}^{n} e_t²`. Ranges (0, 4); ~2 indicates
|
|
24
|
+
* no autocorrelation, <2 positive autocorrelation, >2 negative. Matches
|
|
25
|
+
* `statsmodels.stats.stattools.durbin_watson`.
|
|
26
|
+
*/
|
|
27
|
+
export declare function durbinWatson(residuals: number[]): number;
|
|
28
|
+
/** Result of {@link adfuller}. */
|
|
29
|
+
export interface AdfullerResult {
|
|
30
|
+
statistic: number;
|
|
31
|
+
pValue: number;
|
|
32
|
+
usedLag: number;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Augmented Dickey-Fuller unit-root test (constant-only "c" model):
|
|
36
|
+
* regresses `Δx_t` on `[1, x_{t-1}, Δx_{t-1}, ..., Δx_{t-maxlag}]` via OLS.
|
|
37
|
+
* `statistic = coefficients[1] / stderr[1]` (the t-stat on the lagged level,
|
|
38
|
+
* `coefficients[0]` being the intercept). `pValue` is an approximate
|
|
39
|
+
* MacKinnon-style interpolation (see module docstring) — not exact.
|
|
40
|
+
*
|
|
41
|
+
* Default `maxlag = floor(12 * (n/100)^0.25)` (matches
|
|
42
|
+
* `statsmodels.tsa.stattools.adfuller`'s default rule), clamped downward if
|
|
43
|
+
* needed so the regression has more observations than parameters; `usedLag`
|
|
44
|
+
* reports the lag count actually used.
|
|
45
|
+
*
|
|
46
|
+
* @example
|
|
47
|
+
* adfuller(whiteNoiseSeries) // => { statistic: <very negative>, pValue: <small>, usedLag }
|
|
48
|
+
*/
|
|
49
|
+
export declare function adfuller(x: number[], maxlag?: number): AdfullerResult;
|
|
50
|
+
//# sourceMappingURL=timeseries.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"timeseries.d.ts","sourceRoot":"","sources":["../../src/stats/timeseries.ts"],"names":[],"mappings":"AA6BA;;;;;;;GAOG;AACH,wBAAgB,IAAI,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CA+BzD;AAED,kCAAkC;AAClC,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;;GAIG;AACH,wBAAgB,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,GAAG,cAAc,CAUlE;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,MAAM,CAUxD;AAED,kCAAkC;AAClC,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;CACjB;AAkDD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,cAAc,CAwCrE"}
|
|
@@ -270,22 +270,40 @@ export declare function shapiroWilkTest(sample: f64[], opts?: BootstrapOptions):
|
|
|
270
270
|
* result.explained // [1.0]
|
|
271
271
|
*/
|
|
272
272
|
export declare function principalComponentAnalysis(data: f64[][], k?: number): PCAResult;
|
|
273
|
+
/** Options for {@link kolmogorovSmirnov2Test}. */
|
|
274
|
+
export interface KS2Options {
|
|
275
|
+
/**
|
|
276
|
+
* `'asymp'` (default): large-sample `kstwobign` asymptotic p-value —
|
|
277
|
+
* unchanged from the original implementation, so omitting `opts` entirely
|
|
278
|
+
* preserves the exact prior behavior.
|
|
279
|
+
* `'exact'`: exact lattice-path p-value (Kim & Jennrich), matching
|
|
280
|
+
* `scipy.stats.ks_2samp(..., method='exact')`.
|
|
281
|
+
* `'auto'`: exact when n1*n2 <= 10000, else asymptotic (scipy's own
|
|
282
|
+
* threshold for switching to the asymptotic approximation).
|
|
283
|
+
*/
|
|
284
|
+
method?: 'auto' | 'exact' | 'asymp';
|
|
285
|
+
}
|
|
273
286
|
/**
|
|
274
287
|
* Two-sample Kolmogorov–Smirnov test: are two samples drawn from the same
|
|
275
288
|
* continuous distribution? The statistic is the maximum gap between the two
|
|
276
|
-
* empirical CDFs, D = maxₓ |F₁(x) − F₂(x)
|
|
277
|
-
* asymptotic Q(√(n₁n₂/(n₁+n₂))·D) (the `kstwobign` survival
|
|
278
|
-
* scipy's asymptotic method
|
|
279
|
-
*
|
|
289
|
+
* empirical CDFs, D = maxₓ |F₁(x) − F₂(x)|. By default the p-value is the
|
|
290
|
+
* large-sample asymptotic Q(√(n₁n₂/(n₁+n₂))·D) (the `kstwobign` survival
|
|
291
|
+
* function, matching scipy's asymptotic method) — this default is unchanged
|
|
292
|
+
* from before Phase 4. Pass `{ method: 'exact' }` to opt into the exact
|
|
293
|
+
* lattice-path p-value instead (`scipy.stats.ks_2samp(..., method='exact')`).
|
|
294
|
+
* Distinct from the one-sample {@link kolmogorovSmirnovTest}, which compares
|
|
295
|
+
* one sample to a CDF *function*.
|
|
280
296
|
*
|
|
281
297
|
* @param sample1 - first sample (non-empty)
|
|
282
298
|
* @param sample2 - second sample (non-empty)
|
|
299
|
+
* @param opts - `{ method: 'auto' | 'exact' | 'asymp' }` (default 'asymp')
|
|
283
300
|
* @returns `{ statistic: D, pValue }`
|
|
284
301
|
*
|
|
285
302
|
* @example
|
|
286
|
-
* kolmogorovSmirnov2Test([0.1, 0.4, 0.6], [0.3, 0.5, 0.9]) // { statistic, pValue }
|
|
303
|
+
* kolmogorovSmirnov2Test([0.1, 0.4, 0.6], [0.3, 0.5, 0.9]) // { statistic, pValue } (asymptotic)
|
|
304
|
+
* kolmogorovSmirnov2Test(a, b, { method: 'exact' }) // exact lattice-path p-value
|
|
287
305
|
*/
|
|
288
|
-
export declare function kolmogorovSmirnov2Test(sample1: f64[], sample2: f64[]): KSTestResult;
|
|
306
|
+
export declare function kolmogorovSmirnov2Test(sample1: f64[], sample2: f64[], opts?: KS2Options): KSTestResult;
|
|
289
307
|
/** Variance-homogeneity test result. `degreesOfFreedom` is `[d1, d2]` for the
|
|
290
308
|
* F-based Levene test, a single number for the χ²-based Bartlett test. */
|
|
291
309
|
export interface VarianceTestResult {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hypothesis.d.ts","sourceRoot":"","sources":["../../src/typed/hypothesis.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAWH,mBAAmB;AACnB,KAAK,GAAG,GAAG,MAAM,CAAC;AAElB,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,GAAG,CAAC;IACf,MAAM,EAAE,GAAG,CAAC;IACZ,gBAAgB,EAAE,GAAG,CAAC;CACvB;AAED,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,GAAG,CAAC;IACf,MAAM,EAAE,GAAG,CAAC;IACZ,gBAAgB,EAAE,GAAG,CAAC;CACvB;AAED,MAAM,WAAW,WAAW;IAC1B,UAAU,EAAE,GAAG,CAAC;IAChB,MAAM,EAAE,GAAG,CAAC;IACZ,SAAS,EAAE,GAAG,CAAC;IACf,QAAQ,EAAE,GAAG,CAAC;CACf;AAED,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,GAAG,CAAC;IACf,MAAM,EAAE,GAAG,CAAC;CACb;AAED,MAAM,WAAW,iBAAiB;IAChC,UAAU,EAAE,GAAG,CAAC;IAChB,MAAM,EAAE,GAAG,CAAC;CACb;AAED,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,GAAG,CAAC;IACf,MAAM,EAAE,GAAG,CAAC;CACb;AAED,MAAM,WAAW,SAAS;IACxB,UAAU,EAAE,GAAG,EAAE,EAAE,CAAC;IACpB,SAAS,EAAE,GAAG,EAAE,CAAC;IACjB,MAAM,EAAE,GAAG,EAAE,EAAE,CAAC;CACjB;AAMD;;;;;;;;GAQG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,iBAAiB;IAChC,2DAA2D;IAC3D,SAAS,EAAE,GAAG,CAAC;IACf,yEAAyE;IACzE,eAAe,EAAE,GAAG,CAAC;IACrB,iCAAiC;IACjC,mBAAmB,EAAE,YAAY,CAAC;IAClC,aAAa,EAAE,GAAG,CAAC;IACnB,YAAY,EAAE,GAAG,CAAC;CACnB;AAED,MAAM,WAAW,iBAAiB;IAChC,2DAA2D;IAC3D,UAAU,EAAE,GAAG,CAAC;IAChB,gEAAgE;IAChE,eAAe,EAAE,GAAG,CAAC;IACrB,iCAAiC;IACjC,mBAAmB,EAAE,YAAY,CAAC;IAClC,aAAa,EAAE,GAAG,CAAC;IACnB,YAAY,EAAE,GAAG,CAAC;CACnB;AAED,MAAM,WAAW,iBAAiB;IAChC,2DAA2D;IAC3D,SAAS,EAAE,GAAG,CAAC;IACf;;;OAGG;IACH,eAAe,EAAE,GAAG,CAAC;IACrB,iCAAiC;IACjC,mBAAmB,EAAE,YAAY,CAAC;IAClC,aAAa,EAAE,GAAG,CAAC;IACnB,YAAY,EAAE,GAAG,CAAC;CACnB;AAED,MAAM,WAAW,wBAAwB;IACvC,8DAA8D;IAC9D,SAAS,EAAE,GAAG,CAAC;IACf,4DAA4D;IAC5D,eAAe,EAAE,GAAG,CAAC;IACrB,oCAAoC;IACpC,mBAAmB,EAAE,YAAY,CAAC;IAClC,aAAa,EAAE,GAAG,CAAC;IACnB,YAAY,EAAE,GAAG,CAAC;CACnB;
|
|
1
|
+
{"version":3,"file":"hypothesis.d.ts","sourceRoot":"","sources":["../../src/typed/hypothesis.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED