# 数学函数 - 多元统计分析

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

本页收录相关矩阵、协方差矩阵、距离、聚类、判别分析、主成分分析、因子分析和秩相关函数。

## 服务器多元统计函数

### `corr(values, method[, tail])`

用途：计算相关系数矩阵；带 `tail` 时同时返回相关性检验 P 值矩阵。

参数个数：2 到 3
返回值：数值矩阵/数组；带 `tail` 时返回 `[相关系数矩阵, P值矩阵]`

| 参数位置 | 参数名   | 必填 | 接收类型 | 说明                                         |
| -------- | -------- | ---- | -------- | -------------------------------------------- |
| 1        | `values` | 是   | 数值矩阵 | 样本矩阵                                     |
| 2        | `method` | 是   | 整数     | 相关系数计算方式                             |
| 3        | `tail`   | 否   | 字符串   | 检验方向；常用 `"both"`、`"left"`、`"right"` |

### `correlationMatrix(values, method)`

用途：计算相关系数矩阵。

参数个数：2
返回值：数值矩阵

| 参数位置 | 参数名   | 必填 | 接收类型 | 说明             |
| -------- | -------- | ---- | -------- | ---------------- |
| 1        | `values` | 是   | 数值矩阵 | 样本矩阵         |
| 2        | `method` | 是   | 整数     | 相关系数计算方式 |

### `covariance(values)`

用途：计算协方差矩阵。

参数个数：1
返回值：数值矩阵

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

### `corrcoef(values)`

用途：执行相关系数分析。

参数个数：1
返回值：数组表；包含 `r`、`p`、`rlo`、`rup`

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

### `corr_partial(x_values, y_values, z_values, method[, tail])`

用途：计算偏相关系数；带 `tail` 时同时返回检验结果。

参数个数：4 到 5
返回值：数值矩阵/数组表；带 `tail` 时包含 `coef`、`pval`、`df`

| 参数位置 | 参数名     | 必填 | 接收类型 | 说明                                         |
| -------- | ---------- | ---- | -------- | -------------------------------------------- |
| 1        | `x_values` | 是   | 数值矩阵 | 第一组变量                                   |
| 2        | `y_values` | 是   | 数值矩阵 | 第二组变量                                   |
| 3        | `z_values` | 是   | 数值矩阵 | 控制变量                                     |
| 4        | `method`   | 是   | 整数     | 相关系数计算方式                             |
| 5        | `tail`     | 否   | 字符串   | 检验方向；常用 `"both"`、`"left"`、`"right"` |

### `distance(values, right_or_method[, method])`

用途：计算向量距离，或计算矩阵样本两两距离。

参数个数：2 到 3
返回值：实数/数值矩阵

| 参数位置 | 参数名            | 必填 | 接收类型          | 说明                                       |
| -------- | ----------------- | ---- | ----------------- | ------------------------------------------ |
| 1        | `values`          | 是   | 数值数组/数值矩阵 | 左向量，或样本矩阵                         |
| 2        | `right_or_method` | 是   | 数值数组/字符串   | 三参形式下为右向量；二参形式下为距离方法名 |
| 3        | `method`          | 否   | 字符串            | 三参形式下的距离方法名；常用 `"euclidean"` |

### `cluster_Kmeans(samples, class_count, options)`

用途：执行 K-means 聚类。

参数个数：3
返回值：数组；每个元素是一类样本下标数组

| 参数位置 | 参数名        | 必填 | 接收类型 | 说明                                                   |
| -------- | ------------- | ---- | -------- | ------------------------------------------------------ |
| 1        | `samples`     | 是   | 数值矩阵 | 样本矩阵                                               |
| 2        | `class_count` | 是   | 整数     | 聚类数量                                               |
| 3        | `options`     | 是   | 数组表   | 参数表；常见键包括 `maxiter`、`tol`、`distance`、`out` |

### `cluster_System(samples, distance_method, cluster_method[, output])`

用途：执行系统聚类。

参数个数：3 到 4
返回值：数组；三参返回谱系合并过程，四参且 `output` 包含 `best` 时返回最佳分类

| 参数位置 | 参数名            | 必填 | 接收类型 | 说明                            |
| -------- | ----------------- | ---- | -------- | ------------------------------- |
| 1        | `samples`         | 是   | 数值矩阵 | 样本矩阵                        |
| 2        | `distance_method` | 是   | 整数     | 距离方法                        |
| 3        | `cluster_method`  | 是   | 整数     | 聚类方法                        |
| 4        | `output`          | 否   | 数组表   | 输出选项；如 `array("best": 1)` |

