# 数学函数 - 回归分析

文档类型：函数事实页
是否可直接用于生成代码：是；本页函数条目均包含参数表
遇到不确定时：回到 [../math.md](../math.md)、[../../index.md](../../index.md)

本页收录回归建模、回归诊断、回归检验、加权回归、岭回归、Logistic/Binary 回归和回归辅助统计函数。

## 服务器回归函数

### `regress_domin_formula(y_values, x_values)`

用途：计算回归解释变量的相对重要性。

参数个数：2
返回值：数组表；包含 `变量名`、`贡献度`、`贡献率(%)`、`排名`

| 参数位置 | 参数名     | 必填 | 接收类型 | 说明           |
| -------- | ---------- | ---- | -------- | -------------- |
| 1        | `y_values` | 是   | 数值数组 | 因变量样本     |
| 2        | `x_values` | 是   | 数值矩阵 | 自变量样本矩阵 |

### `regress_domin_marginal(y_values, x_values, variable_names, method)`

用途：用边际效用法计算回归解释变量的相对重要性。

参数个数：4
返回值：数组表；包含 `变量名`、`贡献度`、`贡献率(%)`、`排名`

| 参数位置 | 参数名           | 必填 | 接收类型   | 说明                     |
| -------- | ---------------- | ---- | ---------- | ------------------------ |
| 1        | `y_values`       | 是   | 数值数组   | 因变量样本               |
| 2        | `x_values`       | 是   | 数值矩阵   | 自变量样本矩阵           |
| 3        | `variable_names` | 是   | `nil`/数组 | 变量名；不指定时传 `nil` |
| 4        | `method`         | 是   | 整数       | 边际效用计算方式         |

### `regress_Ridge(y_values, x_values[, k_values][, trace_mode])`

用途：执行岭回归，或按 `k_values` 输出岭迹。

参数个数：2 或 4
返回值：数组表/数组

| 参数位置 | 参数名       | 必填 | 接收类型 | 说明                       |
| -------- | ------------ | ---- | -------- | -------------------------- |
| 1        | `y_values`   | 是   | 数值数组 | 因变量样本                 |
| 2        | `x_values`   | 是   | 数值矩阵 | 自变量样本矩阵             |
| 3        | `k_values`   | 否   | 数值数组 | 岭参数序列；省略时自动选择 |
| 4        | `trace_mode` | 否   | 布尔值   | 是否按岭迹模式输出         |

### `regress_AdjustedR2(r_square, sample_count, variable_count)`

用途：根据 R2、样本数和变量数计算调整后 R2。

参数个数：3
返回值：实数

| 参数位置 | 参数名           | 必填 | 接收类型 | 说明       |
| -------- | ---------------- | ---- | -------- | ---------- |
| 1        | `r_square`       | 是   | 数值     | R2         |
| 2        | `sample_count`   | 是   | 整数     | 样本数量   |
| 3        | `variable_count` | 是   | 整数     | 自变量数量 |

### `regress_Logistic(y_values, x_values, constant, alpha)`

用途：执行 Logistic 回归。

参数个数：4
返回值：数组表；包含 `Coefficient`、`-2LogLikeHood`、`Wald Test`

| 参数位置 | 参数名     | 必填 | 接收类型 | 说明           |
| -------- | ---------- | ---- | -------- | -------------- |
| 1        | `y_values` | 是   | 数值数组 | 0/1 因变量样本 |
| 2        | `x_values` | 是   | 数值矩阵 | 自变量样本矩阵 |
| 3        | `constant` | 是   | 布尔值   | 是否包含常数项 |
| 4        | `alpha`    | 是   | 数值     | 显著性水平     |

### `regression(y_values, x_values, alpha, constant)`

用途：执行普通最小二乘回归。

参数个数：4
返回值：数组表；包含 `Coefficient`、`Resid`、`Residual Test`、`R-Squared` 等结果项

| 参数位置 | 参数名     | 必填 | 接收类型    | 说明           |
| -------- | ---------- | ---- | ----------- | -------------- |
| 1        | `y_values` | 是   | 数值数组    | 因变量样本     |
| 2        | `x_values` | 是   | 数值矩阵    | 自变量样本矩阵 |
| 3        | `alpha`    | 是   | 数值        | 显著性水平     |
| 4        | `constant` | 是   | 整数/布尔值 | 是否包含常数项 |

