【第65期】连续密度不是单点概率:离散与连续采样、方差和协方差完整实验

发布时间:2026/10/27 1:56:06
【第65期】连续密度不是单点概率:离散与连续采样、方差和协方差完整实验

系列:《从小白到 AI 大模型开发工程师的进阶之路》 技术点:AI-0219 概率分布 主人公:小蓝伞 前置:AI-0103 变量与基本类型 本期产出:独立实验脚本、原始输出、失败样本和验收清单

小蓝伞统计连续浮点样本恰好等于零的次数,发现一次也没有,于是误判采样缺少中心。本期用十万条正态与伯努利样本比较理论量、经验量和真实绘图。 本期按准备环境、运行完整脚本、读取结果和复验失败的顺序完成实践。连续分布的概率通过区间内密度积分得到,密度高度本身不是单点概率。离散变量对各个可能结果赋概率;样本均值、方差和协方差则是从有限观测得到的统计量。 输入均为教学合成数据,不是生产经历。

一、小蓝伞遇到的问题

随机变量定义结果到数值的映射,分布定义这些数值怎样出现。离散伯努利只有零和一两种结果;正态模型描述连续区间。计算机输出浮点数是有限精度记录,但讨论连续模型的单点概率时谈的是数学假设。测量精度形成的小区间与精确数学点不是同一个事件。

二、先给结论

连续分布的概率通过区间内密度积分得到,密度高度本身不是单点概率。离散变量对各个可能结果赋概率;样本均值、方差和协方差则是从有限观测得到的统计量。

  • 推荐:位置、离散程度和联合变化分别报告;随机实验固定种子并写样本量;展示密度时说明分箱和面积。

  • 不推荐:省略输入语义和指标口径,仅凭单次输出扩大结论。

  • 成功判据:区间[-1,1]经验频率在0.67到0.70之间;概率0全零;非法概率必须抛出ValueError。

三、任务与数据契约

项目本期约定
输入完整代码构造的合成数据
输出数值、图表或异常及原始日志
环境Windows 11、Python 3.13.9,依赖见记录
不在范围真实业务、生产容量和跨设备性能

四、前置准备

在新目录保存工作目录中的实验.py为main.py,再执行:

python -m venv .venv .\.venv\Scripts\python.exe -m pip install numpy==2.3.5 matplotlib==3.10.6 .\.venv\Scripts\python.exe main.py

本次实际执行使用 Windows 11、Python 3.13.9;代码只生成合成输入,不依赖账号、令牌或隐藏文件。

五、核心原理

  • 离散概率:对可数结果赋予概率。

  • 概率密度:连续区间概率的积分被积函数。

  • 期望:按分布权重计算的理论平均。

  • 方差:相对均值的平方偏离期望。

  • 协方差:两个变量中心化乘积的期望。

密度图纵轴怎样解释

直方图按密度归一化时,面积近似区间概率,高度本身可以超过一。图中分箱宽度改变后高度也可能改变,所以不能拿某个柱子的高度直接当概率。伯努利柱图则展示两个结果的频率,两个高度相加约为一。本文将两种图并排导出,帮助确认纵轴口径。

方差和协方差的分母

方差衡量对均值的平方偏离,本例数组方差默认按总体分母计算;协方差矩阵使用样本约定。两个输出若分母不同,小样本就会出现可见差异,记录时应明确自由度。协方差的单位为两个变量单位的乘积,因此不同尺度之间直接比较大小也会误导。

共同变化不等于相同原因

第二个变量由第一变量两倍加噪声构造,因此协方差约为二点零零八六。这个合成关系有明确生成式,不能把它当作真实数据里的因果证明。真实场景可能存在第三变量、选择偏差和时间顺序问题;一个大的相关或协方差只能告诉我们需要继续调查。

六、完整项目

完整脚本位于_work/第65期-概率分布/实验.py。它包含正常、边界和失败断言;复制到main.py后可独立运行。