### `cluster_ward(samples)`

用途：执行 Ward 聚类。

参数个数：1
返回值：数组表

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

### `discrim(training_data, sample_data, method)`

用途：执行判别分析并返回待判别样本分类。

参数个数：3
返回值：数组；每个元素是对应待判别样本的分类编号

| 参数位置 | 参数名          | 必填 | 接收类型 | 说明                                     |
| -------- | --------------- | ---- | -------- | ---------------------------------------- |
| 1        | `training_data` | 是   | 数值矩阵 | 训练数据；第一列为分类编号，其余列为特征 |
| 2        | `sample_data`   | 是   | 数值矩阵 | 待判别样本特征矩阵                       |
| 3        | `method`        | 是   | 整数     | 判别方法参数                             |

### `princomp(values, contribution_rate, standardize, residual)`

用途：执行主成分分析。

参数个数：4
返回值：数组表

| 参数位置 | 参数名              | 必填 | 接收类型       | 说明                                   |
| -------- | ------------------- | ---- | -------------- | -------------------------------------- |
| 1        | `values`            | 是   | 数值矩阵       | 样本矩阵                               |
| 2        | `contribution_rate` | 是   | 数值           | 累计贡献率阈值                         |
| 3        | `standardize`       | 是   | 整数           | 是否标准化的模式参数                   |
| 4        | `residual`          | 是   | 变量引用/`nil` | 接收残差或相关输出；不需要时可传 `nil` |

### `factor(values, contribution_rate)`

用途：执行因子分析。

参数个数：2
返回值：数组表；包含 `Correlation Matrix`、`kmo`、`Total Variance Explained` 等结果项

| 参数位置 | 参数名              | 必填 | 接收类型 | 说明           |
| -------- | ------------------- | ---- | -------- | -------------- |
| 1        | `values`            | 是   | 数值矩阵 | 样本矩阵       |
| 2        | `contribution_rate` | 是   | 数值     | 累计贡献率阈值 |

### `corr_canonical(x_values, y_values, alpha, standardize)`

用途：执行典型相关分析。

参数个数：4
返回值：数组表；包含 `Cor`、`XCoef`、`YCoef` 等结果项

| 参数位置 | 参数名        | 必填 | 接收类型 | 说明                 |
| -------- | ------------- | ---- | -------- | -------------------- |
| 1        | `x_values`    | 是   | 数值矩阵 | 第一组变量           |
| 2        | `y_values`    | 是   | 数值矩阵 | 第二组变量           |
| 3        | `alpha`       | 是   | 数值     | 显著性水平           |
| 4        | `standardize` | 是   | 整数     | 是否标准化的模式参数 |

### `corr_Spearman(x_values, y_values)`

用途：计算 Spearman 秩相关系数。

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

| 参数位置 | 参数名     | 必填 | 接收类型 | 说明       |
| -------- | ---------- | ---- | -------- | ---------- |
| 1        | `x_values` | 是   | 数值数组 | 第一组数据 |
| 2        | `y_values` | 是   | 数值数组 | 第二组数据 |

### `cov2CorrMatrix(covariance_matrix)`

用途：把协方差矩阵转换为相关系数矩阵。

参数个数：1
返回值：数值矩阵

| 参数位置 | 参数名              | 必填 | 接收类型 | 说明       |
| -------- | ------------------- | ---- | -------- | ---------- |
| 1        | `covariance_matrix` | 是   | 数值矩阵 | 协方差矩阵 |

### `corrMatrixAdjust(correlation_matrix)`

用途：修正相关系数矩阵。

参数个数：1
返回值：数值矩阵

| 参数位置 | 参数名               | 必填 | 接收类型 | 说明                 |
| -------- | -------------------- | ---- | -------- | -------------------- |
| 1        | `correlation_matrix` | 是   | 数值矩阵 | 待修正的相关系数矩阵 |

### `corr_Kendall(x_values, y_values)`

用途：计算 Kendall 秩相关系数。

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

| 参数位置 | 参数名     | 必填 | 接收类型 | 说明       |
| -------- | ---------- | ---- | -------- | ---------- |
| 1        | `x_values` | 是   | 数值数组 | 第一组数据 |
| 2        | `y_values` | 是   | 数值数组 | 第二组数据 |

### `histc(values, bins)`

用途：按边界数组统计直方图计数。

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