### `regress_DWTest(residuals)`

用途：计算 Durbin-Watson 统计量。

参数个数：1
返回值：实数

| 参数位置 | 参数名      | 必填 | 接收类型 | 说明         |
| -------- | ----------- | ---- | -------- | ------------ |
| 1        | `residuals` | 是   | 数值数组 | 回归残差序列 |

### `regress_White(y_values, x_values, constant, alpha)`

用途：执行 White 异方差检验。

参数个数：4
返回值：数组表；包含 `F`、`NR2`

| 参数位置 | 参数名     | 必填 | 接收类型    | 说明           |
| -------- | ---------- | ---- | ----------- | -------------- |
| 1        | `y_values` | 是   | 数值数组    | 因变量样本     |
| 2        | `x_values` | 是   | 数值矩阵    | 自变量样本矩阵 |
| 3        | `constant` | 是   | 整数/布尔值 | 是否包含常数项 |
| 4        | `alpha`    | 是   | 数值        | 显著性水平     |

### `regress_MLS(y_values, x_values, residuals)`

用途：执行最小二乘回归并输出残差。

参数个数：3
返回值：数组；返回回归系数，同时写入 `residuals`

| 参数位置 | 参数名      | 必填 | 接收类型 | 说明           |
| -------- | ----------- | ---- | -------- | -------------- |
| 1        | `y_values`  | 是   | 数值数组 | 因变量样本     |
| 2        | `x_values`  | 是   | 数值矩阵 | 自变量样本矩阵 |
| 3        | `residuals` | 是   | 变量引用 | 接收残差序列   |

### `regress_CMLS(y_values, x_values, residuals, constant)`

用途：执行带常数项控制的最小二乘回归并输出残差。

参数个数：4
返回值：数组；返回回归系数，同时写入 `residuals`

| 参数位置 | 参数名      | 必填 | 接收类型    | 说明           |
| -------- | ----------- | ---- | ----------- | -------------- |
| 1        | `y_values`  | 是   | 数值数组    | 因变量样本     |
| 2        | `x_values`  | 是   | 数值矩阵    | 自变量样本矩阵 |
| 3        | `residuals` | 是   | 变量引用    | 接收残差序列   |
| 4        | `constant`  | 是   | 整数/布尔值 | 是否包含常数项 |

### `regress_JBTest(values, alpha)`

用途：执行 Jarque-Bera 正态性检验。

参数个数：2
返回值：数组表；包含 `JB-Stat`、`P-Value`、`Hypothesis`

| 参数位置 | 参数名   | 必填 | 接收类型 | 说明       |
| -------- | -------- | ---- | -------- | ---------- |
| 1        | `values` | 是   | 数值数组 | 待检验序列 |
| 2        | `alpha`  | 是   | 数值     | 显著性水平 |

### `regress_FTest(y_values, residuals, variable_count, alpha)`

用途：执行回归 F 检验。

参数个数：4
返回值：数组表；包含 `F-Stat`、`P-Value`、`Hypothesis`

| 参数位置 | 参数名           | 必填 | 接收类型 | 说明         |
| -------- | ---------------- | ---- | -------- | ------------ |
| 1        | `y_values`       | 是   | 数值数组 | 因变量样本   |
| 2        | `residuals`      | 是   | 数值数组 | 回归残差序列 |
| 3        | `variable_count` | 是   | 整数     | 自变量数量   |
| 4        | `alpha`          | 是   | 数值     | 显著性水平   |

### `regression_WLS(y_values, x_values, alpha, constant, mode, restrictiveness, x0, y0, weights)`

用途：执行加权最小二乘回归。

参数个数：9
返回值：数组表；包含 `Coefficient`、`Resid`、`Residual Test` 等结果项