import numpy as np import matplotlib matplotlib.use("Agg") import matplotlib.pyplot as plt plt.rcParams["font.family"] = "Microsoft YaHei" plt.rcParams["axes.unicode_minus"] = False rng=np.random.default_rng(20261013) continuous=rng.normal(0,1,100000) discrete=rng.binomial(1,.3,100000) paired=np.column_stack([continuous,2*continuous+rng.normal(0,.5,len(continuous))]) print(f"normal mean={continuous.mean():.6f} variance={continuous.var():.6f} interval[-1,1]={np.mean(abs(continuous)<=1):.6f}") print(f"bernoulli mean={discrete.mean():.6f} theoretical_mean=0.3 theoretical_variance=0.21") print("covariance",np.round(np.cov(paired,rowvar=False),4).tolist()) print("连续样本恰等于0的次数",int(np.sum(continuous==0))) assert 0.67<np.mean(abs(continuous)<=1)<.70 assert np.all(rng.binomial(1,0,10)==0) try: rng.binomial(1,1.2,10) except ValueError: print("拒绝概率1.2") fig,axes=plt.subplots(1,2,figsize=(8,3)) axes[0].hist(continuous,bins=40,density=True) axes[0].set(title="正态分布密度",xlabel="数值",ylabel="概率密度") axes[1].bar([0,1],[np.mean(discrete==0),np.mean(discrete==1)]) axes[1].set(title="伯努利结果概率",xlabel="结果",ylabel="概率") fig.tight_layout();fig.savefig("distribution.png",dpi=150) ​

实现与结果的进一步核验

怎样验证随机数而不要求相等

单次经验均值不应被要求恰等理论期望,否则正确采样也会频繁失败。本篇使用宽于合理抽样波动的区间频率断言,检查是否明显违背模型;重复种子可研究波动但不能证明生成器全部统计性质。区分功能验收与统计验证,避免用一个极窄阈值把随机波动误报为库错误。

伯努利的期望与方差手算

伯努利取一概率为零点三、取零概率为零点七,期望为零点三,平方值仍等于自身,所以方差为零点三减零点零九等于零点二一。经验均值约零点三零一六只是有限样本估计。这个手算例子把定义连接到输出,也提醒读者均值与方差即便单位相似,作用仍不同。

协方差矩阵怎样读

对角元素描述各变量方差,非对角描述共同变化。本例第二变量由两倍第一变量加独立噪声生成,所以方差和协方差具有可解释关系。若换单位,矩阵条目会按比例变化;比较跨字段关系常需要另看标准化相关系数,但标准化不会自动证明因果,仍要核对数据生成与选择。

绘图参数也是证据

连续直方图使用四十箱并设置密度归一化,离散柱图使用结果零与一的频率。两图纵轴标签不同是刻意设计,不应为视觉一致改成同一个词。导出文件来自脚本,图面与正文使用同一批样本。读者重跑时可检查分箱改变后的形状,但不能把形状变化归结为原分布真的变化。

现实数据的限制

正态模型和伯努利模型只是教学对象。真实数据可能重尾、截断、相关或随时间漂移,同样均值方差不保证同样尾部风险。统计摘要不足时应保留分布图、分位数和采样窗口。下一期条件概率需要先定义总体,避免把不同来源频率拼成一个没有共同分母的后验。

七、可复现失败案例

合法概率0生成全零;非法概率1.2被拒绝;把密度高度当概率属于解释错误。 这是构造的教学失败,不是线上事故。复现顺序是保存输入、运行脚本、记录输出、只改一个条件后重跑。修复后必须同时检查正常样本,不能用默认值掩盖错误。

八、实验设计与实际结果

区间[-1,1]经验频率在0.67到0.70之间;概率0全零;非法概率必须抛出ValueError。 本次已经执行,退出状态为0;完整输出见工作目录。控制变量、样本量和参数写在脚本中。

normal mean=-0.000451 variance=1.002288 interval[-1,1]=0.681000 bernoulli mean=0.301600 theoretical_mean=0.3 theoretical_variance=0.21 covariance [[1.0023, 2.0086], [2.0086, 4.2744]] 连续样本恰等于0的次数 0 拒绝概率1.2

数字怎样对应本期机制

固定种子下正态经验均值约负零点零零零四五一,方差约一点零零二二八八,落在负一到一的比例为零点六八一。伯努利经验均值零点三零一六,接近设定概率零点三。接近不是完全相等,有限样本有波动;这组结果只验证采样和统计口径,不保证每次换种子得到同样末位。

九、常见问题与排查顺序

先检查对象定义,再检查输入、形状、分母、索引或时间点,最后检查实现与环境。概率为零的伯努利样本全为零,这是合法边界;概率一点二被生成器拒绝,是输入契约失败。连续样本恰等于零次数为零不构成生成失败,应改查区间频率和分布形状。下一期贝叶斯会在同一概率口径下组合先验与似然,不能把密度、概率和计数混作分母。 不要把一次成功当成稳定性证明,也不要把技术指标直接换成业务价值。

十、系统与依赖差异

本次只在记录的 Windows 和库版本运行。浮点末位、计时、字体、编码和表格默认行为可能跨环境变化;未执行部分保持待核验。

十一、验证清单

  • 执行脚本,核对退出状态与本篇实际输出。

  • 重跑本篇正常、边界和失败样本,检查数值或拒绝结果。

  • 更换数据时重新检查对象、分母和评价条件。

  • 验收判据:区间[-1,1]经验频率在0.67到0.70之间;概率0全零;非法概率必须抛出ValueError。

