@datagrok-libraries/statistics 1.2.13 → 1.3.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.
- package/.eslintrc.json +1 -0
- package/CHANGELOG.md +10 -0
- package/README.md +0 -1
- package/package.json +1 -1
- package/src/correlation-coefficient.d.ts.map +1 -1
- package/src/correlation-coefficient.js +1 -1
- package/src/fit/fit-curve.d.ts +41 -67
- package/src/fit/fit-curve.d.ts.map +1 -1
- package/src/fit/fit-curve.js +184 -190
- package/src/fit/fit-data.d.ts +0 -4
- package/src/fit/fit-data.d.ts.map +1 -1
- package/src/fit/fit-data.js +22 -22
- package/src/fit/fitting-algorithm/optimizer-misc.d.ts +19 -0
- package/src/fit/fitting-algorithm/optimizer-misc.d.ts.map +1 -0
- package/src/fit/fitting-algorithm/optimizer-misc.js +7 -0
- package/src/fit/fitting-algorithm/optimizer-nelder-mead.d.ts +25 -0
- package/src/fit/fitting-algorithm/optimizer-nelder-mead.d.ts.map +1 -0
- package/src/fit/fitting-algorithm/optimizer-nelder-mead.js +156 -0
- package/src/fit/fitting-algorithm/optimizer-sampler.d.ts +2 -0
- package/src/fit/fitting-algorithm/optimizer-sampler.d.ts.map +1 -0
- package/src/fit/fitting-algorithm/optimizer-sampler.js +28 -0
- package/src/fit/fitting-algorithm/optimizer.d.ts +4 -0
- package/src/fit/fitting-algorithm/optimizer.d.ts.map +1 -0
- package/src/fit/fitting-algorithm/optimizer.js +48 -0
- package/lbfgs/lbfgs.d.ts +0 -1
- package/lbfgs/lbfgs.js +0 -316
- package/src/optimization/opt-nelder-mead.d.ts +0 -5
- package/src/optimization/opt-nelder-mead.d.ts.map +0 -1
- package/src/optimization/opt-nelder-mead.js +0 -116
- package/src/optimization/optimizer.d.ts +0 -28
- package/src/optimization/optimizer.d.ts.map +0 -1
- package/src/optimization/optimizer.js +0 -63
package/.eslintrc.json
CHANGED
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,15 @@
|
|
|
1
1
|
# statistics changelog
|
|
2
2
|
|
|
3
|
+
## 1.3.1 (2024-05-21)
|
|
4
|
+
|
|
5
|
+
* [#2797](https://github.com/datagrok-ai/public/issues/2797): Added log-linear fit function
|
|
6
|
+
|
|
7
|
+
## 1.3.0 (2024-05-11)
|
|
8
|
+
|
|
9
|
+
### Features
|
|
10
|
+
|
|
11
|
+
* [#2797](https://github.com/datagrok-ai/public/issues/2797): Changed optimizer for fitting
|
|
12
|
+
|
|
3
13
|
## 1.2.13 (2024-04-18)
|
|
4
14
|
|
|
5
15
|
### Features
|
package/README.md
CHANGED
package/package.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"correlation-coefficient.d.ts","sourceRoot":"","sources":["correlation-coefficient.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"correlation-coefficient.d.ts","sourceRoot":"","sources":["correlation-coefficient.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAC,MAAM,iDAAiD,CAAC;AAuDxE;;;;;;;;;;;GAWG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,OAAO,CA+B7D"}
|
|
@@ -92,4 +92,4 @@ export function kendallsTau(x, y) {
|
|
|
92
92
|
const prob = erfc(Math.abs(z) / 1.4142136);
|
|
93
93
|
return { test: tau, z: z, prob: prob };
|
|
94
94
|
}
|
|
95
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
95
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29ycmVsYXRpb24tY29lZmZpY2llbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJjb3JyZWxhdGlvbi1jb2VmZmljaWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQTs7Ozs7O0dBTUc7QUFDSCxTQUFTLEdBQUcsQ0FBQyxDQUFTO0lBQ3BCLE1BQU0sR0FBRyxHQUFHLENBQUMsQ0FBQyxrQkFBa0IsRUFBRSxxQkFBcUIsRUFBRSxxQkFBcUI7UUFDNUUsQ0FBQyxvQkFBb0IsRUFBRSxDQUFDLG1CQUFtQixFQUFFLG1CQUFtQjtRQUNoRSxrQkFBa0IsRUFBRSxDQUFDLGtCQUFrQixFQUFFLENBQUMsaUJBQWlCO1FBQzNELGlCQUFpQixFQUFFLGVBQWUsRUFBRSxDQUFDLGVBQWU7UUFDcEQsY0FBYyxFQUFFLGNBQWMsRUFBRSxDQUFDLGNBQWM7UUFDL0MsQ0FBQyxjQUFjLEVBQUUsYUFBYSxFQUFFLFlBQVk7UUFDNUMsQ0FBQyxZQUFZLEVBQUUsV0FBVyxFQUFFLFdBQVc7UUFDdkMsQ0FBQyxXQUFXLEVBQUUsUUFBUSxFQUFFLFNBQVM7UUFDakMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxPQUFPLEVBQUUsUUFBUTtRQUM5QixDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ1osSUFBSSxDQUFDLEdBQUcsR0FBRyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7SUFDdkIsSUFBSSxLQUFLLEdBQUcsS0FBSyxDQUFDO0lBQ2xCLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNWLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQztJQUNYLElBQUksQ0FBQyxHQUFXLENBQUMsQ0FBQztJQUFDLElBQUksRUFBRSxHQUFXLENBQUMsQ0FBQztJQUFDLElBQUksR0FBRyxHQUFXLENBQUMsQ0FBQztJQUFDLElBQUksR0FBRyxHQUFXLENBQUMsQ0FBQztJQUVoRixJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUU7UUFDVCxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFD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QUFHLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxDQUFDO0lBQzNDLE9BQU8sRUFBQyxJQUFJLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBQyxDQUFDO0FBQ3ZDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge09wdGlvbnN9IGZyb20gJ0BkYXRhZ3Jvay1saWJyYXJpZXMvdXRpbHMvc3JjL3R5cGUtZGVjbGFyYXRpb25zJztcblxuLyoqXG4gKiBSZXR1cm5zIHRoZSBlcnJvciBmdW5jdGlvbiBlcmYoeCkuXG4gKlxuICogQHBhcmFtIHtudW1iZXJ9IHggQW4gYXJndW1lbnQuXG4gKiBAcmV0dXJuIHtudW1iZXJ9IFRoZSByZXN1bHQuXG4gKiBAbGluayBodHRwczovL2dpdGh1Yi5jb20vanN0YXQvanN0YXQvYmxvYi82NWNlMDk2YTk5Zjc1M2Q2YTIyNDgyZTVlNzRhY2NiZmMxYzMzNzY3L2Rpc3QvanN0YXQuanMjTDE1NjJcbiAqL1xuZnVuY3Rpb24gZXJmKHg6IG51bWJlcik6IG51bWJlciB7XG4gIGNvbnN0IGNvZiA9IFstMS4zMDI2NTM3MTk3ODE3MDk0LCA2LjQxOTY5NzkyMzU2NDkwMjZlLTEsIDEuOTQ3NjQ3MzIwNDE4NTgzNmUtMixcbiAgICAtOS41NjE1MTQ3ODY4MDg2MzFlLTMsIC05LjQ2NTk1MzQ0NDgyMDM2ZS00LCAzLjY2ODM5NDk3ODUyNzYxZS00LFxuICAgIDQuMjUyMzMyNDgwNjkwN2UtNSwgLTIuMDI3ODU3ODExMjUzNGUtNSwgLTEuNjI0MjkwMDA0NjQ3ZS02LFxuICAgIDEuMzAzNjU1ODM1NTgwZS02LCAxLjU2MjY0NDE3MjJlLTgsIC04LjUyMzgwOTU5MTVlLTgsXG4gICAgNi41MjkwNTQ0MzllLTksIDUuMDU5MzQzNDk1ZS05LCAtOS45MTM2NDE1NmUtMTAsXG4gICAgLTIuMjczNjUxMjJlLTEwLCA5LjY0Njc5MTFlLTExLCAyLjM5NDAzOGUtMTIsXG4gICAgLTYuODg2MDI3ZS0xMiwgOC45NDQ4N2UtMTMsIDMuMTMwOTJlLTEzLFxuICAgIC0xLjEyNzA4ZS0xMywgMy44MWUtMTYsIDcuMTA2ZS0xNSxcbiAgICAtMS41MjNlLTE1LCAtOS40ZS0xNywgMS4yMWUtMTYsXG4gICAgLTIuOGUtMTddO1xuICBsZXQgaiA9IGNvZi5sZW5ndGggLSAxO1xuICBsZXQgaXNuZWcgPSBmYWxzZTtcbiAgbGV0IGQgPSAwO1xuICBsZXQgZGQgPSAwO1xuICBsZXQgdDogbnVtYmVyID0gMDsgbGV0IHR5OiBudW1iZXIgPSAwOyBsZXQgdG1wOiBudW1iZXIgPSAwOyBsZXQgcmVzOiBudW1iZXIgPSAwO1xuXG4gIGlmICh4IDwgMCkge1xuICAgIHggPSAteDtcbiAgICBpc25lZyA9IHRydWU7XG4gIH1cblxuICB0ID0gMiAvICgyICsgeCk7XG4gIHR5ID0gNCAqIHQgLSAyO1xuXG4gIGZvciAoOyBqID4gMDsgai0tKSB7XG4gICAgdG1wID0gZDtcbiAgICBkID0gdHkgKiBkIC0gZGQgKyBjb2Zbal07XG4gICAgZGQgPSB0bXA7XG4gIH1cblxuICByZXMgPSB0ICogTWF0aC5leHAoLXggKiB4ICsgMC41ICogKGNvZlswXSArIHR5ICogZCkgLSBkZCk7XG4gIHJldHVybiBpc25lZyA/IHJlcyAtIDEgOiAxIC0gcmVzO1xufVxuXG4vKipcbiAqIFJldHVybnMgdGhlIGNvbXBsbWVudGFyeSBlcnJvciBmdW5jdGlvbiBlcmZjKHgpXG4gKlxuICogQHBhcmFtIHtudW1iZXJ9IHggQW4gYXJndW1lbnQuXG4gKiBAcmV0dXJuIHtudW1iZXJ9IFRoZSByZXN1bHQuXG4gKiBAbGluayBodHRwczovL2dpdGh1Yi5jb20vanN0YXQvanN0YXQvYmxvYi82NWNlMDk2YTk5Zjc1M2Q2YTIyNDgyZTVlNzRhY2NiZmMxYzMzNzY3L2Rpc3QvanN0YXQuanMjTDE1OTlcbiAqL1xuZnVuY3Rpb24gZXJmYyh4OiBudW1iZXIpOiBudW1iZXIge1xuICByZXR1cm4gMSAtIGVyZih4KTtcbn1cblxuLyoqXG4gKiBDYWxjdWxhdGVzIEtlbmRhbGwncyB0YXUsIGEgY29ycmVsYXRpb24gbWVhc3VyZSBmb3Igb3JkaW5hbCBkYXRhLCBhbmQgYW4gYXNzb2NpYXRlZCBwLXZhbHVlLlxuICogUmV0dXJuczogS2VuZGFsbCdzIHRhdSwgdHdvLXRhaWxlZCBwLXZhbHVlLlxuICogRGVyaXZlZCBmcm9tIG9sZGVyIFNjaVB5OiBodHRwOi8vd2ViLm1pdC5lZHUvNi44NjMvc3ByaW5nMjAxMS9wYWNrYWdlcy9zY2lweV9zcmMvc2NpcHkvc3RhdHMvc3RhdHMucHlcbiAqXG4gKiBAZXhwb3J0XG4gKiBAcGFyYW0ge251bWJlcltdfSB4IFRoZSBmaXJzdCBhcnJheS5cbiAqIEBwYXJhbSB7bnVtYmVyW119IHkgVGhlIHNlY29uZCBhcnJheS5cbiAqIEByZXR1cm4ge09wdGlvbnN9IFRoZSByZXN1bHQuXG4gKiBAbGluayBodHRwczovL2dpdGh1Yi5jb20vcGRmZXJuaG91dC9uYXJyYWZpcm1hL2Jsb2IvXG4gKiBjOWMxMjJkNTc3YTRiODg2OGNlNjAzYmFkYWJiYjdkMTBmNDU3NDBjL3dlYmFwcC9zb3VyY2Uvc3RhdGlzdGljcy9rZW5kYWxsc1RhdS50cyNMOFxuICovXG5leHBvcnQgZnVuY3Rpb24ga2VuZGFsbHNUYXUoeDogbnVtYmVyW10sIHk6IG51bWJlcltdKTogT3B0aW9ucyB7XG4gIGxldCBuMSA9IDA7XG4gIGxldCBuMiA9IDA7XG4gIGxldCBpc3MgPSAwO1xuICBmb3IgKGxldCBqID0gMDsgaiA8IHgubGVuZ3RoIC0gMTsgaisrKSB7XG4gICAgZm9yIChsZXQgayA9IGogKyAxOyBrIDwgeS5sZW5ndGg7IGsrKykge1xuICAgICAgY29uc3QgYTEgPSB4W2pdIC0geFtrXTtcbiAgICAgIGNvbnN0IGEyID0geVtqXSAtIHlba107XG4gICAgICBjb25zdCBhYSA9IGExICogYTI7XG4gICAgICBpZiAoYWEpIHtcbiAgICAgICAgLy8gbmVpdGhlciBhcnJheSBoYXMgYSB0aWVcbiAgICAgICAgbjEgPSBuMSArIDE7XG4gICAgICAgIG4yID0gbjIgKyAxO1xuICAgICAgICBpZiAoYWEgPiAwKVxuICAgICAgICAgIGlzcyA9IGlzcyArIDE7XG4gICAgICAgIGVsc2VcbiAgICAgICAgICBpc3MgPSBpc3MgLSAxO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKGExKVxuICAgICAgICAgIG4xID0gbjEgKyAxO1xuXG4gICAgICAgIGlmIChhMilcbiAgICAgICAgICBuMiA9IG4yICsgMTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgY29uc3QgdGF1ID0gaXNzIC8gTWF0aC5zcXJ0KG4xICogbjIpO1xuICBjb25zdCBzdmFyID0gKDQuMCAqIHgubGVuZ3RoICsgMTAuMCkgLyAoOS4wICogeC5sZW5ndGggKiAoeC5sZW5ndGggLSAxKSk7XG4gIGNvbnN0IHogPSB0YXUgLyBNYXRoLnNxcnQoc3Zhcik7XG4gIGNvbnN0IHByb2IgPSBlcmZjKE1hdGguYWJzKHopIC8gMS40MTQyMTM2KTtcbiAgcmV0dXJuIHt0ZXN0OiB0YXUsIHo6IHosIHByb2I6IHByb2J9O1xufVxuIl19
|
package/src/fit/fit-curve.d.ts
CHANGED
|
@@ -2,6 +2,7 @@ import * as DG from 'datagrok-api/dg';
|
|
|
2
2
|
export declare const FitErrorModel: {
|
|
3
3
|
CONSTANT: string;
|
|
4
4
|
PROPORTIONAL: string;
|
|
5
|
+
COMBINED: string;
|
|
5
6
|
};
|
|
6
7
|
export declare type FitParamBounds = {
|
|
7
8
|
min?: number;
|
|
@@ -17,7 +18,7 @@ export interface IFitFunctionDescription {
|
|
|
17
18
|
}
|
|
18
19
|
export declare type FitCurve = {
|
|
19
20
|
fittedCurve: (x: number) => number;
|
|
20
|
-
parameters:
|
|
21
|
+
parameters: Float32Array;
|
|
21
22
|
};
|
|
22
23
|
export declare type FitConfidenceIntervals = {
|
|
23
24
|
confidenceTop: (x: number) => number;
|
|
@@ -26,51 +27,20 @@ export declare type FitConfidenceIntervals = {
|
|
|
26
27
|
export declare type FitStatistics = {
|
|
27
28
|
rSquared?: number;
|
|
28
29
|
auc?: number;
|
|
29
|
-
interceptX
|
|
30
|
-
interceptY
|
|
31
|
-
slope
|
|
32
|
-
top
|
|
33
|
-
bottom
|
|
30
|
+
interceptX?: number;
|
|
31
|
+
interceptY?: number;
|
|
32
|
+
slope?: number;
|
|
33
|
+
top?: number;
|
|
34
|
+
bottom?: number;
|
|
34
35
|
};
|
|
35
36
|
export declare type FitInvertedFunctions = {
|
|
36
37
|
inverted: (y: number) => number;
|
|
37
38
|
invertedTop: (y: number) => number;
|
|
38
39
|
invertedBottom: (y: number) => number;
|
|
39
40
|
};
|
|
40
|
-
/**
|
|
41
|
-
* Datagrok curve fitting
|
|
42
|
-
*
|
|
43
|
-
* - Fitting: computing parameters of the specified function to best fit the data
|
|
44
|
-
* - Uses BFGS optimization algorithm (multi-threading for performance).
|
|
45
|
-
* For dose-response curves, we are typically fitting the sigmoid function
|
|
46
|
-
* - Ability to dynamically register custom fitting functions
|
|
47
|
-
* - Automatic fit function determination
|
|
48
|
-
* - Caching of custom fitting functions
|
|
49
|
-
* - Ability to get fitting performance characteristics (r-squared, classification, etc)
|
|
50
|
-
* - Deep integration with the Datagrok grid
|
|
51
|
-
* - Either fitting on the fly, or using the supplied function + parameters
|
|
52
|
-
* - Multiple series in one cell
|
|
53
|
-
* - Candlesticks, confidence intervals, and droplines drawing
|
|
54
|
-
* - Ability to define chart, marker, or fitting options (such as fit function or marker color)
|
|
55
|
-
* on the column level, with the ability to override it on a grid cell or point level
|
|
56
|
-
* - Clicking a point in a chart within a grid makes it an outlier -> curve is re-fitted on the fly
|
|
57
|
-
* - Ability to specify a chart as "reference" so that it is shown on every other chart for comparison
|
|
58
|
-
* - Ability to overlay curves from multiple grid cells (special viewer)
|
|
59
|
-
* - Work with series stored in multiple formats (binary for performance, json for flexibility, etc)
|
|
60
|
-
*/
|
|
61
|
-
export declare const FIT_SEM_TYPE = "fit";
|
|
62
|
-
export declare const FIT_CELL_TYPE = "fit";
|
|
63
|
-
export declare const TAG_FIT = ".fit";
|
|
64
|
-
export declare const CONFIDENCE_INTERVAL_STROKE_COLOR = "rgba(255,191,63,0.4)";
|
|
65
|
-
export declare const CONFIDENCE_INTERVAL_FILL_COLOR = "rgba(255,238,204,0.3)";
|
|
66
|
-
export declare const CURVE_CONFIDENCE_INTERVAL_BOUNDS: {
|
|
67
|
-
TOP: string;
|
|
68
|
-
BOTTOM: string;
|
|
69
|
-
};
|
|
70
|
-
export declare const DROPLINES: string[];
|
|
71
41
|
export declare type FitMarkerType = 'asterisk' | 'circle' | 'cross border' | 'diamond' | 'square' | 'star' | 'triangle bottom' | 'triangle left' | 'triangle right' | 'triangle top';
|
|
72
42
|
export declare type FitLineStyle = 'solid' | 'dotted' | 'dashed' | 'dashdotted';
|
|
73
|
-
export declare type FitErrorModelType = 'constant' | 'proportional';
|
|
43
|
+
export declare type FitErrorModelType = 'constant' | 'proportional' | 'combined';
|
|
74
44
|
/** A point in the fit series. Only x and y are required. Can override some fields defined in IFitSeriesOptions. */
|
|
75
45
|
export interface IFitPoint {
|
|
76
46
|
x: number;
|
|
@@ -146,75 +116,79 @@ export interface IFitSeriesOptions {
|
|
|
146
116
|
droplines?: string[];
|
|
147
117
|
columnName?: string;
|
|
148
118
|
}
|
|
149
|
-
/** Properties that describe {@link FitStatistics}. Useful for editing, initialization, transformations, etc. */
|
|
150
|
-
export declare const statisticsProperties: DG.Property[];
|
|
151
|
-
/** Properties that describe {@link IFitChartOptions}. Useful for editing, initialization, transformations, etc. */
|
|
152
|
-
export declare const fitChartDataProperties: DG.Property[];
|
|
153
|
-
/** Properties that describe {@link IFitSeriesOptions}. Useful for editing, initialization, transformations, etc. */
|
|
154
|
-
export declare const fitSeriesProperties: DG.Property[];
|
|
155
|
-
export declare const FIT_FUNCTION_SIGMOID = "sigmoid";
|
|
156
|
-
export declare const FIT_FUNCTION_LINEAR = "linear";
|
|
157
|
-
export declare const FIT_STATS_RSQUARED = "rSquared";
|
|
158
|
-
export declare const FIT_STATS_AUC = "auc";
|
|
159
119
|
/** Class for the fit functions */
|
|
160
120
|
export declare abstract class FitFunction {
|
|
161
121
|
abstract get name(): string;
|
|
162
122
|
abstract get parameterNames(): string[];
|
|
163
|
-
abstract y(params:
|
|
164
|
-
abstract getInitialParameters(x: number[], y: number[]):
|
|
123
|
+
abstract y(params: Float32Array, x: number): number;
|
|
124
|
+
abstract getInitialParameters(x: number[], y: number[]): Float32Array;
|
|
165
125
|
}
|
|
166
126
|
/** Class that implements the linear function */
|
|
167
127
|
export declare class LinearFunction extends FitFunction {
|
|
168
128
|
get name(): string;
|
|
169
129
|
get parameterNames(): string[];
|
|
170
|
-
y(params:
|
|
171
|
-
getInitialParameters(x: number[], y: number[]):
|
|
130
|
+
y(params: Float32Array, x: number): number;
|
|
131
|
+
getInitialParameters(x: number[], y: number[]): Float32Array;
|
|
172
132
|
}
|
|
173
133
|
/** Class that implements the sigmoid function */
|
|
174
134
|
export declare class SigmoidFunction extends FitFunction {
|
|
175
135
|
get name(): string;
|
|
176
136
|
get parameterNames(): string[];
|
|
177
|
-
y(params:
|
|
178
|
-
getInitialParameters(x: number[], y: number[]):
|
|
137
|
+
y(params: Float32Array, x: number): number;
|
|
138
|
+
getInitialParameters(x: number[], y: number[]): Float32Array;
|
|
139
|
+
}
|
|
140
|
+
/** Class that implements the linear logarithmic function */
|
|
141
|
+
export declare class LogLinearFunction extends FitFunction {
|
|
142
|
+
get name(): string;
|
|
143
|
+
get parameterNames(): string[];
|
|
144
|
+
y(params: Float32Array, x: number): number;
|
|
145
|
+
getInitialParameters(x: number[], y: number[]): Float32Array;
|
|
179
146
|
}
|
|
180
147
|
/** Class that implements user JS functions */
|
|
181
148
|
export declare class JsFunction extends FitFunction {
|
|
182
149
|
private _name;
|
|
183
150
|
private _parameterNames;
|
|
184
|
-
constructor(name: string, yFunc: (params:
|
|
151
|
+
constructor(name: string, yFunc: (params: Float32Array, x: number) => number, getInitParamsFunc: (x: number[], y: number[]) => Float32Array, parameterNames: string[]);
|
|
185
152
|
get name(): string;
|
|
186
153
|
get parameterNames(): string[];
|
|
187
|
-
y(params:
|
|
188
|
-
getInitialParameters(x: number[], y: number[]):
|
|
154
|
+
y(params: Float32Array, x: number): number;
|
|
155
|
+
getInitialParameters(x: number[], y: number[]): Float32Array;
|
|
189
156
|
}
|
|
190
157
|
export declare const fitFunctions: {
|
|
191
158
|
[index: string]: FitFunction;
|
|
192
159
|
};
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
}
|
|
160
|
+
/** Properties that describe {@link FitStatistics}. Useful for editing, initialization, transformations, etc. */
|
|
161
|
+
export declare const statisticsProperties: DG.Property[];
|
|
162
|
+
/** Properties that describe {@link IFitChartOptions}. Useful for editing, initialization, transformations, etc. */
|
|
163
|
+
export declare const fitChartDataProperties: DG.Property[];
|
|
164
|
+
/** Properties that describe {@link IFitSeriesOptions}. Useful for editing, initialization, transformations, etc. */
|
|
165
|
+
export declare const fitSeriesProperties: DG.Property[];
|
|
166
|
+
export declare const FIT_FUNCTION_SIGMOID = "sigmoid";
|
|
167
|
+
export declare const FIT_FUNCTION_LINEAR = "linear";
|
|
168
|
+
export declare const FIT_FUNCTION_LOG_LINEAR = "log-linear";
|
|
169
|
+
export declare const FIT_STATS_RSQUARED = "rSquared";
|
|
170
|
+
export declare const FIT_STATS_AUC = "auc";
|
|
198
171
|
export declare function getOrCreateFitFunction(seriesFitFunc: string | IFitFunctionDescription): FitFunction;
|
|
199
172
|
export declare function fitData(data: {
|
|
200
173
|
x: number[];
|
|
201
174
|
y: number[];
|
|
202
175
|
}, fitFunction: FitFunction, errorModel: FitErrorModelType, parameterBounds?: FitParamBounds[]): FitCurve;
|
|
203
|
-
export declare function getFittedCurve(curveFunction: (params:
|
|
176
|
+
export declare function getFittedCurve(curveFunction: (params: Float32Array, x: number) => number, paramValues: Float32Array): (x: number) => number;
|
|
204
177
|
export declare function getCurveConfidenceIntervals(data: {
|
|
205
178
|
x: number[];
|
|
206
179
|
y: number[];
|
|
207
|
-
}, paramValues:
|
|
180
|
+
}, paramValues: Float32Array, curveFunction: (params: Float32Array, x: number) => number, confidenceLevel: number | undefined, errorModel: FitErrorModelType): FitConfidenceIntervals;
|
|
208
181
|
export declare function getStatistics(data: {
|
|
209
182
|
x: number[];
|
|
210
183
|
y: number[];
|
|
211
|
-
}, paramValues:
|
|
184
|
+
}, paramValues: Float32Array, curveFunction: (params: Float32Array, x: number) => number, statistics?: boolean): FitStatistics;
|
|
212
185
|
export declare function getInvertedFunctions(data: {
|
|
213
186
|
x: number[];
|
|
214
187
|
y: number[];
|
|
215
188
|
}, paramValues: number[], confidenceLevel?: number, statistics?: boolean): FitInvertedFunctions | null;
|
|
216
|
-
export declare function sigmoid(params:
|
|
217
|
-
export declare function linear(params:
|
|
189
|
+
export declare function sigmoid(params: Float32Array, x: number): number;
|
|
190
|
+
export declare function linear(params: Float32Array, x: number): number;
|
|
191
|
+
export declare function logLinear(params: Float32Array, x: number): number;
|
|
218
192
|
export declare function getAuc(fittedCurve: (x: number) => number, data: {
|
|
219
193
|
x: number[];
|
|
220
194
|
y: number[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fit-curve.d.ts","sourceRoot":"","sources":["fit-curve.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"fit-curve.d.ts","sourceRoot":"","sources":["fit-curve.ts"],"names":[],"mappings":"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"}
|