| 参数位置 | 参数名            | 必填 | 接收类型       | 说明                         |
| -------- | ----------------- | ---- | -------------- | ---------------------------- |
| 1        | `y_values`        | 是   | 数值数组       | 因变量样本                   |
| 2        | `x_values`        | 是   | 数值矩阵       | 自变量样本矩阵               |
| 3        | `alpha`           | 是   | 数值           | 显著性水平                   |
| 4        | `constant`        | 是   | 整数/布尔值    | 是否包含常数项               |
| 5        | `mode`            | 是   | 整数           | 回归模式参数                 |
| 6        | `restrictiveness` | 是   | `nil`/数组     | 约束参数；无约束时传 `nil`   |
| 7        | `x0`              | 是   | `nil`/数值矩阵 | 预测自变量；不需要时传 `nil` |
| 8        | `y0`              | 是   | `nil`/数值数组 | 预测因变量；不需要时传 `nil` |
| 9        | `weights`         | 是   | 数值数组       | 权重序列                     |

### `regress_Binary(y_values, x_values, link_name, iteration_count, constant, alpha)`

用途：执行二元响应回归。

参数个数：6
返回值：数组表；包含 `Coefficient`、`-2LogLikeHood`、`Wald Test`

| 参数位置 | 参数名            | 必填 | 接收类型 | 说明                       |
| -------- | ----------------- | ---- | -------- | -------------------------- |
| 1        | `y_values`        | 是   | 数值数组 | 0/1 因变量样本             |
| 2        | `x_values`        | 是   | 数值矩阵 | 自变量样本矩阵             |
| 3        | `link_name`       | 是   | 字符串   | 链接函数名；常用 `"logit"` |
| 4        | `iteration_count` | 是   | 整数     | 迭代或模型参数             |
| 5        | `constant`        | 是   | 布尔值   | 是否包含常数项             |
| 6        | `alpha`           | 是   | 数值     | 显著性水平                 |

### `regress_TTest(x_values, coefficients, residuals, variable_count, alpha, constant)`

用途：执行回归系数 T 检验。

参数个数：6
返回值：数组表；包含 `T-Stat`、`P-Value`、`Hypothesis`

| 参数位置 | 参数名           | 必填 | 接收类型          | 说明                       |
| -------- | ---------------- | ---- | ----------------- | -------------------------- |
| 1        | `x_values`       | 是   | 数值数组/数值矩阵 | 自变量样本                 |
| 2        | `coefficients`   | 是   | 数值数组          | 回归系数                   |
| 3        | `residuals`      | 是   | 数值数组          | 回归残差序列               |
| 4        | `variable_count` | 是   | 整数              | 自变量数量或自由度相关参数 |
| 5        | `alpha`          | 是   | 数值              | 显著性水平                 |
| 6        | `constant`       | 是   | 整数/布尔值       | 是否包含常数项             |

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

用途：执行加权最小二乘回归并输出残差。

参数个数：4
返回值：数组表；同时写入 `residuals`

| 参数位置 | 参数名      | 必填 | 接收类型          | 说明         |
| -------- | ----------- | ---- | ----------------- | ------------ |
| 1        | `y_values`  | 是   | 数值数组          | 因变量样本   |
| 2        | `x_values`  | 是   | 数值数组/数值矩阵 | 自变量样本   |
| 3        | `weights`   | 是   | 数值数组          | 权重序列     |
| 4        | `residuals` | 是   | 变量引用          | 接收残差序列 |

### `regress_AicAndSbic(residuals, variable_count, sample_count)`

用途：计算 AIC 和 SBIC。

参数个数：3
返回值：数组表；包含 `Akaike Info Criterion`、`Schwarz Info Criterion`

| 参数位置 | 参数名           | 必填 | 接收类型 | 说明         |
| -------- | ---------------- | ---- | -------- | ------------ |
| 1        | `residuals`      | 是   | 数值数组 | 回归残差序列 |
| 2        | `variable_count` | 是   | 整数     | 自变量数量   |
| 3        | `sample_count`   | 是   | 整数     | 样本数量     |

### `regress_RSquare(y_values, residuals)`

用途：根据因变量序列和残差序列计算 R2。

参数个数：2
返回值：实数

