# 运行时 / 数学与统计 ### `anovaBartlett(y, alpha)` 在1-alpha的置信水平下,Bartlett方法检验方差齐性;B-Stat为统计值,P-Value为p值,df为自由度,Hypothesis为是否接受原假设 模型表达: Bartlett检验思想来源于几何平均数小于或等于算术平均数 原假设:是水平个数 ,其中 修正的Bartlett检验: | 参数 | 类型 | 说明 | | ------- | ----- | -------------------------------------------- | | `y` | array | 数据矩阵,为二维数组类型,每一行表示一个水平 | | `alpha` | float | 显著性水平,实数或整数,在01之间 | 返回:array ### `anovaLevene(y, alpha)` 在1-Alpha的置信水平下,Levene方法检验方差齐性,和Bartlett检验不同的是,Levene检验不要求总体具有正态性。返回一个数组,F-Stat为统计值,P-Value为p值,df1,df2为自由度,Hypothesis为是否接受原假设 模型表达: 原假设:是水平个数 ,其中是观察数目,是水平数目 | 参数 | 类型 | 说明 | | ------- | ----- | -------------------------------------------- | | `y` | array | 数据矩阵,为二维数组类型,每一行表示一个水平 | | `alpha` | float | 显著性水平,实数或整数,在01之间 | 返回:array ### `anovaSingle(y, alpha)` 在1-alpha置信水平下,在假设服从正态分布,且方差齐性,样本之间独立的基础上,判断各水平的均值是否显著相等 模型表达: , 其中:效应平方和:,误差平方和: 总离差 | 参数 | 类型 | 说明 | | ------- | ----- | -------------------------------------------- | | `y` | array | 数据矩阵,为二维数组类型,每一行表示一个水平 | | `alpha` | float | 显著性水平,实数或整数,在01之间 | 返回:array ### `anovaTwice(y, alpha)` 在1-alpha的置信水平下,进行双因子方差分析,假设每一种情况都服从一个正态分布,且方差相等,数据独立,判断各水平的均值是否显著相等 模型表达: 有A,B两个因素,因素A有r个水平,B有s个水平,对于A,B每一个组合(Ai,Bj)都进行t次试验,得到结果: 因素B 因素A B1 B2 … Bs A1 X111, X112,…,X11t X121, X122,…,X12t … X1s1, X1s2,…,X1st A2 X211, X212,…, X21t X221, X222,…, X22t … X2s1, X2s2,…, X2st … … … … Ar Xr11, Xr12,…, Xr1t Xr21, Xr22,…, Xr2t … Xrs1, Xrs2,…, Xrst 设:且相互独立 ,其中,是水平Ai的效应,是水平Bj的效应,称为水平Ai和Bj的交互效应。, 原假设:,, 现构造了3个F统计量来分别检验假设,原理略 | 参数 | 类型 | 说明 | | ------- | ----- | ----------------------------------------------------------------------------------------------- | | `y` | array | 数据矩阵,为二维数组类型,每rep行,每一列表示一个交叉项 | | `alpha` | float | 显著性水平,实数或整数,在01之间;Rep:每一个交叉项,做rep次试验,rep=1时,没有交叉效应为0的假设 | 返回:array ### `arma(series, p, q)` 自回归移动平均模型,ARMA(p,q)模型,采用逆函数去估计自回归系数和移动平均系数,返回结果有自回归系数、移动平均系数、残差方差等信息 ARMA模型: 其中:为原序列零均值化的新序列,是自回归方程系数,为移动平均系数,是零均值、方差为的平稳白噪声 | 参数 | 类型 | 说明 | | -------- | ----- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `series` | array | 样本序列,为一维数组类型,注意要零均值化 | | `p` | int | 自回归阶数,整数类型 | | `q` | int | 移动平均阶数,整数类型;返回结果:;Ret\["AR"\]:参数估计结果,,第一项为1;Ret\["MA"\]:参数估计结果,,第一项为1;Ret\["T-test"\]:AR模型参数的T检验;Ret\["LossFunction"\];Ret\["FPE"\]:预测最大误差;Ret\["AIC"\]:模型的AIC信息准则;Ret\["SC"\]:模型的SC信息准则;Ret\["e"\]:残差信息;Ret\["Inverted AR Roots"\]:AR特征方程的特征根;Ret\["Inverted MA Roots"\]:MA特征方程的特征根;Ret\["R_squared"\]:AR模型的可决系数;Ret\["Adjusted_R_squared "\]:AR模型的修正可决系数;Ret\["Sum_squared_resid"\]:AR模型的离差平方和;Ret\["Durbin Watson stat"\]:DW统计量;Ret\["Log Likelihood"\]:对数极大似然值;Ret\["S.E. of regression"\]:回归标准差 | 返回:array #### 示例 ```tsl elps:=randnorm(0,1,200); y:=array(); y[0]:=0; for i:=1 to 199 do y[i]:=0.8*y[i-1]+elps[i]-0.4*elps[i-1]; arma(y,1,1); ``` ### `clusterKmeans(samples, class_count, options)` 执行 K-means 聚类。 | 参数 | 类型 | 说明 | | ------------- | ----- | ------------------------------------------------------ | | `samples` | array | 样本矩阵 | | `class_count` | any | 聚类数量 | | `options` | array | 参数表;常见键包括 `maxiter`、`tol`、`distance`、`out` | 返回:array ### `clusterWard(samples)` 执行 Ward 聚类。 | 参数 | 类型 | 说明 | | --------- | ----- | -------- | | `samples` | array | 样本矩阵 | 返回:array ### `correlationMatrix(a1, t)` 相关系数矩阵求解 | 参数 | 类型 | 说明 | | ---- | ----- | ---- | | `a1` | array | | | `t` | float | | 返回:array #### 示例 ```tsl a := rand(4,3); correlationMatrix(a,1); ``` ### `corrPartial(x, y, z, _type)` 偏相关系数,返回x和y在控制变量z下的偏相关系数,行为样本,列为指标 | 参数 | 类型 | 说明 | | ------ | ----- | ---------------------------------------------------------------------------------------------------------------- | | `x` | array | 变量一,二维实数数组 | | `y` | array | 变量二,二维实数数组 | | `z` | array | 控制变量,二维实数数组 | | `_type` | any | 1:pearson偏相关;2:Spearman偏相关;tail:假设检验的三种类型,字符串,取值为both、left和right,缺省是只输出相关系数 | 返回:any ### `covariance(a)` 计算协方差矩阵 | 参数 | 类型 | 说明 | | ---- | ----- | ---- | | `a` | array | | 返回:any #### 示例 ```tsl a := rand(4,3); covariance(a); ``` ### `eigenJacobi(matrix, eigen_values, eigen_vectors)` 用 Jacobi 方法计算矩阵特征值和特征向量。 | 参数 | 类型 | 说明 | | --------------- | ----- | ---------------- | | `matrix` | array | 待分解矩阵 | | `eigen_values` | any | 接收特征值数组 | | `eigen_vectors` | any | 接收特征向量矩阵 | 返回:void ### `eye(size)` 生成单位矩阵。 | 参数 | 类型 | 说明 | | ------ | ---- | ------------------------------------------ | | `size` | any | 行数和列数;`eye(3)` 生成 `3 x 3` 单位矩阵 | 返回:array ### `factor(x, var_value)` 对样本数据进行因子分析,分别采用主成分分析法估计因子载荷矩阵(因子载荷矩阵不唯一),方差最大法做载荷矩阵的正交旋转矩阵,回归方法计算因子得分 | 参数 | 类型 | 说明 | | ----------- | ----- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `x` | array | 二维维实数数组,表示样本矩阵; | | `var_value` | float | 实数,表示方差贡献率,控制因子个数;;返回结果:ss;Ret\["Correlation Matrix",0\]:样本数据的相关系数矩阵;Ret\["kmo",0\]:KMO检验值;0.90:序列有上升趋势,q<0:序列有下降趋势),第二个为T统计量,第三个为p值,第四个为是否接受原假设。原假设为x是平稳序列,所以H为1表示接受原假设,0表示拒绝原假设 其中:qs是Spearman相关系数,Rt为秩统计量,n为样本容量 | 参数 | 类型 | 说明 | | ------- | ----- | ----------------------------------- | | `y` | array | 随机时间序列,为一维数组类型 | | `alpha` | float | 显著性水平,实数类型,取值在0-1之间 | 返回:array ### `timeDiff(y, n)` 序列差分 | 参数 | 类型 | 说明 | | ---- | ----- | ----------------------- | | `y` | array | 需要做差分的数组数据 | | `n` | any | 差分的阶数,0阶不做处理 | 返回:any ### `timeGarch(rseries, model)` 广义自回归条件异方差模型,包含四种模型:GARCH(1,1)、GJR(1,1)、IGARCH(1,1)和EGARCH(1,1),本模型采用了最大似然估计法去估计模型的系数,可做一步预测。 GARCH(1,1): GJR(1,1): IGARCH(1,1): EGARCH(1,1): 最大似然估计的目标函数值为: | 参数 | 类型 | 说明 | | --------- | ------ | ---------------------------- | | `rseries` | array | 资产收益率,为一维数组类型; | | `model` | string | 模型类别,为字符串类型; | 返回:any ### `timeInvFun(ap, mq)` 中间函数,模型逆函数,ARMA模型的逆函数,Green函数的递推公式如下: 式中: ,,是自回归方程系数,为移动平均系数, | 参数 | 类型 | 说明 | | ---- | ----- | ------------------------------ | | `ap` | array | 自相关系数,为一维数组类型; | | `mq` | array | 移动平均系数,为一维数组类型; | 返回:array ### `timeMAq(y, q, l)` 建议使用ARMA模型替换,移动平均模型,MA(q)模型,用条件最小二乘法去估计q阶移动平均模型的系数,返回结果有移动平均系数、残差方差、预测值及预测波动。 估计过程如下: MA(q)模型: 具有逆转形式: 用算子形式比较,可得: s 条件最小二乘法使得下列残差平方和最小: 可将上述转化为矩阵形式,先求得的取值,在利用上上式计算移动平均系数 如有常数,则常数项为原序列的均值。 ,为自协方差 其中:yt为原序列零均值化的新序列,μ为原序列的均值,θq为移动平均系数,εt是零均值,方差为σ2的平稳白噪声 | 参数 | 类型 | 说明 | | ---- | ----- | -------------------------- | | `y` | array | 样本序列,为一维数组类型; | | `q` | any | 移动平均阶数; | | `l` | any | 预测步长; | 返回:array ### `timesCointergration(y, x, alpha)` 建议使用Times_Cointergration_test函数替换本函数,协整检验—E-G两步法检验变量的协整关系,E-G法如下: 1)在因变量与自变量存在同阶单整关系的条件,进行最小二乘法回归; 2)把回归后的残差进行平稳性检验,如果残差序列是平稳的,则两者存在协整关系,否则不存在。 | 参数 | 类型 | 说明 | | ------- | ----- | ---------------------------------------------------------------- | | `y` | array | 因变量,为一维数组类型; | | `x` | array | 自变量矩阵,为二维数组类型; | | `alpha` | float | 1-alpha为置信水平,一般为5%,也有1%和10%,数值越小,判断越严格; | 返回:string ### `timesCointergrationTest(y, x, constant, alpha_type, style, criterion)` E-G两步法协整检验变量的协整关系,E-G法基本步骤如下: 1)在因变量与自变量存在同阶单整关系的条件,进行最小二乘法回归; 2)把回归后的残差进行平稳性检验,如果残差序列是平稳的,则两者存在协整关系,否则不存在。 | 参数 | 类型 | 说明 | | ------------ | ------ | -------------------------------------------------------------------------------------------------- | | `y` | array | 被解释变量,为一维数组类型 | | `x` | array | 解释变量,为一维数组类型 | | `constant` | bool | 回归方程是否含有常数项,为布尔类型 | | `alpha_type` | float | 显著性水平,为实数类型,一般在0-1之间 | | `style` | any | ADF法检验单整阶数时是否存在常数或趋势项,整数类型,无常数无趋势使用0、有常数无趋势1、有常数有趋势2 | | `criterion` | string | 滞后阶数判断信息准则,字符串类型,"SBIC","AIC" | 返回:array ### `timesEcm(y, x, resid, alpha, q, p)` 两变量间的误差修正模型,准确的刻画了两序列间的短期波动特征 误差修正模型是时间序列间协整关系的主要表现形式,准确的刻画了序列间的长期均衡关系和短期波动特征。设一阶自回归分布滞后模型为: 其中,是均值为零,方差为的白噪声,进行适当的整理有: 其中若记 称为误差修正项。 | 参数 | 类型 | 说明 | | ------- | ----- | -------------------------------------------- | | `y` | array | 被解释变量,为一维数组类型 | | `x` | array | 解释变量,为一维数组类型 | | `resid` | array | 协整检验时的残差,没有输入,使用最小二乘得到 | | `alpha` | float | 显著性水平 | | `q` | any | 整数类型,被解释变量的滞后项 | | `p` | any | 整数类型,解释变量的滞后项 | 返回:any ### `timeSeriesSplit()` 时间序列数据处理;将时间序列数据:时间、数据、(股票)处理成为(时间股票数据)的格式。注意,该函数主要用于客户端结果处理,不提供给用户程序编辑。 返回:array ### `timesGranger(y, x, q, alpha)` Granger因果检验,原假设:X不是Y的Granger原因,Hypothesis为1表示接受原假设,0表示拒绝原假设 原假设: 分别对上述两个回归方程做回归,提取残差平方和XESS跟YESS,则F统计量如下计算: | 参数 | 类型 | 说明 | | ------- | ----- | ------------------------------------- | | `y` | array | 被解释变量,为一维数组类型 | | `x` | array | 解释变量,为一维数组类型 | | `q` | any | 滞后阶数,为整数类型 | | `alpha` | float | 显著性水平,为实数类型,一般在0-1之间 | 返回:array ### `timesJohansen(x, p, k)` 进行Johansen协整检验,第一列的迹、最大特征值统计量的原假设是:没有协整关系;第二列的迹、最大特征值统计量的原假设是最多只有一个协整关系;第三列的迹、最大特征值统计量的原假设是最多只有两个协整关系…… | 参数 | 类型 | 说明 | | ---- | ----- | ---------------------------------------------------------------------------------------------------------------------- | | `x` | array | 输入多元时间序列,每一列为一指标,每行为一时间 (nobs\*m) | | `p` | any | 是否含时间趋势及常数项p = -1,没有时间趋势以及常数项p =0,含常数项p =1,含常数项以及一次时间项p >1,含常数项以及高次时间项 | | `k` | any | 滞后阶数 | 返回:array ### `zeros(size_or_rows, cols_or_fields)` 生成元素为 `0` 的一维或二维矩阵样结果。 | 参数 | 类型 | 说明 | | ---------------- | ----- | -------------------- | | `size_or_rows` | any | 一维长度或二维行数 | | `cols_or_fields` | array | 二维列数,或列名数组 | 返回:array ### `correlMatrix(stocks, start_date)` 股票列表之间的相关系数。与当前时间有关,当前时间为区间截止日。 | 参数 | 类型 | 说明 | | --- | --- | --- | | `stocks` | Array | 一维字符串数组,股票列表 | | `start_date` | TDateTime | 日期型时间,开始计算日期 | 返回:TableArray #### 示例 ```tsl //组合个股相关矩阵 setSysParam(pn_date(),20201231T); stocks:=array("SH600718","SZ000920"); return correlMatrix(stocks,intToDate(20120926)); //结果: ``` ### `symOrthogonal(data, option)` 对矩阵进行正交 | 参数 | 类型 | 说明 | | --- | --- | --- | | `data` | Array | 二维数字数组, 二维数组 行下标为数字或字符串的二维数组 | | `option` | UserDefine | 用户自定义, 正交方法的选择 | 返回:array #### 示例 ```tsl 范例01 //求data的对称正交矩阵 data := rand(10,3); return symOrthogonal(data,0); //结果,随机数,每次结果不一样,仅供参考 ``` ### `covarianceAttenuation(a)` 协方差矩阵-衰减因子。 | 参数 | 类型 | 说明 | | --- | --- | --- | | `a` | array | 二维数字数组 | 返回:any #### 示例 ```tsl a:=array((1,2,3),(4,5,6)); return covarianceAttenuation(a); 返回: ``` ### `giniCoeff(x, y, method)` 计算基尼系数,其中Method决定使用的方法。 | 参数 | 类型 | 说明 | | --- | --- | --- | | `x` | | | | `y` | | | | `method` | | | 返回:real #### 示例 ```tsl x:=array(0.1,0.2,0.3,0.4,0.5,0.6); y:=x^2; return giniCoeff(x,y,1); //返回:0.07 ``` ### `hurst(data, n_rs, options)` 计算hurst指数 | 参数 | 类型 | 说明 | | --- | --- | --- | | `data` | Array | 一维数字数组,用于求hurst的收益率数据 | | `n_rs` | Array | 二维数字数组,作为变参输出回归数据n和R/S | | `options` | Array | 二维数字数组,方法选项,默认方法选项 "minEle":10,"maxSur":0 | 返回:real #### 示例 ```tsl data:=spec(fundNawzfQk(20240308t,20240831t,cy_day(),0,0), "OF000001"); t := sselect ["净值收益率(%)"] from data end; return hurst(t);// 0.47 ``` ### `weightedMedian(x, w)` 加权中位数 | 参数 | 类型 | 说明 | | --- | --- | --- | | `x` | Array | 一维数字数组 | | `w` | Array | 一维权重向量 | 返回:real #### 示例 ```tsl x := array(1,2,3,4,5); w := array(0.15,0.1,0.2,0.3,0.25); echo median(x); //返回3 return weightedMedian(x, w); //返回4 ``` ### `weightedGeomean(x, w)` 加权几何平均数 | 参数 | 类型 | 说明 | | --- | --- | --- | | `x` | Array | 一维数字数组 | | `w` | Array | 一维权重向量 | 返回:real #### 示例 ```tsl x := array(1,2,3,4,5); w := array(0.15,0.1,0.2,0.3,0.25); return weightedGeomean(x,w); //3.0261 ``` ### `weightedHarmean(x, w)` 加权调和平均数 | 参数 | 类型 | 说明 | | --- | --- | --- | | `x` | Array | 一维数字数组 | | `w` | Array | 一维权重向量 | 返回:real #### 示例 ```tsl x := array(1,2,3,4,5); w := array(0.15,0.1,0.2,0.3,0.25); return weightedHarmean(x,w); //2.553 ``` ### `weightedMean(x, w)` 加权平均数 | 参数 | 类型 | 说明 | | --- | --- | --- | | `x` | Array | 一维数字数组 | | `w` | Array | 一维权重向量 | 返回:real #### 示例 ```tsl x := array(1,2,3,4,5); w := array(0.15,0.1,0.2,0.3,0.25); return weightedMean(x,w); //3.4 ``` ### `weightedPopnVariance(x, w)` 加权总体方差 | 参数 | 类型 | 说明 | | --- | --- | --- | | `x` | Array | 一维数字数组 | | `w` | Array | 一维权重向量 | 返回:real #### 示例 ```tsl x := array(1,2,3,4,5); w := array(0.15,0.1,0.2,0.3,0.25); return weightedPopnVariance(x,w); //1.84 ``` ### `weightedVariance(x, w)` 可靠性权重加权样本方差 | 参数 | 类型 | 说明 | | --- | --- | --- | | `x` | Array | 一维数字数组 | | `w` | Array | 一维权重向量 | 返回:real #### 示例 ```tsl x := array(1,2,3,4,5); w := array(0.15,0.1,0.2,0.3,0.25); return weightedVariance(x,w); //2.374 ``` ### `weightedPopnCov(a, b, w)` 加权总体协方差 | 参数 | 类型 | 说明 | | --- | --- | --- | | `a` | Array | 一维数字数组 | | `b` | Array | 一维数字数组 | | `w` | Array | 一维权重向量 | 返回:real #### 示例 ```tsl x := array(1,2,3,4,5); w := array(0.15,0.1,0.2,0.3,0.25); y := array(6,4,3,1,9); return weightedPopnCov(x,y,w);// 0.82 ``` ### `weightedCov(a, b, w)` 可靠性权重加权样本协方差 | 参数 | 类型 | 说明 | | --- | --- | --- | | `a` | Array | 一维数字数组 | | `b` | Array | 一维数字数组 | | `w` | Array | 一维权重向量 | 返回:real #### 示例 ```tsl x := array(1,2,3,4,5); w := array(0.15,0.1,0.2,0.3,0.25); y := array(6,4,3,1,9); return weightedCov(x,y,w); // 1.058 ``` ### `weightedPopnCovariance(a, w)` 加权总体协方差矩阵 | 参数 | 类型 | 说明 | | --- | --- | --- | | `a` | Array | 待计算的矩阵,每一列为一个因子 | | `w` | Array | 一维权重向量 | 返回:Matix #### 示例 ```tsl begt := 20190101T; endt := 20190415T; stocks := array('SH000001','SH000300','SH600000'); //涨幅(%)矩阵 returns := pf_GetPortfolioRate(stocks,begt,endt,1)[:,1:]; //指数函数权重 n := length(returns); w := exp(1->n); w /= sum(w); return weightedPopnCovariance(returns, w); //结果 ``` ### `weightedCovariance(a, w)` 可靠性权重加权样本方差矩阵 | 参数 | 类型 | 说明 | | --- | --- | --- | | `a` | Array | 待计算的矩阵,每一列为一个因子 | | `w` | Array | 一维权重向量 | 返回:matrix #### 示例 ```tsl begt := 20190101T; endt := 20190415T; stocks := array('SH000001','SH000300','SH600000'); //涨幅(%)矩阵 returns := pf_GetPortfolioRate(stocks,begt,endt,1)[:,1:]; //指数函数权重 n := length(returns); w := exp(1->n); w /= sum(w); return weightedCovariance(returns, w); //结果 ``` ### `weightedCorrel(a, b, w)` 加权相关系数 | 参数 | 类型 | 说明 | | --- | --- | --- | | `a` | Array | 一维数字数组 | | `b` | Array | 一维数字数组 | | `w` | Array | 一维权重向量 | 返回:real #### 示例 ```tsl x := array(1,2,3,4,5); w := array(0.15,0.1,0.2,0.3,0.25); y := array(6,4,3,1,9); return weightedCorrel(x,y,w); //0.1956 ``` ### `weightedCorrelM(a, w)` 加权相关系数矩阵 | 参数 | 类型 | 说明 | | --- | --- | --- | | `a` | Array | 待计算的矩阵,每一列为一个因子 | | `w` | Array | 一维权重向量 | 返回:matrix #### 示例 ```tsl begt := 20190101T; endt := 20190415T; stocks := array('SH000001','SH000300','SH600000'); //涨幅(%)矩阵 returns := pf_GetPortfolioRate(stocks,begt,endt,1)[:,1:]; //指数函数权重 n := length(returns); w := exp(1->n); w /= sum(w); return weightedCorrelM(returns, w); //结果 ``` ### `ewmMean(x, y, alphatype, adjust, iflast)` 指数加权移动平均,支持nan,为nan的值参与权重计算,但计算平均时对nan值不进行计算,即计算加权平均时把nan 值及其权重都置为0进行计算 | 参数 | 类型 | 说明 | | --- | --- | --- | | `x` | Array | 数组,待计算移动平均的一维数字数组 | | `y` | real | 实数,衰减因子,与alphatype共同决定实际的衰减因子alpha,见平滑系数的确定 | | `alphatype` | Integer | 用户自定义,默认为0 | | `adjust` | bool | 布尔型,是否调整,True、实际权重计算,False、根据无穷序列假设下的递推式计算,默认为False,见指数加权的两种递推式。 | | `iflast` | bool | 是否只返回最后一个数,默认为False | 返回:Array #### 示例 ```tsl sp_s(Pn_stock(),'SH000300'); sp_s(pn_date(),20190415T); x := nDay3(50,stockZf3()); return x | ewmMean(x,10,1); //结果 ``` ### `ewmStd(x, y, alphatype, adjust)` 指数加权移动标准差 | 参数 | 类型 | 说明 | | --- | --- | --- | | `x` | Array | 待计算移动平均的一维数字数组 | | `y` | real | 衰减因子,与alphatype共同决定实际的衰减因子alpha,见平滑系数的确定 | | `alphatype` | Integer | 用户自定义,默认为0 | | `adjust` | bool | 是否调整,True、实际权重计算,False、根据无穷序列假设下的递推式计算,默认为False,见指数加权的两种递推式。 | 返回:Array #### 示例 ```tsl sp_s(Pn_stock(),'SH000300'); sp_s(pn_date(),20190415T); x := nDay3(50,stockZf3()); return x | ewmStd(x,10,1); //结果 ``` ### `ewmVar(x, y, alphatype, adjust)` 指数加权移动方差,支持nan,为nan的值参与权重计算,但计算平均时对nan值不进行计算,即计算加权平均时把nan 值及其权重都置为0进行计算,(有偏暂未实现支持nan) | 参数 | 类型 | 说明 | | --- | --- | --- | | `x` | Array | 待计算移动平均的一维数字数组 | | `y` | real | 衰减因子,与alphatype共同决定实际的衰减因子alpha,见平滑系数的确定 | | `alphatype` | Integer | 用户自定义,默认为0 | | `adjust` | bool | 是否调整,True、实际权重计算,False、根据无穷序列假设下的递推式计算,默认为False,见指数加权的两种递推式。 | 返回:Array #### 示例 ```tsl sp_s(Pn_stock(),'SH000300'); sp_s(pn_date(),20190415T); x := nDay3(50,stockZf3()); return x | ewmVar(x,10,1); //结果 ``` ### `ewmCorrel(a, b, y, alphatype, adjust, iflast)` 指数加权移动相关系数 | 参数 | 类型 | 说明 | | --- | --- | --- | | `a` | Array | 样本a待计算的一维数字数组 | | `b` | Array | 样本b待计算的一维数字数组 | | `y` | real | 衰减因子,与alphatype共同决定实际的衰减因子alpha,见平滑系数的确定 | | `alphatype` | Integer | 用户自定义,默认为0 | | `adjust` | bool | 是否调整,True、实际权重计算,False、根据无穷序列假设下的递推式计算,默认为False,见指数加权的两种递推式。 | | `iflast` | bool | 是否只返回最后一个数,默认为False | 返回:Array #### 示例 ```tsl sp_s(Pn_stock(),'SH000300'); sp_s(pn_date(),20190415T); a:=nDay3(50,stockZf3()); b:=nDay3(50,spec(stockZf3(),'SH000001')); return a|b|ewmCorrel(a,b,10,1); //结果 ``` ### `ewmCov(a, b, y, alphatype, adjust)` 指数加权移动协方差 | 参数 | 类型 | 说明 | | --- | --- | --- | | `a` | array | 样本a待计算的一维数字数组 | | `b` | Array | 样本b待计算的一维数字数组 | | `y` | real | 衰减因子,与alphatype共同决定实际的衰减因子alpha,见平滑系数的确定 | | `alphatype` | Integer | 用户自定义,默认为0 | | `adjust` | bool | 是否调整,True、实际权重计算,False、根据无穷序列假设下的递推式计算,默认为False,见指数加权的两种递推式。 | 返回:array #### 示例 ```tsl sp_s(Pn_stock(),'SH000300'); sp_s(pn_date(),20190415T); a:=nDay3(50,stockZf3()); b:=nDay3(50,spec(stockZf3(),'SH000001')); return a|b|ewmCov(a,b,10,1); //结果 ``` ### `ewmSlope(y, x, a, alphatype, adjust)` 指数加权移动回归斜率,y与x协方差/x方差(指数加权移动) | 参数 | 类型 | 说明 | | --- | --- | --- | | `y` | array | 样本y待计算的一维数字数组 | | `x` | array | 样本x待计算的一维数字数组 | | `a` | real | 衰减因子,与alphatype共同决定实际的衰减因子alpha,见平滑系数的确定 | | `alphatype` | Integer | 用户自定义,默认为0 | | `adjust` | bool | 是否调整,True、实际权重计算,False、根据无穷序列假设下的递推式计算,默认为False,见指数加权的两种递推式。 | 返回:array #### 示例 ```tsl sp_s(Pn_stock(),'SH000300'); sp_s(pn_date(),20190415T); a:=nDay3(50,stockZf3()); b:=nDay3(50,spec(stockZf3(),'SH000001')); return a|b|ewmSlope(a,b,10,1); //结果 ``` ### `ewmIntercept(y, x, a, alphatype, adjust)` 指数加权移动回归截据项,y平均-斜率*x平均 (指数加权移动) | 参数 | 类型 | 说明 | | --- | --- | --- | | `y` | array | 样本y待计算的一维数字数组 | | `x` | array | 样本x待计算的一维数字数组 | | `a` | real | 衰减因子,与alphatype共同决定实际的衰减因子alpha,见平滑系数的确定 | | `alphatype` | Integer | 用户自定义,默认为0 | | `adjust` | bool | 是否调整,True、实际权重计算,False、根据无穷序列假设下的递推式计算,默认为False,见指数加权的两种递推式。 | 返回:array #### 示例 ```tsl sp_s(Pn_stock(),'SH000300'); sp_s(pn_date(),20190415T); a:=nDay3(50,stockZf3()); b:=nDay3(50,spec(stockZf3(),'SH000001')); return a|b|ewmIntercept(a,b,10,1); ``` ### `ewmResidual(y, x, a, alphatype, adjust)` 指数加权移动回归残差,y– (截距+斜率*x)(指数加权移动) | 参数 | 类型 | 说明 | | --- | --- | --- | | `y` | array | 样本y待计算的一维数字数组 | | `x` | array | 样本x待计算的一维数字数组 | | `a` | real | 衰减因子,与alphatype共同决定实际的衰减因子alpha,见平滑系数的确定 | | `alphatype` | Integer | 用户自定义,默认为0 | | `adjust` | bool | 是否调整,True、实际权重计算,False、根据无穷序列假设下的递推式计算,默认为False,见指数加权的两种递推式。 | 返回:array #### 示例 ```tsl sp_s(Pn_stock(),'SH000300'); sp_s(pn_date(),20190415T); a:=nDay3(50,stockZf3()); b:=nDay3(50,spec(stockZf3(),'SH000001')); return a|b|ewmResidual(a,b,10,1); ``` ### `auc(x, y)` 计算auc,根据roc_curve计算出来的fpr和tpr序列值计算AUC值 | 参数 | 类型 | 说明 | | --- | --- | --- | | `x` | Array | x坐标点 | | `y` | Array | y坐标点 | 返回:real #### 示例 ```tsl y_true := array(1,1,2,2,1,2,1,2); y_score := array(0.1,0.4,0.35,0.8,0.5,0.7,0.45,0.6); ret := roc_curve(y_true,y_score,2); fpr := ret[0]; tpr := ret[1]; return auc(fpr,tpr); //0.8125 ```