statsmodels qqplot使用fit=True与scipy拟合参数绘图结果不一致
问题原因说明
这不是操作错误,而是两种调用方式的数据处理逻辑完全不同:
第一种方式:
直接使用拟合好参数的正态分布生成理论分位数,样本分位数采用原始sample的取值。所以图中y轴是原始样本的范围(0-2),x轴是拟合正态分布对应的分位数,呈现的是「原始样本vs拟合正态分布」的QQ图。第二种方式:
fit=True时,statsmodels不仅会调用dist.fit()拟合正态参数,还会自动对样本做标准化转换:将原始样本减去拟合的均值loc,再除以拟合的标准差scale(即(sample - loc)/scale),之后用标准正态分布(loc=0, scale=1)的理论分位数做对比。此时y轴是标准化后的数据范围(约-1.5到1.5),呈现的是「标准化样本vs标准正态分布」的QQ图。
如果想要让第二种方式的结果和第一种一致,statsmodels没有直接参数关闭标准化逻辑,建议直接使用第一种方式绘制「原始样本vs拟合正态」的QQ图;第二种方式则适合快速验证样本是否近似标准正态分布。
内容的提问来源于stack exchange,提问作者makcymal
相关产品推荐
相关产品推荐

