# 数学函数 / 回归 / 回归检验

## `regress_ridge(y, x, k, constant, alpha)`

声明：function

执行岭回归并返回回归系数、残差和统计检验结果

<!-- tags: 回归 岭回归 正则化 regression ridge -->

| 参数       | 类型          | 说明                               |
| ---------- | ------------- | ---------------------------------- |
| `y`        | array of real | 被解释变量序列                     |
| `x`        | array of real | 解释变量矩阵，每列对应一个解释变量 |
| `k`        | real\|array   | 可选。岭参数或岭参数序列           |
| `constant` | boolean       | 可选。是否包含常数项，默认 true    |
| `alpha`    | real          | 可选。显著性水平，默认 0.05        |

返回：array

### 示例

范例01：使用指定岭参数执行回归

```tsl
y := array(49.0, 50.2, 50.5, 48.5);
x := array(
    (1.0, 2.0),
    (2.0, 1.0),
    (3.0, 4.0),
    (4.0, 3.0));
return regress_ridge(y, x, 0.1, true, 0.05);
```

## `boxcox(y)`

声明：function

在做线性回归的过程中，不可观测的误差可能是和预测变量相关，于是给线性回归的最小二乘法估计系数的结果带来误差，为了解决这样的方差齐性问题，所以考虑对相应应变量做Box-Cox变换，变换之后，可以一定程度上减小不可观测的误差和预测变量的相关性

| 参数 | 类型          | 说明                       |
| ---- | ------------- | -------------------------- |
| `y`  | array of real | 因变量序列，为一维数组类型 |

返回：array

### 示例

```tsl
data := rand(100);
return boxcox(data);
```

## `NW_Adjustment_Simplification(y, alpha, al)`

声明：function

在单因子有效性的检验中，进行检验的往往是组合收益率序列或者因子收益率序列在 时序上是否显著异于零，这一过程本身并不涉及回归过程，因此无法直接使用上一节中介绍的调整方法。然而，我们知道组合收益或者因子收益在时序上极有可能存在异方差和自相关特性，因此在计算序列标准误时，必须对其进行 Newey-West 调整，从而得到其标准差的一致性估计，进而得到更稳健的 t 值。 关于这个问题Bali et al(2016)指出对于单个因子收益率序列的显著性检验，我们可以将其转换为一个简单的线性回归模型：将 1 作为自变量，将因子收益率作为因变量，进行回归得到残差变量。此时残差项即为因子收益率减去它在时间序列上的均值。把残差项和X=1代入即可得到简化的结果，对Q的估计形式如下：QNW-Simple=1Tt=1Tet2+l=1Lt=l+1Twletet-l 其中，wl=1-l1+L 这里的Q实际上不是矩阵，只是一个数。 将Q代入Cov\[β\*\]中就可以求出收益率方差的估计，之后就可以进行T检验了。σ2=QNW-Simple/T

<!-- tags: QNW -->

| 参数    | 类型  | 说明                                                                                  |
| ------- | ----- | ------------------------------------------------------------------------------------- |
| `y`     | array | 一维数字数组, 因变量                                                                  |
| `alpha` | float | 实数，显著性水平，应为0到1之间的值，默认0.05                                          |
| `al`    | any   | 整数，自相关最大滞后阶数，可缺省，默认用Newey and West (1994)?提出的方法计算，至少为1 |

返回：array

## `Regress_AdjustedR2(r, t, k)`

声明：function

计算回归方程经调整的R平方，考虑由于加入新的解释变量而产生自由度的损失

<!-- tags: 计算 求解 -->

| 参数 | 类型 | 说明                                |
| ---- | ---- | ----------------------------------- |
| `r`  | any  | 回归方程的拟合优度R平方，实数类型； |
| `t`  | any  | 样本的容量，整数类型；              |
| `k`  | any  | 自变量的个数；                      |

返回：any

## `Regress_AicAndSbic(u, k, t)`

声明：function

信息准则函数，判断序列的最佳滞后阶数，分别计算AIC和SBIC统计量，并把结果赋值到一个一维数组，第一个是Aic值，第二个Sbic值。当选择最佳滞后阶数时，统计量越小越好。 AIC和SBIC的表达式如下所示： 其中：T为样本容量；k为自变量个数；u为残差