| 参数位置 | 参数名      | 必填 | 接收类型 | 说明         |
| -------- | ----------- | ---- | -------- | ------------ |
| 1        | `y_values`  | 是   | 数值数组 | 因变量样本   |
| 2        | `residuals` | 是   | 数值数组 | 回归残差序列 |

### `regress_QRlsq(y_values, x_values, residuals, constant)`

用途：用 QR 分解执行最小二乘回归并输出残差。

参数个数：4
返回值：数组；返回回归系数，同时写入 `residuals`

| 参数位置 | 参数名      | 必填 | 接收类型          | 说明           |
| -------- | ----------- | ---- | ----------------- | -------------- |
| 1        | `y_values`  | 是   | 数值数组          | 因变量样本     |
| 2        | `x_values`  | 是   | 数值数组/数值矩阵 | 自变量样本     |
| 3        | `residuals` | 是   | 变量引用          | 接收残差序列   |
| 4        | `constant`  | 是   | 整数/布尔值       | 是否包含常数项 |

### `boxcox(values)`

用途：执行 Box-Cox 变换。

参数个数：1
返回值：数组表；包含 `data`、`lambda`

| 参数位置 | 参数名   | 必填 | 接收类型 | 说明       |
| -------- | -------- | ---- | -------- | ---------- |
| 1        | `values` | 是   | 数值数组 | 待变换数据 |

### `regress_VIF(x_values)`

用途：计算方差膨胀因子和条件数。

参数个数：1
返回值：数组表；包含 `VIF`、`Cond`

| 参数位置 | 参数名     | 必填 | 接收类型 | 说明           |
| -------- | ---------- | ---- | -------- | -------------- |
| 1        | `x_values` | 是   | 数值矩阵 | 自变量样本矩阵 |

### `regress_Constraint(y_values, x_values, constant, a, b, aeq, beq, alpha, option, lower_bounds, upper_bounds)`

用途：执行带线性约束和边界约束的回归。

参数个数：11
返回值：数组表；包含 `Coefficient`、`Fval`、`R-Squared`、`Adjusted R-Squared`、`Residual Series`、`Residual Test`、`F Test`、`T Test`

| 参数位置 | 参数名         | 必填 | 接收类型        | 说明                                 |
| -------- | -------------- | ---- | --------------- | ------------------------------------ |
| 1        | `y_values`     | 是   | 数值数组        | 因变量样本                           |
| 2        | `x_values`     | 是   | 数值矩阵        | 自变量样本矩阵                       |
| 3        | `constant`     | 是   | 整数/布尔值     | 是否包含常数项                       |
| 4        | `a`            | 是   | 数值矩阵/空数组 | 不等式约束左侧矩阵；无约束时传空数组 |
| 5        | `b`            | 是   | 数值数组/空数组 | 不等式约束右侧向量；无约束时传空数组 |
| 6        | `aeq`          | 是   | 数值矩阵/空数组 | 等式约束左侧矩阵；无约束时传空数组   |
| 7        | `beq`          | 是   | 数值数组/空数组 | 等式约束右侧向量；无约束时传空数组   |
| 8        | `alpha`        | 是   | 数值            | 显著性水平                           |
| 9        | `option`       | 是   | 整数            | 优化目标或约束回归模式参数           |
| 10       | `lower_bounds` | 是   | 数值数组/空数组 | 系数下界；无下界时传空数组           |
| 11       | `upper_bounds` | 是   | 数值数组/空数组 | 系数上界；无上界时传空数组           |

### `regress_HettestSpearman(y_values, x_values, alpha, constant)`

用途：执行 Spearman 等级相关异方差检验。

参数个数：4
返回值：数组表；包含 `Statistic`、`P-Value`、`Hypothesis`

| 参数位置 | 参数名     | 必填 | 接收类型    | 说明           |
| -------- | ---------- | ---- | ----------- | -------------- |
| 1        | `y_values` | 是   | 数值数组    | 因变量样本     |
| 2        | `x_values` | 是   | 数值矩阵    | 自变量样本矩阵 |
| 3        | `alpha`    | 是   | 数值        | 显著性水平     |
| 4        | `constant` | 是   | 整数/布尔值 | 是否包含常数项 |

### `regression_OLS_White(y_values, x_values)`

