量化的概率统计基础 # 分布的四个“矩” 1. 期望=均值(统计学里面叫期望),也被叫做一阶矩 np.mean(data) (data表示想要求均值的数据,下同) 2. 标准差=方差开方(二阶矩)(样本-均值的平方相加,除以样本数)(表示离散程度)(拥有可加性,即两个随机变量相加后的方差等于两个随机变量各自方差相加) np.var(data) (var是方差,std时标准差) 3. 偏度(随机变量分布的对称情况)(样本-均值的三次方相加,除以样本数,在除以方差的三次方) 正偏(又叫右偏,右侧出现长尾,“尾部”指的是远离(中心)的极端区域。):均值 > 中位数 > 众数 负偏(又叫左偏):均值 < 中位数 < 众数 np.skew(data) 4. 峰度(样本-均值的四次方相加,除以样本数,在除以方差的四次方) 一般尖峰伴随着肥尾(肥尾:肥的意思距离X轴的距离更厚,更大,一般相对于正态分布来说。就是说尾巴的样本数量比想象中更多,极端情况发生的概率更多) np.kurtosis(data)或data.kurt() EX 01.py # 正态分布 1.定义 1.X~N(均值,方差),正态分布的概率密度公式只有两个参数,期望和方差,所以当期望和方差确定了,正态分布的图形形状就确定了。 2.np.random.normal(loc=期望,scale=方差,size=随机点个数) 可以尝试改变期望和方差的变化,可以看出图形在期望改变时,左右移动,改变方差时,视觉上感觉胖瘦变化。也可以尝试求出偏度和峰度。 EX02.py 2.特点 1.(均值-标准差,均值+标准差)这个区间内大概涵盖了68.27%的样本数量 2.(均值-2*标准差,均值+2*标准差)这个区间内大概涵盖了95.44%的样本数量 3.(均值-3*标准差,均值+3*标准差)这个区间内大概涵盖了99.74%的样本数量 EX03.py # 线性回归 1.单元线性回归 1.1 y=ax+b (单元就是只有一个变量X) 一个简单的例子:大盘指数的涨跌如何影响个股的涨跌。这里面大盘指数的涨跌就是唯一的变量X,个股的涨跌就是Y。 本篇文章回归均使用普通最小二乘回归。(就是输入x,y,然后最小二乘相关运算可以自动求出a,其实一般这个a都是用bate表示。b呢用a表示) 用statsmodels,这个里面有 1.sm.OLS()普通最小二乘 2.sm.tsa.ARIMA(),sm.tsa.SARIMAX()时间序列分析 3.sm.stats.ttest_ind()、sm.stats.anova_lm() 等统计检测 4.sm.GLM(),支持多种分布广义线性描述 5.sm.stats.describe() 描述统计等等 1.2 普通最小二乘 sm.OLS(因变量Y,sm.add_constant(自变量X,hasconst=True)).fit() (sm.add_constant(,hasconst=True)代表增加截距b,也就是常数项,.fit代表拟合模型) 如果不想增加常数项,可以直接sm.OLS(因变量Y,自变量X).fit() OLS Regression Results ============================================================================== Dep. Variable: stock_return R-squared: 0.254 Model: OLS Adj. R-squared: 0.251 Method: Least Squares F-statistic: 82.56 Date: Wed, 10 Sep 2025 Prob (F-statistic): 3.78e-17 Time: 14:58:02 Log-Likelihood: 686.09 No. Observations: 244 AIC: -1368. Df Residuals: 242 BIC: -1361. Df Model: 1 Covariance Type: nonrobust ================================================================================= Dep. Variable:因变量(被解释变量),这里是 stock_return(股票收益率)。 Model:模型类型,这里是 OLS(普通最小二乘)。 Method:拟合方法,这里是 Least Squares(最小二乘法)。 No. Observations:样本数量,这里是 244。 Df Residuals:残差自由度,样本数减去自变量数。 Df Model:模型自由度,自变量数量。 R-squared:决定系数,表示模型解释了多少因变量的波动(0~1,越高越好)。 Adj. R-squared:调整后的 R²,考虑了变量数量,防止过拟合。 F-statistic:F 检验统计量,检验模型整体有效性。 Prob (F-statistic):F 检验的 p 值,越小越显著。 AIC/BIC:信息准则,用于模型优劣比较,越小越好。 Log-Likelihood:对数似然值,衡量模型拟合优度。 一般主要观察指标是可决系数:R-squared 解释变量在多大程度上解释了被解释变量。例如在上面的回归结果中,R2是25.4%,那么中国平安这只股票的涨跌幅波动可以被大盘的涨跌幅波动解释掉25.4%。 ================================================================================= coef std err t P>|t| [0.025 0.975] --------------------------------------------------------------------------------- const 0.0013 0.001 1.417 0.158 -0.001 0.003 market_return 0.5406 0.059 9.086 0.000 0.423 0.658 Covariance Type: nonrobust ================================================================================= coef:回归系数 const:截距项,市场无变动时股票的平均收益率。 market_return:市场收益率的回归系数(即 Beta),衡量股票对市场的敏感度。 std err:标准误,系数估计的不确定性。 t:t 检验统计量,系数是否显著不为零。 P>|t|:t 检验的 p 值,越小越显著(通常 <0.05 认为显著)。 [0.025, 0.975]:系数的 95% 置信区间。 一般主要观察指标是:coef和P>|t| 观察coef可得 y=0.5406*X+0.0013 观察P>|t|可得0.158>0.05接受原假设,0<0.05拒绝原假设(原假设:市场的涨幅不影响个股的涨幅) 因为上述const接受原假设,所以我改变一下一元方程y=ax,再次做最小二乘回归得到,R-squared=0.258,P>|t| =0,拒绝原假设,y=0.5463x, 也就是说市场涨10%,中国平安平均上涨5.463%。(平均,不是每天,长期来看),中国平安涨幅的波动中,有 25.8% 可以由大盘涨幅的波动解释, 其余波动由其他因素导致。” 但实际计算出来的中国平安日度收益率与真正的收益率还是有较大的差异的,我们把这一部分差异叫作残差。 个股收益率=股票Beta×大盘收益率+残差项 残差项的金融学解释就是中国平安这只股票的收益率不能被大盘收益率解释的那一部分,简单来说也就是中国平安自己的特性带来的收益率。 EX04.py 2.多元线性回归 1.定义 Y = β₀ + β₁X₁ + β₂X₂ + β₃X₃ + ε 单元线性回归以单个解释变量解释一个被解释变量,多元线性回归中的解释变量的数量为两个或两个以上。 2.回归 2.1变量 上证50由50个市值最大的股票组合而成,在2019年年中,上证50前十大权重股分别是:中国平安(601318.SH)、贵州茅台(600519.SH)、招商银行(600036.SH)、兴业银行(601166.SH)、恒瑞医药(600276.SH)、伊利股份(600887.SH)、中信证券(600030.SH)、交通银行(601328.SH)、民生银行(600016.SH)、农业银行(601288.SH)。 在逻辑上,上证50的涨跌可以被这前十大权重股解释很大一部分。因此,针对2019年的行情,我们将上述10个权重股的日度涨跌幅作为解释变量,将上证50的涨跌幅作为被解释变量,进行多元回归。 2.2原假设 检验单个变量时用 t 检验,检验多个变量的联合效应时用 F 检验,这是回归分析中常见的应用场景。单元线性回归(只有一个解释变量)一般主要看t检验,判断该解释变量(自变量)对因变量是否有显著影响。多元线性回归(有多个解释变量)一般主要看F检验,判断整个模型是否显著(即所有解释变量联合起来是否对因变量有解释力)。但每个解释变量的显著性还是要看各自的t检验。 F检验对应一个原假设,多元回归模型中F检验的原假设是回归模型中所有的系数都为零。设多元回归模型的回归系数为bi,共有k个回归系数,那么F检验的原假设公式就是b1=b2...bk=0 2.3主要看的指标 调整后的R-squared:用于对模型中解释变量的个数进行惩罚。在相同的R-squared下,使用了越多解释变量的回归模型,其调整后的R-squared越小。(为了防止过拟合的惩罚) F检验,联合检验说明模型整体是否成立 相关性:data.corr() (说明回归模型是否不可靠,是否存在多重共线性) VIF:方差膨胀系数(Variance Inflation Facto)VIF=1/(1-R的平方) VIF越大,说明该自变量可以被其余自变量解释的力度越大。通常,如果VIF大于5,就可以认为自变量存在较大的多重共线性。 EX05.py金融量化的概率统计基础
RELATED READING
延伸阅读
更多一线实战笔记与深度复盘,助您持续精进