<!-- tags: 判断 检查 AIC SBIC -->

| 参数 | 类型  | 说明                                 |
| ---- | ----- | ------------------------------------ |
| `u`  | array | 回归方程的残差序列，为一维数组类型； |
| `k`  | any   | 解释变量的个数；                     |
| `t`  | any   | 样本的容量，整数类型；               |

返回：array

## `Regress_Binary(y, x, extimation, methods, constant, alpha)`

声明：function

二元离散选择模型。返回结果有方程的系数、负2倍对数似然值和Wald检验（原假设为解释变量对被解释变量影响不显著，检验包含统计量、P值和原假设的值1表示接受原假设，0表示拒绝原假设）

| 参数         | 类型   | 说明                                                            |
| ------------ | ------ | --------------------------------------------------------------- |
| `y`          | array  | 二元离散被解释变量序列，为一维数组类型                          |
| `x`          | array  | 解释变量矩阵，每一列为一个解释变量，为二维数组类型              |
| `extimation` | string | 模型选择，字符串类型，"logit"或"probi"                          |
| `methods`    | any    | 0:单纯形法，1:转轴法,2:模式搜索法, 3:拟牛顿下山法,一般使用3方法 |
| `constant`   | bool   | object                                                          |
| `alpha`      | float  | 显著性水平，实数类型，取值在0-1之间，缺省时只输出模型的估计     |

返回：array

## `Regress_CMLS(y, x, u, constant)`

声明：function

线性回归方程的最小二乘法参数估计（可选择是否包含常数项），返回回归方程的系数，如果有常数项则排在第一项

| 参数       | 类型  | 说明                                               |
| ---------- | ----- | -------------------------------------------------- |
| `y`        | array | 被解释变量序列，为一维数组类型                     |
| `x`        | array | 解释变量矩阵，为二维数组类型，每一列为一个解释变量 |
| `u`        | array | 残差序列，为一维数组类型，变参                     |
| `constant` | bool  | 是否包含常数项，为布尔类型，缺省为true             |

返回：array

## `Regress_Constraint(y, x, constant, a, b, aeq, beq, alpha, options, lb, ub)`

声明：function

线性约束最小二乘回归

| 参数       | 类型  | 说明                                                       |
| ---------- | ----- | ---------------------------------------------------------- |
| `y`        | array | 被解释变量序列，为一维数组类型，不可缺省                   |
| `x`        | array | 解释变量矩阵，为二维数组类型，每一列为一个自变量，不可缺省 |
| `constant` | bool  | object                                                     |
| `a`        | array | 不等式约束二维数字数组，不可缺省                           |
| `b`        | array | 不等式约束一维数字数组，不可缺省                           |
| `aeq`      | array | 等式约束二维数字数组                                       |
| `beq`      | array | 等式约束一维数字数组                                       |
| `alpha`    | float | 显著性水平，实数或整数，在0与1之间，缺省时只做参数的估计   |
| `options`  | any   | 方法选择: 0 残差平方和最小；1 方差最小                     |
| `lb`       | array | 下界约束一维数组                                           |
| `ub`       | array | 上界约束一维数组                                           |

返回：array

## `Regress_DWTest(u)`

声明：function

德宾-沃森检验：检验随机误差项是否存在一阶自相关。结果返回DW统计量 DW统计量：（一般认为值在2附近，则随机误差项不存在自相关）

<!-- tags: DW -->

| 参数 | 类型  | 说明                       |
| ---- | ----- | -------------------------- |
| `u`  | array | 方程残差，为一维数组类型； |

返回：any

## `Regress_FTest(y, u, k, alpha)`

声明：function

在1-alpha的置信水平下，方程线性关系的置信检验：F检验；返回的结果是一个数组，第一个数为F统计值，二为p值，三为原假设的值（0表示拒绝，1表示接受） F-检验统计量： 其中：RSS是残差平方和，即； ESS是回归平方和，因变量的拟合值与因变量均值的差的平方，即； TSS是总平方和 TSS=RSS+ESS； 原假设：(为方程的系数)表示回归方程不显著

<!-- tags: RSS ESS TSS -->