用途：执行普通最小二乘回归，并输出 White 稳健标准误相关结果。

参数个数：2
返回值：数组表；包含 `Coefficient`、`Resid`、`R-Squared`、`Adjusted R-Squared`、稳健 `T Test`

| 参数位置 | 参数名     | 必填 | 接收类型 | 说明           |
| -------- | ---------- | ---- | -------- | -------------- |
| 1        | `y_values` | 是   | 数值数组 | 因变量样本     |
| 2        | `x_values` | 是   | 数值矩阵 | 自变量样本矩阵 |

### `regression_OLS_NW(y_values, x_values)`

用途：执行普通最小二乘回归，并输出 Newey-West 稳健标准误相关结果。

参数个数：2
返回值：数组表；包含 `Coefficient`、`Resid`、`R-Squared`、`Adjusted R-Squared`、稳健 `T Test`

| 参数位置 | 参数名     | 必填 | 接收类型 | 说明           |
| -------- | ---------- | ---- | -------- | -------------- |
| 1        | `y_values` | 是   | 数值数组 | 因变量样本     |
| 2        | `x_values` | 是   | 数值矩阵 | 自变量样本矩阵 |

### `nw_Adjustment_Simplification(values)`

用途：对序列执行 Newey-West 调整的简化计算。

参数个数：1
返回值：数组表；包含 `stderr`、`T-Stat`、`P-Value`、`Hypothesis`

| 参数位置 | 参数名   | 必填 | 接收类型 | 说明             |
| -------- | -------- | ---- | -------- | ---------------- |
| 1        | `values` | 是   | 数值数组 | 待调整的样本序列 |

### `regress_TTest_RWLS(x_values, coefficients, residuals, variable_count, alpha, constant)`

用途：执行线性约束加权最小二乘回归的系数 T 检验。

参数个数：6
返回值：数组表；包含 `T-Stat`、`P-Value`、`Hypothesis`

| 参数位置 | 参数名           | 必填 | 接收类型          | 说明                       |
| -------- | ---------------- | ---- | ----------------- | -------------------------- |
| 1        | `x_values`       | 是   | 数值数组/数值矩阵 | 自变量样本                 |
| 2        | `coefficients`   | 是   | 数值数组          | 回归系数                   |
| 3        | `residuals`      | 是   | 数值数组          | 回归残差序列               |
| 4        | `variable_count` | 是   | 整数              | 自变量数量或自由度相关参数 |
| 5        | `alpha`          | 是   | 数值              | 显著性水平                 |
| 6        | `constant`       | 是   | 整数/布尔值       | 是否包含常数项             |

### `regress_TTest_White(x_values, coefficients, residuals, alpha, constant, white_result)`

用途：基于 White 稳健结果执行回归系数 T 检验。

参数个数：6
返回值：数组表；包含 `stderr`、`T-Stat`、`P-Value`、`Hypothesis`

| 参数位置 | 参数名         | 必填 | 接收类型          | 说明                             |
| -------- | -------------- | ---- | ----------------- | -------------------------------- |
| 1        | `x_values`     | 是   | 数值数组/数值矩阵 | 自变量样本                       |
| 2        | `coefficients` | 是   | 数值数组          | 回归系数                         |
| 3        | `residuals`    | 是   | 数值数组          | 回归残差序列                     |
| 4        | `alpha`        | 是   | 数值              | 显著性水平                       |
| 5        | `constant`     | 是   | 整数/布尔值       | 是否包含常数项                   |
| 6        | `white_result` | 是   | 数组表/矩阵       | White 稳健方差结果或对应回归结果 |

### `regress_TTest_NW(x_values, coefficients, residuals, alpha, constant, lag_order, robust_result)`

用途：基于 Newey-West 稳健结果执行回归系数 T 检验。

参数个数：7
返回值：数组表；包含 `stderr`、`T-Stat`、`P-Value`、`Hypothesis`

