# 业绩归因 / 风格因子

## `tsrm_FactorAttribution`

声明：class

风格因子归因框架

<!-- tags: 收益分解 贡献分析 因子分析 因子指标 投资风格 风格归因 因子暴露 -->

### `FRegType`

声明：field

回归方式 1

可见性：`public`

类型：integer

### `Fconfig`

声明：field

归因配置

可见性：`public`

类型：table

### `FIsCacheReMatrix`

声明：field

是否缓存回归矩阵 0

可见性：`public`

类型：boolean

### `FAbnormalType`

声明：field

极值处理方法 0：中位数法

可见性：`public`

类型：integer

### `FStandarizeType`

声明：field

标准化方法 1：Z值法

可见性：`public`

类型：integer

### `FGridNo`

声明：field

网格数目 5

可见性：`public`

类型：integer

### `AttributionTest()`

声明：function

归因主程序

<!-- tags: 执行 风格归因 收益分解 -->

可见性：`public`

返回：array

### `Init_process()`

声明：function

用于用户接入自定义的配置初始化，与数据预处理逻辑，AttributionTest内部在开始归因计算

<!-- tags: 收益分解 贡献分析 -->

可见性：`public`

返回：array

### `GetTimeSeries()`

声明：function

获取时间序列，一维数组

<!-- tags: 查询 时序 序列数据 时间处理 日期时间 列表 集合 -->

可见性：`public`

返回：array

### `GetPortfolioWeightandReturn(v_end_t)`

声明：function

T日组合个券期初权重(比例(%))及 T日个券涨幅，这里的涨幅指个券T日在组合里的涨幅

<!-- tags: 查询 组合权重 资产配置 投资组合 资产组合 -->

可见性：`public`

| 参数      | 类型     | 说明                             |
| --------- | -------- | -------------------------------- |
| `v_end_t` | datetime | 当前计算日期或查询区间的结束日期 |

返回：array

### `GetBenchmarkWeightandReturn(v_end_t)`

声明：function

基准权重表，数据表结构如下。注意，当FindexId 有值时，则不需要重载此方法

<!-- tags: 查询 组合权重 资产配置 比较基准 业绩基准 表数据 二维表 -->

可见性：`public`

| 参数      | 类型     | 说明               |
| --------- | -------- | ------------------ |
| `v_end_t` | datetime | 日期类型，归因日期 |

返回：array

### `UserCalFactors(data, v_end_t)`

声明：function

将指定日的外部自定义因子值合并到天软因子值表；用于第三方因子参与归因

<!-- tags: 组合 收益分解 贡献分析 因子分析 因子指标 -->

可见性：`public`

| 参数      | 类型     | 说明                                                                                              |
| --------- | -------- | ------------------------------------------------------------------------------------------------- |
| `data`    | array    | 二维数组，天软因子值表。此参数传进来作用有两点：1、为取本地因子得到样本；2、与本地 因子值合并返回 |
| `v_end_t` | datetime | 日期                                                                                              |

返回：array

### `GetMarketStocks(v_end_t)`

声明：function

返回指定日市场全部个股，使用场景如：在全A里面做回归计算风格因子收益，而基准只是

<!-- tags: 查询 回报率 投资收益 因子分析 因子指标 拟合 证券 投资风格 -->

可见性：`public`

| 参数      | 类型     | 说明                             |
| --------- | -------- | -------------------------------- |
| `v_end_t` | datetime | 当前计算日期或查询区间的结束日期 |

返回：array

### `GetFactorRegressionValue_User(vendt)`

声明：function

返回用户自定义截面回归后的因子收益数据，只在FRegType=-1时才使用

<!-- tags: 查询 回报率 投资收益 因子分析 因子指标 拟合 -->

可见性：`public`

| 参数    | 类型     | 说明                                                     |
| ------- | -------- | -------------------------------------------------------- |
| `vendt` | datetime | 截面回归结果对应的评价截止日期；仅在自定义回归方式下使用 |

返回：array

### `GetStocksBeta(v_end_t)`

声明：function

返回指定日市场全部个股的贝塔，FRegTye=3，CAPM+多因子分解方法专用

<!-- tags: 查询 因子分析 因子指标 贝塔系数 市场风险 证券 市场行情 市场状态 -->

可见性：`public`