| 参数    | 类型  | 说明                                                             |
| ------- | ----- | ---------------------------------------------------------------- |
| `y`     | array | 被解释变量序列，为一维数组类型；                                 |
| `u`     | array | 回归方程的残差序列，为一维数组类型；                             |
| `k`     | any   | 自变量的个数；                                                   |
| `alpha` | float | 1-alpha为置信水平，一般为5%，也有1%和10%，数值越小，判断越严格； |

返回：array

## `Regress_GRStest(alpha_values, residual_matrix, factor_matrix)`

声明：function

执行 GRS 检验

<!-- tags: GRS -->

| 参数              | 类型  | 说明                   |
| ----------------- | ----- | ---------------------- |
| `alpha_values`    | array | 截距项或 alpha 向量    |
| `residual_matrix` | array | 回归残差矩阵           |
| `factor_matrix`   | array | 因子收益或因子暴露矩阵 |

返回：array

## `Regress_HettestSpearman(y, x, alpha, constant)`

声明：function

基于等级相关系数的异方差检验

| 参数       | 类型  | 说明                            |
| ---------- | ----- | ------------------------------- |
| `y`        | array | 数组，因变量，一维数字数组      |
| `x`        | array | 数组，自变量，二维数字数组      |
| `alpha`    | float | 实数，显著性水平，值域为\[0,1\] |
| `constant` | bool  | object                          |

返回：array

## `Regress_JBTest(y, alpha)`

声明：function

在1-alpha的置信水平下，Jarque-Bera检验：检验y是否符合正态分布；返回一个数组，第一个数为Jarque-Bera统计值，二为p值，三为原假设的值（0表示拒绝，1表示接受）； Jarque-Bera统计量： 其中：S、K分别表是随即变量的偏度和峰度；T：样本容量； Jarque-Bera统计量服从渐进的分布。 原假设：随机序列为正态分布

| 参数    | 类型  | 说明                                                             |
| ------- | ----- | ---------------------------------------------------------------- |
| `y`     | array | 随即序列，接受检验的序列，一维数组类型                           |
| `alpha` | float | 1-alpha为置信水平，一般为5%，也有1%和10%，数值越小，判断越严格； |

返回：array

## `Regress_Logistic(y, x, constant, alpha)`

声明：function

logit二元离散选择模型。返回结果有方程的系数、负2倍对数似然值和Wald检验（原假设为解释变量对被解释变量影响不显著，检验包含统计量、P值和原假设的值1表示接受原假设，0表示拒绝原假设）

| 参数       | 类型  | 说明                                                                                                                       |
| ---------- | ----- | -------------------------------------------------------------------------------------------------------------------------- |
| `y`        | array | 因变量序列，为一维数组类型；                                                                                               |
| `x`        | array | 自变量矩阵，为二维数组类型，每一列为一个自变量；自变量x的长度应小于等于因变量y，否则会报错，最好等于，若小于会对结果有影响 |
| `constant` | bool  | object                                                                                                                     |
| `alpha`    | float | 显著性水平，一般为5%，也有1%和10%，数值越小，判断越严格；默认为0.05                                                        |

返回：array

## `Regress_MLS(y, x, u)`

声明：function

线性回归方程的最小二乘法参数估计（包含常数项），返回回归方程的系数，常数项排在第一项

| 参数 | 类型  | 说明                                               |
| ---- | ----- | -------------------------------------------------- |
| `y`  | array | 被解释变量序列，为一维数组类型                     |
| `x`  | array | 解释变量矩阵，为二维数组类型，每一列为一个解释变量 |
| `u`  | array | 残差序列，为一维数组类型，变参                     |

返回：array

## `Regress_NLM(func, x, y, initial)`

声明：function

多元非线性回归，采用Marquardt方法求多元非线性方程的最小二乘回归系数

| 参数      | 类型   | 说明                                               |
| --------- | ------ | -------------------------------------------------- |
| `func`    | string | 回归方程函数名，为字符串类型                       |
| `x`       | array  | 解释变量矩阵，为二维数组类型，每一列为一个解释变量 |
| `y`       | array  | 被解释变量序列，为一维数组类型                     |
| `initial` | array  | 估计参数初始值，一维数字数组                       |

返回：array

### 示例