| 参数位置 | 参数名          | 必填 | 接收类型          | 说明                       |
| -------- | --------------- | ---- | ----------------- | -------------------------- |
| 1        | `x_values`      | 是   | 数值数组/数值矩阵 | 自变量样本                 |
| 2        | `coefficients`  | 是   | 数值数组          | 回归系数                   |
| 3        | `residuals`     | 是   | 数值数组          | 回归残差序列               |
| 4        | `alpha`         | 是   | 数值              | 显著性水平                 |
| 5        | `constant`      | 是   | 整数/布尔值       | 是否包含常数项             |
| 6        | `lag_order`     | 是   | 整数              | Newey-West 滞后阶数        |
| 7        | `robust_result` | 是   | 数组表/矩阵       | 稳健方差结果或对应回归结果 |

### `robustfit_M(y_values, x_values, alpha, constant, weight_name, tune)`

用途：执行 M 估计稳健回归。

参数个数：6
返回值：数组表；包含 `Coefficient`、`Resid`

| 参数位置 | 参数名        | 必填 | 接收类型          | 说明                           |
| -------- | ------------- | ---- | ----------------- | ------------------------------ |
| 1        | `y_values`    | 是   | 数值数组          | 因变量样本                     |
| 2        | `x_values`    | 是   | 数值数组/数值矩阵 | 自变量样本                     |
| 3        | `alpha`       | 是   | 数值              | 显著性水平                     |
| 4        | `constant`    | 是   | 整数/布尔值       | 是否包含常数项                 |
| 5        | `weight_name` | 是   | 字符串            | 稳健权重函数名；如 `"andrews"` |
| 6        | `tune`        | 是   | 数值              | 权重函数调节常数               |

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

用途：执行 GRS 检验。

参数个数：3
返回值：数组表；包含 `FGRS`、`pGRS`

| 参数位置 | 参数名            | 必填 | 接收类型          | 说明                   |
| -------- | ----------------- | ---- | ----------------- | ---------------------- |
| 1        | `alpha_values`    | 是   | 数值数组/数值矩阵 | 截距项或 alpha 向量    |
| 2        | `residual_matrix` | 是   | 数值矩阵          | 回归残差矩阵           |
| 3        | `factor_matrix`   | 是   | 数值矩阵          | 因子收益或因子暴露矩阵 |

### `leastSquares_CurveFitting(factors, y_values)`

用途：执行最小二乘曲线拟合；当 `y_values` 中存在 `nil` 或 `nan` 时，跳过对应位置后计算。

参数个数：2
返回值：数值矩阵/数组；拟合系数

| 参数位置 | 参数名     | 必填 | 接收类型 | 说明         |
| -------- | ---------- | ---- | -------- | ------------ |
| 1        | `factors`  | 是   | 数值矩阵 | 拟合因子矩阵 |
| 2        | `y_values` | 是   | 数值数组 | 目标值序列   |

### `regress_Stepwise(y_values, x_values, enter_alpha, remove_alpha)`

用途：执行逐步回归。

参数个数：4
返回值：数组表；包含 `x`、`regress`

| 参数位置 | 参数名         | 必填 | 接收类型 | 说明                     |
| -------- | -------------- | ---- | -------- | ------------------------ |
| 1        | `y_values`     | 是   | 数值数组 | 因变量样本               |
| 2        | `x_values`     | 是   | 数值矩阵 | 自变量样本矩阵           |
| 3        | `enter_alpha`  | 是   | 数值     | 变量进入模型的显著性阈值 |
| 4        | `remove_alpha` | 是   | 数值     | 变量移出模型的显著性阈值 |

### `regress_pri(y_values, x_values, contribution_rate, alpha)`

用途：执行按累计贡献率选择主成分的回归。

参数个数：4
返回值：数组表；包含 `Coefficient`、`Resid`、`R-Squared`、`Adjusted R-Squared`、`SSR`、`HelpRegress`

| 参数位置 | 参数名              | 必填 | 接收类型 | 说明                 |
| -------- | ------------------- | ---- | -------- | -------------------- |
| 1        | `y_values`          | 是   | 数值数组 | 因变量样本           |
| 2        | `x_values`          | 是   | 数值矩阵 | 自变量样本矩阵       |
| 3        | `contribution_rate` | 是   | 数值     | 主成分累计贡献率阈值 |
| 4        | `alpha`             | 是   | 数值     | 显著性水平           |
