SuperAPI AI 工具集

statistics-fundamentals

数据与分析

查看项目

更新于 10-14 18:38

技能介绍

用途与定位 本技能用于把统计方法系统地应用到金融数据上,覆盖描述性统计、协方差估计、回归、假设检验和重采样。典型使用场景是给定收益率序列或基金与市场的汇总统计量,按固定流程完成从描述到推断的分析,并输出可解释、可复核的结论。资料中给出标准分析工作流、worked examples、常见陷阱和可执行脚本。

主要能力与约定

  1. 描述性统计与年化。样本方差与标准差用 n-1(贝塞尔校正),除以 n 会系统性低估离散度。收益率标准差即“波动率”,年化公式为 sigma_annual = sigma_period * sqrt(periods_per_year),例如月度乘 sqrt(12),日度乘 sqrt(252)。
  2. 正态性检验。Jarque-Bera 统计量 JB = (n/6) * (skew^2 + excess_kurtosis^2 / 4),原假设为正态时服从自由度2的卡方分布,5%临界值为5.99。文档特别提示低功效问题:样本小于约50时,即使数据明显非正态JB也常无法拒绝,未拒绝只是弱证据;大样本下金融收益序列因厚尾(股票还有负偏度)几乎总被拒绝。应把该检验当作筛查,并同时查看偏度、峰度的实际大小和极端观测。
  3. 协方差估计与Ledoit-Wolf收缩。样本协方差矩阵 Sigma_hat = (1/(n-1)) (X - X_bar)^T (X - X_bar),当资产数p接近观测数n时病态甚至奇异,直接用于均值-方差优化会产生极端且随数据微小变化而翻转的权重。收缩方法为 Sigma_hat_shrunk = delta * F + (1 - delta) * Sigma_hat,其中F为目标矩阵(如缩放单位阵),delta为收缩强度;Ledoit-Wolf (2004) 给出使期望平方Frobenius距离最小的delta,用少量偏差换取方差大幅下降,得到条件更好、可逆的矩阵和更稳定的组合权重。资料注明:随附脚本的 shrunk_covariance 实现的是简化收缩强度估计,并非完整Ledoit-Wolf估计器;生产环境应使用 sklearn.covariance.LedoitWolf。
  4. 回归诊断(CAPM与因子模型)。单因子CAPM回归 R_i - R_f = alpha + beta * (R_m - R_f) + epsilon,其中 beta = rho * sigma_i / sigma_m(市场敏感度),alpha为风险调整后超额收益;单因子回归中 R^2 = rho^2。系数用t统计量判断,t = 系数 / 标准误,自由度n-2下 |t| 约大于2表示5%显著;alpha点估计为正但 |t| < 2 不构成技能证据。增加回归元总会提高R²,应使用调整R²、AIC/BIC或交叉验证防止过拟合。
  5. 自助法(Bootstrap)。当解析标准误不可得(如夏普比率、alpha)、分布非正态或样本较小时,从原始n个观测有放回抽取B个大小为n的重采样(B=1000-10000),在每个重采样上计算统计量;百分位法下,(1-alpha)置信区间为自助分布的alpha/2与1-alpha/2分位数,自助标准误为B个统计量的标准差。注意i.i.d.自助忽略自相关与波动率聚集,序列相关的收益序列应使用分块自助(block bootstrap)。

使用方式与分析流程 给定收益率序列按以下顺序执行:先用均值、波动率(n-1)、偏度、超额峰度做描述性统计并做报告年化;再做分布检查(Jarque-Bera并留意低功效,检查偏度/峰度量级与最大离群点),判断基于正态的方法(参数VaR、t检验)是否站得住;多资产时计算样本协方差与相关矩阵,若p相对n较大,优化前先做收缩;然后做回归诊断(CAPM或因子回归),报告alpha/beta及t统计量和R²,并检查残差结构;最后对没有干净解析标准误的统计量(夏普、alpha、回撤)用自助法给出置信区间,而非只报点估计。

算例 例1:12个月收益率(%)为 [2.1, -0.5, 1.8, -3.2, 4.5, 0.3, -1.1, 2.7, -0.8, 3.4, 1.2, -0.6]。均值 = 9.8/12 = 0.8167%每月(简单乘12约9.8%年化);s^2 = 52.977/11 = 4.816,s = 2.195%每月;年化波动率 = 2.195% * sqrt(12) = 7.60%;偏度 = -0.045(偏差校正,近似对称);超额峰度 = -0.42(偏差校正,尾部比正态略轻);JB = (12/6) * ((-0.045)^2 + (-0.42)^2 / 4) = 0.09,小于5.99(df=2卡方5%临界),未能拒绝正态性;但仅12个观测,检验功效很低,这不构成收益真的正态的证据。 例2:24个月观测。基金超额收益均值0.8%、标准差4.2%;市场超额收益均值0.6%、标准差3.8%;相关系数0.85。beta = 0.85 * 4.2 / 3.8 = 0.939;alpha = 0.8% - 0.939 * 0.6% = 0.236%每月(约2.84%年化);R² = 0.7225;残差标准差 = 4.2% * sqrt(1 - 0.7225) = 2.213%;SE(alpha) = 2.213%/sqrt(24) = 0.452%,t(alpha) = 0.236/0.452 = 0.52;SE(beta) = 2.213%/(3.8% * sqrt(23)) = 0.121,t(beta) = 0.939/0.121 = 7.74。22自由度下5%双尾临界t为2.074;beta高度显著(7.74远大于2.074),alpha不显著(0.52小于2.074),即尽管点估计为正,样本无法把它与零区分。

脚本与运行 scripts/statistics_fundamentals.py 提供 StatisticsFundamentals 类,静态方法包括 descriptive_stats、covariance_matrix、correlation_matrix、shrunk_covariance(简化Ledoit-Wolf,见上述说明)、ols_regression、rolling_regression、bootstrap_mean、jarque_bera_test。运行:uv run scripts/statistics_fundamentals.py(PEP 723内联元数据会解析numpy与scipy),或在已安装numpy/scipy时用 python3 scripts/statistics_fundamentals.py。直接调用(或加 --verify)会在合成数据上打印演示,并断言例1的数值(12个月序列的均值0.8167、标准差2.195、JB 0.09),不匹配则非零退出;--help 列出可用方法及导入用法。程序化使用应导入而非运行:from statistics_fundamentals import StatisticsFundamentals,再调用如 StatisticsFundamentals.descriptive_stats(...)。

常见陷阱 用总体方差而非样本方差(估计时应始终用n-1);假设正态而忽视厚尾(股票收益常见负偏度和正超额峰度,标准VaR等正态模型会低估尾部风险,宜用Student-t或非参数方法);忽略非平稳性(收益分布随时间变化,存在体制转换与波动率聚集,滚动窗口或GARCH可能比全样本统计更合适);回归元过多导致过拟合(R²总随因子增加上升,应用调整R²、信息准则或交叉验证);小样本下协方差矩阵不稳定(p接近或超过n时,优化前应用Ledoit-Wolf收缩或因子协方差模型)。

与其他技能的关联 return-calculations(core插件):算术与几何平均收益、用于统计建模的对数收益;time-value-of-money(core插件):通过CAPM回归估计折现率,NPV与IRR使用统计输入;factor-investing(wealth-management插件):把单因子CAPM/OLS回归扩展到Fama-French多因子模型用于alpha归因和基金评价;financial-statements(wealth-management插件):把描述性统计与趋势分析应用到财务比率和同业比较。

限制 本资料未提供关于收费、价格、平台支持范围或具体性能效果的信息;除上述脚本运行方式外,未给出其他安装步骤或集成方式。