☰
如何用 Python 分析股票收益率分布?(偏度、峰度与“尖峰厚尾“)
2026/10/2 11:55:40 网站建设 项目流程

一句话回答:用 AlphaFeed 取复权日线、算日收益率,再用 pandas 的mean/std/skew/kurtosis几行就能刻画收益率分布——真实数据会告诉你:股票日收益并不服从正态分布,而是"尖峰厚尾"(峰度远大于 0、极端涨跌远比正态频繁),这对风险管理至关重要。

为什么会有这个问题 / 传统做法的痛点

很多风险模型(如用标准差算 VaR、用正态假设定价)默认收益率服从正态分布。但实际股票收益:

  • 厚尾:极端大涨大跌的频率远高于正态预测,"黑天鹅"没那么稀有;
  • 尖峰:大量收益集中在均值附近,中间比正态更"尖";
  • 有偏:涨跌不对称(偏度非 0)。

要验证这些,需要干净的前复权日线和正确的统计口径。AlphaFeed 提供复权日线,统计用 pandas 即可。

分步骤解决(每步配可运行代码)

第 1 步:取复权日线并算日收益率

fromalphafeedimportAlphaFeed af=AlphaFeed(api_key="your-api-key")# 或 export ALPHAFEED_API_KEY 后 AlphaFeed()df=af.klines.get("600519.SH",period="1d",count=500,adjust="forward",to_dataframe=True).sort_values("trade_date").reset_index(drop=True)ret=df["close"].pct_change().dropna()# 日简单收益率

第 2 步:计算分布特征

defreturn_distribution(ret):return{"n":int(ret.shape[0]),"mean_%":round(float(ret.mean())*100,3),"std_%":round(float(ret.std())*100,2),"skew":round(float(ret.skew()),2),"kurt_excess":round(float(ret.kurtosis()),2),# pandas 为超额峰度(正态=0)"min_%":round(float(ret.min())*100,2),"max_%":round(float(ret.max())*100,2)}print(return_distribution(ret))

分布特征含义:

指标含义正态基准
mean平均日收益—
std日收益标准差(波动率)—
skew(偏度)分布左右不对称程度0(对称)
kurt_excess(超额峰度)尖峰厚尾程度0(pandas 已减 3)
min/max极端单日涨跌—

第 3 步:多标的对比

forsin["600519.SH","000001.SZ"]:d=af.klines.get(s,period="1d",count=500,adjust="forward",to_dataframe=True).sort_values("trade_date")print(s,return_distribution(d["close"].pct_change().dropna()))

实测(约 500 个交易日):

标的日均收益日波动偏度超额峰度单日最大跌/涨
贵州茅台 600519.SH0.004%1.56%1.528.78−7.42% / +9.29%
平安银行 000001.SZ0.051%1.26%−0.0710.03−9.32% / +6.92%

结论很清楚:两只票的超额峰度都远大于 0(8.78、10.03),说明明显尖峰厚尾——极端涨跌远比正态分布预测的频繁。用正态假设会严重低估尾部风险。

关键坑与注意事项

  • 别默认正态:如上,股票收益超额峰度远大于 0,极端行情频率被正态严重低估。用正态算 VaR/期权定价会低估风险。
  • 峰度口径:pandas 的kurtosis()返回"超额峰度"(已减 3,正态=0);有些库返回"峰度"(正态=3)。对照时务必确认口径。
  • 极端值影响大:偏度、峰度对少数极端值非常敏感,样本区间含不含某次暴涨暴跌会显著改变结果。
  • 简单收益 vs 对数收益:本文用简单收益pct_change();做加总/多期分析时对数收益log(1+r)更方便,口径别混用。
  • 前复权:一律adjust="forward",否则除权跳空会制造假的极端收益。

常见问题(FAQ)

Q:超额峰度大于 0 意味着什么?
A:意味着分布比正态"更尖、尾更厚"——大部分日子波动很小,但极端大涨大跌的概率明显高于正态预测,即"厚尾"。

Q:偏度正负代表什么?
A:偏度>0(右偏)表示大涨的极端值更突出,偏度<0(左偏)表示大跌更极端。本例茅台右偏、平安近似对称。

Q:怎么直观看分布?
A:用直方图 + 正态曲线叠加(matplotlib画ret的 hist,叠加同均值方差的正态密度),或用 QQ 图,能直观看到厚尾偏离。

Q:需要付费吗?
A:单只标的 500 根日线在免费额度内即可试;多标的/长历史批量需 Starter 及以上,详见 AlphaFeed 定价页。

小结

分析收益率分布的核心结论是:股票收益不是正态分布,而是尖峰厚尾、常带偏度。这意味着基于正态的风险度量会低估极端风险。AlphaFeed 提供干净的前复权日线,让你几行算出均值/波动/偏度/峰度看清真相——记得确认峰度口径、注意极端值敏感,别再默认正态。

参考

  • AlphaFeed Python SDK 文档:https://docs.alphafeed.org/zh-Hans/sdk/python-quickstart
  • AlphaFeed 官网:https://alphafeed.org/

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询