| 参数      | 类型     | 说明                             |
| --------- | -------- | -------------------------------- |
| `v_end_t` | datetime | 当前计算日期或查询区间的结束日期 |

返回：array

### `GetMarketReturn(v_end_t)`

声明：function

返回指定日市场收益，FRegTye=3，CAPM+多因子分解方法专用

<!-- tags: 查询 回报率 投资收益 因子分析 因子指标 市场行情 市场状态 -->

可见性：`public`

| 参数      | 类型     | 说明                             |
| --------- | -------- | -------------------------------- |
| `v_end_t` | datetime | 当前计算日期或查询区间的结束日期 |

返回：array

### `GetEventReturn(v_end_t)`

声明：function

返回指定日最新的事件收益数据，事件因子归因专用

<!-- tags: 查询 回报率 投资收益 收益分解 贡献分析 因子分析 因子指标 事件驱动 -->

可见性：`public`

| 参数      | 类型     | 说明                             |
| --------- | -------- | -------------------------------- |
| `v_end_t` | datetime | 当前计算日期或查询区间的结束日期 |

返回：array

### `GetStocksEventDate(v_end_t)`

声明：function

返回指定日最新的个股事件发生日，事件因子归因专用

<!-- tags: 查询 收益分解 贡献分析 因子分析 因子指标 事件驱动 事件研究 证券 -->

可见性：`public`

| 参数      | 类型     | 说明                             |
| --------- | -------- | -------------------------------- |
| `v_end_t` | datetime | 当前计算日期或查询区间的结束日期 |

返回：array

### `SetPerioDQCYTD(v_end_t)`

声明：function

用于设置归因周期的期初昨日，当且仅当GetPortfolioWeightandReturn返回的结果中不含字段

<!-- tags: 配置 收益分解 贡献分析 -->

可见性：`public`

| 参数      | 类型     | 说明               |
| --------- | -------- | ------------------ |
| `v_end_t` | datetime | 日期类型，归因日期 |

返回：date

### `GetPerioDQCYTD(v_end_t)`

声明：function

返回期初昨日，只用于查询，重载请用SetPerioDQCYTD

<!-- tags: 查询 期初昨日 归因周期 -->

可见性：`public`

| 参数      | 类型     | 说明               |
| --------- | -------- | ------------------ |
| `v_end_t` | datetime | 日期类型，归因日期 |

返回：date

### `GetPerioDBedT(v_end_t)`

声明：function

返回当期开始日，即期初昨日后的第一个交易日

<!-- tags: 查询 买卖 交易策略 -->

可见性：`public`

| 参数      | 类型     | 说明               |
| --------- | -------- | ------------------ |
| `v_end_t` | datetime | 日期类型，归因日期 |

返回：date

### `GetDataStoreHome()`

声明：function

返回缓存根目录，FisCacheReMatrix为真时，回归矩阵缓存在此目录

<!-- tags: 查询 拟合 -->

可见性：`public`

返回：string

### `GetRegressionMatrix(v_end_t)`

声明：function

返回指定日的回归矩阵，主要作为调试用，FisCacheReMatrix为真时已把每期的回归矩阵缓存

<!-- tags: 查询 拟合 -->

可见性：`public`

| 参数      | 类型     | 说明     |
| --------- | -------- | -------- |
| `v_end_t` | datetime | 日期类型 |

返回：string

### `DebugreturnFactorValueByEndT(v_end_t)`

声明：function

返回 vEndT归因时所使用到的因子值，因子值包括原值与标准化处理过因子值

<!-- tags: 归一化 收益分解 贡献分析 因子分析 因子指标 -->

可见性：`public`

| 参数      | 类型     | 说明     |
| --------- | -------- | -------- |
| `v_end_t` | datetime | 日期类型 |

返回：array

### `GetPSummaryReturn()`

声明：function

返回组合总收益分解和风险分解情况

<!-- tags: 查询 风险管理 风控 -->

可见性：`public`

返回：array

### `GetPFactorExposure()`

声明：function

返回因子敞口的统计分析

<!-- tags: 查询 汇总 暴露 因子分析 因子指标 -->

可见性：`public`

返回：array

### `GetPFactorReturn()`

声明：function

返回因子收益率统计分析

<!-- tags: 查询 汇总 回报率 投资收益 因子分析 因子指标 -->

可见性：`public`

