# 净值归因 / 因素回归

## `tsbf_RegressionAnalysis`

声明：class

基于收益率的因素回归分析框架

<!-- tags: 统计 回报率 投资收益 拟合 净值分析 因素回归 收益分解 -->

### `FifConstant`

声明：field

是否包含常数项，true 表示包含 true

可见性：`public`

类型：bool

### `FAlpha`

声明：field

显著性水平 0.05

可见性：`public`

类型：real

### `FifPrincomp`

声明：field

是否主成分回归，true 表示主成分回归 false

可见性：`public`

类型：bool

### `FifLimit`

声明：field

是否约束系数，true 表示约束系数 false

可见性：`public`

类型：bool

### `Fa`

声明：field

nil 表示无不等式约束，空数组表示空的不等式约束，如果有不等

可见性：`public`

类型：array

### `Main()`

声明：function

回归主函数，得到回归结果，用于后续的分析

<!-- tags: 执行 因素回归 回归分析 -->

可见性：`public`

返回：array

### `RarSquare()`

声明：function

获取回归的 R 方，必须要在运行 Main 函数后调用

<!-- tags: 查询 执行 拟合 拟合优度 决定系数 -->

可见性：`public`

返回：real

### `Ravif()`

声明：function

获取原始自变量的方差膨胀系数

<!-- tags: 查询 方差膨胀因子 多重共线性 回归诊断 -->

可见性：`public`

返回：array

### `RaLeverReturnAttri(if_tree_id)`

声明：function

区间分层收益归因统计，包含上层总收益分解与下层因子收益贡献分解

<!-- tags: 汇总 回报率 投资收益 贡献分析 影响度 因子分析 因子指标 -->

可见性：`public`

| 参数         | 类型 | 说明                                                                                      |
| ------------ | ---- | ----------------------------------------------------------------------------------------- |
| `if_tree_id` | bool | 是否显示树形 ID，布尔类型，默认为否，包含字段"层级"、"id"、"pid"，常用于 web 做树形分解图 |

返回：array

### `RaSummaryReturnDetail(r_type)`

声明：function

每期总收益分解详情

<!-- tags: 查询 总收益分解 每期详情 -->

可见性：`public`

| 参数     | 类型    | 说明                                                                             |
| -------- | ------- | -------------------------------------------------------------------------------- |
| `r_type` | integer | 返回类型，整型 取值 含义 0（默认） 返回每期收益贡献(%) 1 返回每期累计收益贡献(%) |

返回：array

### `RaSummaryReturnAttri()`

声明：function

区间总收益归因统计，多期收益归因，统计每个分解项对区间累计总收益的贡献

<!-- tags: 汇总 收益分解 贡献分析 影响度 -->

可见性：`public`

返回：array

### `RaFactorContriDetail(factor_lever, r_type)`

声明：function

每期因子贡献详情，因子贡献=回归系数*因子收益

<!-- tags: 回报率 投资收益 影响度 收益分解 因子分析 因子指标 拟合 -->

可见性：`public`

| 参数           | 类型    | 说明                                                                                                                                                                                                                                                                                                                                             |
| -------------- | ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `factor_lever` | integer | 因子层级，整型，取值如下，FactorLever 也可以为一维数组，如 array(1,2)，表示 返回一级和二级大类因子 取值 含义 返回字段 备注 -1 返回所有层级因子 所有不同层级因子名称 0（默认） 返回小类因子 小类因子名称 FX 列名 1 返回一级大类因子 一级大类因子名称 FFactorConfig 设置相关， 见"大类因子"或"因子分类"字段 2 返回二级大类因子 二级大类因子名称 …… |
| `r_type`       | integer | 返回类型，0 表示返回每期收益贡献(%)，1 表示返回每期累计收益贡献(%)                                                                                                                                                                                                                                                                               |

返回：array

### `RaFactorContriAttri(factor_lever)`

声明：function

区间因子贡献统计，各小类或大类因子对区间累计总收益的收益贡献

<!-- tags: 汇总 收益分解 贡献分析 影响度 因子分析 因子指标 -->

可见性：`public`

| 参数           | 类型    | 说明                                               |
| -------------- | ------- | -------------------------------------------------- |
| `factor_lever` | integer | 因子层级，整型，详见 RAFactorContriDetail 参数说明 |

返回：array

### `RaLeverRiskAttri(if_tree_id)`

声明：function

区间分层风险归因统计，包含上层总风险分解与下层因子风险分解

<!-- tags: 汇总 收益分解 贡献分析 因子分析 因子指标 风险管理 风控 -->

可见性：`public`

| 参数         | 类型 | 说明                                                                                      |
| ------------ | ---- | ----------------------------------------------------------------------------------------- |
| `if_tree_id` | bool | 是否显示树形 ID，布尔类型，默认为否，包含字段"层级"、"id"、"pid"，常用于 web 做树形分解图 |