```tsl
x := array(
    (273.100, 2577.400),
    (339.000, 3496.200),
    (396.900, 4283.000),
    (429.900, 4838.900),
    (441.900, 5160.300),
    (438.400, 5425.100),
    (432.200, 5854.020),
    (434.000, 6280.000),
    (437.000, 6859.600),
    (433.500, 7702.800),
    (438.700, 8472.200),
    (455.800, 9421.600),
    (464.000, 10493.000),
    (471.000, 11759.500),
    (493.600, 13785.800)
);
y := array(
    2110.810,
    2851.340,
    3537.570,
    3919.470,
    4185.640,
    4331.600,
    4615.900,
    4998.000,
    5309.000,
    6029.880,
    6510.940,
    7182.100,
    7942.880,
    8696.550,
    9997.470
);
x := x[:, 0:1];
return Regress_NLM(
    "Demo_Regress_NLM_CallBack",
    x,
    y,
    array(-0.2, 0.2, 0.8)
);
// 输出：返回非线性回归结果数组

function Demo_Regress_NLM_CallBack(beta, x);
begin
    return beta[0] * (x[0] ^ beta[1]) * (x[1] ^ beta[2]);
end;
```

## `Regress_pri(y, x, exps, alpha)`

声明：function

主成分回归，利用解释变量(Z 分数标准化)进行主成分分析降维得到的主成分，来对被解释变量(Z分数标准化)进行回归，进而消除多重共线性

| 参数    | 类型  | 说明                                                                                                                                               |
| ------- | ----- | -------------------------------------------------------------------------------------------------------------------------------------------------- |
| `y`     | array | 被解释变量序列，为一维数组类型                                                                                                                     |
| `x`     | array | 解释变量矩阵，为二维数组类型，每一列为一个解释变量                                                                                                 |
| `exps`  | float | 主成分累计贡献率，作为选取主成分数目的依据，当为小数时，代表累计贡献率的阀值，比如0.85，当为整数时，代表取的主成分的个数，比如2表示取前2个主成分。 |
| `alpha` | float | 显著性水平，实数或整数，在01之间                                                                                                                   |

返回：array

### 示例

```tsl
y := array(1.0, 2.0, 2.5, 4.0, 5.0);
x := array(
    (1.0, 1.1),
    (2.0, 1.9),
    (3.0, 3.2),
    (4.0, 3.8),
    (5.0, 5.1)
);
return Regress_pri(y, x, 0.85, 0.05);
// 输出：返回包含 6 个元素的主成分回归结果数组
```

## `Regress_QRlsq(y, x, u, constant)`

声明：function

线性回归方程基于QR分解的最小二乘法参数估计（可选择是否包含常数项），返回回归方程的系数，如果有常数项则排在第一项

<!-- tags: QR -->

| 参数       | 类型  | 说明                                             |
| ---------- | ----- | ------------------------------------------------ |
| `y`        | array | 因变量序列，为一维数组类型；                     |
| `x`        | array | 自变量矩阵，为二维数组类型，每一列为一个自变量； |
| `u`        | array | 残差序列，为一维数组类型；                       |
| `constant` | bool  | object                                           |

返回：array

## `Regress_RSquare(y, u, weight, dtype)`

声明：function

计算回归方程的拟合程度R平方，可适用与一元或多元的线性回归

<!-- tags: 计算 求解 -->

| 参数     | 类型  | 说明                                 |
| -------- | ----- | ------------------------------------ |
| `y`      | array | 因变量序列，为一维数组类型；         |
| `u`      | array | 回归方程的残差序列，为一维数组类型； |
| `weight` | array | 一维数字数组,权重                    |
| `dtype`  | any   | 整型,返回数据类型                    |

返回：array

## `Regress_Stepwise(y, x, a_e, a_d)`

声明：function

逐步回归，默认的回归方程包含常数项，程序返回的结果:ret\["x"\]为筛选的变量的下标，ret\["regress"\]为筛选变量与因变量进行回归的结果

<!-- tags: 过滤 筛选 filter -->

| 参数  | 类型  | 说明                                             |
| ----- | ----- | ------------------------------------------------ |
| `y`   | array | 因变量序列，为一维数组类型                       |
| `x`   | array | 自变量矩阵，为二维数组类型，每一列为一个解释变量 |
| `a_e` | float | 选取变量的显著性水平，默认为0.05，为实数类型     |
| `a_d` | float | 剔除变量的显著性水平，默认为0.1，为实数类型      |