返回：array

### `GetPFactorContri()`

声明：function

返回风格因子贡献的统计分析和风险分解情况

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

可见性：`public`

返回：array

### `GetPFactorContri2(if_annual)`

声明：function

返回风格因子贡献细分情况、IR与 T值

<!-- tags: 查询 影响度 收益分解 因子分析 因子指标 显著性检验 T检验 投资风格 -->

可见性：`public`

| 参数        | 类型    | 说明                                                           |
| ----------- | ------- | -------------------------------------------------------------- |
| `if_annual` | boolean | 是否年化，默认为否。若为真，则收益贡献相关、信息比率为年化数据 |

返回：array

### `GetPAssetContri()`

声明：function

返回资产选择贡献统计分析和风险分解情况

<!-- tags: 查询 筛选 汇总 影响度 收益分解 风险管理 风控 -->

可见性：`public`

返回：array

### `GetPStockSummaryReturn(rety)`

声明：function

个券层专用，返回个券在总收益各个分解项（总收益、基准收益等）上的【累计贡献(%)】

<!-- tags: 查询 影响度 收益分解 证券 个股 比较基准 业绩基准 -->

可见性：`public`

| 参数   | 类型    | 说明                                                                      |
| ------ | ------- | ------------------------------------------------------------------------- |
| `rety` | integer | 返回统计指标，预留参数，当前仅支持返回个券对各收益分解项的累计收益贡献(%) |

返回：array

### `GetPStockFactorContri(rety)`

声明：function

个券层专用，返回个券在各个因子上的【累计贡献(%)】

<!-- tags: 查询 影响度 收益分解 因子分析 因子指标 证券 个股 -->

可见性：`public`

| 参数   | 类型    | 说明                                                                  |
| ------ | ------- | --------------------------------------------------------------------- |
| `rety` | integer | 返回统计指标，预留参数，当前仅支持返回个券在各因子上的累计收益贡献(%) |

返回：array

### `GetPStockFactorExposure(rety)`

声明：function

个券层专用，返回个券在各个因子上的【平均敞口】

<!-- tags: 查询 暴露 因子分析 因子指标 证券 个股 -->

可见性：`public`

| 参数   | 类型    | 说明                                                           |
| ------ | ------- | -------------------------------------------------------------- |
| `rety` | integer | 返回统计指标，预留参数，当前仅支持返回个券在各因子上的平均敞口 |

返回：array

### `GetPStockSummaryRisk(rety)`

声明：function

个券层专用，返回个券的各个分解项（总收益、基准收益等）在总风险与跟踪误差上的【风

<!-- tags: 查询 风险管理 风控 证券 个股 比较基准 业绩基准 -->

可见性：`public`

| 参数   | 类型    | 说明                                              |
| ------ | ------- | ------------------------------------------------- |
| `rety` | integer | 返回统计指标 取值 含义 0 风险贡献 1 风险贡献率(%) |

返回：array

### `GetPStockFactorRisk(rety)`

声明：function

个券层专用，返回个券的各因子在总风险与跟踪误差上的【风险贡献】或【风险贡献率(%)】

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

可见性：`public`

| 参数   | 类型    | 说明                                              |
| ------ | ------- | ------------------------------------------------- |
| `rety` | integer | 返回统计指标 取值 含义 0 风险贡献 1 风险贡献率(%) |

返回：array

### `GetPSummaryReturnDetail(re_ty)`

声明：function

返回组合总收益分解的序列

<!-- tags: 查询 组合总收益 每日归因 收益分解 -->

可见性：`public`

| 参数    | 类型 | 说明                                                                                                                                           |
| ------- | ---- | ---------------------------------------------------------------------------------------------------------------------------------------------- |
| `re_ty` | int  | 取值如下 取值 含义 -1 每日贡献度(%)，且将二维表转为立体表 0 每日收益贡献(%) 1 每日累计贡献度(%)与每日累计增量贡献度(%) 2 最后一期累计贡献度(%) |

返回：array

### `GetPFactorContriDetail(re_ty, classlevel)`

声明：function

返回风格因子归因序列

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

可见性：`public`