十二、面试题与追问

  1. 离散概率在本期是什么?

    答:对可数结果赋予概率。 随机变量定义结果到数值的映射,分布定义这些数值怎样出现。离散伯努利只有零和一两种结果;正态模型描述连续区间。计算机输出浮点数是有限精度记录,但讨论连续模型的单点概率时谈的是数学假设。测量精度形成的小区间与精确数学点不是同一个事件。

    追问:改变这个条件后,哪一个输出或失败判据应该变化?

  2. 概率密度在本期是什么?

    答:连续区间概率的积分被积函数。 直方图按密度归一化时,面积近似区间概率,高度本身可以超过一。图中分箱宽度改变后高度也可能改变,所以不能拿某个柱子的高度直接当概率。伯努利柱图则展示两个结果的频率,两个高度相加约为一。本文将两种图并排导出,帮助确认纵轴口径。

    追问:改变这个条件后,哪一个输出或失败判据应该变化?

  3. 期望在本期是什么?

    答:按分布权重计算的理论平均。 固定种子下正态经验均值约负零点零零零四五一,方差约一点零零二二八八,落在负一到一的比例为零点六八一。伯努利经验均值零点三零一六,接近设定概率零点三。接近不是完全相等,有限样本有波动;这组结果只验证采样和统计口径,不保证每次换种子得到同样末位。

    追问:改变这个条件后,哪一个输出或失败判据应该变化?

  4. 方差在本期是什么?

    答:相对均值的平方偏离期望。 方差衡量对均值的平方偏离,本例数组方差默认按总体分母计算;协方差矩阵使用样本约定。两个输出若分母不同,小样本就会出现可见差异,记录时应明确自由度。协方差的单位为两个变量单位的乘积,因此不同尺度之间直接比较大小也会误导。

    追问:改变这个条件后,哪一个输出或失败判据应该变化?

  5. 协方差在本期是什么?

    答:两个变量中心化乘积的期望。 第二个变量由第一变量两倍加噪声构造,因此协方差约为二点零零八六。这个合成关系有明确生成式,不能把它当作真实数据里的因果证明。真实场景可能存在第三变量、选择偏差和时间顺序问题;一个大的相关或协方差只能告诉我们需要继续调查。

    追问:改变这个条件后,哪一个输出或失败判据应该变化?

十三、工程判断与下一期

位置、离散程度和联合变化分别报告;随机实验固定种子并写样本量;展示密度时说明分箱和面积。 下一期为AI-0220 条件概率与贝叶斯。本期保留的契约和反例会继续使用。

图:离散概率与连续密度。由本篇实际输入和脚本绘制,核对轴范围、图例和分组后再解释。

从本地证据到实际决策

期望不一定等于典型值

偏斜或多峰分布中平均数可能落在很少观测的位置,所以不能用均值代表全部分布。正态教学样本恰好较对称,并不使这个规则普遍成立。实际报告可以同时保留中位数、分位数和直方图,描述总体位置与尾部;新增指标前写清它回答的问题,避免堆数字。

联合分布与独立条件

两变量协方差为零不自动代表独立;非线性关系也可能没有线性协方差。独立是联合分布能按边际分解的更强条件。本例第二变量由第一变量构造,明确相关,因此只是演示共同变化;未进行一般独立性检验,不把小例推广到其他分布。

采样规模与误差讨论

样本数量变大通常能改善相应估计的随机精度,但需要独立或合适的相关结构假设。连续时间序列的十万点不一定有十万独立信息。固定种子重跑相同序列是复现,改变种子做多次估计才用于观察模拟波动,两者目的不同,不要把重复同一输出称为重复采样。

密度面积怎样核对

连续直方图柱高乘箱宽后求和约为一,计数直方图则计数求和等于落入范围的样本数。范围截断会排除部分尾部,核对时应考虑是否重新归一化。读者画图后先检查单位和面积,再据此讨论形状,不能凭图面标签自行猜计算方式。

概率参数的边界契约

概率必须在零至一,标准差必须非负,样本数量要合法。每个生成器有独立约定,应在接口层记录并处理异常。合法退化分布不代表生成错误,如伯努利概率零或方差零的常数结果。真实采集模型若退化,可能需要业务报警,但这与数学合法性又是不同层次。

官方资料

  • Statistical functions (scipy.stats) — SciPy v1.18.0 Manual:用于核对本期技术机制或接口,查阅日期为2026-10-13。

适用边界

只覆盖脚本中的合成数据、明确假设和已记录版本。真实业务需追加授权、监控、资源预算、回滚和领域验证。