返回：array

## `Regress_TTest(x, a, u, k, alpha, constant)`

声明：function

在1-alpha的置信水平下，n元线性回归变量系数的置信检验：T检验；返回的结果是一个数组，第一个数为T统计值，二为p值，三为原假设的值（0表示拒绝，1表示接受） n元线性回归 T-检验统计量： 其中：为方程系数的估计，T为样本容量，k为自变量个数，X为常量加自变量的矩阵，其中； 原假设：（为方程的系数）表示回归方程不显著

| 参数       | 类型  | 说明                                                             |
| ---------- | ----- | ---------------------------------------------------------------- |
| `x`        | array | 变量矩阵，为二维数组类型，每一列为一个解释变量；                 |
| `a`        | array | 回归系数，为一维数组类型；                                       |
| `u`        | array | 方程残差，为一维数组类型；                                       |
| `k`        | any   | 自变量个数，为整数类型；                                         |
| `alpha`    | float | 1-alpha为置信水平，一般为5%，也有1%和10%，数值越小，判断越严格； |
| `constant` | bool  | object                                                           |

返回：array

## `Regress_TTest_NW(x, a, u, alpha, constant, al, v_ols)`

声明：function

用NW调整对回归系数进行T检验。此调整用于当残差或者因变量（两者等价）存在异方差性并且存在自相关性时，利用OLS回归后对回归系数的协方差矩阵进行NW调整计算，得到每个系数NW调整后的标准误，再进行T检验。公式如下QNW=1Tt=1Tet2XtXt'+l=1Lt=l+1Twletet-lXtXt-l'+Xt-lXt' 其中，wl=1-l1+L 其中e为残差序列，Xi为X第i行的转置，L为自相关最大滞后阶数，Newey and West (1994)?提出可以用下面这个公式自动计算L=4\*(T100)2/9 之后代入下式计算出回归系数的协方差矩阵，它的对角元即为每个系数的方差Covβ\*=X'X-1X'σ2ΩXX'X-1=TX'X-1QNWX'X-1

<!-- tags: NW OLS QNW T100 XX TX -->

| 参数       | 类型  | 说明                                                                                                       |
| ---------- | ----- | ---------------------------------------------------------------------------------------------------------- |
| `x`        | array | 二维数字数组, 自变量，不需要包含全1列                                                                      |
| `a`        | array | 一维数字数组，回归系数, 有常数项回归时，a 为 常数项系数 union 自变量系数,；无常数项回归时，a 为 自变量系数 |
| `u`        | array | 一维数字数组，残差序列，一维数字数组                                                                       |
| `alpha`    | float | 实数，显著性水平，应为0到1之间的值，默认0.05                                                               |
| `constant` | bool  | object                                                                                                     |
| `al`       | any   | 整数，自相关最大滞后阶数，可缺省，默认用Newey and West (1994)?提出的方法计算，至少为1                      |
| `v_ols`    | array | 二维数字数组，回归系数协方差矩阵，中间计算变量，无返回，但后续可以直接调用                                 |

返回：array

## `Regress_TTest_RWLS(x, a, u, k, alpha, constant, weight, restrictiveness)`

声明：function

T检验,在alpha的置信水平下，n元线性回归变量系数的显著性检验 原假设：回归方程系数不显著。带约束的加权最小二乘 RWLS 模型，对回归系数进行显著性检验， 适用于以下

