Move runtime and document pages into their correct scope, remove obsolete pending entries, and regenerate the function index.\nUpdate agent test guidance and API skill routing to match the new reference layout.
77 KiB
Builtin - 数学 / 统计与分布
randG(mean, std_dev)
随机产生均值为Mean,标准差为StdDev的服从高斯分布的数据。往往用于模拟取样误差。
| 参数 | 类型 | 说明 |
|---|---|---|
mean |
real | 作为产生正态分布的均值 |
std_dev |
real | 作为产生正态分布的标准差,大于0 |
返回:real
示例
return randG (2, 3);
// 输出:3.05 //3.05是均值为2,标准差为3的高斯分布的一个样本数据
gamma(x)
计算伽马(Gamma)函数的数值
| 参数 | 类型 | 说明 |
|---|---|---|
x |
array | 大于0,支持数值数组。 |
返回:array
示例
return gamma(array(1.5, 2.3, 3.4));
// 输出:array(0.886226925452758,1.16671190519816,2.98120642681033)
gammaln(x)
计算对数gamma
| 参数 | 类型 | 说明 |
|---|---|---|
x |
array | 大于0,支持数值数组。 |
返回:array
示例
return gammaln(array(1.5, 2.3, 3.4));
// 输出:array(-0.120782237635245,0.15418945495963,1.09232805980274)
erf(x)
误差函数也称为概率函数,其定义为
| 参数 | 类型 | 说明 |
|---|---|---|
x |
array | 实型变量。支持数组 |
返回:array
示例
return erf(0.15);
// 输出:0.168
erfinv(x)
误差函数逆函数
| 参数 | 类型 | 说明 |
|---|---|---|
x |
array | 实型变量,支持数组 |
返回:array
示例
return erfinv(0.15);
// 输出:0.13372692166482
erfc(x)
误差累计分布函数
| 参数 | 类型 | 说明 |
|---|---|---|
x |
array | 实型变量。支持数组 |
返回:array
示例
return erfc(0.15);
// 0.832004028572637
erfcinv(x)
误差累计逆函数
| 参数 | 类型 | 说明 |
|---|---|---|
x |
array | 实型变量.支持数组 |
返回:array
示例
return erfcinv(0.15);
// 输出:1.01790246483203
minIntValue(data)
返回一组实数数据中的最小值的整数部分
| 参数 | 类型 | 说明 |
|---|---|---|
data |
array of real | 存放整数的数组,如果输入是实数,计算先取整数部分 |
返回:integer
示例
a := array(5.3, 3.9, 5.6, 5, 6.5, 7.6);
return minIntValue (a);
// 输出:3
sumOfSquares(data)
计算一组实数的平方和
| 参数 | 类型 | 说明 |
|---|---|---|
data |
array of real | 存放实数的数组 |
返回:real
示例
a := array(2, 3, 1, 5, 6.5, 7.5);
return sumOfSquares (a);
// 输出:124
sumsAndSquares(data, sum, sum_of_squares)
计算一组实数的总和以及平方和,执行完毕后,总和存在参数Sum,平方和存在参数SumOfSquares中
| 参数 | 类型 | 说明 |
|---|---|---|
data |
array of real | 存放实数的数组 |
sum |
real | 实数,用来存放总和 |
sum_of_squares |
real | 实数,用来存放平方和 |
返回:any
示例
a := array(2, 3, 1, 5, 6, 7);
// b是总和,c是平方和
sumsAndSquares (a, b, c);
return array(b, c);
// 输出:
// array(24.0,124.0)
maxIntValue(data)
返回一组实数中的最大值的整数部分
| 参数 | 类型 | 说明 |
|---|---|---|
data |
array of real | 存放整数的数组名,如果输入是实数,计算先取整数部分 |
返回:integer
示例
a := array(5.3, 3.9, 5.6, 5, 7.5, 7.6);
return maxIntValue (a);
// 输出:7
sumInt(data)
计算一组数整数部分的总和
| 参数 | 类型 | 说明 |
|---|---|---|
data |
array of real | 存放整数的数组 |
返回:integer
示例
a := array(2, 3, 1, 5, 6.5, 7.5);
return sumInt(a);
// 输出:24
meanAndStdDev(data, mean, std_dev)
估计一组数据的平均值和标准差。执行完毕后,平均值放在参数Mean中,标准差放在参数StdDev中
| 参数 | 类型 | 说明 |
|---|---|---|
data |
array of real | 实数数组 |
mean |
real | 实数,存放平均值 |
std_dev |
real | 实数,存放标准差 |
返回:any
示例
a := array(5.3, 3.9, 5.6, 5, 7.5, 7.6);
// b是返回的平均值,c是返回的标准差
meanAndStdDev (a, b, c);
return array(b, c);
// 输出:
// array(5.81666666666667,1.46070759108956)
aveDev(data)
计算一组数据与均值绝对偏差的平均值
| 参数 | 类型 | 说明 |
|---|---|---|
data |
array of real | 存放实数的数组 |
返回:real
示例
data := array(5, 3, 6, 8, 9, 10, 4);
// 返回数组Data的平均绝对偏
return aveDev (data);
// 输出:2.2
totalVariance(data)
计算一组数据对其算术平均数的离差平方和(总体偏差)
| 参数 | 类型 | 说明 |
|---|---|---|
data |
array of real | 存放实数的数组 |
返回:real
示例
a := array(5.3, 3.9, 5.6, 5, 7.5, 7.6);
return totalVariance (a);
// 输出:10.6683333333333
median(data)
计算一组数据的中位数
| 参数 | 类型 | 说明 |
|---|---|---|
data |
array of real | 存放实数的数组 |
返回:real
示例
data := array(5, 3, 6, 8, 9, 10, 4);
return median (data);
// 输出:6
mode(data)
计算一组数据的众数
| 参数 | 类型 | 说明 |
|---|---|---|
data |
array of real | 存放实数的数组 |
返回:real
示例
data := array(5, 3, 6, 8, 9, 10, 4);
return mode(data);
// 输出:3
momentSkewKurtosis(data, m1, m2, m3, m4, skew, kurtosis)
计算一组数据的各项统计指标
| 参数 | 类型 | 说明 |
|---|---|---|
data |
array of real | 存放实数的数组 |
m1 |
real | 数据平均值 |
m2 |
real | 数据的方差 |
m3 |
real | 数据的三阶中心距 |
m4 |
real | 数据的四阶中心距 |
skew |
real | 偏度,反映数据不对称的程度 |
kurtosis |
real | 峰度,反映数据集中的程度 |
返回:any
示例
data := array(5, 3, 6, 8, 9, 10, 4);
momentSkewKurtosis(data, m1, m2, m3, m4, skew, kurtosis);
return array(m1, m2, m3, m4, skew, kurtosis);
// 输出:
// array(6.42857142857143,5.95918367346938,1.25947521865896,55.6684714702205,0.0865783828574166,1.56760180146369)
devSq(data)
计算一组数据样本平均值偏差的平方和
| 参数 | 类型 | 说明 |
|---|---|---|
data |
array of real | 存放实数的数组 |
返回:real
示例
data := array(5, 3, 6, 8, 9, 10, 4);
return devSq(data);
// 输出:41.71
cov(data1, data2)
两个数据间的协方差
| 参数 | 类型 | 说明 |
|---|---|---|
data1 |
array | 数据,一维数组 |
data2 |
array | 数据,一维数组 |
返回:real
示例
// 万科A在2018/10/1~2018/10/30日线收盘与大盘的协方差
begt := 20181001T;
endt := 20181030T;
setSysParam(Pn_Stock(), "SZ000002");
date_arr := marketTradeDayQk(begt, endt);
data := select thisrow as "日期",
spec(specDate(close(), thisrow), "SZ000002") as "价格",
spec(specDate(close(), thisrow), "SH000001") as "大盘"
from dateArr
end;
return cov(data[: , "价格"], data[: , "大盘"]);
correl(data1, data2)
两个数据间的相关系数
| 参数 | 类型 | 说明 |
|---|---|---|
data1 |
array | 数据,一维数组 |
data2 |
array | 数据,一维数组 |
返回:real
示例
// 万科A在2018/10/1~2018/10/30日线收盘与大盘价格的相关系数
begt := 20181001T;
endt := 20181030T;
setSysParam(Pn_Stock(), "SZ000002");
date_arr := marketTradeDayQk(begt, endt);
data := select thisrow as "日期",
spec(specDate(close(), thisrow), "SZ000002") as "价格",
spec(specDate(close(), thisrow), "SH000001") as "大盘"
from dateArr
end;
return correl(data[: , "价格"], data[: , "大盘"]);
slope(data1, data2)
两个数据间的回归斜率
| 参数 | 类型 | 说明 |
|---|---|---|
data1 |
array | 数据,一维数组 |
data2 |
array | 数据,一维数组 |
返回:real
示例
// 万科A在2018/10/1~2018/10/30日线收盘与大盘收盘价格的回归斜率
begt := 20181001T;
endt := 20181030T;
setSysParam(Pn_Stock(), "SZ000002");
date_arr := marketTradeDayQk(begt, endt);
data := select thisrow as "日期",
spec(specDate(close(), thisrow), "SZ000002") as "价格",
spec(specDate(close(), thisrow), "SH000001") as "大盘"
from dateArr
end;
return slope(data[: , "价格"], data[: , "大盘"]);
intercept(data1, data2)
两个数据间的回归截距
| 参数 | 类型 | 说明 |
|---|---|---|
data1 |
array | 数据,一维数组 |
data2 |
array | 数据,一维数组 |
返回:real
示例
// 万科A在2018/10/1~2018/10/30日线收盘与大盘收盘价的相回归截距
begt := 20181001T;
endt := 20181030T;
setSysParam(Pn_Stock(), "SZ000002");
date_arr := marketTradeDayQk(begt, endt);
data := select thisrow as "日期",
spec(specDate(close(), thisrow), "SZ000002") as "价格",
spec(specDate(close(), thisrow), "SH000001") as "大盘"
from dateArr
end;
return intercept(data[: , "价格"], data[: , "大盘"]);
rsq(data1, data2)
两个数据间的乘积矩相关系数平方
| 参数 | 类型 | 说明 |
|---|---|---|
data1 |
array | 数据,一维数组 |
data2 |
array | 数据,一维数组 |
返回:real
示例
// 万科A在2018/10/1~2018/10/30日线收盘与大盘的乘积矩相关系数平方
begt := 20181001T;
endt := 20181030T;
setSysParam(Pn_Stock(), "SZ000002");
date_arr := marketTradeDayQk(begt, endt);
data := select thisrow as "日期",
spec(specDate(close(), thisrow), "SZ000002") as "价格",
spec(specDate(close(), thisrow), "SH000001") as "大盘"
from dateArr
end;
return rsq(data[: , "价格"], data[: , "大盘"]);
steyx(data1, data2)
两个数据间的相对标准偏差
| 参数 | 类型 | 说明 |
|---|---|---|
data1 |
array | 数据,一维数组 |
data2 |
array | 数据,一维数组 |
返回:real
示例
// 万科A在2018/10/1~2018/10/30日线收盘与大盘的相对标准偏差
begt := 20181001T;
endt := 20181030T;
setSysParam(Pn_Stock(), "SZ000002");
date_arr := marketTradeDayQk(begt, endt);
data := select thisrow as "日期",
spec(specDate(close(), thisrow), "SZ000002") as "价格",
spec(specDate(close(), thisrow), "SH000001") as "大盘"
from dateArr
end;
return steyx(data[: , "价格"], data[: , "大盘"]);
slopeandintercept(data1, data2)
两个数据间的回归斜率和截距
| 参数 | 类型 | 说明 |
|---|---|---|
data1 |
array | 数据,一维数组 |
data2 |
array | 数据,一维数组 |
返回:real
示例
// 万科A在2018/10/1~2018/10/30日线收盘与大盘收盘价格的回归斜率和截距
begt := 20181001T;
endt := 20181030T;
setSysParam(Pn_Stock(), "SZ000002");
date_arr := marketTradeDayQk(begt, endt);
data := select thisrow as "日期",
spec(specDate(close(), thisrow), "SZ000002") as "价格",
spec(specDate(close(), thisrow), "SH000001") as "大盘"
from dateArr
end;
return slopeandintercept(data[: , "价格"], data[: , "大盘"]);
quartile(data, x)
数据集中四分位的值
| 参数 | 类型 | 说明 |
|---|---|---|
data |
array of real | 存放实数的数组 |
x |
integer | 整数,0-4表示第几个四分点,为0的结果是数据集中最小的数,为4的结果是数据集中最大的数 |
返回:real
示例
// 返回数组Data中第3个四分位数,即75%。然后按照Percentile的算法求值
// (7-1)*75%=4.5,i=4,j=5,最终结果是(1-0.5)*8+0.5*9=8.5
data := array(5, 3, 6, 8, 9, 10, 4);
return quartile(data, 3);
// 输出:8.5
minValue(data, rc, ml, assign, abnormal, fill)
返回一组实数中的最小值
| 参数 | 类型 | 说明 |
|---|---|---|
data |
array of real | 存放实数的数组 |
rc |
integer | 可选参数,行列选择:0求列最小值;1求行最小值;默认为0 |
ml |
integer | 可选参数,移动步长,默认不移动 |
assign |
integer | 可选参数,对字段筛选,指定某些行列,求其最小值;默认全部 |
abnormal |
integer | 可选参数,异常处理参数,按照存储位来进行管理: |
fill |
any | 可选参数,data 为空时的返回 |
返回:real or array
示例
范例01:一维数组求最小值
a := array(2, 3, 1, 5, 6, 7);
return minValue (a);
// 输出:1
范例02:二维数组指定列+指定步长计算最小值
arr := rand(10, array("A", "B"));
ml := length(arr); // 移动步长--指定大于等于总长度数,则统计从首行到当前行的区间
arr[: , "A-最小"] := minValue(arr, 0, ml, "A");
return arr;
// 输出:
// array(
// ("A":0.150146444095299,"B":0.0720029249787331,"A-最小":0.150146444095299),
// ("A":0.752386756474152,"B":0.794236877467483,"A-最小":0.150146444095299),
// ("A":0.875261440640315,"B":0.24984975066036,"A-最小":0.150146444095299),
// ("A":0.273097287165001,"B":0.905757479835302,"A-最小":0.150146444095299),
// ("A":0.725633884547278,"B":0.73020756803453,"A-最小":0.150146444095299),
// ("A":0.640606550732628,"B":0.688115618657321,"A-最小":0.150146444095299),
// ("A":0.942538371076807,"B":0.245572400279343,"A-最小":0.150146444095299),
// ("A":0.898009897442535,"B":0.00986421713605523,"A-最小":0.150146444095299),
// ("A":0.884120375616476,"B":0.413575921207666,"A-最小":0.150146444095299),
// ("A":0.0179871807340533,"B":0.90700996434316,"A-最小":0.0179871807340533))
maxvalue(data, rc, ml, assign, abnormal, fill)
返回一组实数中的最大值
| 参数 | 类型 | 说明 |
|---|---|---|
data |
array of real | 存放实数的数组 |
rc |
integer | 可选参数,行列选择:0求列最大值;1求行最大值;默认为0 |
ml |
integer | 可选参数,移动步长,默认不移动 |
assign |
integer | 可选参数,对字段筛选,指定某些行列,求其最大值;默认全部 |
abnormal |
integer | 可选参数,异常处理参数,按照存储位来进行管理: |
fill |
any | 可选参数,data 为空时的返回 |
返回:real or array
示例
范例01:一维数组求最大值
a := array(5.3, 3.9, 5.6, 5, 6.5, 7.6);
return maxValue (a);
// 输出:7.6
范例02:二维数组指定列+指定步长计算最大值
arr := rand(10, array("A", "B"));
ml := length(arr); // 移动步长--指定大于等于总长度数,则统计从首行到当前行的区间
arr[: , "A-最大"] := maxValue(arr, 0, ml, "A");
return arr;
// 输出:
// array(
// ("A":0.958783811656758,"B":0.707278462126851,"A-最大":0.958783811656758),
// ("A":0.750536063918844,"B":0.200482148211449,"A-最大":0.958783811656758),
// ("A":0.517184586962685,"B":0.178965070284903,"A-最大":0.958783811656758),
// ("A":0.846249950351194,"B":0.059791746083647,"A-最大":0.958783811656758),
// ("A":0.189113092375919,"B":0.773908615112305,"A-最大":0.958783811656758),
// ("A":0.789464950794354,"B":0.578314067330211,"A-最大":0.958783811656758),
// ("A":0.59376598126255,"B":0.8564029103145,"A-最大":0.958783811656758),
// ("A":0.493202868150547,"B":0.528921798337251,"A-最大":0.958783811656758),
// ("A":0.384325044928119,"B":0.3864487092942,"A-最大":0.958783811656758),
// ("A":0.977926453808323,"B":0.866223617922515,"A-最大":0.977926453808323))
mean(data, rc, ml, assign, abnormal, fill)
计算一组数的算术平均值
| 参数 | 类型 | 说明 |
|---|---|---|
data |
array of real | 存放实数的数组 |
rc |
integer | 可选参数,行列选择:0求列平均;1求行平均;默认为0 |
ml |
integer | 可选参数,移动步长,求移动平均步长,默认不移动 |
assign |
integer | 可选参数,对字段筛选,指定某些行列,求其均值;默认全部 |
abnormal |
integer | 可选参数,异常处理参数,按照存储位来进行管理: |
fill |
any | 可选参数,data 为空时的返回 |
返回:real or array
示例
范例01:一维数组求平均值
a := array(2, 3, 1, 5, 6, 7);
return mean(a);
// 输出:4
范例02:二维数组指定列+指定步长计算平均
arr := rand(10, array("A", "B"));
ml := length(arr); // 移动步长--指定大于等于总长度数,则统计从首行到当前行的区间
arr[: , "A-平均"] := mean(arr, 0, ml, "A");
return arr;
// 输出:
// array(
// ("A":0.87071518227458,"B":0.582499709213153,"A-平均":0.87071518227458),
// ("A":0.881466222461313,"B":0.764262322103605,"A-平均":0.876090702367947),
// ("A":0.806781190447509,"B":0.855670898454264,"A-平均":0.852987531727801),
// ("A":0.999613848049194,"B":0.0568885344546288,"A-平均":0.889644110808149),
// ("A":0.481501111760736,"B":0.797956990310922,"A-平均":0.808015510998666),
// ("A":0.108187671285123,"B":0.354029157897458,"A-平均":0.691377537713076),
// ("A":0.581335202790797,"B":0.581649502040818,"A-平均":0.67565720415275),
// ("A":0.518596450332552,"B":0.212483842624351,"A-平均":0.656024609925225),
// ("A":0.639061011373997,"B":0.364532657200471,"A-平均":0.654139765641756),
// ("A":0.239243724849075,"B":0.521682396298274,"A-平均":0.612650161562488))
sum(data, rc, ml, assign, abnormal, fill)
计算一组数的总和
| 参数 | 类型 | 说明 |
|---|---|---|
data |
array of real | 存放实数的数组 |
rc |
integer | 可选参数,行列选择:0求列的和;1求行的和;默认为0 |
ml |
integer | 可选参数,移动步长,默认不移动 |
assign |
integer | 可选参数,对字段筛选,指定某些行列,求其合计值;默认全部 |
abnormal |
integer | 可选参数,异常处理参数,按照存储位来进行管理: |
fill |
any | 可选参数,data 为空时的返回 |
返回:real or array
示例
范例01:一维数组求和
a := array(2, 3, 1, 5, 6, 7);
return sum(a);
// 输出:24
范例02:二维数组指定列+指定步长求和
arr := ones(10, array("A", "B"));
ml := length(arr); // 移动步长--指定大于等于总长度数,则统计从首行到当前行的区间
arr[: , "A-累加"] := sum(arr, 0, ml, "A");
return arr;
// 输出:
// 示例包含说明文字,未作为可执行片段运行。
norm(data, rc, ml, assign, abnormal, fill)
计算一组数据的平方和的平方根,也就是Sqrt(SumOfSquares)
| 参数 | 类型 | 说明 |
|---|---|---|
data |
array of real | 存放实数的数组 |
rc |
integer | 可选参数,行列选择:0求列平方和的平方根;1求行平方和的平方根;默认为0 |
ml |
integer | 可选参数,移动步长,默认不移动 |
assign |
integer | 可选参数,对字段筛选,指定某些行列,求其平方和的平方根;默认全部 |
abnormal |
integer | 可选参数,异常处理参数,按照存储位来进行管理: |
fill |
any | 可选参数,data 为空时的返回 |
返回:real
示例
范例01:一维数组求平方和的平方根
a := array(5, 3, 5, 5, 7, 7);
return norm(a);
// 输出:13.490737563232
范例02:二维数组指定列+指定步长计算平方和的平方根
arr := rand(10, array("A", "B"));
ml := length(arr); // 移动步长--指定大于等于总长度数,则统计从首行到当前行的区间
arr[: , "A-平方和的平方根"] := norm(arr, 0, ml, "A");
return arr;
// 输出:
// array(
// ("A":0.183076372835785,"B":0.990034059388563,"A-平方和的平方根":0.183076372835785),
// ("A":0.251783866435289,"B":0.299099538708106,"A-平方和的平方根":0.311307040858075),
// ("A":0.49730991339311,"B":0.890515994047746,"A-平方和的平方根":0.586710510939487),
// ("A":0.0872881365939975,"B":0.574711061315611,"A-平方和的平方根":0.593168140106097),
// ("A":0.528904323000461,"B":0.131601712433621,"A-平方和的平方根":0.79472525147091),
// ("A":0.785433517768979,"B":0.914764100918546,"A-平方和的平方根":1.11736029827467),
// ("A":0.404511127155274,"B":0.0298984514083713,"A-平方和的平方根":1.18832793796699),
// ("A":0.0960042411461473,"B":0.651920047821477,"A-平方和的平方根":1.19219969068564),
// ("A":0.456138449255377,"B":0.338952687336132,"A-平方和的平方根":1.27648046885177),
// ("A":0.00426198542118073,"B":0.550133779877797,"A-平方和的平方根":1.27648758391132))
stdDev(data, rc, ml, assign, abnormal, fill)
计算一组数据的标准差的估计(样本标准差),数学公式如下:
| 参数 | 类型 | 说明 |
|---|---|---|
data |
array of real | 存放实数的数组 |
rc |
integer | 可选参数,行列选择:0求列样本标准差;1求行样本标准差;默认为0 |
ml |
integer | 可选参数,移动步长,默认不移动 |
assign |
integer | 可选参数,对字段筛选,指定某些行列,求其样本标准差;默认全部 |
abnormal |
integer | 可选参数,异常处理参数,按照存储位来进行管理: |
fill |
any | 可选参数,data 为空时的返回 |
返回:real or array
示例
范例01:一维数组求样本标准差
a := array(5.3, 3.9, 5.6, 5, 7.5, 7.6);
return stdDev (a);
// 输出:1.46070759108956 //样本a的标准差
范例02:二维数组指定列+指定步长计算样本标准差
arr := rand(10, array("A", "B"));
ml := length(arr); // 移动步长--指定大于等于总长度数,则统计从首行到当前行的区间
arr[: , "A-样本标准差"] := stdDev(arr, 0, ml, "A");
return arr;
// 输出:
// array(
// ("A":0.15182253299281,"B":0.315825292607769,"A-样本标准差":0.0),
// ("A":0.577175007201731,"B":0.838894178392366,"A-样本标准差":0.300769618907604),
// ("A":0.913798103574663,"B":0.327133466256782,"A-样本标准差":0.381847833237904),
// ("A":0.874265916645527,"B":0.694091119104996,"A-样本标准差":0.351970269974613),
// ("A":0.873455712106079,"B":0.718590721255168,"A-样本标准差":0.323787099621693),
// ("A":0.671421690843999,"B":0.249334673630074,"A-样本标准差":0.28961683255538),
// ("A":0.34758283989504,"B":0.831702823517844,"A-样本标准差":0.292231994406431),
// ("A":0.214012956246734,"B":0.170686958590522,"A-样本标准差":0.307933683143253),
// ("A":0.61253499193117,"B":0.52847190736793,"A-样本标准差":0.288276298285835),
// ("A":0.96317343134433,"B":0.269431800814346,"A-样本标准差":0.297346945279902))
popnStdDev(data, rc, ml, assign, abnormal, fill)
计算一组数据的总体标准差,数学公式:
| 参数 | 类型 | 说明 |
|---|---|---|
data |
array of real | 存放实数的数组 |
rc |
integer | 可选参数,行列选择:0求列总体标准差;1求行总体标准差;默认为0 |
ml |
integer | 可选参数,移动步长,默认不移动 |
assign |
integer | 可选参数,对字段筛选,指定某些行列,求其总体标准差;默认全部 |
abnormal |
integer | 可选参数,异常处理参数,按照存储位来进行管理: |
fill |
any | 可选参数,data 为空时的返回 |
返回:real or array
示例
范例01:一维数组求总体标准差
a := array(5.3, 3.9, 5.6, 5, 7.5, 7.6);
return popnStdDev (a);
// 输出:1.33343749593131
范例02:二维数组指定列+指定步长计算总体标准差
arr := rand(10, array("A", "B"));
ml := length(arr); // 移动步长--指定大于等于总长度数,则统计从首行到当前行的区间
arr[: , "A-总体标准差"] := popnStdDev(arr, 0, ml, "A");
return arr;
// 输出:
// array(
// ("A":0.0316496836021543,"B":0.838673108490184,"A-总体标准差":0.0),
// ("A":0.0380017445422709,"B":0.016102873487398,"A-总体标准差":0.00317603047005831),
// ("A":0.865900214761496,"B":0.421355169499293,"A-总体标准差":0.391780859156006),
// ("A":0.531020013149828,"B":0.991538721835241,"A-总体标准差":0.352314903801803),
// ("A":0.356325420551002,"B":0.24732820619829,"A-总体标准差":0.315147053389551),
// ("A":0.068206172902137,"B":0.404504089383409,"A-总体标准差":0.308162811041045),
// ("A":0.508473539724946,"B":0.705417396733537,"A-总体标准差":0.293211170252909),
// ("A":0.14910603640601,"B":0.279827648540959,"A-总体标准差":0.281654950955512),
// ("A":0.831985981203616,"B":0.0213200200814754,"A-总体标准差":0.310721312537621),
// ("A":0.0396571704186499,"B":0.384453092468903,"A-总体标准差":0.311531618685409))
variance(data, rc, ml, assign, abnormal, fill)
计算一组数据的方差的估计(样本方差),数学公式:
| 参数 | 类型 | 说明 |
|---|---|---|
data |
array of real | 存放实数的数组 |
rc |
integer | 可选参数,行列选择:0求列样本方差;1求行样本方差;默认为0 |
ml |
integer | 可选参数,移动步长,默认不移动 |
assign |
integer | 可选参数,对字段筛选,指定某些行列,求其样本方差;默认全部 |
abnormal |
integer | 可选参数,异常处理参数,按照存储位来进行管理: |
fill |
any | 可选参数,data 为空时的返回 |
返回:real or array
示例
范例01:一维数组求样本方差
a := array(5.3, 3.9, 5.6, 5, 7.5, 7.6);
return variance (a);
// 输出:2.13366666666666
范例02:二维数组指定列+指定步长计算样本方差
arr := rand(10, array("A", "B"));
ml := length(arr); // 移动步长--指定大于等于总长度数,则统计从首行到当前行的区间
arr[: , "A-样本方差"] := variance(arr, 0, ml, "A");
return arr;
// 输出:
// array(
// ("A":0.0976159237325191,"B":0.482796263182536,"A-样本方差":0.0),
// ("A":0.883788225706667,"B":0.639443505322561,"A-样本方差":0.309033444195665),
// ("A":0.297417941503227,"B":0.866883828537539,"A-样本方差":0.166969640815567),
// ("A":0.767699372489005,"B":0.0667955267708749,"A-样本方差":0.140455909946851),
// ("A":0.425307923927903,"B":0.222725304076448,"A-样本方差":0.106832245256288),
// ("A":0.932575504761189,"B":0.838074648519978,"A-样本方差":0.117470409113205),
// ("A":0.108969272114337,"B":0.241227929713205,"A-样本方差":0.127914790428133),
// ("A":0.345403993967921,"B":0.100473587168381,"A-样本方差":0.11270303845495),
// ("A":0.39564486593008,"B":0.465002589160577,"A-样本方差":0.0994504149628084),
// ("A":0.00122168054804206,"B":0.989088654285297,"A-样本方差":0.110630838406093))
skewness(data, rc, ml, assign, abnormal, fill)
计算一组数据的偏度,算法和excel兼容
| 参数 | 类型 | 说明 |
|---|---|---|
data |
array of real | 存放实数的数组 |
rc |
integer | 可选参数,行列选择:0求列偏度;1求行偏度;默认为0 |
ml |
integer | 可选参数,移动步长,默认不移动 |
assign |
integer | 可选参数,对字段筛选,指定某些行列,求其偏度;默认全部 |
abnormal |
integer | 可选参数,异常处理参数,按照存储位来进行管理: |
fill |
any | 可选参数,data 为空时的返回 |
返回:real or array
示例
范例01:一维数组求偏度
data := array(5, 3, 6, 8, 9, 10, 4);
return skewness (data);
// 输出:0.11
范例02:二维数组指定列+指定步长计算偏度
arr := rand(10, array("A", "B"));
ml := length(arr); // 移动步长--指定大于等于总长度数,则统计从首行到当前行的区间
arr[: , "A-偏度"] := skewness(arr, 0, ml, "A");
return arr;
// 输出:
// array(
// ("A":0.345008506439626,"B":0.947316359030083,"A-偏度":NAN),
// ("A":0.456479304004461,"B":0.314875329611823,"A-偏度":NAN),
// ("A":0.542076414451003,"B":0.465758888283745,"A-偏度":-0.389761200780375),
// ("A":0.830417833756656,"B":0.674252083292231,"A-偏度":1.12823697245901),
// ("A":0.692654144950211,"B":0.513484538765624,"A-偏度":0.305098325022161),
// ("A":0.175067013595253,"B":0.0867823071312159,"A-偏度":-0.0145265618339346),
// ("A":0.997625324875116,"B":0.229432929540053,"A-偏度":0.131336671537343),
// ("A":0.607732360716909,"B":0.00203069648705423,"A-偏度":0.0768566639543401),
// ("A":0.769998977892101,"B":0.25457691331394,"A-偏度":-0.181274403805795),
// ("A":0.462916810531169,"B":0.490705287782475,"A-偏度":0.0103060619790022))
skewness2(data, rc, ml, assign, abnormal, fill)
计算一组数据的偏度,算法和matlab兼容
| 参数 | 类型 | 说明 |
|---|---|---|
data |
array of real | 存放实数的数组 |
rc |
integer | 可选参数,行列选择:0求列偏度;1求行偏度;默认为0 |
ml |
integer | 可选参数,移动步长,默认不移动 |
assign |
integer | 可选参数,对字段筛选,指定某些行列,求其偏度;默认全部 |
abnormal |
integer | 可选参数,异常处理参数,按照存储位来进行管理: |
fill |
any | 可选参数,data 为空时的返回 |
返回:real or array
示例
范例01:一维数组求偏度
data := array(5, 3, 6, 8, 9, 10, 4);
return skewness2(data);
// 输出:0.09
范例02:二维数组指定列+指定步长计算偏度
arr := rand(10, array("A", "B"));
ml := length(arr); // 移动步长--指定大于等于总长度数,则统计从首行到当前行的区间
arr[: , "A-偏度"] := skewness2(arr, 0, ml, "A");
return arr;
// 输出:
// array(
// ("A":0.6100484195631,"B":0.715981872752309,"A-偏度":NAN),
// ("A":0.993454972514883,"B":0.599585968535394,"A-偏度":0.0),
// ("A":0.372750075301156,"B":0.444524445571005,"A-偏度":0.278760317564702),
// ("A":0.550206494750455,"B":0.647872807923704,"A-偏度":0.635048178529647),
// ("A":0.408510100794956,"B":0.953352153301239,"A-偏度":0.952205303351184),
// ("A":0.536475122207776,"B":0.74982732674107,"A-偏度":1.15164267581698),
// ("A":0.571144290035591,"B":0.0298545127734542,"A-偏度":1.26050077048314),
// ("A":0.230761173414067,"B":0.755714789498597,"A-偏度":0.85583534867919),
// ("A":0.150797324953601,"B":0.0688467305153608,"A-偏度":0.619687690263225),
// ("A":0.077599665382877,"B":0.990505203139037,"A-偏度":0.486284607637024))
kurtosis(data, rc, ml, assign, abnormal, fill)
计算一组数据的峰度,算法和excel兼容
| 参数 | 类型 | 说明 |
|---|---|---|
data |
array of real | 存放实数的数组 |
rc |
integer | 可选参数,行列选择:0求列峰度;1求行峰度;默认为0 |
ml |
integer | 可选参数,移动步长,默认不移动 |
assign |
integer | 可选参数,对字段筛选,指定某些行列,求其峰度;默认全部 |
abnormal |
integer | 可选参数,异常处理参数,按照存储位来进行管理: |
fill |
any | 可选参数,data 为空时的返回 |
返回:real or array
示例
范例01:一维数组计算峰度
data := array(5, 3, 6, 8, 9, 10, 4);
return kurtosis(data);
// 输出:-1.64
// 输出:-1.64
范例02:二维数组指定列+指定步长计算峰度
arr := rand(10, array("A", "B"));
ml := length(arr); // 移动步长--指定大于等于总长度数,则统计从首行到当前行的区间
arr[: , "A-峰度"] := kurtosis(arr, 0, ml, "A");
return arr;
// 输出:
// array(
// ("A":0.980047498596832,"B":0.402004413306713,"A-峰度":NAN),
// ("A":0.633000277215615,"B":0.990959876682609,"A-峰度":NAN),
// ("A":0.0302784142550081,"B":0.897569506429136,"A-峰度":NAN),
// ("A":0.952995504485443,"B":0.902370758820325,"A-峰度":1.14914121941789),
// ("A":0.647436241386458,"B":0.798524161800742,"A-峰度":1.75277777253052),
// ("A":0.106838567415252,"B":0.783145941328257,"A-峰度":-1.79403146968547),
// ("A":0.940166180720553,"B":0.361717429943383,"A-峰度":-1.27336988351427),
// ("A":0.696889952989295,"B":0.985664031002671,"A-峰度":-0.658650953176948),
// ("A":0.123242125613615,"B":0.675423074513674,"A-峰度":-1.65506451391199),
// ("A":0.986539963865653,"B":0.68698396300897,"A-峰度":-1.41423021480228))
kurtosis2(data, rc, ml, assign, abnormal, fill)
计算一组数据的峰度,算法和matlab兼容
| 参数 | 类型 | 说明 |
|---|---|---|
data |
array of real | 存放实数的数组 |
rc |
integer | 可选参数,行列选择:0求列峰度;1求行峰度;默认为0 |
ml |
integer | 可选参数,移动步长,默认不移动 |
assign |
integer | 可选参数,对字段筛选,指定某些行列,求其峰度;默认全部 |
abnormal |
integer | 可选参数,异常处理参数,按照存储位来进行管理: |
fill |
any | 可选参数,data 为空时的返回 |
返回:real
示例
范例01::一维数组计算峰度
data := array(5, 3, 6, 8, 9, 10, 4);
return kurtosis2(data);
// 输出:1.57
范例02:二维数组指定列+指定步长计算峰度
arr := rand(10, array("A", "B"));
ml := length(arr); // 移动步长--指定大于等于总长度数,则统计从首行到当前行的区间
arr[: , "A-峰度"] := kurtosis2(arr, 0, ml, "A");
return arr;
// 输出:
// array(
// ("A":0.655130569823086,"B":0.169059717329219,"A-峰度":NAN),
// ("A":0.848595677409321,"B":0.331126981182024,"A-峰度":1.00000000000272),
// ("A":0.0950429700314999,"B":0.555930029833689,"A-峰度":1.5),
// ("A":0.741949734743685,"B":0.7052144294139,"A-峰度":2.19701539579311),
// ("A":0.0635894564911723,"B":0.696825876133516,"A-峰度":1.23130776662201),
// ("A":0.975331973750144,"B":0.707070349482819,"A-峰度":1.52458726295925),
// ("A":0.199741119518876,"B":0.772686692187563,"A-峰度":1.30375485345706),
// ("A":0.133859496098012,"B":0.414379859110341,"A-峰度":1.27199062552285),
// ("A":0.402421594597399,"B":0.580620889784768,"A-峰度":1.43616776036497),
// ("A":0.465525532606989,"B":0.129364971769974,"A-峰度":1.59328967992336))
harmean(data, rc, ml, assign, abnormal, fill)
计算一组数据的调和平均数
| 参数 | 类型 | 说明 |
|---|---|---|
data |
array of real | 存放实数的数组 |
rc |
integer | 可选参数,行列选择:0求列调和平均数;1求行调和平均数;默认为0 |
ml |
integer | 可选参数,移动步长,默认不移动 |
assign |
integer | 可选参数,对字段筛选,指定某些行列,求其调和平均数;默认全部 |
abnormal |
integer | 可选参数,异常处理参数,按照存储位来进行管理: |
fill |
any | 可选参数,data 为空时的返回 |
返回:real or array
示例
范例01:一维数组计算调和平均数
data := array(5, 3, 6, 8, 9, 10, 4);
return harmean(data);
// 输出:5.44
范例02:二维数组指定列+指定步长计算调和平均数
arr := rand(10, array("A", "B"));
ml := length(arr); // 移动步长--指定大于等于总长度数,则统计从首行到当前行的区间
arr[: , "A-调和平均数"] := harmean(arr, 0, ml, "A");
return arr;
// 输出:
// array(
// ("A":0.124961190624163,"B":0.0598194859921932,"A-调和平均数":0.124961190624163),
// ("A":0.857839953387156,"B":0.141636071261019,"A-调和平均数":0.218145252665682),
// ("A":0.65432970575057,"B":0.0625838069245219,"A-调和平均数":0.280465973816327),
// ("A":0.458887472050265,"B":0.121089172083885,"A-调和平均数":0.310663488719166),
// ("A":0.613102434901521,"B":0.116132015362382,"A-调和平均数":0.344667921602947),
// ("A":0.785793515155092,"B":0.855155329685658,"A-调和平均数":0.380244620081035),
// ("A":0.799667620798573,"B":0.722903371788561,"A-调和平均数":0.411043312484736),
// ("A":0.653244619490579,"B":0.679718399886042,"A-调和平均数":0.431019257240658),
// ("A":0.955700401915237,"B":0.652552865445614,"A-调和平均数":0.459019535579044),
// ("A":0.965912215644494,"B":0.150117957498878,"A-调和平均数":0.484442154536813))
product(data, rc, ml, assign, abnormal, fill)
返回累乘值
| 参数 | 类型 | 说明 |
|---|---|---|
data |
array of real | 存放实数的数组 |
rc |
integer | 可选参数,行列选择:0求列累乘值;1求行累乘值;默认为0 |
ml |
integer | 可选参数,移动步长,默认不移动 |
assign |
integer | 可选参数,对字段筛选,指定某些行列,求其累乘值;默认全部 |
abnormal |
integer | 可选参数,异常处理参数,按照存储位来进行管理: |
fill |
any | 可选参数,data 为空时的返回 |
返回:real or array
示例
// 一维数组计算累乘值
data := array(5, 3, 6, 8, 9, 10, 4);
return product (data);
// 输出:259200 //返回5*3*6*8*9*10*4
范例02:二维数组指定列+指定步长计算累乘值
arr := rand(10, array("A", "B")) * 10;
ml := length(arr); // 移动步长--指定大于等于总长度数,则统计从首行到当前行的区间
arr[: , "A-累乘"] := product(arr, 0, ml, "A");
return arr;
// 输出:
// array(
// ("A":3.50745165487751,"B":8.34431231953204,"A-累乘":3.50745165487751),
// ("A":6.7908460390754,"B":5.874217399396,"A-累乘":23.8185641777734),
// ("A":5.74234192026779,"B":0.828072652220726,"A-累乘":136.774339558617),
// ("A":4.92611460620537,"B":0.982504128478467,"A-累乘":673.766071853797),
// ("A":2.6915419078432,"B":8.85313867591322,"A-累乘":1813.46961847739),
// ("A":2.64794702874497,"B":3.58003713656217,"A-累乘":4801.97148796647),
// ("A":5.65035830019042,"B":3.64946177229285,"A-累乘":27132.8594543091),
// ("A":7.37319005886093,"B":4.58649940323085,"A-累乘":200055.729596983),
// ("A":5.89445208897814,"B":2.48157736845315,"A-累乘":1179218.91323498),
// ("A":7.35567317577079,"B":2.42680004332215,"A-累乘":8673948.92844412))
large(data, n, rc, ml, assign, abnormal, fill)
找出第N最大的数
| 参数 | 类型 | 说明 |
|---|---|---|
data |
array of real | 存放实数的数组 |
n |
integer | 表示序号,1表示最大的数据 |
rc |
integer | 行列选择:0求列第N最大的数;1求行第N最大的数;默认为0 |
ml |
integer | 移动步长,默认不移动 |
assign |
integer | 对字段筛选,指定某些行列,求其第N最大的数;默认全部 |
abnormal |
integer | 异常处理参数,按照存储位来进行管理: |
fill |
any | data 为空时的返回 |
返回:real
示例
data := array(5, 3, 6, 8, 9, 10, 4);
// 返回数组Data中第3大的数据
return large (data, 3);
// 输出:8
small(data, n, rc, ml, assign, abnormal, fill)
找出第N最小的数
| 参数 | 类型 | 说明 |
|---|---|---|
data |
array of real | 存放实数的数组 |
n |
integer | 表示序号,1表示最小的数据 |
rc |
integer | 行列选择:0求列第N最小的数;1求行第N最小的数;默认为0 |
ml |
integer | 移动步长,默认不移动 |
assign |
integer | 对字段筛选,指定某些行列,求其第N最小的数;默认全部 |
abnormal |
integer | 异常处理参数,按照存储位来进行管理: |
fill |
any | data 为空时的返回 |
返回:real
示例
// 返回数组Data中第3小的数据
data := array(5, 3, 6, 8, 9, 10, 4);
return small (data, 3);
// 输出:5
percentrank(data, x, rc, ml, assign, abnormal, fill)
数据集中X在该组数据中的百分点
| 参数 | 类型 | 说明 |
|---|---|---|
data |
array of real | 存放实数的数组 |
x |
real | 实数,在数据集外的数的百分位使用线性插值得到 |
rc |
integer | 行列选择:0求列百分点;1求行百分点;默认为0 |
ml |
integer | 移动步长,默认不移动 |
assign |
integer | 对字段筛选,指定某些行列,求其百分点;默认全部 |
abnormal |
integer | 异常处理参数,按照存储位来进行管理: |
fill |
any | data 为空时的返回 |
返回:real
示例
// 返回8在数组Data的百分点,即小于8的个数/(小于8个数+大于8个
// 数)结果是4/6
data := array(5, 3, 6, 8, 9, 10, 4);
return percentrank(data, 8);
// 输出:0.666666666666667
rank(data, x, rc, ml, assign, abnormal, fill)
返回X在DATA中的排名(Data从大到小排列),该数据必需存在在Data中。
| 参数 | 类型 | 说明 |
|---|---|---|
data |
array of real | 存放实数的数组 |
x |
real | 实数 |
rc |
integer | 行列选择:0求列排名;1求行排名;默认为0 |
ml |
integer | 移动步长,默认不移动 |
assign |
integer | 对字段筛选,指定某些行列,求其排名;默认全部 |
abnormal |
integer | 异常处理参数,按照存储位来进行管理: |
fill |
any | data 为空时的返回 |
返回:real
示例
data := array(5, 3, 6, 8, 9, 10, 4);
return rank(data, 8);
// 输出:3
trimmean(data, x, rc, ml, assign, abnormal, fill)
返回去掉头尾百分数以后的平均值。算法如下:
| 参数 | 类型 | 说明 |
|---|---|---|
data |
array of real | 存放实数的数组 |
x |
real | 百分比,实数,一般在0-1之间 |
rc |
integer | 行列选择:0求列排名;1求行排名;默认为0 |
ml |
integer | 移动步长,默认不移动 |
assign |
integer | 对字段筛选,指定某些行列,求其排名;默认全部 |
abnormal |
integer | 异常处理参数,按照存储位来进行管理: |
fill |
any | data 为空时的返回 |
返回:real
示例
// 去除个数=总个数7*0.7=4.9,头和尾各去除2个数据,剩下数据5,6,8求//均值
data := array(5, 3, 6, 8, 9, 10, 4);
return trimmean(data, 0.7);
// 输出:6.33333333333333
frequency(data, freq_data, rc, ml, assign, abnormal, fill)
返回DATA在FreqData分割区间中的出现个数。
| 参数 | 类型 | 说明 |
|---|---|---|
data |
array of real | 存放实数的数组 |
freq_data |
array of real | 分割区间,如果为array(1,2,3)则表示需要计算Data 分别落在(-inf,1),(1,2),(2,3),(3,inf)四个区间的个数(频数) |
rc |
integer | 行列选择:0求列排名;1求行排名;默认为0 |
ml |
integer | 移动步长,默认不移动 |
assign |
integer | 对字段筛选,指定某些行列,求其排名;默认全部 |
abnormal |
integer | 异常处理参数,按照存储位来进行管理: |
fill |
any | data 为空时的返回 |
返回:array of integer
示例
data := array(5, 3, 6, 8, 9, 10, 4);
freq_data := array(1, 2, 3);
return frequency(data, freq_data);
// 输出:
// array(0,0,1,6)
geomean(data)
计算一组数据的几何平均数
| 参数 | 类型 | 说明 |
|---|---|---|
data |
array of real | 存放实数的数组 |
返回:real
示例
范例01:一维数组计算几何平均数
data := array(5, 3, 6, 8, 9, 10, 4);
return geomean (data);
// 输出:5.93
范例02:二维数组指定列+指定步长计算几何平均数
arr := rand(10, array("A", "B"));
ml := length(arr); // 移动步长--指定大于等于总长度数,则统计从首行到当前行的区间
arr[: , "A-几何平均数"] := geomean(arr, 0, ml, "A");
return arr;
// 输出:
// array(
// ("A":0.519830256002024,"B":0.374670889694244,"A-几何平均数":0.519830256002024),
// ("A":0.765975012211129,"B":0.00843984819948673,"A-几何平均数":0.631012667613626),
// ("A":0.402682410785928,"B":0.294473465066403,"A-几何平均数":0.543266516297067),
// ("A":0.66125158383511,"B":0.80891461763531,"A-几何平均数":0.570625775662063),
// ("A":0.239383002044633,"B":0.718946079257876,"A-几何平均数":0.479622744628361),
// ("A":0.335142631782219,"B":0.669408179819584,"A-几何平均数":0.451808871517444),
// ("A":0.664034612709656,"B":0.788084068801254,"A-几何平均数":0.477359539816948),
// ("A":0.0850369480904192,"B":0.813925041817129,"A-几何平均数":0.384760839429897),
// ("A":0.231962512480095,"B":0.205027454067022,"A-几何平均数":0.363723728819524),
// ("A":0.809202993987128,"B":0.396649306640029,"A-几何平均数":0.394003626650774))
popnVariance(data)
计算一组数据的总体方差,数学公式:
| 参数 | 类型 | 说明 |
|---|---|---|
data |
array of real | 存放实数的数组 |
返回:real
示例
范例01:一维数组求总体方差
a := array(5.3, 3.9, 5.6, 5, 7.5, 7.6);
return popnVariance(a);
// 输出:1.77805555555555
范例02:二维数组指定列+指定步长计算总体方差
arr := rand(10, array("A", "B"));
ml := length(arr); // 移动步长--指定大于等于总长度数,则统计从首行到当前行的区间
arr[: , "A-总体方差"] := popnVariance(arr, 0, ml, "A");
return arr;
// 输出:
// array(
// ("A":0.564295332413167,"B":0.198089802404866,"A-总体方差":0.0),
// ("A":0.166125119663775,"B":0.0624075580853969,"A-总体方差":0.039634879580224),
// ("A":0.378304088953883,"B":0.14998382772319,"A-总体方差":0.0264613528859377),
// ("A":0.318244896829128,"B":0.703246884280816,"A-总体方差":0.0203400328742531),
// ("A":0.568663859274238,"B":0.957403063541278,"A-总体方差":0.0234577418324268),
// ("A":0.257466434501112,"B":0.0300985530484468,"A-总体方差":0.0223352875445233),
// ("A":0.957228042650968,"B":0.674682865617797,"A-总体方差":0.0605798191589568),
// ("A":0.73080830834806,"B":0.904764427104965,"A-总体方差":0.0611106539800822),
// ("A":0.236550874542445,"B":0.432319020619616,"A-总体方差":0.0607978820394406),
// ("A":0.479372498579323,"B":0.225869641872123,"A-总体方差":0.0547388465767192))
percentile(data, pct, rc, ml, assign, abnormal, fi_ll)
计算序列百分点PCT的值。
| 参数 | 类型 | 说明 |
|---|---|---|
data |
array of real | 数组,存放实数的数组 |
pct |
real | 实数,表示百分点,从0开始,以1结束 |
rc |
integer | 行列选择:0求列第PCT个百分点的值;1求行第PCT个百分点的值;默认为0 |
ml |
integer | 整型,移动步长,取当前行向前ML个长度序列的百分点的值,为0时取整个序列(默认)。 |
assign |
integer|string|array | 下标或下标序列,对字段筛选,指定某些行列求百分点的值,为nil时为全部(默认)。 |
abnormal |
integer | 整型, |
fi_ll |
any | 数据data为空时的返回值。 |
返回:real
示例
范例1:序列百分点的值
// 返回数组Data的第3个百分点
data := array(5, 3, 6, 8, 9, 10, 4);
return percentile(data, 0.3);
// 输出:4.8
范例2:二维数组各列百分点的值
a := array('A': ('g': 1, 'f': 2, 'k': 3),
'B': ('g': 10, 'f': 20, 'k': 30),
'C': ('g': 100, 'f': 200, 'k': 300),
'D': ('g': 1000, 'f': 2000, 'k': 3000),
);
return percentile(a, 0.5, 0);
范例3:二维数组指定列指定步长的百分点的值
a := array('A': ('g': 1, 'f': 2, 'k': 3),
'B': ('g': 10, 'f': 20, 'k': 30),
'C': ('g': 100, 'f': 200, 'k': 300),
'D': ('g': 1000, 'f': 2000, 'k': 3000),
);
return percentile(a, 0.5, 0, 2, array('f', 'k'));
std(rsp_cycle, n)
已实现波动率(%)
| 参数 | 类型 | 说明 |
|---|---|---|
rsp_cycle |
any | 采样小周期 |
n |
any | 整型,当前时间向历史推移N个周期长度作为采样的时间区间(大区间),与当前时间,周期相关。默认为 1,与市场周期对齐;N为0时,返回最后一个高频时刻 |
返回:float
stdUp(rsp_cycle, n)
高频上行波动率(%)
| 参数 | 类型 | 说明 |
|---|---|---|
rsp_cycle |
any | 采样小周期 |
n |
any | 整型,当前时间向历史推移N个周期长度作为采样的时间区间(大区间),与当前时间,周期相关。默认为 1,与市场周期对齐;N为0时,返回最后一个高频时刻 |
返回:float
beta(rsp_cycle, n, cut_value)
S=|R|/(V^beta)
| 参数 | 类型 | 说明 |
|---|---|---|
rsp_cycle |
any | 采样小周期 |
n |
any | 整型,当前时间向历史推移N个周期长度作为采样的时间区间(大区间),与当前时间,周期相关。默认为 1,与市场周期对齐;N为0时,返回最后一个高频时刻 |
cut_value |
float | 划分截至比例 |
返回:float
lnv(rsp_cycle, n, cut_value)
S=|R|/ln(V)
| 参数 | 类型 | 说明 |
|---|---|---|
rsp_cycle |
any | 采样小周期 |
n |
any | 整型,当前时间向历史推移N个周期长度作为采样的时间区间(大区间),与当前时间,周期相关。默认为 1,与市场周期对齐;N为0时,返回最后一个高频时刻 |
cut_value |
float | 划分截至比例 |
返回:float
skewWBuy(rsp_cycle, k, n)
净委买变化率偏度
| 参数 | 类型 | 说明 |
|---|---|---|
rsp_cycle |
any | 采样小周期 |
k |
any | 前k档行情,默认为1 |
n |
any | 整型,当前时间向历史推移N个周期长度作为采样的时间区间(大区间),与当前时间,周期相关。默认为 1,与市场周期对齐;N为0时,返回最后一个高频时刻 |
返回:float
sf_exppdf(values, lambda_value)
计算指数分布概率密度。
| 参数 | 类型 | 说明 |
|---|---|---|
values |
array | 随机变量序列;标量输入会返回 nil,生成代码时使用数组输入 |
lambda_value |
float | lambda 参数 |
返回:array
sf_expcdf(values, lambda_value)
计算指数分布累计分布值。
| 参数 | 类型 | 说明 |
|---|---|---|
values |
array | 随机变量序列;标量输入会返回 nil,生成代码时使用数组输入 |
lambda_value |
float | lambda 参数 |
返回:array
sf_mvtcdf(lower_bounds, upper_bounds, correlation_matrix, degrees_freedom)
计算多变量 t 分布累计分布值。
| 参数 | 类型 | 说明 |
|---|---|---|
lower_bounds |
array | 下界;传 nil 表示使用默认下界 |
upper_bounds |
array | 上界矩阵 |
correlation_matrix |
array | 相关系数矩阵 |
degrees_freedom |
float | 自由度 |
返回:array
sf_mvncdf(lower_bounds, upper_bounds, mean_values, correlation_matrix)
计算多变量正态分布累计分布值。
| 参数 | 类型 | 说明 |
|---|---|---|
lower_bounds |
array | 下界;传 nil 表示使用默认下界 |
upper_bounds |
array | 上界矩阵 |
mean_values |
array | 均值;传 nil 表示使用默认均值 |
correlation_matrix |
array | 相关系数矩阵 |
返回:array
Hypoth_SNUTest(values, mean_value, std_dev, tail, alpha)
执行单个正态总体均值 U 检验。
| 参数 | 类型 | 说明 |
|---|---|---|
values |
array | 样本数据 |
mean_value |
float | 原假设均值 |
std_dev |
float | 总体标准差 |
tail |
string | 检验方向;常用 "both"、"left"、"right" |
alpha |
float | 显著性水平 |
返回:array
Hypoth_SNDTest(values, variance_value, tail, alpha)
执行单个正态总体方差检验。
| 参数 | 类型 | 说明 |
|---|---|---|
values |
array | 样本数据 |
variance_value |
float | 原假设方差 |
tail |
string | 检验方向;常用 "both"、"left"、"right" |
alpha |
float | 显著性水平 |
返回:array
Anova_Twice(values, alpha, repeat_count)
执行双因素方差分析。
| 参数 | 类型 | 说明 |
|---|---|---|
values |
array | 观测值矩阵 |
alpha |
float | 显著性水平 |
repeat_count |
any | 每个因素水平组合的重复试验次数 |
返回:array
Hypoth_SignTest(values, probability, median_value, tail, alpha)
执行符号检验。
| 参数 | 类型 | 说明 |
|---|---|---|
values |
array | 样本数据 |
probability |
float | 原假设成功概率 |
median_value |
float | 原假设中位数 |
tail |
string | 检验方向;常用 "both"、"left"、"right" |
alpha |
float | 显著性水平 |
返回:array
correlpaired(a, b)
功能:计算 a 的每一列与 b 的每一列之间的相关系数矩阵,
| 参数 | 类型 | 说明 |
|---|---|---|
a |
array | 一维数字数组, |
b |
array | 一维数字数组, |
返回:array
示例
范例01
a := rand(10);
b := rand(10);
return correlpaired(a, b); // array((0.17))
范例02
a := rand(10);
b := rand(10, 2);
return correlpaired(a, b); // array((-0.35,-0.19))
范例03
a := rand(10, 2);
b := rand(10, 4);
return correlpaired(a, b);
// 输出:
范例04
a := `array("A": rand(10));
b := `array("A": rand(10), "B": rand(10));
return correlpaired(a, b); // array((0.2,-0.08))
correlpaired_side(a, dir_type)
功能:计算 a 的每两列之间符合对应过滤条件的相关系数矩阵, 1) +-相关系数 :将 a <0 的元素替换为0 ,b>0的元素替换为0,计算相关系数 2) 同向相关系数 :将 a 与 b 非同向(乘积<0)的元素替换为0,计算相关系数 场景支持同 correlpaired 内部强制 a 转化为fmarray进行计算
| 参数 | 类型 | 说明 |
|---|---|---|
a |
array | 一维数字数组, |
dir_type |
any | 用户自定义,方向类型 |
返回:array
sf_SinX(x, v)
正弦积分的定义为
| 参数 | 类型 | 说明 |
|---|---|---|
x |
float | 实型变量。自变量 |
v |
float | 实型变量,返回的结果 |
返回:any
sf_CosX(x, v)
余弦积分的定义为
| 参数 | 类型 | 说明 |
|---|---|---|
x |
float | 实型变量。自变量 |
v |
float | 实型变量,返回的结果 |
返回:any
sf_eX(x, v)
指数积分的定义为
| 参数 | 类型 | 说明 |
|---|---|---|
x |
float | 实型变量。自变量 |
v |
float | 实型变量,返回的结果 |
返回:any
sf_Gamma(x, v)
计算伽马(Gamma)函数的数值 伽马(Gamma)函数的定义为
| 参数 | 类型 | 说明 |
|---|---|---|
x |
float | 实型变量。要求X>=0 |
v |
float | 实型变量,返回的结果 |
返回:any
sf_Beta(x, y, v)
计算贝塔函数(Beta)的数值,贝塔函数(Beta)的定义为 或者:
| 参数 | 类型 | 说明 |
|---|---|---|
x |
float | 实型变量。要求X>=0 |
y |
float | 实型变量。要求Y>=0 |
v |
float | 实型变量,返回的结果 |
返回:any
sf_Error(x, v)
误差函数也称为概率函数,其定义为
| 参数 | 类型 | 说明 |
|---|---|---|
x |
float | 实型变量。要求X>=0 |
v |
float | 实型变量,返回的结果 |
返回:any
sf_Normal(x, a, d)
正态分布函数的定义为 其中: (1)a为随机变量的数学期望(平均值) (2)σ为随机变量的标准差
| 参数 | 类型 | 说明 |
|---|---|---|
x |
float | 实型变量。随机变量值 |
a |
float | 实型变量。数学期望值 |
d |
float | 实型变量。标准值 |
返回:any
sf_normalinv(data, m, s, v)
正态分布的分布逆函数,输入分布函数或者累计概率值,得到随机变量值
| 参数 | 类型 | 说明 |
|---|---|---|
data |
array | 分布函数或者累计概率值,可以使用实数,也可以是一个实数数组 |
m |
float | 正态分布参数,均值,实数类型 |
s |
float | 正态分布参数,标准差,实数类型 |
v |
array | 随机变量值,变参返回。 |
返回:any
sf_normalinv2(data, v)
标准正态分布的分布逆函数,输入分布函数或者累计概率值,得到随机变量值
| 参数 | 类型 | 说明 |
|---|---|---|
data |
array | 分布函数或者累计概率值,可以使用实数,也可以是一个实数数组 |
v |
array | 随机变量值,变参返回。 |
返回:any
sf_nbininv(y, r, p, x)
负二项分布的分布逆函数,输入累计概率值,返回随机变量值
| 参数 | 类型 | 说明 |
|---|---|---|
y |
array | :分布函数或者累计概率值,可以使用实数,也可以是一个实数数组 |
r |
any | 试验成功的次数,为大于0的整数 |
p |
float | 一次试验成功的概率,为0,1之间的实数 |
x |
array | 变参返回,该函数也支持直接返回,类型和y一样 |
返回:any
sf_tinv(data, n, v)
T分布的分布逆函数,输入分布函数或者累计概率值,返回随机变量值
| 参数 | 类型 | 说明 |
|---|---|---|
data |
array | 分布函数或者累计概率值,可以使用实数,也可以是一个实数数组。 |
n |
any | 整数,自由度。 |
v |
array | 实数,随机变量值,变参返回。 |
返回:any
sf_finv(data, n, n1, v)
F分布的分布逆函数,输入分布函数或者累计概率值,返回随机变量值
| 参数 | 类型 | 说明 |
|---|---|---|
data |
array | 分布函数或者累计概率值,可以使用实数,也可以是一个实数数组。 |
n |
any | 整数,分子自由度。 |
n1 |
any | 整数,分母自由度。 |
v |
array | 实数,随机变量值,变参返回。 |
返回:any
sf_x2inv(data, n, v)
卡方分布的分布逆函数,输入分布函数或者累计概率值,返回随机变量值
| 参数 | 类型 | 说明 |
|---|---|---|
data |
array | 分布函数或者累计概率值,可以使用实数,也可以是一个实数数组。 |
n |
any | 自由度。 |
v |
array | 随机变量值,变参返回。 |
返回:any
sf_gammainv(probability, alpha, v)
标准gamma分布的逆函数,输入分布函数或者累计概率值,返回随机变量值。功能等同于sf_gaminv(Probability, Alpha,1,v)。
| 参数 | 类型 | 说明 |
|---|---|---|
probability |
any | 分布函数或者累计概率值,可以使用实数,也可以是一个实数数组。 |
alpha |
any | Alpha分布参数。 |
v |
any | 随机变量值,变参返回 |
返回:any
sf_betainv(y, a, b, x)
贝塔分布的分布逆函数,输入分布函数值,输出随机变量值
| 参数 | 类型 | 说明 |
|---|---|---|
y |
array | :分布函数或者累计概率值,可以使用实数,也可以是一个实数数组 |
a |
float | beta分布参数1,实数,大于0 |
b |
float | beta分布参数2,实数,大于0 |
x |
array | 变参返回,类型和y一样 |
返回:any
mvtcdfqmc(a, b, rho, nu, options, funevals)
中间函数,采用蒙特卡洛计算多元t分布,估计概率P值以及误差
| 参数 | 类型 | 说明 |
|---|---|---|
a |
array | 数组,下限,可省略,默认为负无穷 |
b |
array | 数组,下限或实际需计算分布的样本值,不可省略 |
rho |
array | 数组,相关系数矩阵 |
nu |
float | 实数,自由度 |
options |
array | 数组,规划条件设置 |
funevals |
array | 线性回归的结果条件 |
返回:array
示例
范例01:
rho := array(
(1, 0.923912552224476, 0.035770327030089),
(0.923912552224476, 1, 0.084276570941762),
(0.035770327030089, 0.084276570941762, 1)
);
return mvtcdfqmc(array(0, 0, 0), rand(3), rho, 2, array());
sf_copulacdf(x, copula_type, rho, alpha, options)
估计多元函数分布值
| 参数 | 类型 | 说明 |
|---|---|---|
x |
array | 数组,样本值为均匀分布需要在[0,1]区间内,至少2维 |
copula_type |
string | 字符串,分布函数类型:;椭圆族:gaussian、t,支持多维;阿基米德族:clayton、frank、gumbel,目前仅支持二维 |
rho |
array | 数组,相关系数矩阵,d*d |
alpha |
float | 实数,参数估计值,t分布时为自由度,二元阿基米德分布时为估值参数,默认1;;clayton:[0,∞); frank:(-∞,∞);gumbel:[1,∞) |
options |
array | 数组,估计规划条件,可为空 |
返回:array
sf_copulafit(x, copula_type, method, options)
估计多元分布相关系数矩阵
| 参数 | 类型 | 说明 |
|---|---|---|
x |
array | 数组,样本值为均匀分布需要在[0,1]区间内,至少2维 |
copula_type |
string | 字符串,分布函数类型:;椭圆族:gaussian、t,支持多维;阿基米德族:clayton、frank、gumbel,目前仅支持二维 |
method |
string | 字符串,极大似然估计方法(多元分布时有效);ML —最大似然估计 (默认);AML —调整的似然估计,性能上比MLE快,但不适用于中小样本量 |
options |
array | 数组,估计规划条件,可为空 |
返回:array
randCopula(copula_type, rho, v, n)
生成服从copula分布的随机数
| 参数 | 类型 | 说明 |
|---|---|---|
copula_type |
string | 字符串,分布函数类型:gaussian、t、clayton、frank、gumbel |
rho |
array | 数组,协方差矩阵,对阿基米德族(clayton、frank、gumbel分布)为空 |
v |
float | 实数,对t分布为自由度;对阿基米德族(clayton、frank、gumbel分布)为参数估计值,且其 |
n |
integer | 整数,产生随机数长度 |
返回:array
示例
范例01:gaussian分布
rho := array(
(1.0000, 0.9239, 0.0358),
(0.9239, 1.0000, 0.0843),
(0.0358, 0.0843, 1.0000)
);
n := 10;
v := array((0, 0, 0), (0, 0, 0), (0, 0, 0));
return randCopula("gaussian", rho, v, n);
范例02:t分布
rho := array(
(1.0000, 0.9239, 0.0358),
(0.9239, 1.0000, 0.0843),
(0.0358, 0.0843, 1.0000)
);
n := 10;
return randCopula("t", rho, 3, n);
范例03:阿基米德族,clayton(frank、gumbel调用相同)
alpha := 1;
n := 10;
return randCopula("clayton", nil, alpha, n);
Regress_VIFR2(x, w, constant)
vif分析增强
| 参数 | 类型 | 说明 |
|---|---|---|
x |
any | 表达式,自变量 |
w |
any | 表达式,权重 |
constant |
bool | object |
返回:array