# 数学函数 / 统计分布 ## `binofit(x, n, alpha)` 声明:function 根据二项分布样本估计成功概率及其置信区间 | 参数 | 类型 | 说明 | | ------- | ------------- | ----------------------- | | `x` | array of real | 各样本中的成功次数 | | `n` | integer | 每个样本的试验总量 | | `alpha` | real | 显著性水平,范围 0 到 1 | 返回:array ### 示例 范例01:估计二项分布成功概率 ```tsl return binofit(array(4, 5, 6, 5), 10, 0.05); ``` ## `randgeo(p, row, col)` 声明:function 生成服从几何分布的随机数数组 | 参数 | 类型 | 说明 | | ----- | ------------------------ | ----------------------------- | | `p` | real | 单次试验成功概率,范围 0 到 1 | | `row` | integer\|array of string | 行数或行名数组 | | `col` | integer\|array of string | 列数或列名数组 | 返回:array ### 示例 范例01:生成二维几何分布随机数组 ```tsl return randgeo(0.5, 2, 3); ``` ## `sf_ch2Inv(y, cv, x)` 声明:function 计算卡方分布累计概率对应的分位点 | 参数 | 类型 | 说明 | | ---- | ----------- | -------------------------- | | `y` | real\|array | 累计概率值或累计概率数组 | | `cv` | real | 卡方分布自由度 | | `x` | real\|array | 可选。接收计算得到的分位点 | 返回:real\|array ### 示例 范例01:返回分位点并接收输出参数 ```tsl result := sf_ch2Inv(0.5, 2, value); return array(result, value); // 输出:array(1.386294,1.386294) ``` ## `sf_expcdf(x, mu, v)` 声明:function 计算指数分布的累计分布值 | 参数 | 类型 | 说明 | | ---- | ---------- | -------------------------------------- | | `x` | real/array | 随机变量或随机变量数组 | | `mu` | real | 分布参数,默认值为 1 | | `v` | real/array | 可选。写回参数;也可省略并直接取返回值 | 返回:real/array ### 示例 ```tsl x := array(0, 0.1, 1); return sf_expcdf(x, 1); // 输出:array(0.0,0.0951625819640405,0.632120558828558) ``` ## `sf_exppdf(x, mu, v)` 声明:function 计算指数分布的概率密度 | 参数 | 类型 | 说明 | | ---- | ---------- | -------------------------------------- | | `x` | real/array | 随机变量或随机变量数组 | | `mu` | real | 分布参数,默认值为 1 | | `v` | real/array | 可选。写回参数;也可省略并直接取返回值 | 返回:real/array ### 示例 ```tsl x := array(0, 0.1, 1); return sf_exppdf(x, 1); // 输出:array(1.0,0.90483741803596,0.367879441171442) ``` ## `expfit(x, alpha)` 声明:function 根据样本x,x服从指数分布,估计该分布的参数parm | 参数 | 类型 | 说明 | | ------- | ------------- | ---------------------- | | `x` | array of real | 指数分布样本,数字数组 | | `alpha` | real | 显著性水平,在0-1之间 | 返回:any ### 示例 ```tsl x := randexp(1, 100); return expfit(x, 0.05); // 输出:返回parm的估计已经他们的在alpha的显著性水平下的区间估计 ``` ## `hist(a, b, center)` 声明:function 统计A的频数分布 | 参数 | 类型 | 说明 | | -------- | ------------------------ | ----------------------------------------------------------------------- | | `a` | array of real | 参与进行频数分布统计的数据 | | `b` | integer or array of real | 频数分布分组的依据,可以是整数表示分成多少组,也可以是每组的中心(升序) | | `center` | array of real | 变参返回每组的中心 | 返回:any ### 示例 ```tsl a := randnorm(0, 1, 10000); return hist(a, 30, center); // 输出:,一维数字数组 ``` ## `mvtcdfqmc(a, b, rho, nu, options, funevals)` 声明:function 中间函数,采用蒙特卡洛计算多元t分布,估计概率P值以及误差 | 参数 | 类型 | 说明 | | ---------- | ----- | -------------------------------------- | | `a` | array | 可选。数组下限,默认为负无穷 | | `b` | array | 必填。数组下限或实际需计算分布的样本值 | | `rho` | array | 数组,相关系数矩阵 | | `nu` | float | 实数,自由度 | | `options` | array | 数组,规划条件设置 | | `funevals` | array | 线性回归的结果条件 | 返回:array ### 示例 范例01: ```tsl rho := array( (1, 0.923912552224476, 0.035770327030089), (0.923912552224476, 1, 0.084276570941762), (0.035770327030089, 0.084276570941762, 1) ); return mvtcdfqmc(array(0, 0, 0), array(0.2, 0.4, 0.6), rho, 2, array()); // 输出:近似 array(0.0077,0.0001),每次运行可能略有差异。 ``` ## `normfit(x, alpha)` 声明:function 根据样本x,x服从正态分布,估计该正态分布的两个参数ma,sigma | 参数 | 类型 | 说明 | | ------- | ------------- | -------------------------- | | `x` | array of real | 正态分布样本,一维数字数组 | | `alpha` | real | 显著性水平,在0-1之间 | 返回:any ### 示例 ```tsl x := randnorm(0, 1, 10, array("a", "b")); return normfit(x, 0.05); // 输出:返回mu, sigma的估计以及他们的在alpha的显著性水平下的区间估计 ``` ## `norminv(p, mu, sigma)` 声明:function 正态逆函数 | 参数 | 类型 | 说明 | | ------- | -------------- | ---------------- | | `p` | float \| array | 正态分布的概率 | | `mu` | float | 分布的算术平均值 | | `sigma` | float | 方差 | 返回:float | array ### 示例 ```tsl return norminv(0.15, 0.5, 1); // 输出:-0.5364 ``` ## `poissfit(x, alpha)` 声明:function 根据样本x,x服从泊松分布,估计该分布的参数lambda | 参数 | 类型 | 说明 | | ------- | ------------- | ---------------------- | | `x` | array of real | 泊松分布样本,数字数组 | | `alpha` | real | 显著性水平,在0-1之间 | 返回:any ### 示例 ```tsl x := randpoiss(1, 100); return poissfit(x, 0.05); // 输出:返回lambda的估计以及他们的在alpha的显著性水平下的区间估计 ``` ## `randbeta(a, b, row, col)` 声明:function 产生贝塔分布的随机数 | 参数 | 类型 | 说明 | | ----- | -------------------------- | ------------------------ | | `a` | real | beta分布参数1,实数,大于0 | | `b` | real | beta分布参数2,实数,大于0 | | `row` | integer or array of string | 行数或者行名字符串数组 | | `col` | integer or array of string | 列数或者列名字符串数组 | 返回:any ### 示例 ```tsl return randbeta(2, 4, 100, array("a", "b")); ``` ## `randbino(n, p, row, col)` 声明:function 产生二项分布的随机数 | 参数 | 类型 | 说明 | | ----- | -------------------------- | ---------------------------------- | | `n` | integer | 试验总量,为大于0的整数; | | `p` | real | 一次试验成功的概率,为0,1之间的实数 | | `row` | integer or array of string | 行数或者行名字符串数组 | | `col` | integer or array of string | 列数或者列名字符串数组 | 返回:any ### 示例 ```tsl return randbino(10, 0.5, 10, array("a", "b")); ``` ## `randCauchy(a, b, row, col)` 声明:function 产生柯西的随机数 | 参数 | 类型 | 说明 | | ----- | -------------------------- | ---------------------- | | `a` | real | 位置参数,实数 | | `b` | real | 尺度参数,大于0的实数 | | `row` | integer or array of string | 行数或者行名字符串数组 | | `col` | integer or array of string | 列数或者列名字符串数组 | 返回:any ### 示例 ```tsl return randCauchy(0, 2, 10, array("a", "b")); ``` ## `randch2(cv, row, col)` 声明:function 产生卡方分布的随机数 | 参数 | 类型 | 说明 | | ----- | -------------------------- | ---------------------- | | `cv` | real | 卡方分布自由度,实数 | | `row` | integer or array of string | 行数或者行名字符串数组 | | `col` | integer or array of string | 列数或者列名字符串数组 | 返回:any ### 示例 ```tsl return randch2(30, 10, array("a", "b")); ``` ## `randCopula(copula_type, rho, v, n)` 声明:function 生成服从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分布 ```tsl 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); // 输出:10×3 数组;随机样本每次运行不同。 ``` 范例02:t分布 ```tsl 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); // 输出:10×3 数组;随机样本每次运行不同。 ``` 范例03:阿基米德族,clayton(frank、gumbel调用相同) ```tsl alpha := 1; n := 10; return randCopula("clayton", nil, alpha, n); // 输出:10×2 数组;随机样本每次运行不同。 ``` ## `randexp(mu, row, col)` 声明:function 产生指数分布的随机数 | 参数 | 类型 | 说明 | | ----- | -------------------------- | ---------------------- | | `mu` | real | 分布参数,实数,缺省为1 | | `row` | integer or array of string | 行数或者行名字符串数组 | | `col` | integer or array of string | 列数或者列名字符串数组 | 返回:any ### 示例 ```tsl return randexp(1, 10, array("a", "b")); ``` ## `randf(v1, v2, row, col)` 声明:function 产生F分布的随机数 | 参数 | 类型 | 说明 | | ----- | -------------------------- | ---------------------- | | `v1` | real | 分子自由度,大于0的实数 | | `v2` | real | 分母自由度,大于0的实数 | | `row` | integer or array of string | 行数或者行名字符串数组 | | `col` | integer or array of string | 列数或者列名字符串数组 | 返回:any ### 示例 ```tsl return randf(20, 30, 10, array("a", "b")); ``` ## `randgam(a, b, row, col)` 声明:function 产生伽马分布的随机数 | 参数 | 类型 | 说明 | | ----- | ----- | ---------------------- | | `a` | float | 形状参数,大于0的实数 | | `b` | float | 尺度参数,大于0的实数 | | `row` | array | 行数或者行名字符串数组 | | `col` | array | 列数或者列名字符串数组 | 返回:any ### 示例 ```tsl randgam(2, 2, 100, array("a", "b")); ``` ## `randhyge(m, k, n, row, col)` 声明:function 产生超几何分布的随机数 | 参数 | 类型 | 说明 | | ----- | -------------------------- | ---------------------- | | `m` | integer | 总体数目,非负整数 | | `k` | integer | 总体标数目,非负整数 | | `n` | integer | 抽样数目,非负整数 | | `row` | integer or array of string | 行数或者行名字符串数组 | | `col` | integer or array of string | 列数或者列名字符串数组 | 返回:any ### 示例 ```tsl return randhyge(100, 10, 20, 10, array("a", "b")); ``` ## `randLaplace(mu, b, row, col)` 声明:function 产生拉普拉斯的随机数 | 参数 | 类型 | 说明 | | ----- | -------------------------- | ---------------------- | | `mu` | real | 位置参数,实数 | | `b` | real | 尺度参数,大于0的实数 | | `row` | integer or array of string | 行数或者行名字符串数组 | | `col` | integer or array of string | 列数或者列名字符串数组 | 返回:any ### 示例 ```tsl return randLaplace(0, 2, 10, array("a", "b")); ``` ## `randlogn(mu, sigma, row, col)` 声明:function 产生对数正态分布的随机数 | 参数 | 类型 | 说明 | | ------- | -------------------------- | ---------------------------------- | | `mu` | real | 对数正态分布参数,均值,实数类型 | | `sigma` | real | 对数正态分布参数,标准差,实数类型 | | `row` | integer or array of string | 行数或者行名字符串数组 | | `col` | integer or array of string | 列数或者列名字符串数组 | 返回:any ### 示例 ```tsl return randlogn(0, 1, 10, array("a", "b")); ``` ## `randnbin(r, p, row, col)` 声明:function 产生负二项分布的随机数 | 参数 | 类型 | 说明 | | ----- | -------------------------- | ---------------------------------- | | `r` | integer | 试验成功的次数,为大于0的整数 | | `p` | real | 一次试验成功的概率,为0,1之间的实数 | | `row` | integer or array of string | 行数或者行名字符串数组 | | `col` | integer or array of string | 列数或者列名字符串数组 | 返回:any ### 示例 ```tsl return randnbin(10, 0.5, 10, array("a", "b")); ``` ## `randnorm(mu, sigma, row, col)` 声明:function 产生正态分布的随机数 | 参数 | 类型 | 说明 | | ------- | -------------------------- | ------------------------------ | | `mu` | real | 正态分布参数,均值,实数类型 | | `sigma` | real | 正态分布参数,标准差,实数类型 | | `row` | integer or array of string | 行数或者行名字符串数组 | | `col` | integer or array of string | 列数或者列名字符串数组 | 返回:any ### 示例 ```tsl return randnorm(0, 1, 10, array("a", "b")); ``` ## `randpoiss(lambda, row, col)` 声明:function 产生泊松分布的随机数 | 参数 | 类型 | 说明 | | -------- | -------------------------- | ---------------------- | | `lambda` | real | 分布参数,实数 | | `row` | integer or array of string | 行数或者行名字符串数组 | | `col` | integer or array of string | 列数或者列名字符串数组 | 返回:any ### 示例 ```tsl return randpoiss(10, 10, array("a", "b")); ``` ## `randrayl(b, row, col)` 声明:function 产生瑞利分布的随机数 | 参数 | 类型 | 说明 | | ----- | -------------------------- | ---------------------- | | `b` | real | 分布参数,实数,缺省为1 | | `row` | integer or array of string | 行数或者行名字符串数组 | | `col` | integer or array of string | 列数或者列名字符串数组 | 返回:any ### 示例 ```tsl return randrayl(1, 100, array("a", "b")); ``` ## `randt(cv, row, col)` 声明:function 产生学生T分布的随机数 | 参数 | 类型 | 说明 | | ----- | -------------------------- | ---------------------- | | `cv` | real | 学生T分布自由度,实数 | | `row` | integer or array of string | 行数或者行名字符串数组 | | `col` | integer or array of string | 列数或者列名字符串数组 | 返回:any ### 示例 ```tsl return randt(30, 10, array("a", "b")); ``` ## `randunid(n, row, col)` 声明:function 产生离散均匀分布的随机数 | 参数 | 类型 | 说明 | | ----- | -------------------------- | ---------------------- | | `n` | integer | 分布参数,整数; | | `row` | integer or array of string | 行数或者行名字符串数组 | | `col` | integer or array of string | 列数或者列名字符串数组 | 返回:any ### 示例 ```tsl return randunid(10, 10, array("a", "b")); ``` ## `randunif(a, b, row, col)` 声明:function 产生均匀分布的随机数 | 参数 | 类型 | 说明 | | ----- | -------------------------- | ---------------------- | | `a` | real | 均匀分布的下限,实数 | | `b` | real | 均匀分布的上限,实数 | | `row` | integer or array of string | 行数或者行名字符串数组 | | `col` | integer or array of string | 列数或者列名字符串数组 | 返回:any ### 示例 ```tsl return randunif(1, 10, 10, array("a", "b")); ``` ## `randwbl(a, b, row, col)` 声明:function 产生威布尔分布的随机数 | 参数 | 类型 | 说明 | | ----- | -------------------------- | ---------------------- | | `a` | real | 比例参数,实数,大于0 | | `b` | real | 形状参数,实数,大于0 | | `row` | integer or array of string | 行数或者行名字符串数组 | | `col` | integer or array of string | 列数或者列名字符串数组 | 返回:any ### 示例 ```tsl return randwbl(1, 1.5, 100, array("a", "b")); ``` ## `sf_betacdf(x, a, b, v)` 声明:function 贝塔分布的分布函数,输入随机变量,返回随机变量对应的分布函数值 | 参数 | 类型 | 说明 | | ---- | ----- | --------------------------------------------- | | `x` | array | :随机变量,可以使用实数,也可以是一个实数数组 | | `a` | float | beta分布参数1,实数,大于0 | | `b` | float | beta分布参数2,实数,大于0 | | `v` | array | 变参返回,该函数也支持直接返回,类型和x一样 | 返回:any ## `sf_betainv1(y, a, b)` 声明:function 贝塔分布的分布逆函数,输入分布函数值,返回随机变量值。功能与sf_betainv一致,输出接口不一样 | 参数 | 类型 | 说明 | | ---- | ----- | ---------------------------------------------------------- | | `y` | array | 分布函数或者累计概率值,可以使用实数,也可以是一个实数数组 | | `a` | float | beta分布参数1,实数,大于0 | | `b` | float | beta分布参数2,实数,大于0 | 返回:array ## `sf_betapdf(x, a, b, v)` 声明:function 贝塔分布的密度函数,输入随机变量,返回随机变量对应的密度函数值 | 参数 | 类型 | 说明 | | ---- | ----- | --------------------------------------------- | | `x` | array | :随机变量,可以使用实数,也可以是一个实数数组 | | `a` | float | beta分布参数1,实数,大于0 | | `b` | float | beta分布参数2,实数,大于0 | | `v` | array | 变参返回,该函数也支持直接返回,类型和x一样 | 返回:any ## `sf_binocdf(x, n, p, v)` 声明:function 二项分布的累计概率函数,输入随机变量,返回随机变量对应的累计概率 | 参数 | 类型 | 说明 | | ---- | ----- | --------------------------------------------- | | `x` | array | :随机变量,可以使用实数,也可以是一个实数数组 | | `n` | any | 试验总量,为大于0的整数; | | `p` | float | 一次试验成功的概率,为0,1之间的实数 | | `v` | array | 变参返回,该函数也支持直接返回,类型和x一样 | 返回:any ## `sf_binoinv(y, n, p, x)` 声明:function 二项分布的分布逆函数,输入累计概率值,返回随机变量值 | 参数 | 类型 | 说明 | | ---- | ----- | ----------------------------------------------------------- | | `y` | array | :分布函数或者累计概率值,可以使用实数,也可以是一个实数数组 | | `n` | any | 试验总量,为大于0的整数; | | `p` | float | 一次试验成功的概率,为0,1之间的实数 | | `x` | array | 变参返回,该函数也支持直接返回,类型和y一样 | 返回:any ## `sf_binopdf(x, n, p, v)` 声明:function 二项分布的概率函数,输入随机变量,返回随机变量对应的概率 | 参数 | 类型 | 说明 | | ---- | ----- | --------------------------------------------- | | `x` | array | :随机变量,可以使用实数,也可以是一个实数数组 | | `n` | any | 试验总量,为大于0的整数; | | `p` | float | 一次试验成功的概率,为0,1之间的实数 | | `v` | array | 变参返回,该函数也支持直接返回,类型和x一样 | 返回:any ## `sf_Cauchycdf(x, a, b, v)` 声明:function 柯西的累计概率或者分布函数,输入随机变量,返回随机变量对应的累计概率,或者分布函数值 | 参数 | 类型 | 说明 | | ---- | ----- | --------------------------------------------- | | `x` | array | :随机变量,可以使用实数,也可以是一个实数数组 | | `a` | float | 位置参数,实数 | | `b` | float | 尺度参数,大于0的实数 | | `v` | array | 变参返回,该函数也支持直接返回,类型和x一样 | 返回:any ## `sf_Cauchyinv(y, a, b, x)` 声明:function 柯西的分布逆函数,输入分布函数或者累计概率值,返回随机变量值 | 参数 | 类型 | 说明 | | ---- | ----- | ----------------------------------------------------------- | | `y` | array | :分布函数或者累计概率值,可以使用实数,也可以是一个实数数组 | | `a` | float | 位置参数,实数 | | `b` | float | 尺度参数,大于0的实数 | | `x` | array | 变参返回,该函数也支持直接返回,类型和y一样 | 返回:any ## `sf_Cauchypdf(x, a, b, v)` 声明:function 柯西的概率密度函数,输入随机变量,返回随机变量对应的概率密度 | 参数 | 类型 | 说明 | | ---- | ----- | --------------------------------------------- | | `x` | array | :随机变量,可以使用实数,也可以是一个实数数组 | | `a` | float | 位置参数,实数 | | `b` | float | 尺度参数,大于0的实数 | | `v` | array | 变参返回,该函数也支持直接返回,类型和x一样 | 返回:any ## `sf_ch2cdf(x, cv, v)` 声明:function 卡方分布的分布函数,输入随机变量,返回随机变量对应的分布函数值 | 参数 | 类型 | 说明 | | ---- | ----- | --------------------------------------------- | | `x` | array | :随机变量,可以使用实数,也可以是一个实数数组 | | `cv` | float | 卡方分布自由度,实数 | | `v` | array | 变参返回,该函数也支持直接返回,类型和x一样 | 返回:any ## `sf_ch2pdf(x, cv, v)` 声明:function 卡方分布的密度函数,输入随机变量,返回随机变量对应的密度函数值 | 参数 | 类型 | 说明 | | ---- | ----- | --------------------------------------------- | | `x` | array | :随机变量,可以使用实数,也可以是一个实数数组 | | `cv` | float | 卡方分布自由度,实数 | | `v` | array | 变参返回,该函数也支持直接返回,类型和x一样 | 返回:any ## `sf_copulacdf(x, copula_type, rho, alpha, options)` 声明:function 估计多元函数分布值 | 参数 | 类型 | 说明 | | ------------- | ------ | -------------------------------------------------------------------------------------------------------------------- | | `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)` 声明:function 估计多元分布相关系数矩阵 | 参数 | 类型 | 说明 | | ------------- | ------ | ----------------------------------------------------------------------------------------------------------------------------- | | `x` | array | 数组,样本值为均匀分布需要在\[0,1\]区间内,至少2维 | | `copula_type` | string | 字符串,分布函数类型:;椭圆族:gaussian、t,支持多维;阿基米德族:clayton、frank、gumbel,目前仅支持二维 | | `method` | string | 字符串,极大似然估计方法(多元分布时有效);ML —最大似然估计 (默认);AML —调整的似然估计,性能上比MLE快,但不适用于中小样本量 | | `options` | array | 数组,估计规划条件,可为空 | 返回:array ## `sf_exp(x, mu, v)` 声明:function 指数分布累计概率 | 参数 | 类型 | 说明 | | ---- | ----- | -------------------------------------------- | | `x` | array | 随机变量,可以使用实数,也可以是一个实数数组 | | `mu` | float | 分布参数 | | `v` | array | 返回值 | 返回:array ## `sf_expinv(y, mu, x)` 声明:function 指数分布的分布逆函数,输入分布函数值,返回随机变量值 | 参数 | 类型 | 说明 | | ---- | ----- | ----------------------------------------------------------- | | `y` | array | :分布函数或者累计概率值,可以使用实数,也可以是一个实数数组 | | `mu` | float | 分布参数,实数,缺省为1 | | `x` | array | 变参返回,该函数也支持直接返回,类型和y一样 | 返回:any ## `sf_fcdf(x, v1, v2, v)` 声明:function F分布的分布函数,输入随机变量,返回随机变量对应的分布函数值 | 参数 | 类型 | 说明 | | ---- | ----- | --------------------------------------------- | | `x` | array | :随机变量,可以使用实数,也可以是一个实数数组 | | `v1` | float | 分子自由度,大于0的实数 | | `v2` | float | 分母自由度,大于0的实数 | | `v` | array | 变参返回,该函数也支持直接返回,类型和x一样 | 返回:any ## `sf_finv1(y, v1, v2, x)` 声明:function F分布的分布逆函数,输入分布函数值,返回随机变量值 | 参数 | 类型 | 说明 | | ---- | ----- | ---------------------------------------------------------- | | `y` | array | 分布函数或者累计概率值,可以使用实数,也可以是一个实数数组 | | `v1` | float | 分子自由度,大于0的实数 | | `v2` | float | 分母自由度,大于0的实数 | | `x` | array | 变参返回,该函数也支持直接返回,类型和y一样 | 返回:array ## `sf_fpdf(x, v1, v2, v)` 声明:function F分布的密度函数,输入随机变量,返回随机变量对应的密度函数值 | 参数 | 类型 | 说明 | | ---- | ----- | --------------------------------------------- | | `x` | array | :随机变量,可以使用实数,也可以是一个实数数组 | | `v1` | float | 分子自由度,大于0的实数 | | `v2` | float | 分母自由度,大于0的实数 | | `v` | array | 变参返回,该函数也支持直接返回,类型和x一样 | 返回:any ## `sf_gamcdf(x, a, b, v)` 声明:function 伽马分布的分布函数,输入随机变量,返回随机变量对应的分布函数值 | 参数 | 类型 | 说明 | | ---- | ----- | --------------------------------------------- | | `x` | array | :随机变量,可以使用实数,也可以是一个实数数组 | | `a` | float | 形状参数,大于0的实数 | | `b` | float | 尺度参数,大于0的实数 | | `v` | array | 变参返回,该函数也支持直接返回,类型和x一样 | 返回:any ## `sf_gaminv(y, a, b, x)` 声明:function 伽马分布的分布逆函数,输入分布函数值,返回随机变量值 | 参数 | 类型 | 说明 | | ---- | ----- | ----------------------------------------------------------- | | `y` | array | :分布函数或者累计概率值,可以使用实数,也可以是一个实数数组 | | `a` | float | 形状参数,大于0的实数 | | `b` | float | 尺度参数,大于0的实数 | | `x` | array | 变参返回,该函数也支持直接返回,类型和y一样 | 返回:any ## `sf_gampdf(x, a, b, v)` 声明:function 伽马分布的密度函数,输入随机变量,返回随机变量对应的密度函数值 | 参数 | 类型 | 说明 | | ---- | ----- | --------------------------------------------- | | `x` | array | :随机变量,可以使用实数,也可以是一个实数数组 | | `a` | float | 形状参数,大于0的实数 | | `b` | float | 尺度参数,大于0的实数 | | `v` | array | 变参返回,该函数也支持直接返回,类型和x一样 | 返回:any ## `sf_geocdf(x, p, v)` 声明:function 几何分布的累计概率函数,输入随机变量,返回随机变量对应的累计概率 | 参数 | 类型 | 说明 | | ---- | ----- | --------------------------------------------- | | `x` | array | :随机变量,可以使用实数,也可以是一个实数数组 | | `p` | float | p:一次试验成功的概率,为0,1之间的实数 | | `v` | array | 变参返回,该函数也支持直接返回,类型和x一样 | 返回:any ## `sf_geoinv(y, p, x)` 声明:function 几何分布的分布逆函数,输入累计概率值,返回随机变量值 | 参数 | 类型 | 说明 | | ---- | ----- | ----------------------------------------------------------- | | `y` | array | :分布函数或者累计概率值,可以使用实数,也可以是一个实数数组 | | `p` | float | 一次试验成功的概率,为0,1之间的实数 | | `x` | array | 变参返回,该函数也支持直接返回,类型和y一样 | 返回:any ## `sf_geopdf(x, p, v)` 声明:function 几何分布的概率函数,输入随机变量,返回随机变量对应的概率 | 参数 | 类型 | 说明 | | ---- | ----- | --------------------------------------------- | | `x` | array | :随机变量,可以使用实数,也可以是一个实数数组 | | `p` | float | 一次试验成功的概率,为0,1之间的实数 | | `v` | array | 变参返回,该函数也支持直接返回,类型和x一样 | 返回:any ## `sf_hygecdf(x, m, k, n, v)` 声明:function 超几何分布的累计概率函数,输入随机变量,返回随机变量对应的累计概率 | 参数 | 类型 | 说明 | | ---- | ----- | --------------------------------------------- | | `x` | array | :随机变量,可以使用实数,也可以是一个实数数组 | | `m` | any | 总体数目,非负整数 | | `k` | any | 总体标数目,非负整数 | | `n` | any | 抽样数目,非负整数 | | `v` | array | 变参返回,该函数也支持直接返回,类型和x一样 | 返回:any ## `sf_hygeinv(y, m, k, n, x)` 声明:function 超几何分布的分布逆函数,输入累计概率值,返回随机变量值 | 参数 | 类型 | 说明 | | ---- | ----- | ----------------------------------------------------------- | | `y` | array | :分布函数或者累计概率值,可以使用实数,也可以是一个实数数组 | | `m` | any | 总体数目,非负整数 | | `k` | any | 总体标数目,非负整数 | | `n` | any | 抽样数目,非负整数 | | `x` | array | 变参返回,该函数也支持直接返回,类型和y一样 | 返回:any ## `sf_hygepdf(x, m, k, n, v)` 声明:function 超几何分布的概率函数,输入随机变量,返回随机变量对应的概率 | 参数 | 类型 | 说明 | | ---- | ----- | --------------------------------------------- | | `x` | array | :随机变量,可以使用实数,也可以是一个实数数组 | | `m` | any | 总体数目,非负整数 | | `k` | any | 总体标数目,非负整数 | | `n` | any | 抽样数目,非负整数 | | `v` | array | 变参返回,该函数也支持直接返回,类型和x一样 | 返回:any ## `sf_Laplacecdf(x, mu, b, v)` 声明:function 拉普拉斯的累计概率或者分布函数,输入随机变量,返回随机变量对应的累计概率,或者分布函数值 | 参数 | 类型 | 说明 | | ---- | ----- | --------------------------------------------- | | `x` | array | :随机变量,可以使用实数,也可以是一个实数数组 | | `mu` | float | 位置参数,实数 | | `b` | float | 尺度参数,大于0的实数 | | `v` | array | 变参返回,该函数也支持直接返回,类型和x一样 | 返回:any ## `sf_Laplaceinv(y, mu, b, x)` 声明:function 拉普拉斯的分布逆函数,输入分布函数或者累计概率值,返回随机变量值 | 参数 | 类型 | 说明 | | ---- | ----- | ----------------------------------------------------------- | | `y` | array | :分布函数或者累计概率值,可以使用实数,也可以是一个实数数组 | | `mu` | float | 位置参数,实数 | | `b` | float | 尺度参数,大于0的实数 | | `x` | array | 变参返回,该函数也支持直接返回,类型和y一样 | 返回:any ## `sf_Laplacepdf(x, mu, b, v)` 声明:function 拉普拉斯的概率密度函数,输入随机变量,返回随机变量对应的概率密度 | 参数 | 类型 | 说明 | | ---- | ----- | --------------------------------------------- | | `x` | array | :随机变量,可以使用实数,也可以是一个实数数组 | | `mu` | float | 位置参数,实数 | | `b` | float | 尺度参数,大于0的实数 | | `v` | array | 变参返回,该函数也支持直接返回,类型和x一样 | 返回:any ## `sf_logncdf(x, mu, sigma, v)` 声明:function 对数正态分布的累计概率或者分布函数,输入随机变量,返回随机变量对应的累计概率,或者分布函数值 | 参数 | 类型 | 说明 | | ------- | ----- | --------------------------------------------- | | `x` | array | :随机变量,可以使用实数,也可以是一个实数数组 | | `mu` | float | 对数正态分布参数,均值,实数类型 | | `sigma` | float | 对数正态分布参数,标准差,实数类型 | | `v` | array | 变参返回,该函数也支持直接返回,类型和x一样 | 返回:any ## `sf_logninv(y, mu, sigma, x)` 声明:function 对数正态分布的分布逆函数,输入分布函数或者累计概率值,返回随机变量值 | 参数 | 类型 | 说明 | | ------- | ----- | ----------------------------------------------------------- | | `y` | array | :分布函数或者累计概率值,可以使用实数,也可以是一个实数数组 | | `mu` | float | 对数正态分布参数,均值,实数类型 | | `sigma` | float | 对数正态分布参数,标准差,实数类型 | | `x` | array | 变参返回,该函数也支持直接返回,类型和y一样 | 返回:any ## `sf_lognpdf(x, mu, sigma, v)` 声明:function 对数正态分布的概率密度函数,输入随机变量,返回随机变量对应的概率密度 | 参数 | 类型 | 说明 | | ------- | ----- | --------------------------------------------- | | `x` | array | :随机变量,可以使用实数,也可以是一个实数数组 | | `mu` | float | 对数正态分布参数,均值,实数类型 | | `sigma` | float | 对数正态分布参数,标准差,实数类型 | | `v` | array | 变参返回,该函数也支持直接返回,类型和x一样 | 返回:any ## `sf_mvncdf(lower_bounds, upper_bounds, mean_values, correlation_matrix)` 声明:function 计算多变量正态分布累计分布值 | 参数 | 类型 | 说明 | | -------------------- | ----- | ------------------------------- | | `lower_bounds` | array | 下界;传 `nil` 表示使用默认下界 | | `upper_bounds` | array | 上界矩阵 | | `mean_values` | array | 均值;传 `nil` 表示使用默认均值 | | `correlation_matrix` | array | 相关系数矩阵 | 返回:array ## `sf_mvtcdf(lower_bounds, upper_bounds, correlation_matrix, degrees_freedom)` 声明:function 计算多变量 t 分布累计分布值 | 参数 | 类型 | 说明 | | -------------------- | ----- | ------------------------------- | | `lower_bounds` | array | 下界;传 `nil` 表示使用默认下界 | | `upper_bounds` | array | 上界矩阵 | | `correlation_matrix` | array | 相关系数矩阵 | | `degrees_freedom` | float | 自由度 | 返回:array ## `sf_nbincdf(x, r, p, v)` 声明:function 负二项分布的累计概率函数,输入随机变量,返回随机变量对应的累计概率 | 参数 | 类型 | 说明 | | ---- | ----- | --------------------------------------------- | | `x` | array | :随机变量,可以使用实数,也可以是一个实数数组 | | `r` | any | 试验成功的次数,为大于0的整数 | | `p` | float | 一次试验成功的概率,为0,1之间的实数 | | `v` | array | 变参返回,该函数也支持直接返回,类型和x一样 | 返回:any ## `sf_nbininv(y, r, p, x)` 声明:function 负二项分布的分布逆函数,输入累计概率值,返回随机变量值 | 参数 | 类型 | 说明 | | ---- | ----- | ----------------------------------------------------------- | | `y` | array | :分布函数或者累计概率值,可以使用实数,也可以是一个实数数组 | | `r` | any | 试验成功的次数,为大于0的整数 | | `p` | float | 一次试验成功的概率,为0,1之间的实数 | | `x` | array | 变参返回,该函数也支持直接返回,类型和y一样 | 返回:any ## `sf_nbinpdf(x, r, p, v)` 声明:function 负二项分布的概率函数,输入随机变量,返回随机变量对应的概率 | 参数 | 类型 | 说明 | | ---- | ----- | --------------------------------------------- | | `x` | array | :随机变量,可以使用实数,也可以是一个实数数组 | | `r` | any | 试验成功的次数,为大于0的整数 | | `p` | float | 一次试验成功的概率,为0,1之间的实数 | | `v` | array | 变参返回,该函数也支持直接返回,类型和x一样 | 返回:any ## `sf_normcdf(x, mu, sigma, v)` 声明:function 计算随机变量在正态分布, 均值为mu,方差为sigma条件下的分布函数,返回分布函数值 | 参数 | 类型 | 说明 | | ------- | ----- | ----------------------------------------------- | | `x` | array | :随机变量,可以是实数,也可以是一个实数二维数组 | | `mu` | float | 正态分布的均值,实数类型 | | `sigma` | float | 正态分布的标准差,大于0的实数 | | `v` | array | 变参返回x对应的正态分布函数的值,实数或二维数组 | 返回:any ## `sf_norminv(y, mu, sigma, x)` 声明:function 正态分布的分布逆函数,输入分布函数或者累计概率值,返回随机变量值 | 参数 | 类型 | 说明 | | ------- | ----- | ----------------------------------------------------------- | | `y` | array | :分布函数或者累计概率值,可以使用实数,也可以是一个实数数组 | | `mu` | float | 正态分布参数,均值,实数类型 | | `sigma` | float | 正态分布参数,标准差,实数类型 | | `x` | array | 变参返回,该函数也支持直接返回,类型和y一样 | 返回:any ## `sf_normpdf(x, mu, sigma, v)` 声明:function 正态分布的概率密度函数,输入随机变量,返回随机变量对应的概率密度 | 参数 | 类型 | 说明 | | ------- | ----- | --------------------------------------------- | | `x` | array | :随机变量,可以使用实数,也可以是一个实数数组 | | `mu` | float | 正态分布参数,均值,实数类型 | | `sigma` | float | 正态分布参数,标准差,实数类型 | | `v` | array | 变参返回,该函数也支持直接返回,类型和x一样 | 返回:any ## `sf_poisscdf(x, lambda, v)` 声明:function 泊松分布的分布函数,输入随机变量,返回随机变量对应的分布函数值 | 参数 | 类型 | 说明 | | -------- | ----- | --------------------------------------------- | | `x` | array | :随机变量,可以使用实数,也可以是一个实数数组 | | `lambda` | float | 分布参数,实数 | | `v` | array | 变参返回,该函数也支持直接返回,类型和x一样 | 返回:any ## `sf_poissinv(y, lambda, x)` 声明:function 泊松分布的分布逆函数,输入分布函数值,返回随机变量值 | 参数 | 类型 | 说明 | | -------- | ----- | ----------------------------------------------------------- | | `y` | array | :分布函数或者累计概率值,可以使用实数,也可以是一个实数数组 | | `lambda` | float | 分布参数,实数 | | `x` | array | 变参返回,该函数也支持直接返回,类型和y一样 | 返回:any ## `sf_poisspdf(x, lambda, v)` 声明:function 泊松分布的密度函数,输入随机变量,返回随机变量对应的密度函数值 | 参数 | 类型 | 说明 | | -------- | ----- | --------------------------------------------- | | `x` | array | :随机变量,可以使用实数,也可以是一个实数数组 | | `lambda` | float | 分布参数,实数 | | `v` | array | 变参返回,该函数也支持直接返回,类型和x一样 | 返回:any ## `sf_raylcdf(x, b, v)` 声明:function 瑞利分布的分布函数,输入随机变量,返回随机变量对应的分布函数值 | 参数 | 类型 | 说明 | | ---- | ----- | --------------------------------------------- | | `x` | array | :随机变量,可以使用实数,也可以是一个实数数组 | | `b` | float | 分布参数,实数,缺省为1 | | `v` | array | 变参返回,该函数也支持直接返回,类型和x一样 | 返回:any ## `sf_raylinv(y, b, x)` 声明:function 瑞利分布的分布逆函数,输入分布函数值,返回随机变量值 | 参数 | 类型 | 说明 | | ---- | ----- | ----------------------------------------------------------- | | `y` | array | :分布函数或者累计概率值,可以使用实数,也可以是一个实数数组 | | `b` | float | 分布参数,实数,缺省为1 | | `x` | array | 变参返回,该函数也支持直接返回,类型和y一样 | 返回:any ## `sf_raylpdf(x, b, v)` 声明:function 瑞利分布的密度函数,输入随机变量,返回随机变量对应的密度函数值 | 参数 | 类型 | 说明 | | ---- | ----- | --------------------------------------------- | | `x` | array | :随机变量,可以使用实数,也可以是一个实数数组 | | `b` | float | 分布参数,实数,缺省为1 | | `v` | array | 变参返回,该函数也支持直接返回,类型和x一样 | 返回:any ## `sf_tcdf(x, cv, v)` 声明:function 学生T分布的分布函数,输入随机变量,返回随机变量对应的分布函数值 | 参数 | 类型 | 说明 | | ---- | ----- | --------------------------------------------- | | `x` | array | :随机变量,可以使用实数,也可以是一个实数数组 | | `cv` | float | 学生T分布自由度,实数 | | `v` | array | 变参返回,该函数也支持直接返回,类型和x一样 | 返回:any ## `sf_tinv1(y, cv, x)` 声明:function 学生T分布的分布逆函数,输入分布函数值,返回随机变量值 | 参数 | 类型 | 说明 | | ---- | ----- | ----------------------------------------------------------- | | `y` | array | :分布函数或者累计概率值,可以使用实数,也可以是一个实数数组 | | `cv` | float | 学生T分布自由度,实数 | | `x` | array | 变参返回,该函数也支持直接返回,类型和y一样 | 返回:any ## `sf_tpdf(x, cv, v)` 声明:function 学生T分布的密度函数,输入随机变量,返回随机变量对应的密度函数值 | 参数 | 类型 | 说明 | | ---- | ----- | --------------------------------------------- | | `x` | array | :随机变量,可以使用实数,也可以是一个实数数组 | | `cv` | float | 学生T分布自由度,实数 | | `v` | array | 变参返回,该函数也支持直接返回,类型和x一样 | 返回:any ## `sf_unidcdf(x, n, v)` 声明:function 离散均匀分布的累计概率函数,输入随机变量,返回随机变量对应的累计概率 | 参数 | 类型 | 说明 | | ---- | ----- | --------------------------------------------- | | `x` | array | :随机变量,可以使用实数,也可以是一个实数数组 | | `n` | any | 分布参数,整数; | | `v` | array | 变参返回,该函数也支持直接返回,类型和x一样 | 返回:any ## `sf_unidinv(y, n, x)` 声明:function 离散均匀分布的分布逆函数,输入累计概率值,返回随机变量值 | 参数 | 类型 | 说明 | | ---- | ----- | ----------------------------------------------------------- | | `y` | array | :分布函数或者累计概率值,可以使用实数,也可以是一个实数数组 | | `n` | any | 分布参数,整数 | | `x` | array | 变参返回,该函数也支持直接返回,类型和y一样 | 返回:any ## `sf_unidpdf(x, n, v)` 声明:function 离散均匀分布的概率函数,输入随机变量,返回随机变量对应的概率 | 参数 | 类型 | 说明 | | ---- | ----- | --------------------------------------------- | | `x` | array | :随机变量,可以使用实数,也可以是一个实数数组 | | `n` | any | 分布参数,整数; | | `v` | array | 变参返回,该函数也支持直接返回,类型和x一样 | 返回:any ## `sf_unifcdf(x, a, b, v)` 声明:function 均匀分布的分布函数,输入随机变量,返回随机变量对应的分布函数值 | 参数 | 类型 | 说明 | | ---- | ----- | --------------------------------------------- | | `x` | array | :随机变量,可以使用实数,也可以是一个实数数组 | | `a` | float | 均匀分布的下限,实数 | | `b` | float | 均匀分布的上限,实数 | | `v` | array | 变参返回,该函数也支持直接返回,类型和x一样 | 返回:any ## `sf_unifinv(y, a, b, x)` 声明:function 均匀分布的分布逆函数,输入分布函数值,返回随机变量值 | 参数 | 类型 | 说明 | | ---- | ----- | ----------------------------------------------------------- | | `y` | array | :分布函数或者累计概率值,可以使用实数,也可以是一个实数数组 | | `a` | float | 均匀分布的下限,实数 | | `b` | float | 均匀分布的上限,实数 | | `x` | array | 变参返回,该函数也支持直接返回,类型和y一样 | 返回:any ## `sf_unifpdf(x, a, b, v)` 声明:function 均匀分布的密度函数,输入随机变量,返回随机变量对应的密度函数值 | 参数 | 类型 | 说明 | | ---- | ----- | --------------------------------------------- | | `x` | array | :随机变量,可以使用实数,也可以是一个实数数组 | | `a` | float | 均匀分布的下限,实数 | | `b` | float | 均匀分布的上限,实数 | | `v` | array | 变参返回,该函数也支持直接返回,类型和x一样 | 返回:any ## `sf_wblcdf(x, a, b, v)` 声明:function 威布尔分布的分布函数,输入随机变量,返回随机变量对应的分布函数值 | 参数 | 类型 | 说明 | | ---- | ----- | --------------------------------------------- | | `x` | array | :随机变量,可以使用实数,也可以是一个实数数组 | | `a` | float | 比例参数,实数,大于0 | | `b` | float | 形状参数,实数,大于0 | | `v` | array | 变参返回,该函数也支持直接返回,类型和x一样 | 返回:any ## `sf_wblinv(y, a, b, x)` 声明:function 威布尔分布的分布逆函数,输入分布函数值,返回随机变量值 | 参数 | 类型 | 说明 | | ---- | ----- | ----------------------------------------------------------- | | `y` | array | :分布函数或者累计概率值,可以使用实数,也可以是一个实数数组 | | `a` | float | 比例参数,实数,大于0 | | `b` | float | 形状参数,实数,大于0 | | `x` | array | 变参返回,该函数也支持直接返回,类型和y一样 | 返回:any ## `sf_wblpdf(x, a, b, v)` 声明:function 威布尔分布的密度函数,输入随机变量,返回随机变量对应的密度函数值 | 参数 | 类型 | 说明 | | ---- | ----- | --------------------------------------------- | | `x` | array | :随机变量,可以使用实数,也可以是一个实数数组 | | `a` | float | 比例参数,实数,大于0 | | `b` | float | 形状参数,实数,大于0 | | `v` | array | 变参返回,该函数也支持直接返回,类型和x一样 | 返回:any ## `uniffit(x, alpha)` 声明:function 根据样本x,x服从均匀分布,估计该分布的两个参数a,b | 参数 | 类型 | 说明 | | ------- | ------------- | ---------------------- | | `x` | array of real | 均匀分布样本,数字数组 | | `alpha` | real | 显著性水平,在0-1之间 | 返回:any ### 示例 ```tsl x := randunif(1, 10, 100); return uniffit(x, 0.05); // 输出:返回a, b的估计以及他们的在alpha的显著性水平下的区间估计 ```