<!-- tags: 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_TTest_White(x, a, u, alpha, constant, v_ols)`

声明：function

用White调整对回归系数进行T检验。此调整用于当残差或者因变量（两者等价）存在异方差性但不存在自相关性时，利用OLS回归后对回归系数的协方差矩阵进行White调整计算，得到每个系数White调整后的标准误，再进行T检验。公式如下QWhite=1Ti=1Tei2XiXi' 其中e为残差序列，Xi为X第i行的转置 之后代入下式计算出回归系数的协方差矩阵，它的对角元即为每个系数的方差Covβ\*=X'X-1X'σ2ΩXX'X-1=TX'X-1QWhiteX'X-1

<!-- tags: OLS XX TX -->

| 参数       | 类型  | 说明                                                                                                       |
| ---------- | ----- | ---------------------------------------------------------------------------------------------------------- |
| `x`        | array | 二维数字数组, 自变量，不需要包含全1列                                                                      |
| `a`        | array | 一维数字数组，回归系数, 有常数项回归时，a 为 常数项系数 union 自变量系数,；无常数项回归时，a 为 自变量系数 |
| `u`        | array | 一维数字数组，残差序列，一维数字数组                                                                       |
| `alpha`    | float | 实数，显著性水平，应为0到1之间的值，默认0.05                                                               |
| `constant` | bool  | object                                                                                                     |
| `v_ols`    | array | 二维数字数组，回归系数协方差矩阵，中间计算变量，无返回，但后续可以直接调用                                 |

返回：array

## `Regress_VIF(x)`

声明：function

x的多重共线性分析，输出方差扩大因子VIF指标和条件数，一般VIF大于10，表明存在严重的多重共线性；5<VIF<10,表明存在多重共线性；如果VIF小于5的话，表明这种回归模型的多重共线性可以接受。用条件数判断多重共线性的准则 0<k<10时,设计矩阵X没有多重共线性; 10≤k<100时,认为X存在较强的多重共线性; 当k≥100时,则认为存在严重的多重共线性

<!-- tags: VIF -->

| 参数 | 类型  | 说明                   |
| ---- | ----- | ---------------------- |
| `x`  | array | 数据，每一列是一个指标 |

返回：array

## `Regress_VIFR2(x, w, constant)`

声明：function

vif分析增强

| 参数       | 类型 | 说明          |
| ---------- | ---- | ------------- |
| `x`        | any  | 表达式,自变量 |
| `w`        | any  | 表达式,权重   |
| `constant` | bool | object        |

返回：array

## `Regress_White(y, x, crr, alpha)`

声明：function

包含无交叉项和交叉项两种，用于检验回归方程的异方差性，原假设为不存在异方差（Hypothesis的值0表示拒绝，1表示接受）

| 参数    | 类型  | 说明                                                             |
| ------- | ----- | ---------------------------------------------------------------- |
| `y`     | array | 被解释变量，为一维数组类型                                       |
| `x`     | array | 解释变量，为二维数组类型                                         |
| `crr`   | any   | 交叉项，0为无交叉项，1为有交叉项                                 |
| `alpha` | float | 1-alpha为置信水平，一般为5%，也有1%和10%，数值越小，判断越严格； |

返回：array

## `Regress_WLS(y_values, x_values, weights, residuals)`

声明：function

执行加权最小二乘回归并输出残差

| 参数        | 类型  | 说明         |
| ----------- | ----- | ------------ |
| `y_values`  | array | 因变量样本   |
| `x_values`  | array | 自变量样本   |
| `weights`   | array | 权重序列     |
| `residuals` | any   | 接收残差序列 |

返回：array

## `regression(y, x, alpha, constant, options)`

声明：function

线性回归方程的最小二乘法参数估计及检验（可选择是否包含常数项），返回结果有回归系数、R平方、调整R平方、残差序列、残差检验、F检验、T检验、DW统计量和信息准则

<!-- tags: DW -->

| 参数       | 类型             | 说明 |
| ---------- | ---------------- | ---- |
| `y`        | array,tablearray |      |
| `x`        | array,tablearray |      |
| `alpha`    | real             |      |
| `constant` | bool             |      |
| `options`  | array,tablearray |      |

返回：array,tablearray

### 示例

```tsl
y := array(0.001, 0.564, 0.193, 0.809, 0.585, 0.48, 0.35, 0.896, 0.823, 0.747);
x := array(
    (0.174, 0.859),
    (0.711, 0.514),
    (0.304, 0.015),
    (0.091, 0.364),
    (0.147, 0.166),
    (0.989, 0.446),
    (0.119, 0.005),
    (0.009, 0.378),
    (0.532, 0.571),
    (0.602, 0.607));
