regressio 0.0.1

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.
@@ -0,0 +1,545 @@
1
+ /**
2
+ * Computation engine abstraction.
3
+ * Default: pure TypeScript. Call useWasmEngine() to switch to WASM backend.
4
+ *
5
+ * The WASM engine accelerates: matrix multiply, QR decomposition, Cholesky, back-substitution.
6
+ * All other operations remain in TypeScript.
7
+ */
8
+ interface WasmModule {
9
+ matrix_multiply(a: Float64Array, a_rows: number, a_cols: number, b: Float64Array, b_rows: number, b_cols: number): Float64Array;
10
+ qr_decompose(data: Float64Array, rows: number, cols: number): Float64Array;
11
+ cholesky(data: Float64Array, n: number): Float64Array;
12
+ solve_triangular(r: Float64Array, b: Float64Array, n: number): Float64Array;
13
+ }
14
+ interface ComputeEngine {
15
+ name: "typescript" | "wasm";
16
+ wasm?: WasmModule;
17
+ }
18
+ /** Get the current computation engine. */
19
+ declare function getEngine(): ComputeEngine;
20
+ /** Check if the WASM engine is active. */
21
+ declare function isWasmActive(): boolean;
22
+ /**
23
+ * Switch to the WASM computation engine for faster matrix operations.
24
+ * Requires the regressio WASM package to be built:
25
+ * cd rust && wasm-pack build --target bundler --out-dir ../pkg
26
+ */
27
+ declare function useWasmEngine(): Promise<void>;
28
+ /**
29
+ * Load WASM engine from a pre-loaded module (useful for custom bundler setups).
30
+ */
31
+ declare function useWasmModule(wasmModule: WasmModule): void;
32
+ /** Reset to the default TypeScript engine. */
33
+ declare function useTypescriptEngine(): void;
34
+ /**
35
+ * Matrix class backed by a flat Float64Array in row-major order.
36
+ * Provides all linear algebra primitives needed by the regression models.
37
+ * Matrix multiply is dispatched to the WASM engine when available.
38
+ */
39
+ declare class Matrix {
40
+ readonly rows: number;
41
+ readonly cols: number;
42
+ readonly data: Float64Array;
43
+ constructor(rows: number, cols: number, data?: Float64Array | number[]);
44
+ static fromArray(arr: number[][]): Matrix;
45
+ static zeros(rows: number, cols: number): Matrix;
46
+ static ones(rows: number, cols: number): Matrix;
47
+ static identity(n: number): Matrix;
48
+ static columnVector(arr: number[]): Matrix;
49
+ static rowVector(arr: number[]): Matrix;
50
+ static diagonal(values: number[]): Matrix;
51
+ get(i: number, j: number): number;
52
+ set(i: number, j: number, value: number): void;
53
+ getColumn(j: number): Matrix;
54
+ getRow(i: number): Matrix;
55
+ setColumn(j: number, col: Matrix): void;
56
+ transpose(): Matrix;
57
+ /** Matrix multiplication — dispatched to WASM engine when available. */
58
+ multiply(other: Matrix): Matrix;
59
+ add(other: Matrix): Matrix;
60
+ subtract(other: Matrix): Matrix;
61
+ scale(scalar: number): Matrix;
62
+ addInPlace(other: Matrix): void;
63
+ subtractInPlace(other: Matrix): void;
64
+ scaleInPlace(scalar: number): void;
65
+ /** Frobenius norm: sqrt(sum of squares). */
66
+ norm(): number;
67
+ /** Trace: sum of diagonal elements (square matrices only). */
68
+ trace(): number;
69
+ /** Determinant (square matrices only, via LU-like elimination). */
70
+ determinant(): number;
71
+ submatrix(rowStart: number, rowEnd: number, colStart: number, colEnd: number): Matrix;
72
+ clone(): Matrix;
73
+ toArray(): number[][];
74
+ toFlatArray(): number[];
75
+ /** Dot product for two column vectors. */
76
+ dot(other: Matrix): number;
77
+ private assertSameDimensions;
78
+ }
79
+ /** A 1D array of numbers (single feature or response vector). */
80
+ type DataVector = number[];
81
+ /** A 2D array of numbers (multiple features, rows = observations, cols = features). */
82
+ type DataMatrix = number[][];
83
+ /** Input data: 1D (single feature) auto-converts to 2D internally. */
84
+ type DataInput = DataVector | DataMatrix;
85
+ interface BaseModelOptions {
86
+ /** Whether to fit an intercept term (default: true). */
87
+ fitIntercept?: boolean;
88
+ }
89
+ interface RegularizedOptions extends BaseModelOptions {
90
+ /** Regularization strength (default: 1.0). */
91
+ alpha?: number;
92
+ }
93
+ interface ElasticNetOptions extends RegularizedOptions {
94
+ /** L1 ratio: 1 = pure Lasso, 0 = pure Ridge (default: 0.5). */
95
+ l1Ratio?: number;
96
+ /** Maximum iterations for coordinate descent (default: 1000). */
97
+ maxIterations?: number;
98
+ /** Convergence tolerance (default: 1e-4). */
99
+ tolerance?: number;
100
+ }
101
+ interface LassoOptions extends RegularizedOptions {
102
+ /** Maximum iterations for coordinate descent (default: 1000). */
103
+ maxIterations?: number;
104
+ /** Convergence tolerance (default: 1e-4). */
105
+ tolerance?: number;
106
+ }
107
+ interface PolynomialOptions extends BaseModelOptions {
108
+ /** Polynomial degree (default: 2). */
109
+ degree?: number;
110
+ }
111
+ interface WeightedOptions extends BaseModelOptions {
112
+ /** Observation weights — higher = more reliable. */
113
+ weights?: DataVector;
114
+ }
115
+ interface RobustOptions extends BaseModelOptions {
116
+ /** M-estimator method (default: "huber"). */
117
+ method?: "huber" | "tukey";
118
+ /** Tuning constant. Huber default: 1.345, Tukey default: 4.685. */
119
+ tuningConstant?: number;
120
+ /** Maximum IRLS iterations (default: 50). */
121
+ maxIterations?: number;
122
+ /** Convergence tolerance (default: 1e-4). */
123
+ tolerance?: number;
124
+ }
125
+ interface LogisticOptions extends BaseModelOptions {
126
+ /** Maximum iterations for IRLS (default: 100). */
127
+ maxIterations?: number;
128
+ /** Convergence tolerance (default: 1e-6). */
129
+ tolerance?: number;
130
+ }
131
+ interface FitResult {
132
+ /** Coefficients (excluding intercept). */
133
+ coefficients: number[];
134
+ /** Intercept term (0 if fitIntercept is false). */
135
+ intercept: number;
136
+ }
137
+ interface RegressionStatistics {
138
+ /** Coefficient of determination. */
139
+ rSquared: number;
140
+ /** Adjusted R-squared (penalises extra predictors). */
141
+ adjustedRSquared: number;
142
+ /** Standard errors of coefficients. */
143
+ standardErrors: number[];
144
+ /** t-statistics for each coefficient. */
145
+ tStatistics: number[];
146
+ /** Two-tailed p-values for each coefficient. */
147
+ pValues: number[];
148
+ /** 95 % confidence intervals for each coefficient [lower, upper]. */
149
+ confidenceIntervals: [number, number][];
150
+ /** F-statistic for overall model significance. */
151
+ fStatistic: number;
152
+ /** p-value for the F-statistic. */
153
+ fPValue: number;
154
+ /** Residual standard error (σ̂). */
155
+ residualStandardError: number;
156
+ /** Akaike Information Criterion. */
157
+ aic: number;
158
+ /** Bayesian Information Criterion. */
159
+ bic: number;
160
+ /** Residual degrees of freedom (n − p − 1). */
161
+ degreesOfFreedom: number;
162
+ /** Number of observations. */
163
+ nObservations: number;
164
+ }
165
+ interface ConfusionMatrix {
166
+ truePositives: number;
167
+ trueNegatives: number;
168
+ falsePositives: number;
169
+ falseNegatives: number;
170
+ }
171
+ interface ClassificationStatistics {
172
+ accuracy: number;
173
+ precision: number;
174
+ recall: number;
175
+ f1Score: number;
176
+ confusionMatrix: ConfusionMatrix;
177
+ /** McFadden's pseudo R-squared. */
178
+ pseudoRSquared: number;
179
+ /** Log-likelihood of the fitted model. */
180
+ logLikelihood: number;
181
+ /** AIC. */
182
+ aic: number;
183
+ /** BIC. */
184
+ bic: number;
185
+ }
186
+ interface ResidualDiagnostics {
187
+ /** Raw residuals (y − ŷ). */
188
+ raw: number[];
189
+ /** Studentized residuals. */
190
+ studentized: number[];
191
+ /** Cook's distance for each observation. */
192
+ cooksDistance: number[];
193
+ /** Leverage (hat matrix diagonal) for each observation. */
194
+ leverage: number[];
195
+ }
196
+ interface TestResult {
197
+ /** Test statistic value. */
198
+ statistic: number;
199
+ /** p-value. */
200
+ pValue: number;
201
+ }
202
+ interface PredictionInterval {
203
+ /** Point prediction ŷ. */
204
+ predicted: number;
205
+ /** Lower bound. */
206
+ lower: number;
207
+ /** Upper bound. */
208
+ upper: number;
209
+ }
210
+ interface BootstrapResult {
211
+ /** Mean of bootstrapped coefficients. */
212
+ coefficients: number[];
213
+ /** Empirical confidence intervals for each coefficient [lower, upper]. */
214
+ confidenceIntervals: [number, number][];
215
+ /** Bootstrap standard errors. */
216
+ standardErrors: number[];
217
+ }
218
+ interface ScalingParams {
219
+ means: number[];
220
+ stds: number[];
221
+ }
222
+ interface NormalizationParams {
223
+ mins: number[];
224
+ maxs: number[];
225
+ }
226
+ /**
227
+ * Compute Variance Inflation Factor for each feature.
228
+ * VIF_j = 1 / (1 - R²_j) where R²_j is from regressing x_j on all other x's.
229
+ * VIF > 10 signals multicollinearity.
230
+ */
231
+ declare function vif(X: DataMatrix): number[];
232
+ /**
233
+ * Compute pairwise Pearson correlation matrix.
234
+ * Returns p×p matrix of correlations.
235
+ */
236
+ declare function correlationMatrix(X: DataMatrix): number[][];
237
+ /**
238
+ * Compute the condition number of X: κ = σ_max / σ_min.
239
+ * κ > 30 signals potential numerical instability from multicollinearity.
240
+ */
241
+ declare function conditionNumber(X: DataMatrix): number;
242
+ /**
243
+ * Compute residual diagnostics for a fitted linear model.
244
+ * @param X Feature matrix (without intercept column)
245
+ * @param y Response vector
246
+ * @param yHat Predicted values
247
+ * @param fitIntercept Whether the model included an intercept
248
+ */
249
+ declare function residualDiagnostics(X: DataMatrix, y: DataVector, yHat: DataVector, fitIntercept?: boolean): ResidualDiagnostics;
250
+ /** Compute just the leverage (hat matrix diagonal) values. */
251
+ declare function leverage(X: DataMatrix, fitIntercept?: boolean): number[];
252
+ /** Compute Cook's distance for each observation. */
253
+ declare function cooksDistance2(X: DataMatrix, y: DataVector, yHat: DataVector, fitIntercept?: boolean): number[];
254
+ /** Compute studentized residuals. */
255
+ declare function studentizedResiduals(X: DataMatrix, y: DataVector, yHat: DataVector, fitIntercept?: boolean): number[];
256
+ /**
257
+ * Durbin-Watson test for autocorrelation in residuals.
258
+ * DW ∈ [0,4], ~2 = no autocorrelation, <2 = positive, >2 = negative.
259
+ */
260
+ declare function durbinWatson(residuals: DataVector): TestResult;
261
+ /**
262
+ * Breusch-Pagan test for heteroscedasticity.
263
+ * Regresses squared residuals on X, uses Chi² test statistic = n * R².
264
+ */
265
+ declare function breuschPagan(X: DataMatrix, residuals: DataVector): TestResult;
266
+ /**
267
+ * Shapiro-Wilk test for normality (simplified version for n ≤ 5000).
268
+ * Tests H0: data comes from a normal distribution.
269
+ */
270
+ declare function shapiroWilk(data: DataVector): TestResult;
271
+ declare abstract class BaseRegression {
272
+ protected _coefficients: number[];
273
+ protected _intercept: number;
274
+ protected _fitted: boolean;
275
+ protected _fitIntercept: boolean;
276
+ protected _X: DataMatrix;
277
+ protected _y: DataVector;
278
+ protected _yHat: DataVector;
279
+ constructor(options?: BaseModelOptions);
280
+ get coefficients(): number[];
281
+ get intercept(): number;
282
+ abstract predict(X: DataInput): DataVector;
283
+ residuals(): number[];
284
+ statistics(): RegressionStatistics;
285
+ summary(): string;
286
+ protected normalizeInput(X: DataInput): DataMatrix;
287
+ protected addInterceptColumn(X: DataMatrix): DataMatrix;
288
+ protected validateFitInput(X: DataMatrix, y: DataVector): void;
289
+ protected assertFitted(): void;
290
+ }
291
+ declare class LassoRegression extends BaseRegression {
292
+ protected _alpha: number;
293
+ protected _maxIterations: number;
294
+ protected _tolerance: number;
295
+ constructor(options?: LassoOptions);
296
+ fit(X: DataInput, y: DataVector): this;
297
+ predict(X: DataInput): DataVector;
298
+ protected coordinateUpdate(rho: number, colNormSq: number, n: number, _j: number): number;
299
+ protected softThreshold(rho: number, lambda: number): number;
300
+ protected standardize(X: DataMatrix, y: DataVector): {
301
+ Xstd: DataMatrix;
302
+ xMeans: number[];
303
+ xStds: number[];
304
+ yMean: number;
305
+ };
306
+ }
307
+ declare class ElasticNet extends LassoRegression {
308
+ private _l1Ratio;
309
+ constructor(options?: ElasticNetOptions);
310
+ protected coordinateUpdate(rho: number, colNormSq: number, n: number, _j: number): number;
311
+ }
312
+ interface KNNOptions {
313
+ /** Number of neighbors (default: 5). */
314
+ k?: number;
315
+ /** Distance metric (default: "euclidean"). */
316
+ distance?: "euclidean" | "manhattan";
317
+ /** Mode: "classification" predicts class labels, "regression" predicts mean of neighbors (default: "classification"). */
318
+ mode?: "classification" | "regression";
319
+ }
320
+ /**
321
+ * K-Nearest Neighbors for classification and regression.
322
+ * Stores training data and computes distances at prediction time.
323
+ */
324
+ declare class KNearestNeighbors {
325
+ private _k;
326
+ private _distance;
327
+ private _mode;
328
+ private _fitted;
329
+ private _X;
330
+ private _y;
331
+ constructor(options?: KNNOptions);
332
+ fit(X: DataInput, y: DataVector): this;
333
+ predict(X: DataInput): DataVector;
334
+ /** Return the k nearest neighbor indices for a single point. */
335
+ neighbors(point: number[]): number[];
336
+ private predictOne;
337
+ private findNeighbors;
338
+ private computeDistance;
339
+ private normalizeInput;
340
+ }
341
+ declare class LinearRegression extends BaseRegression {
342
+ constructor(options?: BaseModelOptions);
343
+ fit(X: DataInput, y: DataVector): this;
344
+ predict(X: DataInput): DataVector;
345
+ }
346
+ declare class LogisticRegression {
347
+ private _coefficients;
348
+ private _intercept;
349
+ private _fitted;
350
+ private _fitIntercept;
351
+ private _maxIterations;
352
+ private _tolerance;
353
+ private _y;
354
+ private _probabilities;
355
+ constructor(options?: LogisticOptions);
356
+ get coefficients(): number[];
357
+ get intercept(): number;
358
+ private sigmoid;
359
+ fit(X: DataInput, y: DataVector): this;
360
+ predict(X: DataInput): DataVector;
361
+ predictProbability(X: DataInput): DataVector;
362
+ statistics(): ClassificationStatistics;
363
+ private normalizeInput;
364
+ private addInterceptColumn;
365
+ }
366
+ interface MulticlassLogisticOptions {
367
+ /** Whether to fit an intercept term (default: true). */
368
+ fitIntercept?: boolean;
369
+ /** Maximum iterations for gradient descent (default: 200). */
370
+ maxIterations?: number;
371
+ /** Convergence tolerance (default: 1e-6). */
372
+ tolerance?: number;
373
+ /** Learning rate (default: 0.1). */
374
+ learningRate?: number;
375
+ }
376
+ interface MulticlassStatistics {
377
+ accuracy: number;
378
+ /** Per-class precision. */
379
+ precision: number[];
380
+ /** Per-class recall. */
381
+ recall: number[];
382
+ /** Number of classes. */
383
+ nClasses: number;
384
+ /** Log-likelihood. */
385
+ logLikelihood: number;
386
+ }
387
+ /**
388
+ * Multiclass Logistic Regression (multinomial) via softmax + gradient descent.
389
+ * Supports any number of classes (labels must be integers 0, 1, ..., K-1).
390
+ */
391
+ declare class MulticlassLogisticRegression {
392
+ private _weights;
393
+ private _fitted;
394
+ private _fitIntercept;
395
+ private _maxIterations;
396
+ private _tolerance;
397
+ private _learningRate;
398
+ private _nClasses;
399
+ private _classes;
400
+ private _X;
401
+ private _y;
402
+ constructor(options?: MulticlassLogisticOptions);
403
+ get weights(): Matrix;
404
+ get classes(): number[];
405
+ /** Softmax: converts raw scores to probabilities. */
406
+ private softmax;
407
+ fit(X: DataInput, y: DataVector): this;
408
+ /** Predict class labels. */
409
+ predict(X: DataInput): DataVector;
410
+ /** Predict class probabilities: returns array of probability vectors. */
411
+ predictProbability(X: DataInput): number[][];
412
+ statistics(): MulticlassStatistics;
413
+ private normalizeInput;
414
+ }
415
+ type ActivationFunction = "relu" | "sigmoid" | "tanh" | "linear" | "softmax";
416
+ interface LayerConfig {
417
+ /** Number of neurons in this layer. */
418
+ units: number;
419
+ /** Activation function (default: "relu"). */
420
+ activation?: ActivationFunction;
421
+ }
422
+ interface NeuralNetworkOptions {
423
+ /** Hidden layer configurations. Output layer is added automatically. */
424
+ layers: LayerConfig[];
425
+ /** Learning rate (default: 0.01). */
426
+ learningRate?: number;
427
+ /** Number of training epochs (default: 100). */
428
+ epochs?: number;
429
+ /** Task type (default: "regression"). */
430
+ task?: "regression" | "classification";
431
+ }
432
+ /**
433
+ * Feedforward Neural Network (Multi-Layer Perceptron) with backpropagation.
434
+ * Supports regression and classification tasks.
435
+ */
436
+ declare class NeuralNetwork {
437
+ private _layers;
438
+ private _learningRate;
439
+ private _epochs;
440
+ private _task;
441
+ private _fitted;
442
+ private _outputSize;
443
+ private _classes;
444
+ constructor(options: NeuralNetworkOptions);
445
+ private _layerConfigs;
446
+ private initializeLayers;
447
+ private createLayer;
448
+ fit(X: DataInput, y: DataVector): this;
449
+ predict(X: DataInput): DataVector;
450
+ /** Return raw output (probabilities for classification, values for regression). */
451
+ predictRaw(X: DataInput): number[][];
452
+ private forward;
453
+ private backward;
454
+ private activate;
455
+ private activationDerivative;
456
+ private sigmoid;
457
+ private encodeTarget;
458
+ private normalizeInput;
459
+ }
460
+ declare class PolynomialRegression extends BaseRegression {
461
+ private _degree;
462
+ private _inner;
463
+ constructor(options?: PolynomialOptions);
464
+ private expandFeatures;
465
+ fit(X: DataInput, y: DataVector): this;
466
+ predict(X: DataInput): DataVector;
467
+ }
468
+ declare class RidgeRegression extends BaseRegression {
469
+ private _alpha;
470
+ constructor(options?: RegularizedOptions);
471
+ fit(X: DataInput, y: DataVector): this;
472
+ predict(X: DataInput): DataVector;
473
+ }
474
+ declare class RobustRegression extends BaseRegression {
475
+ private _method;
476
+ private _tuningConstant;
477
+ private _maxIterations;
478
+ private _tolerance;
479
+ constructor(options?: RobustOptions);
480
+ fit(X: DataInput, y: DataVector): this;
481
+ predict(X: DataInput): DataVector;
482
+ }
483
+ declare class WeightedRegression extends BaseRegression {
484
+ private _weights;
485
+ constructor(options?: WeightedOptions);
486
+ fit(X: DataInput, y: DataVector, weights?: DataVector): this;
487
+ predict(X: DataInput): DataVector;
488
+ }
489
+ /**
490
+ * Bootstrap confidence intervals on regression coefficients.
491
+ * Resamples with replacement, refits the model nBootstrap times.
492
+ * Returns mean coefficients, empirical CIs (percentile method), and bootstrap SEs.
493
+ */
494
+ declare function bootstrapCoefficients(X: DataMatrix, y: DataVector, nBootstrap?: number, alpha?: number, fitIntercept?: boolean): BootstrapResult;
495
+ /**
496
+ * Compute confidence intervals on ŷ (uncertainty on the mean prediction).
497
+ * CI: ŷ ± t_{α/2,df} × s × √(x₀ᵀ (XᵀX)⁻¹ x₀)
498
+ */
499
+ declare function confidenceInterval(X: DataMatrix, y: DataVector, yHat: DataVector, newX: DataMatrix, newYHat: DataVector, fitIntercept?: boolean, alpha?: number): PredictionInterval[];
500
+ /**
501
+ * Compute prediction intervals on ŷ (uncertainty on a new individual observation).
502
+ * PI: ŷ ± t_{α/2,df} × √(s² + s² × x₀ᵀ (XᵀX)⁻¹ x₀)
503
+ * Always wider than confidence interval.
504
+ */
505
+ declare function predictionInterval(X: DataMatrix, y: DataVector, yHat: DataVector, newX: DataMatrix, newYHat: DataVector, fitIntercept?: boolean, alpha?: number): PredictionInterval[];
506
+ /**
507
+ * One-hot encode a categorical column.
508
+ * @param column Array of category labels (strings or numbers)
509
+ * @param categories Optional explicit category list. Auto-detected if omitted.
510
+ * @param dropFirst If true, drop the first category to avoid multicollinearity trap (default: false).
511
+ * @returns 2D array where each row is a binary vector.
512
+ */
513
+ declare function oneHotEncode(column: (string | number)[], categories?: (string | number)[], dropFirst?: boolean): number[][];
514
+ /**
515
+ * Generate polynomial features: for each column x, add x², x³, ..., x^degree.
516
+ * The original columns are preserved.
517
+ */
518
+ declare function polynomialFeatures(X: DataMatrix, degree: number): DataMatrix;
519
+ /**
520
+ * Generate interaction features: x_i * x_j for all pairs (or specified pairs).
521
+ * Original columns are NOT included in the output — only the interactions.
522
+ */
523
+ declare function interactionFeatures(X: DataMatrix, pairs?: [number, number][]): DataMatrix;
524
+ /** Remove rows containing NaN/null/undefined. */
525
+ declare function dropMissing(X: DataMatrix, y?: DataVector): {
526
+ X: DataMatrix;
527
+ y?: DataVector;
528
+ };
529
+ /** Replace NaN values with column means. */
530
+ declare function imputeMean(X: DataMatrix): DataMatrix;
531
+ /** Replace NaN values with column medians. */
532
+ declare function imputeMedian(X: DataMatrix): DataMatrix;
533
+ /** Standardize (z-score): mean=0, std=1. Returns transformed data + params. */
534
+ declare function standardize(X: DataMatrix): {
535
+ transformed: DataMatrix;
536
+ } & ScalingParams;
537
+ /** Inverse of standardize: restore original scale. */
538
+ declare function unstandardize(X: DataMatrix, params: ScalingParams): DataMatrix;
539
+ /** Normalize (min-max) to [0,1]. Returns transformed data + params. */
540
+ declare function normalize(X: DataMatrix): {
541
+ transformed: DataMatrix;
542
+ } & NormalizationParams;
543
+ /** Inverse of normalize: restore original scale. */
544
+ declare function unnormalize(X: DataMatrix, params: NormalizationParams): DataMatrix;
545
+ export { vif, useWasmModule, useWasmEngine, useTypescriptEngine, unstandardize, unnormalize, studentizedResiduals, standardize, shapiroWilk, residualDiagnostics, predictionInterval, polynomialFeatures, oneHotEncode, normalize, leverage, isWasmActive, interactionFeatures, imputeMedian, imputeMean, getEngine, durbinWatson, dropMissing, correlationMatrix, cooksDistance2 as cooksDistance, confidenceInterval, conditionNumber, breuschPagan, bootstrapCoefficients, WeightedRegression, WeightedOptions, WasmModule, TestResult, ScalingParams, RobustRegression, RobustOptions, RidgeRegression, ResidualDiagnostics, RegularizedOptions, RegressionStatistics, PredictionInterval, PolynomialRegression, PolynomialOptions, NormalizationParams, NeuralNetworkOptions, NeuralNetwork, MulticlassStatistics, MulticlassLogisticRegression, MulticlassLogisticOptions, Matrix, LogisticRegression, LogisticOptions, LinearRegression, LayerConfig, LassoRegression, LassoOptions, KNearestNeighbors, KNNOptions, FitResult, ElasticNetOptions, ElasticNet, DataVector, DataMatrix, DataInput, ConfusionMatrix, ComputeEngine, ClassificationStatistics, BootstrapResult, BaseModelOptions, ActivationFunction };