| 参数         | 类型 | 说明                                                                                                                                                                                |
| ------------ | ---- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `re_ty`      | int  | 返回数据类型，取值如下                                                                                                                                                              |
| `classlevel` | int  | 风格因子类型 取值 含义 1 ⚫ 只输出合成大类因子贡献详情，当前只支持一级分类， ⚫ 根据 FFactorArr的大类因子字段合成 0、默认 FFactorArr中全部参与归因的因子 GetPFactorContriDetail2 ⚫ |

返回：array

### `GetPFactorContriDetail2(re_ty)`

声明：function

返回风格因子贡献细分序列，每个因子贡献都可拆分为两部分，累计贡献=因子配置+因子择

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

可见性：`public`

| 参数    | 类型 | 说明                                                                                                                                           |
| ------- | ---- | ---------------------------------------------------------------------------------------------------------------------------------------------- |
| `re_ty` | int  | 取值如下 取值 含义 -1 每日贡献度(%)，且将二维表转为立体表 0 每日收益贡献(%) 1 每日累计贡献度(%)与每日累计增量贡献度(%) 2 最后一期累计贡献度(%) |

返回：array

### `GetPAssetContriDetail(ty)`

声明：function

返回资产选择贡献的时间序列数据

<!-- tags: 查询 筛选 影响度 收益分解 时序 时间处理 日期时间 -->

可见性：`public`

| 参数 | 类型 | 说明                               |
| ---- | ---- | ---------------------------------- |
| `ty` | int  | 结果查询的时间序列或统计类型选择项 |

返回：array

### `GetPFactorExposureDetail(rety)`

声明：function

返回因子敞口的详情(时间序列)

<!-- tags: 查询 暴露 因子分析 因子指标 时序 序列数据 时间处理 日期时间 -->

可见性：`public`

| 参数   | 类型    | 说明                                                                                          |
| ------ | ------- | --------------------------------------------------------------------------------------------- |
| `rety` | integer | 返回数据类型，取值如下： 取值 含义 -1 ⚫ 立体表，且增加组合暴露、基准暴露 默认，其他 每日敞口 |

返回：array

### `GetPFactorReturnDetail(ty)`

声明：function

返回因子收益率的时间序列

<!-- tags: 查询 回报率 投资收益 因子分析 因子指标 时序 序列数据 时间处理 -->

可见性：`public`

| 参数 | 类型 | 说明                                                                                                    |
| ---- | ---- | ------------------------------------------------------------------------------------------------------- |
| `ty` | int  | 返回数据类型，取值如下 取值 含义 0 收益率(%) 1 累计收益率(%) 7.8 结果查询&回归检验 GetPRegresSquared ⚫ |

返回：array

### `GetPRegresSquared()`

声明：function

返回回归 R 方序列

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

可见性：`public`

返回：array

### `GetPRegresTTest()`

声明：function

返回回归 T值序列

<!-- tags: 查询 拟合 显著性检验 T检验 -->

可见性：`public`

返回：array

### `GetPVIF()`

声明：function

返回风格因子 VIF

<!-- tags: 查询 因子分析 因子指标 多重共线性 方差膨胀因子 投资风格 -->

可见性：`public`

返回：array

### `GetPEventExposureDetail(rety)`

声明：function

返回事件因子敞口的详情(时间序列)

<!-- tags: 查询 暴露 因子分析 因子指标 事件驱动 事件研究 时序 序列数据 -->

可见性：`public`

| 参数   | 类型    | 说明                              |
| ------ | ------- | --------------------------------- |
| `rety` | integer | 个券/因子统计结果的返回口径选择项 |

返回：array

### `GetPEventExposure()`

声明：function

返回事件因子敞口的的统计分析

<!-- tags: 查询 汇总 暴露 因子分析 因子指标 事件驱动 事件研究 -->

可见性：`public`

返回：array

### `GetPEventContriDetail(rety)`

声明：function

返回事件因子贡献的详情(时间序列)

<!-- tags: 查询 影响度 收益分解 因子分析 因子指标 事件驱动 事件研究 时序 -->

可见性：`public`

| 参数   | 类型    | 说明                              |
| ------ | ------- | --------------------------------- |
| `rety` | integer | 个券/因子统计结果的返回口径选择项 |

返回：array

### `GetPEventContri()`

声明：function

返回事件因子贡献的统计分析

<!-- tags: 查询 汇总 影响度 收益分解 因子分析 因子指标 事件驱动 事件研究 -->

可见性：`public`

返回：array