// u作为变参返回
return regression(y, x, 0.05, 1);
```

## `Regression_OLS_NW(y, x, constant, alpha, al)`

声明：function

NW调整的OLS回归，此调整用于当残差或者因变量（两者等价）存在异方差性并且自相关性时，利用OLS回归后对回归系数的协方差矩阵进行NW调整计算，得到每个系数White调整后的标准误，再进行T检验。T检验部分相关公式详见Regress_TTest_NW，回归系数的OLS解如下β\*=(X'X)-1X'y 其余部分定义与普通最小二乘OLS一致

<!-- tags: NW OLS -->

| 参数       | 类型  | 说明                                                                                  |
| ---------- | ----- | ------------------------------------------------------------------------------------- |
| `y`        | array | 一维数字数组, 因变量                                                                  |
| `x`        | array | 二维数字数组, 自变量，不需要包含全1列                                                 |
| `constant` | bool  | object                                                                                |
| `alpha`    | float | 实数，显著性水平，应为0到1之间的值，默认0.05                                          |
| `al`       | any   | 整数，自相关最大滞后阶数，可缺省，默认用Newey and West (1994)?提出的方法计算，至少为1 |

返回：array

## `Regression_OLS_White(y, x, constant, alpha)`

声明：function

White调整的OLS回归，此调整用于当残差或者因变量（两者等价）存在异方差性但不存在自相关性时，利用OLS回归后对回归系数的协方差矩阵进行White调整计算，得到每个系数White调整后的标准误，再进行T检验。T检验部分相关公式详见Regress_TTest_White，回归系数的OLS解如下β\*=(X'X)-1X'y 其余部分定义与普通最小二乘OLS一致

<!-- tags: OLS -->

| 参数       | 类型  | 说明                                         |
| ---------- | ----- | -------------------------------------------- |
| `y`        | array | 一维数字数组, 因变量                         |
| `x`        | array | 二维数字数组, 自变量，不需要包含全1列        |
| `constant` | bool  | object                                       |
| `alpha`    | float | 实数，显著性水平，应为0到1之间的值，默认0.05 |

返回：array

## `Regression_WLS(y, x, alpha, constant, wtype, m1, m2, steps, wweight)`

声明：function

加权最小二乘法回归, WType为0时，必须给出m1 权重系数下限，m2 权重系数上限，steps 步长，用于计算最优权重，WType为1时，必须给出wweight权重向量

| 参数       | 类型  | 说明                                                                  |
| ---------- | ----- | --------------------------------------------------------------------- |
| `y`        | array | 因变量，一维数字数组                                                  |
| `x`        | array | 自变量，二维数字数组                                                  |
| `alpha`    | float | 显著性水平,实数                                                       |
| `constant` | bool  | object                                                                |
| `wtype`    | bool  | object                                                                |
| `m1`       | float | 权重系数下限，实数                                                    |
| `m2`       | float | 权重系数上限，实数                                                    |
| `steps`    | float | 步长，实数                                                            |
| `wweight`  | array | 权重向量，一维数字数组，当WType设置为1时，需要此参数的输入；返回结果: |

返回：array

## `Robustfit_M(y, x, alpha, constant, wfun, tune, options)`

声明：function

基于M估计的稳健回归及其检验

| 参数       | 类型   | 说明                                                                                                                                                                                                                                                                                                                                                                             |
| ---------- | ------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `y`        | array  | 一维数字数组，因变量                                                                                                                                                                                                                                                                                                                                                             |
| `x`        | array  | 二维数字数组，自变量                                                                                                                                                                                                                                                                                                                                                             |
| `alpha`    | float  | 实数，显著性水平                                                                                                                                                                                                                                                                                                                                                                 |
| `constant` | bool   | object                                                                                                                                                                                                                                                                                                                                                                           |
| `wfun`     | string | 字符串，权重函数                                                                                                                                                                                                                                                                                                                                                                 |
| `tune`     | float  | 实数，调节常数                                                                                                                                                                                                                                                                                                                                                                   |
| `options`  | array  | 可选。为数组类型，格式为array( 'maxiter':最大迭代次数, 'tol':标准误差, 'ifregtest':是否返回回归检验)，默认值为array('maxiter':50, 'tol':1e-6, 'ifregtest':True)。其中'maxiter'、'tol'与迭代优化相关，分别表示最大迭代次数与相邻两次迭代的标准误差；'ifregtest'是布尔类型，控制输出结果是否返回回归检验，若为真，其回归检验指标使用加权最小二乘的回归检验，可参考Regression_WLS。 |

返回：array
