78 KiB
运行时 / 数学与统计
Anova_Bartlett(y, alpha)
在1-alpha的置信水平下,Bartlett方法检验方差齐性;B-Stat为统计值,P-Value为p值,df为自由度,Hypothesis为是否接受原假设 模型表达: Bartlett检验思想来源于几何平均数小于或等于算术平均数 原假设:是水平个数 ,其中 修正的Bartlett检验:
| 参数 | 类型 | 说明 |
|---|---|---|
y |
array | 数据矩阵,为二维数组类型,每一行表示一个水平 |
alpha |
float | 显著性水平,实数或整数,在01之间 |
返回:array
Anova_Levene(y, alpha)
在1-Alpha的置信水平下,Levene方法检验方差齐性,和Bartlett检验不同的是,Levene检验不要求总体具有正态性。返回一个数组,F-Stat为统计值,P-Value为p值,df1,df2为自由度,Hypothesis为是否接受原假设 模型表达: 原假设:是水平个数 ,其中是观察数目,是水平数目
| 参数 | 类型 | 说明 |
|---|---|---|
y |
array | 数据矩阵,为二维数组类型,每一行表示一个水平 |
alpha |
float | 显著性水平,实数或整数,在01之间 |
返回:array
Anova_Single(y, alpha)
在1-alpha置信水平下,在假设服从正态分布,且方差齐性,样本之间独立的基础上,判断各水平的均值是否显著相等 模型表达: , 其中:效应平方和:,误差平方和: 总离差
| 参数 | 类型 | 说明 |
|---|---|---|
y |
array | 数据矩阵,为二维数组类型,每一行表示一个水平 |
alpha |
float | 显著性水平,实数或整数,在01之间 |
返回:array
Anova_Twice(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
示例
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);
Cluster_Kmeans(samples, class_count, options)
执行 K-means 聚类。
| 参数 | 类型 | 说明 |
|---|---|---|
samples |
array | 样本矩阵 |
class_count |
any | 聚类数量 |
options |
array | 参数表;常见键包括 maxiter、tol、distance、out |
返回:array
Cluster_ward(samples)
执行 Ward 聚类。
| 参数 | 类型 | 说明 |
|---|---|---|
samples |
array | 样本矩阵 |
返回:array
correlationMatrix(a1, t)
相关系数矩阵求解
| 参数 | 类型 | 说明 |
|---|---|---|
a1 |
array | |
t |
float |
返回:array
示例
a := rand(4,3);
correlationMatrix(a,1);
Corr_partial(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
示例
a := rand(4,3);
covariance(a);
Eigen_Jacobi(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.9<KMO: 非常适合;0.8<KMO<0.9:适合;0.7<KMO<0.8:一般; 0.6<KMO<0.7:适合度较低;KMO<0.6:适合度很低;ret["Total Variance Explained",0]:特征值、方差贡献率、累计方差贡献率等信息;ret["Component Matrix",0]:因子载荷矩阵;ret["Communalities",0]:共同变量度,即载荷矩阵行的平方和;ret["thogonal matrix",0]:正交变换后的载荷矩阵;ret["Rotation matrix",0]:旋转矩阵;ret["Factor score",0]:因子得分 |
返回:array
示例
stockn:=getBk("上证A股");
vo:=BackUpSystemParameters();
setSysParam(pn_date(),today());
sto:=array();
for n_i:=0 to length(stockn)-1 do
begin
setSysParam(pn_stock(),stockn[n_i]);
if isStockGoMarket(intToDate(20011231)) then
sto[length(sto)]:=stockn[n_i];
end
st:=array2Str(sto,";");
a1:= query("",st,true,"","代码",defaultStockId(),
"主营业务利润",report(46008,20101231),
"利润总额",report(46024,20101231),
"净利润",report(46033,20101231),
"加权每股收益",report(42003,20101231),
"每股净资产",report(42006,20101231),
"加权净资产收益率",report(42013,20101231),
"资产总计",report(44059,20101231),
"股本",report(44099,20101231));
RestoreSystemParameters(vo);
a:=zeros(mrows(a1),mcols(a1));
a[:,:]:=a1[:,:];
stock:=a[:,0];
data:=a[:,1:8];
//取得纯数据矩阵
br:=factor(data,0.85); //
br;
histc(a, b)
端点定位频数,判断序列a 中各个元素在b中各个段位中的频数
| 参数 | 类型 | 说明 |
|---|---|---|
a |
array | 一维数组 |
b |
array | 一维数组 |
返回:array
示例
a:=rand(1000)*5;
b:=array(0,1,2,3,4,5);
histc(a,b);
Hypoth_LSUTest(mx, s, n, u, tail, alpha)
单个或两个总体大样本的均值检验,即大样本U检验,返回的结果是一个数组,第一个数为统计值,二为p值,三为原假设的值(0表示拒绝,1表示接受) 模型表达 单个总体大样本的均值原假设:tail取值both:;left:;right: 两个总体大样本的均值假设:tail取值both:;left:;right: 检验统计量: 或 其中:x为样本x的均值,y为样本y的均值,为正态总体x方差,为正态总本y方差,m,n分别为样本x和y的容量s
| 参数 | 类型 | 说明 |
|---|---|---|
mx |
array | 样本均值数组,第一行为样本1,第二行为样本2,为一维数组类型 |
s |
any | 样本方差数组,第一行为样本1,第二行为样本2,为一维数组类型 |
n |
array | 样本容量,第一行为样本1,第二行为样本2,为一维数组类型 |
u |
float | 单个总体时,为假设检验均值,两个总体时,为均值差 |
tail |
string | 假设检验类型 |
alpha |
float | 显著性水平,实数或整数,在01之间 |
返回:array
Hypoth_PSignTest(x, pi, q0, tail, alpha)
非参数检验-配对样本符号检验,配对样本的符号检验 要求样本矩阵中两个样本是配对出现的 可以按照实际需求选择双侧或单侧检验
| 参数 | 类型 | 说明 |
|---|---|---|
x |
array | 一维数字数组,样本矩阵 |
pi |
float | 实数,分位点 |
q0 |
float | 实数,检验值 |
tail |
string | 字符串,双侧检验 or 左侧检验 or 右侧检验 |
alpha |
float | 实数,显著性水平 |
返回:array
Hypoth_SignTest(x, pi, q0, tail, alpha)
非参数检验-符号检验。对单样本进行符号检验 可以按照实际需求选择双侧或单侧检验 其中,检验变量服从二项分布
| 参数 | 类型 | 说明 |
|---|---|---|
x |
array | 样本序列,为一维数字数组类型 |
pi |
float | 分位点,为实数类型 |
q0 |
float | 检验值,即检验分位点的值,为实数类型 |
tail |
string | 假设检验的三种类型,both(双侧检验),left(左侧检验),right(右侧检验),为字符串类型 |
alpha |
float | 显著性水平,在0-1之间,为实数类型 |
返回:array
Hypoth_SNDTest(x, d2, tail, alpha)
单个正态总体方差的卡方检验,返回的结果是一个数组,第一个数为统计值,二为p值,三为原假设的值(0表示拒绝,1表示接受) 模型表达: 原假设:tail取值both:;left:;right: 检验统计量: 其中:为假设检验的方差,n为样本容量,s为样本标准差
| 参数 | 类型 | 说明 |
|---|---|---|
x |
array | 样本序列,为一维数组类型 |
d2 |
float | 假设检验的方差,为实数类型 |
tail |
string | 假设检验类型 |
alpha |
float | 显著性水平,实数或整数,在01之间 |
返回:array
Hypoth_SNUTest(x, u, d, tail, alpha)
单个正态总体的均值检验,分为标准差未知和已知两个情况,返回结果是一个数组,第一个数为统计值,二为p值,三为原假设的值(0表示拒绝,1表示接受) 模型表达: 原假设:tail取值both:;left:;right: 检验统计量:分为两种情况 1)标准差已知时,即d有取值,为U检验: 2)标准差未知时,即d取nil,为T检验: 其中:x为样本均值,为检验均值,为正态总体标准差,n为样本容量,s为样本标准差
| 参数 | 类型 | 说明 |
|---|---|---|
x |
array | 样本序列,为一维数组类型 |
u |
float | 假设检验均值,为实数类型 |
d |
float | 正态总体的标准差,为实数类型,若未知,则输入nil |
tail |
string | 假设检验的三种类型,字符串,取值为both、left和right |
alpha |
float | 显著性水平,实数或整数,在01之间 |
返回:array
Hypoth_TNDTest(x, tail, alpha)
两个正态总体方差比的F检验,返回的结果是一个数组,第一个数为统计值,二为p值,三为原假设的值(0表示拒绝,1表示接受) 模型表达: 原假设:tail取值both:;left:;right: 检验统计量: 其中:Sx为x的样本标准差,Sy为y的样本标准差
| 参数 | 类型 | 说明 |
|---|---|---|
x |
array | 样本序列矩阵,第一行为样本1,第二行为样本2,为二维数组类型 |
tail |
string | 假设检验类型 |
alpha |
float | 显著性水平,实数或整数,在01之间 |
返回:array
Hypoth_TNUTest(x, uu, d, tail, alpha, isequal)
两个正态总体均值差的检验,分为标准差未知和已知两个情况,返回的结果是一个数组,第一个数为统计值,二为p值,三为是否接受原假设 模型表达: 原假设:tail取值both:;left:;right: 检验统计量: 标准差已知时,即d数组有取值,为u检验: 标准差未知时,即d取(nil,nil),为t检验:, 其中:为样本x的均值,为样本y的均值,,为正态总体x,y的方差,分别为样本x和y的容量,为联合样本标准差
| 参数 | 类型 | 说明 |
|---|---|---|
x |
array | 样本序列矩阵,为二维数组类型,第一行为样本1,第二行为样本2 |
uu |
float | 假设检验均值差,为实数类型 |
d |
float | 正态总体的标准差数组,为一维数组类型,若未知,则输入(nil,nil) |
tail |
string | 假设检验的三种类型,字符串,取值为both、left和right |
alpha |
float | 显著性水平,实数或整数,在01之间 |
isequal |
bool | object |
返回:array
ig_Chebyshev(a, b, call_back, v)
数值计算相关函数。
| 参数 | 类型 | 说明 |
|---|---|---|
a |
any | |
b |
any | |
call_back |
string | |
v |
any |
返回:any
ig_Gauss(a, b, call_back, v)
数值计算相关函数。
| 参数 | 类型 | 说明 |
|---|---|---|
a |
any | |
b |
any | |
call_back |
string | |
v |
any |
返回:any
ip_Aitken_A(x, y, xv, yv)
数值计算相关函数。
| 参数 | 类型 | 说明 |
|---|---|---|
x |
array | |
y |
array | |
xv |
any | |
yv |
any |
返回:any
ip_Aitken_B(x0, h, y, xv, yv)
数值计算相关函数。
| 参数 | 类型 | 说明 |
|---|---|---|
x0 |
float | |
h |
float | |
y |
array | |
xv |
any | |
yv |
any |
返回:any
ip_Hermite_A(x, y, dy, xv, yv)
数值计算相关函数。
| 参数 | 类型 | 说明 |
|---|---|---|
x |
array | |
y |
any | |
dy |
any | |
xv |
any | |
yv |
any |
返回:any
ip_Hermite_B(x0, h, y, dy, xv, yv)
数值计算相关函数。
| 参数 | 类型 | 说明 |
|---|---|---|
x0 |
any | |
h |
any | |
y |
array | |
dy |
array | |
xv |
float | |
yv |
any |
返回:any
ip_Lagrangian_A(x, y, xv, yv)
数值计算相关函数。
| 参数 | 类型 | 说明 |
|---|---|---|
x |
array | |
y |
any | |
xv |
any | |
yv |
any |
返回:any
ip_Lagrangian_B(x0, h, y, xv, yv)
数值计算相关函数。
| 参数 | 类型 | 说明 |
|---|---|---|
x0 |
float | |
h |
float | |
y |
array | |
xv |
any | |
yv |
any |
返回:any
ip_Parabola_A(x, y, xv, yv)
数值计算相关函数。
| 参数 | 类型 | 说明 |
|---|---|---|
x |
array | |
y |
array | |
xv |
any | |
yv |
any |
返回:any
ip_Parabola_B(x0, h, y, xv, yv)
数值计算相关函数。
| 参数 | 类型 | 说明 |
|---|---|---|
x0 |
float | |
h |
float | |
y |
array | |
xv |
any | |
yv |
any |
返回:any
ip_Spline_A(x, y, dy0, dyn_1, xv, yv)
数值计算相关函数。
| 参数 | 类型 | 说明 |
|---|---|---|
x |
array | |
y |
array | |
dy0 |
any | |
dyn_1 |
any | |
xv |
float | |
yv |
any |
返回:any
ip_Spline_B(x, y, ddy0, ddyn_1, xv, yv)
数值计算相关函数。
| 参数 | 类型 | 说明 |
|---|---|---|
x |
array | |
y |
array | |
ddy0 |
any | |
ddyn_1 |
any | |
xv |
float | |
yv |
any |
返回:any
ip_Spline_C(x, y, xv, yv)
数值计算相关函数。
| 参数 | 类型 | 说明 |
|---|---|---|
x |
array | |
y |
array | |
xv |
float | |
yv |
any |
返回:any
一般统计量
LeastSquares_CurveFitting(f, y)
最小二乘法进行回归
| 参数 | 类型 | 说明 |
|---|---|---|
f |
array | 二维数字数组类型,系数矩阵 |
y |
array | 一维数字数组类型,观察数据值 |
返回:array
mcols(value, mode)
读取矩阵样数据或 FMArray 的列数或列索引。
| 参数 | 类型 | 说明 |
|---|---|---|
value |
array | 输入数据 |
mode |
any | 省略时返回列数;传 1 时返回列索引数组 |
返回:array
mrows(value, mode)
读取矩阵样数据或 FMArray 的行数或行索引。
| 参数 | 类型 | 说明 |
|---|---|---|
value |
array | 输入数据 |
mode |
any | 省略时返回行数;传 1 时返回行索引数组 |
返回:array
msize(value, mode)
读取矩阵样数据或 FMArray 的尺寸信息。
| 参数 | 类型 | 说明 |
|---|---|---|
value |
array | 输入数据 |
mode |
any | 省略时返回各维长度;传 1 时返回索引数组 |
返回:array
multipleRegression(x, y, call_back)
多元回归
| 参数 | 类型 | 说明 |
|---|---|---|
x |
array | 二维数字数组类型,观察数据点 |
y |
array | 一维数字数组类型,观察数据值 |
call_back |
string | 字符串类型,计算系数矩阵的回调 |
返回:array
示例
x:=array((0.00,0.00),(0.00,1.00),(1.00,0.00),(1.00,1.00));
y:=array(1.00,2.00,2.00,3.00);
call_back:='MultipleRegression_CallBack';
multipleRegression(x,y,call_back);
//结果:
NonLP_Fminbnd(fun, a, b, methods)
一维最小值搜索,求解模型如下: min fun(x)
| 参数 | 类型 | 说明 |
|---|---|---|
fun |
string | 目标函数(函数名字符串) |
a |
float | 下界,实数 |
b |
float | 上界,实数 |
methods |
any | 方法选择0 :黄金分割法+抛物线法(默认)1 : 盲人收索法2 :黄金分割法3 :斐波那契法 |
返回:array
NonLP_Rosenbrock(fun, x0)
(无约束最小值求解建议统一使用NonLP_Fminsearch函数)Rosenbrock求无约束多维极值问题,返回最优点和最优值。
| 参数 | 类型 | 说明 |
|---|---|---|
fun |
string | 目标函数表达式,为字符串类型; |
x0 |
array | 初值向量,为一维数组类型 |
返回:array
numberOfPeriods(rate, payment, present_value, future_value, payment_time)
返回投资的期数,也就是按照指定的收益率和每期的付款,现值PresentValue要经过多少个周期才能到达FutureValue的数值。
| 参数 | 类型 | 说明 |
|---|---|---|
rate |
float | 实数,收益率 |
payment |
float | 实数。每期付款额 |
present_value |
float | 实数,现值 |
future_value |
int | 实数,要达到的终值 |
payment_time |
float | PaymentTime决定Payment的支付是在期初还是期末发生 |
返回:float
ozProg(f, a, b)
(线性规划,包括整数规划,01规划建议统一使用prog_L函数),0-1规划,解决如下0-1整数规划模型问题 返回该0-1规划模型的最小值及其对应变量的取值,其中可以转化为和;
| 参数 | 类型 | 说明 |
|---|---|---|
f |
array | 一维实数数组,表示0-1规划模型的目标函数系数; |
a |
array | 二维实数数组,表示0-1规划模型的带“”约束方程系数矩阵,如果是带“”,则将该方程两边同乘以“-1”; |
b |
array | 一维实数数组,表示0-1规划模型带“”约束方程的约束值; |
返回:array
示例
f:=array(-3,2,-5);
a:=array((1,2,-1),(1,4,1),(1,1,0),(4,0,1));
b:=array(2,4,3,6);
ozProg(f,a,b);
//结果:x1=1,x2=0,x3=1,f(x)=-8
Prog_Q(h, f, a, b, aeq, beq, lb, ub, x0, options)
二次规划问题求解(采用作用集方法) Prog_Q(H,f,A,b) 求解不等式约束 Prog_Q(H,f,A,b,Aeq,beq) 求解不等式约束、等式约束 Prog_Q(H,f,A,b,Aeq,beq,LB,UB) 求解不等式约束、等式约束、上下界限约束 Prog_Q(H,f,A,b,Aeq,beq,LB,UB,x0,options) 模型表达: min= `x* H* x /2 + sum(f*x) st. A:*x<=b Aeq :* x = Beq; lb<x<ub;
| 参数 | 类型 | 说明 |
|---|---|---|
h |
array | 二次型,正定二次型二维数字数组,不可缺省 |
f |
array | 线性目标,一维数字数组,不可缺省 |
a |
array | 线性约束,二维数字数组,不可缺省 |
b |
array | 线性约束,一维数字数组,不可缺省 |
aeq |
array | 线性约束,二维数字数组,缺省为空 |
beq |
array | 线性约束,一维数字数组,缺省为空 |
lb |
array | 下界约束,一维数字数组,缺省为空 |
ub |
array | 上界约束,一维数字数组,缺省为空 |
x0 |
array | 初始值,一维数组 |
options |
array | 选项设置,数据表类型,缺省为array('maxiter': 400 , //最大迭代次数'tolcon': 1.0e-6, //约束容忍误差'tolfun' : 1.0e-6 , //目标最小误差'tolx' : 1.0e-6 //变量最小变化) |
返回:array
rand(rows, cols)
生成随机矩阵样结果。
| 参数 | 类型 | 说明 |
|---|---|---|
rows |
any | 行数 |
cols |
any | 列数 |
返回:array
数学函数 / FMArray 函数
randgam(a, b, row, col)
产生伽马分布的随机数
| 参数 | 类型 | 说明 |
|---|---|---|
a |
float | 形状参数,大于0的实数 |
b |
float | 尺度参数,大于0的实数 |
row |
array | 行数或者行名字符串数组 |
col |
array | 列数或者列名字符串数组 |
返回:any
示例
randgam(2,2,100,array("a","b"));
Regress_CMLS(y, x, u, constant)
线性回归方程的最小二乘法参数估计(可选择是否包含常数项),返回回归方程的系数,如果有常数项则排在第一项
| 参数 | 类型 | 说明 |
|---|---|---|
y |
array | 被解释变量序列,为一维数组类型 |
x |
array | 解释变量矩阵,为二维数组类型,每一列为一个解释变量 |
u |
array | 残差序列,为一维数组类型,变参 |
constant |
bool | 是否包含常数项,为布尔类型,缺省为true |
返回:array
Regress_domin_formula(y, x)
相对重要性分析-R2公式分解法 功能描述: 1、相对重要性分析 2、算法:根据含常数项的多元回归的r2的分解公式,来计算 不同解释变量的相对贡献度 3、公式法: 未考虑到不同解释变量之间的相互关系, 贡献度可能为负数
| 参数 | 类型 | 说明 |
|---|---|---|
y |
array | Array of number,因变量 |
x |
array | Array of number,自变量 |
返回:array
Regress_DWTest(u)
德宾-沃森检验:检验随机误差项是否存在一阶自相关。结果返回DW统计量 DW统计量:(一般认为值在2附近,则随机误差项不存在自相关)
| 参数 | 类型 | 说明 |
|---|---|---|
u |
array | 方程残差,为一维数组类型; |
返回:any
Regression_OLS_NW(y, x, constant, alpha, al)
NW调整的OLS回归,此调整用于当残差或者因变量(两者等价)存在异方差性并且自相关性时,利用OLS回归后对回归系数的协方差矩阵进行NW调整计算,得到每个系数White调整后的标准误,再进行T检验。T检验部分相关公式详见Regress_TTest_NW,回归系数的OLS解如下β*=(X'X)-1X'y 其余部分定义与普通最小二乘OLS一致
| 参数 | 类型 | 说明 |
|---|---|---|
y |
array | 一维数字数组, 因变量 |
x |
array | 二维数字数组, 自变量,不需要包含全1列 |
constant |
bool | object |
alpha |
float | 实数,显著性水平,应为0到1之间的值,默认0.05 |
al |
any | 整数,自相关最大滞后阶数,可缺省,默认用Newey and West (1994)?提出的方法计算,至少为1 |
返回:array
Regress_MLS(y, x, u)
线性回归方程的最小二乘法参数估计(包含常数项),返回回归方程的系数,常数项排在第一项
| 参数 | 类型 | 说明 |
|---|---|---|
y |
array | 被解释变量序列,为一维数组类型 |
x |
array | 解释变量矩阵,为二维数组类型,每一列为一个解释变量 |
u |
array | 残差序列,为一维数组类型,变参 |
返回:array
Regress_Ridge(y_values, x_values, k_values, trace_mode)
执行岭回归,或按 k_values 输出岭迹。
| 参数 | 类型 | 说明 |
|---|---|---|
y_values |
array | 因变量样本 |
x_values |
array | 自变量样本矩阵 |
k_values |
array | 岭参数序列;省略时自动选择 |
trace_mode |
bool | 是否按岭迹模式输出 |
返回:array
Regress_TTest_RWLS(x, a, u, k, alpha, constant, weight, restrictiveness)
T检验,在alpha的置信水平下,n元线性回归变量系数的显著性检验 原假设:回归方程系数不显著。带约束的加权最小二乘 RWLS 模型,对回归系数进行显著性检验, 适用于以下
| 参数 | 类型 | 说明 |
|---|---|---|
x |
array | 一维数字数组,自变量矩阵,注意:含常数项的回归不需要给全1列 |
a |
array | 一维数字数组,方程系数;有常数项时,a 为 常数项系数 union 自变量系数;无常数项时,a 为 自变量系数 |
u |
array | 一维数字数组,残差序列 |
k |
any | 整型,自变量的个数;k = length(a)-constant;有常数项回归时,k := mcols(x);;无常数项回归,k := mcols(x)-1; |
alpha |
float | 实数,显著性水平 |
constant |
bool | Bool,是否为含常数项回归 |
weight |
array | 数组,加权回归的权重,默认等权重 |
restrictiveness |
array | 数组,线性约束,只需要给对应于回归系数个数长度的一维数组,默认无约束;例如:有5个系数,分别为x0,x1,x2,x3,x4;约束为: x1+x2+3x4=3;则所给的参数为:;array(0,1,1,0,3) |
返回:array
Regress_WLS(y_values, x_values, weights, residuals)
执行加权最小二乘回归并输出残差。
| 参数 | 类型 | 说明 |
|---|---|---|
y_values |
array | 因变量样本 |
x_values |
array | 自变量样本 |
weights |
array | 权重序列 |
residuals |
any | 接收残差序列 |
返回:array
sf_Beta(arg1, arg2, v)
统计分布相关函数。
| 参数 | 类型 | 说明 |
|---|---|---|
arg1 |
any | |
arg2 |
any | |
v |
any |
返回:any
sf_betainv(y, arg2, arg3, x)
统计分布相关函数。
| 参数 | 类型 | 说明 |
|---|---|---|
y |
array | |
arg2 |
any | |
arg3 |
any | |
x |
any |
返回:any
常用数学函数
sf_betapdf(x, a, b, v)
贝塔分布的密度函数,输入随机变量,返回随机变量对应的密度函数值
| 参数 | 类型 | 说明 |
|---|---|---|
x |
array | :随机变量,可以使用实数,也可以是一个实数数组 |
a |
float | beta分布参数1,实数,大于0 |
b |
float | beta分布参数2,实数,大于0 |
v |
array | 变参返回,该函数也支持直接返回,类型和x一样 |
返回:any
sf_CosX(arg1, v)
数值计算相关函数。
| 参数 | 类型 | 说明 |
|---|---|---|
arg1 |
any | |
v |
any |
返回:any
sf_EllipseX_1(k, f, v)
数值计算相关函数。
| 参数 | 类型 | 说明 |
|---|---|---|
k |
any | |
f |
any | |
v |
any |
返回:any
sf_EllipseX_2(k, f, v)
数值计算相关函数。
| 参数 | 类型 | 说明 |
|---|---|---|
k |
any | |
f |
any | |
v |
any |
返回:any
sf_Error(arg1, v)
统计分布相关函数。
| 参数 | 类型 | 说明 |
|---|---|---|
arg1 |
float | |
v |
any |
返回:any
sf_eX(arg1, v)
数值计算相关函数。
| 参数 | 类型 | 说明 |
|---|---|---|
arg1 |
any | |
v |
any |
返回:any
sf_F(f, n1, n2, v)
统计分布相关函数。
| 参数 | 类型 | 说明 |
|---|---|---|
f |
any | |
n1 |
any | |
n2 |
any | |
v |
any |
返回:any
sf_finv(arg1, arg2, arg3, v)
统计分布相关函数。
| 参数 | 类型 | 说明 |
|---|---|---|
arg1 |
float | |
arg2 |
any | |
arg3 |
any | |
v |
any |
返回:any
sf_Gamma(arg1, v)
统计分布相关函数。
| 参数 | 类型 | 说明 |
|---|---|---|
arg1 |
any | |
v |
any |
返回:any
sf_gammainv(arg1, arg2, v)
统计分布相关函数。
| 参数 | 类型 | 说明 |
|---|---|---|
arg1 |
float | |
arg2 |
any | |
v |
any |
返回:any
sf_IncompleteBeta(a, b, x, v)
统计分布相关函数。
| 参数 | 类型 | 说明 |
|---|---|---|
a |
any | |
b |
any | |
x |
float | |
v |
any |
返回:any
sf_IncompleteGamma(a, x, v)
统计分布相关函数。
| 参数 | 类型 | 说明 |
|---|---|---|
a |
any | |
x |
any | |
v |
any |
返回:any
sf_IntegerBessel_1(n, x, v)
统计分布相关函数。
| 参数 | 类型 | 说明 |
|---|---|---|
n |
any | |
x |
float | |
v |
any |
返回:any
sf_IntegerBessel_2(n, x, v)
统计分布相关函数。
| 参数 | 类型 | 说明 |
|---|---|---|
n |
any | |
x |
float | |
v |
any |
返回:any
sf_Normal(x, a, d, v)
统计分布相关函数。
| 参数 | 类型 | 说明 |
|---|---|---|
x |
any | |
a |
any | |
d |
any | |
v |
any |
返回:any
sf_normalinv(arg1, arg2, arg3, v)
统计分布相关函数。
| 参数 | 类型 | 说明 |
|---|---|---|
arg1 |
float | |
arg2 |
any | |
arg3 |
any | |
v |
any |
返回:any
sf_normalinv2(arg1, v)
统计分布相关函数。
| 参数 | 类型 | 说明 |
|---|---|---|
arg1 |
float | |
v |
any |
返回:any
sf_RealBessel_1(n, x, v)
统计分布相关函数。
| 参数 | 类型 | 说明 |
|---|---|---|
n |
any | |
x |
float | |
v |
any |
返回:any
sf_RealBessel_2(n, x, v)
统计分布相关函数。
| 参数 | 类型 | 说明 |
|---|---|---|
n |
any | |
x |
float | |
v |
any |
返回:any
sf_SinX(arg1, v)
数值微积分相关函数。
| 参数 | 类型 | 说明 |
|---|---|---|
arg1 |
any | |
v |
any |
返回:float
sf_t(t, n, v)
统计分布相关函数。
| 参数 | 类型 | 说明 |
|---|---|---|
t |
float | |
n |
any | |
v |
any |
返回:any
sf_tinv(arg1, arg2, v)
统计分布相关函数。
| 参数 | 类型 | 说明 |
|---|---|---|
arg1 |
float | |
arg2 |
any | |
v |
any |
返回:any
sf_X2(x, n, v)
统计分布相关函数。
| 参数 | 类型 | 说明 |
|---|---|---|
x |
float | |
n |
any | |
v |
any |
返回:any
sf_x2inv(arg1, arg2, v)
统计分布相关函数。
| 参数 | 类型 | 说明 |
|---|---|---|
arg1 |
float | |
arg2 |
any | |
v |
any |
返回:any
SingleUnLineralRegression_CallBack(x)
单元非线性回归的回调函数
| 参数 | 类型 | 说明 |
|---|---|---|
x |
array | 一维数字数组类型 |
返回:array
Time_ACF(y)
自相关系数,计算随机序列与所有滞后阶数的相关系数。
| 参数 | 类型 | 说明 |
|---|---|---|
y |
array | 数组,样本序列;;p:整数,返回样本自相关系数序列的长度,默认值为3,允许缺省; |
返回:array
Time_Analyse(y, model, p, q, l)
ARMA模型分析,时间序列的ARMA模型分析,可以自动的选择q与p
| 参数 | 类型 | 说明 |
|---|---|---|
y |
array | 样本序列,为一维数组类型; |
model |
string | 模型类别为AR、MA、ARMA,为字符串类型; |
p |
any | 自回归阶数,取0则自动选择阶数,为整数类型; |
q |
any | 移动平均阶数,取0则自动选择阶数,为整数类型; |
l |
any | 预测步长,为整型类型; |
返回:any
Time_ARCH(r_series, q, l)
自回归条件异方差模型,本模型的ARCH模型如下: sss 可把异方差方程进行整合,得到 用最小二乘法去估计方程的系数了,得到系数的相合估计。 或者用最大似然估计去估计参数,得到精度估计,最大似然估计的目标函数值为:
| 参数 | 类型 | 说明 |
|---|---|---|
r_series |
array | 资产收益率,为一维数组类型; |
q |
any | 自回归阶数,为整数类型; |
l |
any | 预测步长,为整数类型 |
返回:array
Time_ARCHTest(u, q, alpha)
时间序列异方差的ARCH检验,原假设都为没有异方差,即不存在ARCH效应,Hypothesis为1表示接受原假设,0表示拒绝原假设 检验统计量为: 对方程进行估计,得到F统计量和T×R2统计量并进行检验;
| 参数 | 类型 | 说明 |
|---|---|---|
u |
array | 残差序列,为一维数组类型 |
q |
any | 滞后阶数,为整数类型 |
alpha |
float | 1-alpha为置信水平,一般为5%,也有1%和10%,数值越小,判断越严格 |
返回:array
Time_ARMA(y, p, q, l)
建议使用ARMA模型替换,自回归移动平均模型,ARMA(p,q)模型,采用逆函数去估计自回归系数和移动平均系数,返回结果有自回归系数、移动平均系数、残差方差、预测值及预测波动。 估计过程如下: ,为自协方差 其中:yt为原序列零均值化的新序列,μ为原序列的均值,ρp是自相关系数,φq是自回归方程系数,θq为移动平均系数,εt是零均值、方差为σ2的平稳白噪声
| 参数 | 类型 | 说明 |
|---|---|---|
y |
array | 样本序列,为一维数组类型; |
p |
any | 自回归阶数; |
q |
any | 移动平均阶数 |
l |
any | 预测步长,整数 |
返回:array
Time_ARp(y, p, l)
建议使用AR模型替换,自回归模型,AR(p)模型,用Yule-Walker方程去估计p阶自回归模型的系数,返回结果有自回归系数、残差方差、预测值及预测波动。估计过程如下 AR(p)模型: 如有常数项,则 ,为自协方差 其中:为原序列零均值化的新序列,为原序列的均值,是自相关系数,是自回归方程系数,是零均值,方差为的平稳白噪声
| 参数 | 类型 | 说明 |
|---|---|---|
y |
array | 样本序列,为一维数组类型; |
p |
any | 自回归阶数; |
l |
any | 预测步长; |
返回:array
Time_AutoCov(y, l)
自协方差,求样本序列跟滞后L阶序列的协方差,即自协方差 自协方差计算公式如下: 其中:yt是样本序列,yL是滞后L阶的序列。
| 参数 | 类型 | 说明 |
|---|---|---|
y |
array | 样本序列,为一维数组类型; |
l |
any | 滞后阶数,为整数类型; |
返回:any
Time_ChoseP(y, model, f)
判断AR模型最佳的阶数,采用信息准则函数判断模型的最佳阶数 其中:T为样本容量,K为待估计参数
| 参数 | 类型 | 说明 |
|---|---|---|
y |
array | 样本序列,为一维数组类型; |
model |
string | 模型类别为AR、MA、ARMA,为字符串类型; |
f |
string | 判断准则为SBIC和AIC,为字符串类型 |
返回:any
Time_DanielTest(y, alpha)
在1-alpha置信水平下,进行随机时间序列的Daniel平稳性检验。返回结果为一个数组,第一个为q值(q>0:序列有上升趋势,q<0:序列有下降趋势),第二个为T统计量,第三个为p值,第四个为是否接受原假设。原假设为x是平稳序列,所以H为1表示接受原假设,0表示拒绝原假设 其中:qs是Spearman相关系数,Rt为秩统计量,n为样本容量
| 参数 | 类型 | 说明 |
|---|---|---|
y |
array | 随机时间序列,为一维数组类型 |
alpha |
float | 显著性水平,实数类型,取值在0-1之间 |
返回:array
Time_Diff(y, n)
序列差分
| 参数 | 类型 | 说明 |
|---|---|---|
y |
array | 需要做差分的数组数据 |
n |
any | 差分的阶数,0阶不做处理 |
返回:any
Time_GARCH(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
Time_InvFun(ap, mq)
中间函数,模型逆函数,ARMA模型的逆函数,Green函数的递推公式如下: 式中: ,,是自回归方程系数,为移动平均系数,
| 参数 | 类型 | 说明 |
|---|---|---|
ap |
array | 自相关系数,为一维数组类型; |
mq |
array | 移动平均系数,为一维数组类型; |
返回:array
Time_MAq(y, q, l)
建议使用ARMA模型替换,移动平均模型,MA(q)模型,用条件最小二乘法去估计q阶移动平均模型的系数,返回结果有移动平均系数、残差方差、预测值及预测波动。 估计过程如下: MA(q)模型: 具有逆转形式: 用算子形式比较,可得: s 条件最小二乘法使得下列残差平方和最小: 可将上述转化为矩阵形式,先求得的取值,在利用上上式计算移动平均系数 如有常数,则常数项为原序列的均值。 ,为自协方差 其中:yt为原序列零均值化的新序列,μ为原序列的均值,θq为移动平均系数,εt是零均值,方差为σ2的平稳白噪声
| 参数 | 类型 | 说明 |
|---|---|---|
y |
array | 样本序列,为一维数组类型; |
q |
any | 移动平均阶数; |
l |
any | 预测步长; |
返回:array
Times_Cointergration(y, x, alpha)
建议使用Times_Cointergration_test函数替换本函数,协整检验—E-G两步法检验变量的协整关系,E-G法如下: 1)在因变量与自变量存在同阶单整关系的条件,进行最小二乘法回归; 2)把回归后的残差进行平稳性检验,如果残差序列是平稳的,则两者存在协整关系,否则不存在。
| 参数 | 类型 | 说明 |
|---|---|---|
y |
array | 因变量,为一维数组类型; |
x |
array | 自变量矩阵,为二维数组类型; |
alpha |
float | 1-alpha为置信水平,一般为5%,也有1%和10%,数值越小,判断越严格; |
返回:string
Times_Cointergration_test(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
Times_ECM(y, x, resid, alpha, q, p)
两变量间的误差修正模型,准确的刻画了两序列间的短期波动特征 误差修正模型是时间序列间协整关系的主要表现形式,准确的刻画了序列间的长期均衡关系和短期波动特征。设一阶自回归分布滞后模型为: 其中,是均值为零,方差为的白噪声,进行适当的整理有: 其中若记 称为误差修正项。
| 参数 | 类型 | 说明 |
|---|---|---|
y |
array | 被解释变量,为一维数组类型 |
x |
array | 解释变量,为一维数组类型 |
resid |
array | 协整检验时的残差,没有输入,使用最小二乘得到 |
alpha |
float | 显著性水平 |
q |
any | 整数类型,被解释变量的滞后项 |
p |
any | 整数类型,解释变量的滞后项 |
返回:any
timeSeriesSplit()
时间序列数据处理;将时间序列数据:时间、数据、(股票)处理成为(时间股票数据)的格式。注意,该函数主要用于客户端结果处理,不提供给用户程序编辑。
返回:array
Times_Granger(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
Times_johansen(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
示例
//组合个股相关矩阵
setSysParam(pn_date(),20201231T);
stocks:=array("SH600718","SZ000920");
return correlMatrix(stocks,intToDate(20120926));
//结果:
symOrthogonal(data, option)
对矩阵进行正交
| 参数 | 类型 | 说明 |
|---|---|---|
data |
Array | 二维数字数组, 二维数组 行下标为数字或字符串的二维数组 |
option |
UserDefine | 用户自定义, 正交方法的选择 |
返回:array
示例
范例01
//求data的对称正交矩阵
data := rand(10,3);
return symOrthogonal(data,0);
//结果,随机数,每次结果不一样,仅供参考
covarianceAttenuation(a)
协方差矩阵-衰减因子。
| 参数 | 类型 | 说明 |
|---|---|---|
a |
array | 二维数字数组 |
返回:any
示例
a:=array((1,2,3),(4,5,6));
return covarianceAttenuation(a);
返回:
giniCoeff(x, y, method)
计算基尼系数,其中Method决定使用的方法。
| 参数 | 类型 | 说明 |
|---|---|---|
x |
||
y |
||
method |
返回:real
示例
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
示例
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
示例
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
示例
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
示例
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
示例
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
示例
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
示例
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
示例
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
示例
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
示例
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
示例
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
示例
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
示例
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
示例
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
示例
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
示例
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
示例
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
示例
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
示例
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
示例
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
示例
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
示例
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