返回：array

### `RaSummaryRiskAttri()`

声明：function

区间总风险归因统计，统计各分解项对总风险的风险贡献

<!-- tags: 汇总 收益分解 贡献分析 影响度 风险管理 风控 -->

可见性：`public`

返回：array

### `RaFactorRiskAttri(factor_lever)`

声明：function

区间因子风险归因统计，统计小类或大类因子对总风险的风险贡献

<!-- tags: 汇总 收益分解 贡献分析 影响度 因子分析 因子指标 风险管理 风控 -->

可见性：`public`

| 参数           | 类型    | 说明                                               |
| -------------- | ------- | -------------------------------------------------- |
| `factor_lever` | integer | 因子层级，整型，详见 RAFactorContriDetail 参数说明 |

返回：array

### `RaRelativeImportance(method, option)`

声明：function

相对重要性分析，检验各自变量对回归 R 方的贡献度

<!-- tags: 检查 判定 验证 统计 影响度 收益分解 拟合 拟合优度 -->

可见性：`public`

| 参数     | 类型    | 说明                                                                                                                                                                          |
| -------- | ------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `method` | integer | Integer，整数，表示相对重要性分析的算法类别  0：表示边际 R2 法，调用公用函数 Regress_Domin_Marginal（默认）  1：表示 R2 公式分解法，调用公用函数 Regress_Domin_Marginal     |
| `option` | integer | 可选。Integer，整数，在 method=0 时有用，是 Regress_Domin_Marginal 的可选参数  0：利用完整回归中剔除其他变量的贡献度计算（默认）  1：利用包含指定变量回归中贡献度的均值计算 |

返回：array

### `RaReturnCorrel(if_y)`

声明：function

收益相关系数

<!-- tags: 查询 收益相关系数 相关性 -->

可见性：`public`

| 参数   | 类型 | 说明                                                                                                                                                |
| ------ | ---- | --------------------------------------------------------------------------------------------------------------------------------------------------- |
| `if_y` | bool | 是否包含因变量 Y，布尔类型，为真表示计算 Y 以及各自变量因子收益间的相关系数（因 变量 Y 的名称为"总收益"），为假表示仅计算自变量因子收益间的相关系数 |

返回：array

### `RaSelectAlphaDetail()`

声明：function

获取每期选股 Alpha 详情

<!-- tags: 查询 选择 筛选 超额收益 主动收益 -->

可见性：`public`

返回：array

### `RaStyleReturnDetail()`

声明：function

获取每期风格收益详情

<!-- tags: 查询 风格因子 投资风格 -->

可见性：`public`

返回：array

### `RaReturnContribute(dtype)`

声明：function

获取风格因子收益贡献分解结果；必须在 Main 执行后调用

<!-- tags: 查询 回报率 投资收益 影响度 收益分解 因子分析 因子指标 投资风格 -->

可见性：`public`

| 参数    | 类型    | 说明                                                                                                                                                                                                                                                                                   |
| ------- | ------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `dtype` | integer | Integer，代表返回的数据类型 取值 结果说明 算法说明 0（默认） 最后一天的收益贡献分解结果 最后一天各风格收益与所对应的回归系数相乘 1 区间每一天的收益贡献分解结果 区间每一天的各风格收益与对应的回归系数相乘 2 区间累计收益率的收益贡献分解结果 区间各累计风格收益率与对应的回归系数相乘 |

返回：array

### `RaRiskContribute()`

声明：function

按边际风险法获取风格因子风险贡献分解结果；必须在 Main 执行后调用

<!-- tags: 查询 影响度 收益分解 因子分析 因子指标 风险管理 风控 投资风格 -->

可见性：`public`

返回：array

### `RaRelaImportance(x, y, method, option)`

声明：function

获取相对重要性分析结果

<!-- tags: 查询 相对重要性 变量贡献 回归分析 -->

可见性：`public`

| 参数     | 类型    | 说明                                                                                                                                                                          |
| -------- | ------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `x`      | array   | Array，二维数组，自变量数据，即风格收益数据                                                                                                                                   |
| `y`      | array   | Array，一维数组，因变量数据，即收益率数据                                                                                                                                     |
| `method` | integer | Integer，整数，表示相对重要性分析的算法类别  0：表示边际 R2 法，调用公用函数 Regress_Domin_Marginal（默认）  1：表示 R2 公式分解法，调用公用函数 Regress_Domin_Marginal     |
| `option` | integer | 可选。Integer，整数，在 method=0 时有用，是 Regress_Domin_Marginal 的可选参数  0：利用完整回归中剔除其他变量的贡献度计算（默认）  1：利用包含指定变量回归中贡献度的均值计算 |

返回：array
