Files
playbook/skills/tsl-api-reference/references/codegen/dotnet/math/statistics.md
T

545 lines
12 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 数学函数 / 统计函数
## `betaAndAlpha(y, x, beta, alpha)`
声明:function
获取斜率和截距
<!-- tags: 获取 查询 -->
| 参数 | 类型 | 说明 |
| ------- | ----- | ------------------ |
| `y` | array | 一维数字数组 |
| `x` | array | 一维数字数组 |
| `beta` | real | 实数,斜率,返回值 |
| `alpha` | real | 实数,截距,返回值 |
返回:void
### 示例
```tsl
betaAndAlpha(array(3, 6), array(4, 12), k, b);
return k;
// 输出:0.375
```
## `correlpaired(a, b)`
声明:function
计算 a 的每一列与 b 的每一列之间的相关系数矩阵
<!-- tags: 计算 求解 -->
| 参数 | 类型 | 说明 |
| ---- | ----- | ------------- |
| `a` | array | 一维数字数组, |
| `b` | array | 一维数字数组, |
返回:array
### 示例
范例01
```tsl
a := array(1, 2, 3, 4, 5);
b := array(2, 4, 6, 8, 10);
return correlpaired(a, b);
// 输出:array((1.0))
```
范例02
```tsl
a := array(1, 2, 3, 4, 5);
b := `array(
"B1": array(2, 4, 6, 8, 10),
"B2": array(10, 8, 6, 4, 2)
);
return correlpaired(a, b);
// 输出:array((1.0,-1.0))
```
范例03
```tsl
a := `array(
"A1": array(1, 2, 3, 4, 5),
"A2": array(5, 4, 3, 2, 1)
);
b := `array(
"B1": array(2, 4, 6, 8, 10),
"B2": array(10, 8, 6, 4, 2),
"B3": array(1, 2, 3, 4, 5),
"B4": array(5, 4, 3, 2, 1)
);
return correlpaired(a, b);
// 输出:array((1.0,-1.0,1.0,-1.0),(-1.0,1.0,-1.0,1.0))
```
范例04
```tsl
a := `array("A": array(1, 2, 3, 4, 5));
b := `array(
"A": array(2, 4, 6, 8, 10),
"B": array(10, 8, 6, 4, 2)
);
return correlpaired(a, b);
// 输出:array((1.0,-1.0))
```
## `correlpaired_side(a, dir_type)`
声明:function
计算 a 的每两列之间符合对应过滤条件的相关系数矩阵, 1) +-相关系数 :将 a <0 的元素替换为0 ,b>0的元素替换为0,计算相关系数 2) 同向相关系数 :将 a 与 b 非同向(乘积<0)的元素替换为0,计算相关系数 场景支持同 correlpaired 内部强制 a 转化为fmarray进行计算
<!-- tags: 过滤 筛选 filter 计算 求解 -->
| 参数 | 类型 | 说明 |
| ---------- | ----- | ------------------- |
| `a` | array | 一维数字数组, |
| `dir_type` | any | 用户自定义,方向类型 |
返回:array
## `expdMax(r)`
声明:function
统计数组累计到当前行的最大值序列
| 参数 | 类型 | 说明 |
| ---- | ------------- | ------------------------------------------------------------ |
| `r` | array of real | 数组,一维或二维(此时按列统计)数字数组,也可以为二维数据表 |
返回:array
### 示例
```tsl
r := array(-1, 2, -3, 9);
return expdMax(r); // 输出:array(-1,2,2,9)
```
## `expdMin(r)`
声明:function
统计数组累积到当前行的最小值序列
| 参数 | 类型 | 说明 |
| ---- | ------------- | ------------------------------------------------------------ |
| `r` | array of real | 数组,一维或二维(此时按列统计)数字数组,也可以为二维数据表 |
返回:array
### 示例
```tsl
r := array(-1, 2, -3, 9);
return expdMin (r); // 输出:array(-1,-1,-3,-3)
```
## `expdProduct(r)`
声明:function
返回数组累积到当前行的累乘序列
<!-- tags: 返回 获取 -->
| 参数 | 类型 | 说明 |
| ---- | ------------- | ------------------------------------------------------------ |
| `r` | array of real | 数组,一维或二维(此时按列统计)数字数组,也可以为二维数据表 |
返回:array
### 示例
```tsl
r := array(-1, 2, -3, 9);
return expdProduct (r); // 输出:array(-1,-2,6,54)
```
## `expdStd(r, ddof)`
声明:function
返回数组累积到当前行的标准差序列
<!-- tags: 返回 获取 -->
| 参数 | 类型 | 说明 |
| ------ | ------------- | ------------------------------------------------------------ |
| `r` | array of real | 数组,一维或二维(此时按列统计)数字数组,也可以为二维数据表 |
| `ddof` | integer | 整型,标准差选项,取值如下 |
返回:array
### 示例
```tsl
r := array(-1, 2, -3, 9);
return expdStd (r, 0); // 输出:array(0,1.5,2.05,4.55)
```
## `expdSum(r)`
声明:function
返回数组累积到当前行的求和序列
<!-- tags: 返回 获取 -->
| 参数 | 类型 | 说明 |
| ---- | ------------- | ------------------------------------------------------------ |
| `r` | array of real | 数组,一维或二维(此时按列统计)数字数组,也可以为二维数据表 |
返回:array
### 示例
```tsl
r := array(-1, 2, -3, 9);
return expdSum (r); // 输出:array(-1,1,-2,7)
```
## `expdVar(r, ddof)`
声明:function
返回数组累积到当前行的方差序列
<!-- tags: 返回 获取 -->
| 参数 | 类型 | 说明 |
| ------ | ------------- | ------------------------------------------------------------ |
| `r` | array of real | 数组,一维或二维(此时按列统计)数字数组,也可以为二维数据表 |
| `ddof` | integer | 整型,方差选项,取值如下 |
返回:array
### 示例
```tsl
r := array(-1, 2, -3, 9);
return expdVar (r, 0); // 输出:array(0,2.25,4.22,20.69)
```
## `kurt(t, real)`
声明:function
峰度
| 参数 | 类型 | 说明 |
| ------ | ----- | ---------------------- |
| `t` | array | 一维数字数组,一维数据 |
| `real` | | 实数,返回的峰度 |
返回:any
### 示例
```tsl
kurt(array(1, 2, 3, 4, 5), s);
return s;
// 输出:-1.2
```
## `meanAndPopnStdDevWithRate(data, rate, mean, stddev)`
声明:function
带权重总体标准差以及平均值
| 参数 | 类型 | 说明 |
| -------- | ----- | -------------------- |
| `data` | array | 一维数字数组 |
| `rate` | array | 一维数字数组 |
| `mean` | real | 实数,均值,返回值 |
| `stddev` | real | 实数,标准差,返回值 |
返回:real
### 示例
```tsl
meanAndPopnStdDevWithRate(array(1, 2, 3), array(1, 1, 1), m, s);
return m;
// 输出:2
```
## `nanMean(a)`
声明:function
计算含Nan一维数组的算术平均值
<!-- tags: 计算 求解 -->
| 参数 | 类型 | 说明 |
| ---- | ----- | ------------ |
| `a` | array | 一维数字数组 |
返回:real
### 示例
```tsl
a := array(5, 6, 8, nan);
return nanMean(a);
// 输出:6.33
```
## `nanPercentRankArr(a, f_name)`
声明:function
1、返回一维数组中的每个值在一维数组中的百分比排名
| 参数 | 类型 | 说明 |
| -------- | ------ | ------------------------ |
| `a` | array | 数字数组,待计算的数组 |
| `f_name` | string | 字符串,字段名,默认为空 |
返回:array
### 示例
```tsl
a := array(1, 1, 2, 2, 2, 9, nan, 9, 9);
return nanPercentRankArr(a);
// 输出:array(0.0,0.0,0.29,0.29,0.29,0.71,NAN,0.71,0.71)
```
## `nanPopnStd(a)`
声明:function
计算含Nan一维数组的总体标准差
<!-- tags: 计算 求解 -->
| 参数 | 类型 | 说明 |
| ---- | ----- | ------------ |
| `a` | array | 一维数字数组 |
返回:real
### 示例
```tsl
a := array(5, 6, 8, nan);
return nanPopnStd(a);
// 输出:1.25
```
## `nanPopnVariance(a)`
声明:function
计算含Nan一维数组的总体方差
<!-- tags: 计算 求解 -->
| 参数 | 类型 | 说明 |
| ---- | ----- | ------------ |
| `a` | array | 一维数字数组 |
返回:real
### 示例
```tsl
a := array(5, 6, 8, nan);
return nanPopnVariance(a);
// 输出:1.56
```
## `nanRankArr(a, f_name, sortorder)`
声明:function
1、返回一维数组中的每个值在一维数组中的排位
<!-- tags: 排序 sort -->
| 参数 | 类型 | 说明 |
| ----------- | ------ | ------------------------ |
| `a` | array | 数字数组,待计算的数组 |
| `f_name` | string | 字符串,字段名,默认为空 |
| `sortorder` | bool | 排序方向,默认为1 |
返回:array
### 示例
```tsl
a := array(1, 1, 2, 2, 2, 9, nan, 9, 9);
return nanRankArr(a);
// 输出:array(1,1,3,3,3,6,NAN,6,6)
```
## `nanStd(a)`
声明:function
计算含Nan一维数组的标准差的估计(样本标准差)
<!-- tags: 计算 求解 -->
| 参数 | 类型 | 说明 |
| ---- | ----- | ------------ |
| `a` | array | 一维数字数组 |
返回:real
### 示例
```tsl
a := array(5, 6, 8, nan);
return nanStd(a);
// 输出:1.53
```
## `nanSum(a)`
声明:function
计算含Nan一维数组的总和
<!-- tags: 计算 求解 -->
| 参数 | 类型 | 说明 |
| ---- | ----- | ------------ |
| `a` | array | 一维数字数组 |
返回:real
### 示例
```tsl
a := array(5, 6, 8, nan);
return nanSum(a);
// 输出:19
```
## `nanVariance(a)`
声明:function
计算含Nan一维数组的方差的估计(样本方差)
<!-- tags: 计算 求解 -->
| 参数 | 类型 | 说明 |
| ---- | ----- | ------------ |
| `a` | array | 一维数字数组 |
返回:real
### 示例
```tsl
a := array(5, 6, 8, nan);
return nanVariance(a);
// 输出:2.33
```
## `regressionChannel(y, x, nowy, nowx, beta, alpha, top_alpha, bottom_alpha, top, bottom, pos, expectvalue)`
声明:function
回归通道模型
| 参数 | 类型 | 说明 |
| -------------- | ----- | ----------------------- |
| `y` | array | 一维数字数组,Y坐标数组 |
| `x` | array | 一维数字数组,X坐标数组 |
| `nowy` | real | 实数 |
| `nowx` | real | 实数 |
| `beta` | real | 实数 |
| `alpha` | real | 实数 |
| `top_alpha` | real | 实数 |
| `bottom_alpha` | real | 实数 |
| `top` | real | 实数 |
| `bottom` | real | 实数 |
| `pos` | real | 实数 |
| `expectvalue` | real | 实数,预期值(回归值) |
返回:real
### 示例
```tsl
regressionChannel(array(1, 2, 3, 4, 5), array(6, 7, 8, 9, 10), 1, 2, 3, 4, 5, 6, 7, 8, s, a);
return a;
// 输出:-3
```
## `selfStdDev(t, rmar)`
声明:function
下方标准差
| 参数 | 类型 | 说明 |
| ------ | ----- | ---------------------------------- |
| `t` | array | 数据表类型,一维数据 |
| `rmar` | real | 实数,最低可接受的收益率(已折算过) |
返回:real
### 示例
```tsl
return selfStdDev(array(1, 2, 3, 4, 5), 3);
// 输出:0.89
```
## `skew(t, skew)`
声明:function
偏斜度
| 参数 | 类型 | 说明 |
| ------ | ----- | ---------------------- |
| `t` | array | 一维数字数组,一维数据 |
| `skew` | real | 实数,返回的偏斜度 |
返回:any
### 示例
```tsl
skew(array(1, 2, 3, 4, 5, 7), s);
return s;
// 输出:0.46
```
## `variationCoefficient(x)`
声明:function
变异系数
| 参数 | 类型 | 说明 |
| ---- | ----- | ------------ |
| `x` | array | 一维数字数组 |
返回:real
### 示例
```tsl
return variationCoefficient(array(1, 2, 1, 2, 1, 2));
// 输出:0.33
```