linreg-core 0.6.1 → 0.7.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/linreg_core.d.ts +98 -1
- package/linreg_core.js +240 -0
- package/linreg_core_bg.wasm +0 -0
- package/package.json +2 -3
package/linreg_core.d.ts
CHANGED
|
@@ -196,6 +196,46 @@ export function dffits_test(y_json: string, x_vars_json: string): string;
|
|
|
196
196
|
*/
|
|
197
197
|
export function durbin_watson_test(y_json: string, x_vars_json: string): string;
|
|
198
198
|
|
|
199
|
+
/**
|
|
200
|
+
* Fits an elastic net regularization path via WASM (Optimized).
|
|
201
|
+
*
|
|
202
|
+
* Computes the coefficient path for a sequence of lambda values.
|
|
203
|
+
* Returns a lightweight summary to avoid excessive JSON serialization overhead.
|
|
204
|
+
*
|
|
205
|
+
* # Arguments
|
|
206
|
+
*
|
|
207
|
+
* * `y_json` - JSON array of response variable values
|
|
208
|
+
* * `x_vars_json` - JSON array of predictor arrays
|
|
209
|
+
* * `n_lambda` - Number of lambda values (default: 100)
|
|
210
|
+
* * `lambda_min_ratio` - Ratio for smallest lambda
|
|
211
|
+
* * `alpha` - Mixing parameter (0 = Ridge, 1 = Lasso)
|
|
212
|
+
* * `standardize` - Whether to standardize predictors
|
|
213
|
+
* * `max_iter` - Maximum iterations per lambda
|
|
214
|
+
* * `tol` - Convergence tolerance
|
|
215
|
+
*
|
|
216
|
+
* # Returns
|
|
217
|
+
*
|
|
218
|
+
* JSON string containing `PathResult` (lambdas, coefficients, stats).
|
|
219
|
+
*/
|
|
220
|
+
export function elastic_net_path_wasm(y_json: string, x_vars_json: string, n_lambda: number, lambda_min_ratio: number, alpha: number, standardize: boolean, max_iter: number, tol: number): string;
|
|
221
|
+
|
|
222
|
+
/**
|
|
223
|
+
* Computes approximate Elastic Net regression prediction intervals via WASM.
|
|
224
|
+
*
|
|
225
|
+
* # Arguments
|
|
226
|
+
*
|
|
227
|
+
* * `y_json` - JSON array of response variable values
|
|
228
|
+
* * `x_vars_json` - JSON array of predictor arrays (training data)
|
|
229
|
+
* * `new_x_json` - JSON array of predictor arrays (new observations)
|
|
230
|
+
* * `alpha` - Significance level (e.g., 0.05 for 95% PI)
|
|
231
|
+
* * `lambda` - Regularization strength
|
|
232
|
+
* * `enet_alpha` - Elastic net mixing parameter (0 = Ridge, 1 = Lasso)
|
|
233
|
+
* * `standardize` - Whether to standardize predictors
|
|
234
|
+
* * `max_iter` - Maximum coordinate descent iterations
|
|
235
|
+
* * `tol` - Convergence tolerance
|
|
236
|
+
*/
|
|
237
|
+
export function elastic_net_prediction_intervals(y_json: string, x_vars_json: string, new_x_json: string, alpha: number, lambda: number, enet_alpha: number, standardize: boolean, max_iter: number, tol: number): string;
|
|
238
|
+
|
|
199
239
|
/**
|
|
200
240
|
* Performs Elastic Net regression via WASM.
|
|
201
241
|
*
|
|
@@ -470,6 +510,22 @@ export function kfold_cv_ols(y_json: string, x_vars_json: string, variable_names
|
|
|
470
510
|
*/
|
|
471
511
|
export function kfold_cv_ridge(y_json: string, x_vars_json: string, lambda: number, standardize: boolean, n_folds: number, shuffle_json: string, seed_json: string): string;
|
|
472
512
|
|
|
513
|
+
/**
|
|
514
|
+
* Computes approximate Lasso regression prediction intervals via WASM.
|
|
515
|
+
*
|
|
516
|
+
* # Arguments
|
|
517
|
+
*
|
|
518
|
+
* * `y_json` - JSON array of response variable values
|
|
519
|
+
* * `x_vars_json` - JSON array of predictor arrays (training data)
|
|
520
|
+
* * `new_x_json` - JSON array of predictor arrays (new observations)
|
|
521
|
+
* * `alpha` - Significance level (e.g., 0.05 for 95% PI)
|
|
522
|
+
* * `lambda` - Regularization strength
|
|
523
|
+
* * `standardize` - Whether to standardize predictors
|
|
524
|
+
* * `max_iter` - Maximum coordinate descent iterations
|
|
525
|
+
* * `tol` - Convergence tolerance
|
|
526
|
+
*/
|
|
527
|
+
export function lasso_prediction_intervals(y_json: string, x_vars_json: string, new_x_json: string, alpha: number, lambda: number, standardize: boolean, max_iter: number, tol: number): string;
|
|
528
|
+
|
|
473
529
|
/**
|
|
474
530
|
* Performs Lasso regression via WASM.
|
|
475
531
|
*
|
|
@@ -594,6 +650,25 @@ export function loess_predict(new_x_json: string, original_x_json: string, origi
|
|
|
594
650
|
*/
|
|
595
651
|
export function make_lambda_path(y_json: string, x_vars_json: string, n_lambda: number, lambda_min_ratio: number): string;
|
|
596
652
|
|
|
653
|
+
/**
|
|
654
|
+
* Computes OLS prediction intervals via WASM.
|
|
655
|
+
*
|
|
656
|
+
* Fits an OLS model to the training data and computes prediction intervals
|
|
657
|
+
* for the new observations.
|
|
658
|
+
*
|
|
659
|
+
* # Arguments
|
|
660
|
+
*
|
|
661
|
+
* * `y_json` - JSON array of response variable values
|
|
662
|
+
* * `x_vars_json` - JSON array of predictor arrays (training data)
|
|
663
|
+
* * `new_x_json` - JSON array of predictor arrays (new observations)
|
|
664
|
+
* * `alpha` - Significance level (e.g., 0.05 for 95% PI)
|
|
665
|
+
*
|
|
666
|
+
* # Returns
|
|
667
|
+
*
|
|
668
|
+
* JSON string containing predicted values, lower/upper bounds, SE, leverage.
|
|
669
|
+
*/
|
|
670
|
+
export function ols_prediction_intervals(y_json: string, x_vars_json: string, new_x_json: string, alpha: number): string;
|
|
671
|
+
|
|
597
672
|
/**
|
|
598
673
|
* Performs OLS regression via WASM.
|
|
599
674
|
*
|
|
@@ -740,6 +815,23 @@ export function rainbow_test(y_json: string, x_vars_json: string, fraction: numb
|
|
|
740
815
|
*/
|
|
741
816
|
export function reset_test(y_json: string, x_vars_json: string, powers_json: string, type_: string): string;
|
|
742
817
|
|
|
818
|
+
/**
|
|
819
|
+
* Computes approximate Ridge regression prediction intervals via WASM.
|
|
820
|
+
*
|
|
821
|
+
* Fits a Ridge model and computes conservative prediction intervals using
|
|
822
|
+
* leverage from unpenalized X'X and MSE from the ridge fit.
|
|
823
|
+
*
|
|
824
|
+
* # Arguments
|
|
825
|
+
*
|
|
826
|
+
* * `y_json` - JSON array of response variable values
|
|
827
|
+
* * `x_vars_json` - JSON array of predictor arrays (training data)
|
|
828
|
+
* * `new_x_json` - JSON array of predictor arrays (new observations)
|
|
829
|
+
* * `alpha` - Significance level (e.g., 0.05 for 95% PI)
|
|
830
|
+
* * `lambda` - Regularization strength
|
|
831
|
+
* * `standardize` - Whether to standardize predictors
|
|
832
|
+
*/
|
|
833
|
+
export function ridge_prediction_intervals(y_json: string, x_vars_json: string, new_x_json: string, alpha: number, lambda: number, standardize: boolean): string;
|
|
834
|
+
|
|
743
835
|
/**
|
|
744
836
|
* Performs Ridge regression via WASM.
|
|
745
837
|
*
|
|
@@ -1080,6 +1172,8 @@ export interface InitOutput {
|
|
|
1080
1172
|
readonly dfbetas_test: (a: number, b: number, c: number, d: number) => [number, number];
|
|
1081
1173
|
readonly dffits_test: (a: number, b: number, c: number, d: number) => [number, number];
|
|
1082
1174
|
readonly durbin_watson_test: (a: number, b: number, c: number, d: number) => [number, number];
|
|
1175
|
+
readonly elastic_net_path_wasm: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number) => [number, number];
|
|
1176
|
+
readonly elastic_net_prediction_intervals: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number, l: number) => [number, number];
|
|
1083
1177
|
readonly elastic_net_regression: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number) => [number, number];
|
|
1084
1178
|
readonly get_model_metadata: (a: number, b: number) => [number, number];
|
|
1085
1179
|
readonly get_version: () => [number, number];
|
|
@@ -1089,16 +1183,19 @@ export interface InitOutput {
|
|
|
1089
1183
|
readonly kfold_cv_lasso: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number) => [number, number];
|
|
1090
1184
|
readonly kfold_cv_ols: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number) => [number, number];
|
|
1091
1185
|
readonly kfold_cv_ridge: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number) => [number, number];
|
|
1186
|
+
readonly lasso_prediction_intervals: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number) => [number, number];
|
|
1092
1187
|
readonly lasso_regression: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number) => [number, number];
|
|
1093
1188
|
readonly loess_fit: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number) => [number, number];
|
|
1094
1189
|
readonly loess_predict: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number) => [number, number];
|
|
1095
1190
|
readonly make_lambda_path: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number];
|
|
1191
|
+
readonly ols_prediction_intervals: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => [number, number];
|
|
1096
1192
|
readonly ols_regression: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number];
|
|
1097
1193
|
readonly parse_csv: (a: number, b: number) => [number, number];
|
|
1098
1194
|
readonly python_white_test: (a: number, b: number, c: number, d: number) => [number, number];
|
|
1099
1195
|
readonly r_white_test: (a: number, b: number, c: number, d: number) => [number, number];
|
|
1100
1196
|
readonly rainbow_test: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => [number, number];
|
|
1101
1197
|
readonly reset_test: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number) => [number, number];
|
|
1198
|
+
readonly ridge_prediction_intervals: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number) => [number, number];
|
|
1102
1199
|
readonly ridge_regression: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number) => [number, number];
|
|
1103
1200
|
readonly serialize_model: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number];
|
|
1104
1201
|
readonly shapiro_wilk_test: (a: number, b: number, c: number, d: number) => [number, number];
|
|
@@ -1119,9 +1216,9 @@ export interface InitOutput {
|
|
|
1119
1216
|
readonly get_t_cdf: (a: number, b: number) => number;
|
|
1120
1217
|
readonly get_t_critical: (a: number, b: number) => number;
|
|
1121
1218
|
readonly get_normal_inverse: (a: number) => number;
|
|
1122
|
-
readonly __wbindgen_externrefs: WebAssembly.Table;
|
|
1123
1219
|
readonly __wbindgen_malloc: (a: number, b: number) => number;
|
|
1124
1220
|
readonly __wbindgen_realloc: (a: number, b: number, c: number, d: number) => number;
|
|
1221
|
+
readonly __wbindgen_externrefs: WebAssembly.Table;
|
|
1125
1222
|
readonly __wbindgen_free: (a: number, b: number, c: number) => void;
|
|
1126
1223
|
readonly __wbindgen_start: () => void;
|
|
1127
1224
|
}
|
package/linreg_core.js
CHANGED
|
@@ -340,6 +340,97 @@ export function durbin_watson_test(y_json, x_vars_json) {
|
|
|
340
340
|
}
|
|
341
341
|
}
|
|
342
342
|
|
|
343
|
+
/**
|
|
344
|
+
* Fits an elastic net regularization path via WASM (Optimized).
|
|
345
|
+
*
|
|
346
|
+
* Computes the coefficient path for a sequence of lambda values.
|
|
347
|
+
* Returns a lightweight summary to avoid excessive JSON serialization overhead.
|
|
348
|
+
*
|
|
349
|
+
* # Arguments
|
|
350
|
+
*
|
|
351
|
+
* * `y_json` - JSON array of response variable values
|
|
352
|
+
* * `x_vars_json` - JSON array of predictor arrays
|
|
353
|
+
* * `n_lambda` - Number of lambda values (default: 100)
|
|
354
|
+
* * `lambda_min_ratio` - Ratio for smallest lambda
|
|
355
|
+
* * `alpha` - Mixing parameter (0 = Ridge, 1 = Lasso)
|
|
356
|
+
* * `standardize` - Whether to standardize predictors
|
|
357
|
+
* * `max_iter` - Maximum iterations per lambda
|
|
358
|
+
* * `tol` - Convergence tolerance
|
|
359
|
+
*
|
|
360
|
+
* # Returns
|
|
361
|
+
*
|
|
362
|
+
* JSON string containing `PathResult` (lambdas, coefficients, stats).
|
|
363
|
+
* @param {string} y_json
|
|
364
|
+
* @param {string} x_vars_json
|
|
365
|
+
* @param {number} n_lambda
|
|
366
|
+
* @param {number} lambda_min_ratio
|
|
367
|
+
* @param {number} alpha
|
|
368
|
+
* @param {boolean} standardize
|
|
369
|
+
* @param {number} max_iter
|
|
370
|
+
* @param {number} tol
|
|
371
|
+
* @returns {string}
|
|
372
|
+
*/
|
|
373
|
+
export function elastic_net_path_wasm(y_json, x_vars_json, n_lambda, lambda_min_ratio, alpha, standardize, max_iter, tol) {
|
|
374
|
+
let deferred3_0;
|
|
375
|
+
let deferred3_1;
|
|
376
|
+
try {
|
|
377
|
+
const ptr0 = passStringToWasm0(y_json, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
378
|
+
const len0 = WASM_VECTOR_LEN;
|
|
379
|
+
const ptr1 = passStringToWasm0(x_vars_json, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
380
|
+
const len1 = WASM_VECTOR_LEN;
|
|
381
|
+
const ret = wasm.elastic_net_path_wasm(ptr0, len0, ptr1, len1, n_lambda, lambda_min_ratio, alpha, standardize, max_iter, tol);
|
|
382
|
+
deferred3_0 = ret[0];
|
|
383
|
+
deferred3_1 = ret[1];
|
|
384
|
+
return getStringFromWasm0(ret[0], ret[1]);
|
|
385
|
+
} finally {
|
|
386
|
+
wasm.__wbindgen_free(deferred3_0, deferred3_1, 1);
|
|
387
|
+
}
|
|
388
|
+
}
|
|
389
|
+
|
|
390
|
+
/**
|
|
391
|
+
* Computes approximate Elastic Net regression prediction intervals via WASM.
|
|
392
|
+
*
|
|
393
|
+
* # Arguments
|
|
394
|
+
*
|
|
395
|
+
* * `y_json` - JSON array of response variable values
|
|
396
|
+
* * `x_vars_json` - JSON array of predictor arrays (training data)
|
|
397
|
+
* * `new_x_json` - JSON array of predictor arrays (new observations)
|
|
398
|
+
* * `alpha` - Significance level (e.g., 0.05 for 95% PI)
|
|
399
|
+
* * `lambda` - Regularization strength
|
|
400
|
+
* * `enet_alpha` - Elastic net mixing parameter (0 = Ridge, 1 = Lasso)
|
|
401
|
+
* * `standardize` - Whether to standardize predictors
|
|
402
|
+
* * `max_iter` - Maximum coordinate descent iterations
|
|
403
|
+
* * `tol` - Convergence tolerance
|
|
404
|
+
* @param {string} y_json
|
|
405
|
+
* @param {string} x_vars_json
|
|
406
|
+
* @param {string} new_x_json
|
|
407
|
+
* @param {number} alpha
|
|
408
|
+
* @param {number} lambda
|
|
409
|
+
* @param {number} enet_alpha
|
|
410
|
+
* @param {boolean} standardize
|
|
411
|
+
* @param {number} max_iter
|
|
412
|
+
* @param {number} tol
|
|
413
|
+
* @returns {string}
|
|
414
|
+
*/
|
|
415
|
+
export function elastic_net_prediction_intervals(y_json, x_vars_json, new_x_json, alpha, lambda, enet_alpha, standardize, max_iter, tol) {
|
|
416
|
+
let deferred4_0;
|
|
417
|
+
let deferred4_1;
|
|
418
|
+
try {
|
|
419
|
+
const ptr0 = passStringToWasm0(y_json, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
420
|
+
const len0 = WASM_VECTOR_LEN;
|
|
421
|
+
const ptr1 = passStringToWasm0(x_vars_json, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
422
|
+
const len1 = WASM_VECTOR_LEN;
|
|
423
|
+
const ptr2 = passStringToWasm0(new_x_json, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
424
|
+
const len2 = WASM_VECTOR_LEN;
|
|
425
|
+
const ret = wasm.elastic_net_prediction_intervals(ptr0, len0, ptr1, len1, ptr2, len2, alpha, lambda, enet_alpha, standardize, max_iter, tol);
|
|
426
|
+
deferred4_0 = ret[0];
|
|
427
|
+
deferred4_1 = ret[1];
|
|
428
|
+
return getStringFromWasm0(ret[0], ret[1]);
|
|
429
|
+
} finally {
|
|
430
|
+
wasm.__wbindgen_free(deferred4_0, deferred4_1, 1);
|
|
431
|
+
}
|
|
432
|
+
}
|
|
433
|
+
|
|
343
434
|
/**
|
|
344
435
|
* Performs Elastic Net regression via WASM.
|
|
345
436
|
*
|
|
@@ -830,6 +921,48 @@ export function kfold_cv_ridge(y_json, x_vars_json, lambda, standardize, n_folds
|
|
|
830
921
|
}
|
|
831
922
|
}
|
|
832
923
|
|
|
924
|
+
/**
|
|
925
|
+
* Computes approximate Lasso regression prediction intervals via WASM.
|
|
926
|
+
*
|
|
927
|
+
* # Arguments
|
|
928
|
+
*
|
|
929
|
+
* * `y_json` - JSON array of response variable values
|
|
930
|
+
* * `x_vars_json` - JSON array of predictor arrays (training data)
|
|
931
|
+
* * `new_x_json` - JSON array of predictor arrays (new observations)
|
|
932
|
+
* * `alpha` - Significance level (e.g., 0.05 for 95% PI)
|
|
933
|
+
* * `lambda` - Regularization strength
|
|
934
|
+
* * `standardize` - Whether to standardize predictors
|
|
935
|
+
* * `max_iter` - Maximum coordinate descent iterations
|
|
936
|
+
* * `tol` - Convergence tolerance
|
|
937
|
+
* @param {string} y_json
|
|
938
|
+
* @param {string} x_vars_json
|
|
939
|
+
* @param {string} new_x_json
|
|
940
|
+
* @param {number} alpha
|
|
941
|
+
* @param {number} lambda
|
|
942
|
+
* @param {boolean} standardize
|
|
943
|
+
* @param {number} max_iter
|
|
944
|
+
* @param {number} tol
|
|
945
|
+
* @returns {string}
|
|
946
|
+
*/
|
|
947
|
+
export function lasso_prediction_intervals(y_json, x_vars_json, new_x_json, alpha, lambda, standardize, max_iter, tol) {
|
|
948
|
+
let deferred4_0;
|
|
949
|
+
let deferred4_1;
|
|
950
|
+
try {
|
|
951
|
+
const ptr0 = passStringToWasm0(y_json, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
952
|
+
const len0 = WASM_VECTOR_LEN;
|
|
953
|
+
const ptr1 = passStringToWasm0(x_vars_json, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
954
|
+
const len1 = WASM_VECTOR_LEN;
|
|
955
|
+
const ptr2 = passStringToWasm0(new_x_json, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
956
|
+
const len2 = WASM_VECTOR_LEN;
|
|
957
|
+
const ret = wasm.lasso_prediction_intervals(ptr0, len0, ptr1, len1, ptr2, len2, alpha, lambda, standardize, max_iter, tol);
|
|
958
|
+
deferred4_0 = ret[0];
|
|
959
|
+
deferred4_1 = ret[1];
|
|
960
|
+
return getStringFromWasm0(ret[0], ret[1]);
|
|
961
|
+
} finally {
|
|
962
|
+
wasm.__wbindgen_free(deferred4_0, deferred4_1, 1);
|
|
963
|
+
}
|
|
964
|
+
}
|
|
965
|
+
|
|
833
966
|
/**
|
|
834
967
|
* Performs Lasso regression via WASM.
|
|
835
968
|
*
|
|
@@ -1050,6 +1183,47 @@ export function make_lambda_path(y_json, x_vars_json, n_lambda, lambda_min_ratio
|
|
|
1050
1183
|
}
|
|
1051
1184
|
}
|
|
1052
1185
|
|
|
1186
|
+
/**
|
|
1187
|
+
* Computes OLS prediction intervals via WASM.
|
|
1188
|
+
*
|
|
1189
|
+
* Fits an OLS model to the training data and computes prediction intervals
|
|
1190
|
+
* for the new observations.
|
|
1191
|
+
*
|
|
1192
|
+
* # Arguments
|
|
1193
|
+
*
|
|
1194
|
+
* * `y_json` - JSON array of response variable values
|
|
1195
|
+
* * `x_vars_json` - JSON array of predictor arrays (training data)
|
|
1196
|
+
* * `new_x_json` - JSON array of predictor arrays (new observations)
|
|
1197
|
+
* * `alpha` - Significance level (e.g., 0.05 for 95% PI)
|
|
1198
|
+
*
|
|
1199
|
+
* # Returns
|
|
1200
|
+
*
|
|
1201
|
+
* JSON string containing predicted values, lower/upper bounds, SE, leverage.
|
|
1202
|
+
* @param {string} y_json
|
|
1203
|
+
* @param {string} x_vars_json
|
|
1204
|
+
* @param {string} new_x_json
|
|
1205
|
+
* @param {number} alpha
|
|
1206
|
+
* @returns {string}
|
|
1207
|
+
*/
|
|
1208
|
+
export function ols_prediction_intervals(y_json, x_vars_json, new_x_json, alpha) {
|
|
1209
|
+
let deferred4_0;
|
|
1210
|
+
let deferred4_1;
|
|
1211
|
+
try {
|
|
1212
|
+
const ptr0 = passStringToWasm0(y_json, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
1213
|
+
const len0 = WASM_VECTOR_LEN;
|
|
1214
|
+
const ptr1 = passStringToWasm0(x_vars_json, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
1215
|
+
const len1 = WASM_VECTOR_LEN;
|
|
1216
|
+
const ptr2 = passStringToWasm0(new_x_json, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
1217
|
+
const len2 = WASM_VECTOR_LEN;
|
|
1218
|
+
const ret = wasm.ols_prediction_intervals(ptr0, len0, ptr1, len1, ptr2, len2, alpha);
|
|
1219
|
+
deferred4_0 = ret[0];
|
|
1220
|
+
deferred4_1 = ret[1];
|
|
1221
|
+
return getStringFromWasm0(ret[0], ret[1]);
|
|
1222
|
+
} finally {
|
|
1223
|
+
wasm.__wbindgen_free(deferred4_0, deferred4_1, 1);
|
|
1224
|
+
}
|
|
1225
|
+
}
|
|
1226
|
+
|
|
1053
1227
|
/**
|
|
1054
1228
|
* Performs OLS regression via WASM.
|
|
1055
1229
|
*
|
|
@@ -1314,6 +1488,47 @@ export function reset_test(y_json, x_vars_json, powers_json, type_) {
|
|
|
1314
1488
|
}
|
|
1315
1489
|
}
|
|
1316
1490
|
|
|
1491
|
+
/**
|
|
1492
|
+
* Computes approximate Ridge regression prediction intervals via WASM.
|
|
1493
|
+
*
|
|
1494
|
+
* Fits a Ridge model and computes conservative prediction intervals using
|
|
1495
|
+
* leverage from unpenalized X'X and MSE from the ridge fit.
|
|
1496
|
+
*
|
|
1497
|
+
* # Arguments
|
|
1498
|
+
*
|
|
1499
|
+
* * `y_json` - JSON array of response variable values
|
|
1500
|
+
* * `x_vars_json` - JSON array of predictor arrays (training data)
|
|
1501
|
+
* * `new_x_json` - JSON array of predictor arrays (new observations)
|
|
1502
|
+
* * `alpha` - Significance level (e.g., 0.05 for 95% PI)
|
|
1503
|
+
* * `lambda` - Regularization strength
|
|
1504
|
+
* * `standardize` - Whether to standardize predictors
|
|
1505
|
+
* @param {string} y_json
|
|
1506
|
+
* @param {string} x_vars_json
|
|
1507
|
+
* @param {string} new_x_json
|
|
1508
|
+
* @param {number} alpha
|
|
1509
|
+
* @param {number} lambda
|
|
1510
|
+
* @param {boolean} standardize
|
|
1511
|
+
* @returns {string}
|
|
1512
|
+
*/
|
|
1513
|
+
export function ridge_prediction_intervals(y_json, x_vars_json, new_x_json, alpha, lambda, standardize) {
|
|
1514
|
+
let deferred4_0;
|
|
1515
|
+
let deferred4_1;
|
|
1516
|
+
try {
|
|
1517
|
+
const ptr0 = passStringToWasm0(y_json, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
1518
|
+
const len0 = WASM_VECTOR_LEN;
|
|
1519
|
+
const ptr1 = passStringToWasm0(x_vars_json, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
1520
|
+
const len1 = WASM_VECTOR_LEN;
|
|
1521
|
+
const ptr2 = passStringToWasm0(new_x_json, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
1522
|
+
const len2 = WASM_VECTOR_LEN;
|
|
1523
|
+
const ret = wasm.ridge_prediction_intervals(ptr0, len0, ptr1, len1, ptr2, len2, alpha, lambda, standardize);
|
|
1524
|
+
deferred4_0 = ret[0];
|
|
1525
|
+
deferred4_1 = ret[1];
|
|
1526
|
+
return getStringFromWasm0(ret[0], ret[1]);
|
|
1527
|
+
} finally {
|
|
1528
|
+
wasm.__wbindgen_free(deferred4_0, deferred4_1, 1);
|
|
1529
|
+
}
|
|
1530
|
+
}
|
|
1531
|
+
|
|
1317
1532
|
/**
|
|
1318
1533
|
* Performs Ridge regression via WASM.
|
|
1319
1534
|
*
|
|
@@ -1927,9 +2142,25 @@ export function wls_regression(y_json, x_vars_json, weights_json) {
|
|
|
1927
2142
|
function __wbg_get_imports() {
|
|
1928
2143
|
const import0 = {
|
|
1929
2144
|
__proto__: null,
|
|
2145
|
+
__wbg___wbindgen_string_get_72fb696202c56729: function(arg0, arg1) {
|
|
2146
|
+
const obj = arg1;
|
|
2147
|
+
const ret = typeof(obj) === 'string' ? obj : undefined;
|
|
2148
|
+
var ptr1 = isLikeNone(ret) ? 0 : passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
2149
|
+
var len1 = WASM_VECTOR_LEN;
|
|
2150
|
+
getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);
|
|
2151
|
+
getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);
|
|
2152
|
+
},
|
|
1930
2153
|
__wbg___wbindgen_throw_be289d5034ed271b: function(arg0, arg1) {
|
|
1931
2154
|
throw new Error(getStringFromWasm0(arg0, arg1));
|
|
1932
2155
|
},
|
|
2156
|
+
__wbg_new_0_73afc35eb544e539: function() {
|
|
2157
|
+
const ret = new Date();
|
|
2158
|
+
return ret;
|
|
2159
|
+
},
|
|
2160
|
+
__wbg_toISOString_c04e0b8b70650552: function(arg0) {
|
|
2161
|
+
const ret = arg0.toISOString();
|
|
2162
|
+
return ret;
|
|
2163
|
+
},
|
|
1933
2164
|
__wbindgen_init_externref_table: function() {
|
|
1934
2165
|
const table = wasm.__wbindgen_externrefs;
|
|
1935
2166
|
const offset = table.grow(4);
|
|
@@ -1946,6 +2177,14 @@ function __wbg_get_imports() {
|
|
|
1946
2177
|
};
|
|
1947
2178
|
}
|
|
1948
2179
|
|
|
2180
|
+
let cachedDataViewMemory0 = null;
|
|
2181
|
+
function getDataViewMemory0() {
|
|
2182
|
+
if (cachedDataViewMemory0 === null || cachedDataViewMemory0.buffer.detached === true || (cachedDataViewMemory0.buffer.detached === undefined && cachedDataViewMemory0.buffer !== wasm.memory.buffer)) {
|
|
2183
|
+
cachedDataViewMemory0 = new DataView(wasm.memory.buffer);
|
|
2184
|
+
}
|
|
2185
|
+
return cachedDataViewMemory0;
|
|
2186
|
+
}
|
|
2187
|
+
|
|
1949
2188
|
function getStringFromWasm0(ptr, len) {
|
|
1950
2189
|
ptr = ptr >>> 0;
|
|
1951
2190
|
return decodeText(ptr, len);
|
|
@@ -2033,6 +2272,7 @@ let wasmModule, wasm;
|
|
|
2033
2272
|
function __wbg_finalize_init(instance, module) {
|
|
2034
2273
|
wasm = instance.exports;
|
|
2035
2274
|
wasmModule = module;
|
|
2275
|
+
cachedDataViewMemory0 = null;
|
|
2036
2276
|
cachedUint8ArrayMemory0 = null;
|
|
2037
2277
|
wasm.__wbindgen_start();
|
|
2038
2278
|
return wasm;
|
package/linreg_core_bg.wasm
CHANGED
|
Binary file
|
package/package.json
CHANGED
|
@@ -5,13 +5,12 @@
|
|
|
5
5
|
"Jesse Anderson"
|
|
6
6
|
],
|
|
7
7
|
"description": "Lightweight linear regression (OLS, Ridge, Lasso, Elastic Net) with diagnostic tests. Pure Rust - no external math dependencies.",
|
|
8
|
-
"version": "0.
|
|
8
|
+
"version": "0.7.0",
|
|
9
9
|
"license": "MIT OR Apache-2.0",
|
|
10
10
|
"repository": {
|
|
11
11
|
"type": "git",
|
|
12
12
|
"url": "https://github.com/jesse-anderson/linreg-core"
|
|
13
13
|
},
|
|
14
|
-
"homepage": "https://jesse-anderson.net/linreg-core/",
|
|
15
14
|
"files": [
|
|
16
15
|
"linreg_core_bg.wasm",
|
|
17
16
|
"linreg_core.js",
|
|
@@ -20,7 +19,7 @@
|
|
|
20
19
|
"LICENSE-MIT"
|
|
21
20
|
],
|
|
22
21
|
"main": "linreg_core.js",
|
|
23
|
-
"homepage": "https://jesse-anderson.net",
|
|
22
|
+
"homepage": "https://jesse-anderson.net/linreg-core/",
|
|
24
23
|
"types": "linreg_core.d.ts",
|
|
25
24
|
"sideEffects": [
|
|
26
25
|
"./snippets/*"
|