| 参数位置 | 参数名   | 必填 | 接收类型 | 说明       |
| -------- | -------- | ---- | -------- | ---------- |
| 1        | `values` | 是   | 数值数组 | 待统计数据 |
| 2        | `bins`   | 是   | 数值数组 | 分箱边界   |

### `princaipalComponentAnalysis(values)`

用途：执行主成分分析并返回主因子得分结果。

参数个数：1
返回值：数组表；包含 `F`、`F1`、`F2` 等得分字段

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

### `mbbub(values, index_output)`

用途：按数值排序并返回排序后的原始下标。

参数个数：2
返回值：数组；同时写入 `index_output`

| 参数位置 | 参数名         | 必填 | 接收类型 | 说明                     |
| -------- | -------------- | ---- | -------- | ------------------------ |
| 1        | `values`       | 是   | 数值数组 | 待排序数组               |
| 2        | `index_output` | 是   | 变量引用 | 接收排序后的原始下标数组 |

### `eigen_Jacobi(matrix, eigen_values, eigen_vectors)`

用途：用 Jacobi 方法计算矩阵特征值和特征向量。

参数个数：3
返回值：无直接返回值；写入 `eigen_values` 和 `eigen_vectors`

| 参数位置 | 参数名          | 必填 | 接收类型 | 说明             |
| -------- | --------------- | ---- | -------- | ---------------- |
| 1        | `matrix`        | 是   | 数值矩阵 | 待分解矩阵       |
| 2        | `eigen_values`  | 是   | 变量引用 | 接收特征值数组   |
| 3        | `eigen_vectors` | 是   | 变量引用 | 接收特征向量矩阵 |

### `componentMatrix(eigen_values, eigen_vectors, max_eigen_values)`

用途：根据特征值和特征向量生成主成分载荷矩阵。

参数个数：3
返回值：数值矩阵；同时写入 `max_eigen_values`

| 参数位置 | 参数名             | 必填 | 接收类型 | 说明                   |
| -------- | ------------------ | ---- | -------- | ---------------------- |
| 1        | `eigen_values`     | 是   | 数值数组 | 特征值数组             |
| 2        | `eigen_vectors`    | 是   | 数值矩阵 | 特征向量矩阵           |
| 3        | `max_eigen_values` | 是   | 变量引用 | 接收主因子对应的特征根 |

### `componentScoreMatrix(component_matrix, correlation_matrix)`

用途：根据载荷矩阵和相关系数矩阵生成因子得分系数矩阵。

参数个数：2
返回值：数值矩阵

| 参数位置 | 参数名               | 必填 | 接收类型 | 说明           |
| -------- | -------------------- | ---- | -------- | -------------- |
| 1        | `component_matrix`   | 是   | 数值矩阵 | 主成分载荷矩阵 |
| 2        | `correlation_matrix` | 是   | 数值矩阵 | 相关系数矩阵   |

### `factorScoreMatrix(score_matrix, standardized_values)`

用途：根据因子得分系数矩阵和标准化样本矩阵生成样本公共因子得分。

参数个数：2
返回值：数值矩阵

| 参数位置 | 参数名                | 必填 | 接收类型 | 说明               |
| -------- | --------------------- | ---- | -------- | ------------------ |
| 1        | `score_matrix`        | 是   | 数值矩阵 | 因子得分系数矩阵   |
| 2        | `standardized_values` | 是   | 数值矩阵 | 标准化后的样本矩阵 |

### `rotatedComponentMatrix(component_matrix)`

用途：对主成分载荷矩阵做旋转处理。

参数个数：1
返回值：数值矩阵

| 参数位置 | 参数名             | 必填 | 接收类型 | 说明           |
| -------- | ------------------ | ---- | -------- | -------------- |
| 1        | `component_matrix` | 是   | 数值矩阵 | 主成分载荷矩阵 |

### `fScoreResult(factor_scores, max_eigen_values)`

用途：根据样本公共因子得分和主因子特征根生成综合得分结果。

参数个数：2
返回值：数组表；包含 `F`、`F1`、`F2` 等得分字段

| 参数位置 | 参数名             | 必填 | 接收类型          | 说明                 |
| -------- | ------------------ | ---- | ----------------- | -------------------- |
| 1        | `factor_scores`    | 是   | 数值矩阵          | 样本公共因子得分矩阵 |
| 2        | `max_eigen_values` | 是   | 数值数组/数值矩阵 | 主因子对应的特征根   |
