【德国坦克问题】
第二次世界大战期间，盟军情报部门用统计学方法准确地估计了德国坦克的生产数量，如豹式坦克。
在统计学理论的估计中，用不放回抽样来估计离散型均匀分布最大值问题中著名的德国坦克问题（German tank problem），它因在第二次世界大战中用于估计德国坦克数量而得名。
这些分析说明了频率推断和贝叶斯推断之间的不同。
基于“单个”样本估计的样本总数各有不同，而在“多个”样本的基础上估计则是现实生活中一个很有意义的估计问题，它的答案很简单，但并不那么明显。
== 范例 ==
假设某个情报人员已经发现了辆坦克，其序列号分别为2、6、7、14，观测到的最大的序列号为。坦克未知的总数设为N。
按“频率论”方法的估算公式，计算出坦克总数为：
而“贝叶斯”分析会给出一个估计坦克数量的概率质量函数，如下所示：
从中，我们可以估计坦克数量：
这个分布的偏度为正，因为其中有一个事实，即至少有14辆坦克。
== 历史上的问题 ==
豹式坦克被装载运输至前线，摄于1943年。
在战争的过程中，西方盟国一直在努力确定德国的生产速度，并以两种主要方式得到这个数据：常规情报收集和统计估计。大部分情况下，统计估计的可信度很大程度上决定于常规情报收集。而有时常规情报收集会和统计估计一起结合使用，如在D日前夕估计豹式坦克的生产速度。
盟军指挥机构已经注意到了出现在意大利的五号坦克（豹式坦克），速度快，装备有75 mm/L70长管战车砲，是很不寻常的重型坦克，但在法国北部编号就很小，就和虎I坦克在突尼斯那样。由于谢尔曼坦克在对阵三号坦克和四号坦克时表现良好，美国陆军对它非常自信，以至于迫不及待地希望与他们相遇#tag:ref|一份1943年11月的装甲地面部队政策条款中这么说：“不同意让有限数量的坦克携带90毫米战车砲(M3战车砲)，原因如下：M4坦克被广泛誉为当今战场上最好的坦克……在面对德国六号坦克（虎式坦克）时没有必要担心我们的部队。T26坦克可能就没有这个基础，除了坦克与坦克对决——而这既不合理，也没必要。”|group=N。就在D日的不久前，有消息称德国手中有大量的五号坦克。
为了确定这种说法的真实性，盟军要尝试估计正在生产坦克的数量。为此，他们要使用被缴获或被摧毁的坦克的序列号。他们主要使用变速箱的号码，因为其为两个完整的序列。底盘和发动机号码也有使用，但它们的编号规则比较复杂。各种其他的零件用来对分析结果进行交叉检查。对轮胎也做了类似的分析，其上观察到了顺序编号（即1、2、3、……、N)。p=?
对坦克车轮的分析产生了对使用中的车轮模具数量的估计。在与英国车轮制造商讨论过后，他们估计了这么多的模具可以生产多少车轮，进而是每个月可生产的坦克数量。对两辆坦克（每辆32个车轮，总计64个车轮）车轮的分析的结果是1944年2月的生产数量估计在270左右，大大超出此前预期。
德国战后公布的记录显示，1944年2月一个月的生产量是276辆pp=82–83。统计方法结果的精确度是常规情报收集方法所远远不能达到的，而“德国坦克问题”这个词也成为了这种统计分析问题的标志。
估计产量并不是这种序列号分析的唯一应用。它也用于探查更多德国生产的信息，包括工厂数目、工厂的相对重要性、供应链长度（基于生产和使用之间的滞后程度）、生产工艺的改变、及对诸如橡胶等资源的使用。
=== 具体数据 ===
根据常规盟军情报的估计，德国在1940年6月和1942年9月之间，每月大约能生产1,400辆坦克。将缴获坦克的序列号代入下文的公式，可计算出每月246辆。战后，从阿尔伯特·斯佩尔所管辖的部门缴获的德国生产记录显示，实际数目是245辆。
某些特定月份的估计如下：p=89
=== 类似分析 ===
统计方法精确地估计了V-2火箭的生产。
在二战期间，类似的序列号分析也在其他军事装备上应用过，其中最成功的属V-2火箭。pp=90–91
二战期间，德国情报部门分析了苏联军事装备工厂，朝鲜战争期间苏联装备工厂也被分析过。苏联在二战期间也估计过德国坦克的生产数。2008
20世纪80年代，一些美国人被获准进入以色列的梅卡瓦坦克的生产线。生产编号是分类过的，但水箱上有序列号，可以用来估计生产量。1994
该公式在非军事中也有使用，如估计Commodore 64计算机的总数，其结果（1.25亿）与官方数字相当匹配。
=== 应对措施 ===
为了防止序列号分析，可以不使用序列号，或者减少可用的辅助信息。此外可以使用抗密码分析的序列号，最有效的方法是从比生产物品数量大得多的列表中随机选择一个号码，之后就不再使用（一次性密码本），或产生随机数后检查是否在已分配编号列表上；编号可能会发生碰撞，除非编号可能的位数数目在生产物品数字位数的两倍以上（其中序列号可以以任何数为底）；参见生日问题efn|如在生日攻击中论述的那样，如果从H的可能输出中选择，在1.25√H次后预期就会发生一次碰撞。平方根对应一半的数字位数。例如，一个100位的数字平方根大致是一个50位的数，无论在何种进制当中。。对此可使用密码学安全伪随机数生成器。要想从序列号中反推生产订单，对所有这些方法都需要一个查找表（或破解加密器），其使序列号变得复杂：如对于加密器，不能一次反推一串序列号，每个号码都必须单独查找，或者是一张生成列表。
另外，还可以对连续的序列号进行加密，同时方便解码，但这会带来潜在的已知明文攻击：即使从任意数开始，明文都会具有特定模式（即数字是有序的）。一个例子是在肯·福勒特的小说《代码为零》中，木星-C火箭的序列号加密规则为：
此处的代码字为Huntsville（省略重复字母），用以获得一张10字的键值表。因此，13号火箭编为“HN”，而24号火箭则是“UT”。
== 频率论分析 ==
=== 最小方差无偏估计 ===
对于点估计（估算出单个总体（）值），最小方差无偏估计（MVUE，或UMVU估计）由下式给出：在连续分布中，没有−1这个术语。
其中m是所观察到的最大序号（样本最大值），而k是观察到的坦克数目（样本容量）1994。注意，一旦观察到一个序列号，它就不再在样本池中，也不会被再次观察到。
其方差为1994
因而标准差约为N/k，即样本间距的（总体）平均大小；注意与前文中的m/k相比。
==== 直观 ====
公式可以直观地理解为样本最大值加上样本中观测值之间的平均间距，由于是最大似然估计，样本最大值被用作初始估计值给定一组特定的观测结果，那么总体最大值最可能是样本最大值，而不是其它更大的值（不可能更小）。，再加上间距以补偿样本最大值的负偏差，以此作为总体最大值的一个估计efn|样本最大值不会超过总体最大值，但可以更小，因此它是一个有偏估计：它往往会“低估”总体最大值。，因而可写成：
可以想象样品在整个区间内均匀分布，而更多的样本就在0至N + 1的区间之外。
如果在0和编号最小样本（样本最小值）之间选一个初始间距，那么样本间的平均间距是；有是因为样本本身在计算样本间距时不应算入。1=例如，2和7的间距为(7 − 2) − 1 = 4，即3、4、5、6。
这一理念确立并推广了最大间距估计的方法。
==== 推导 ====
样本最大值等于m的概率为，其中是二项式系数。
样本最大值的期望值为
因而
为N的无偏估计。
为了表明这是UMVU估计：
* 首先表明样本最大值是总体最大值的充分统计，使用类似于在充分性：均匀分布中具体阐述的方法（但对于德国坦克问题，我们必须排除在样本中出现两次序列号的结果）;
* 接着表明这是一个完整统计。
* 那么根据莱曼–薛费定理，如上纠正过偏差的样本最大值是无偏的，也就是UMVU估计。
=== 置信区间 ===
此外，或者补充来说，对于“点”估计可以进行“区间”估计，如置信区间。基于k个样本落在覆盖全范围p（0 ≤ p ≤ 1）的区间的概率为pk，可以很容易地计算出这些结果（在此段中假设取样后“放回”以简化计算，如果取样后不放回则会夸大概率，区间也将过于保守）。
因此，样本最大值的分位数的抽样分布曲线是x1/k在0到1上的图像：样本最大值m的第p到第q个分位数是区间p1/kN, q1/kN。反转这个结果就产生总体最大值的相应置信区间m/q1/k, m/p1/k。下界非常接近m，所以取p = 5%到100%得到的非对称置信区间更有意义；k = 5时会产生，所以区间为m, 1.82m。
例如，对k = 5，取对称的95%区间，即令p = 2.5%，q = 97.5%，可得 ，所以置信区间大约为。
更一般地，（下偏）95％置信区间为。对于一系列的k，附上UMVU的点估计值（加1以便于阅读）以便参考，可得：
从中可发现：
* 对于较小的样本容量，置信区间很宽，反映了其估计值具有很大的不确定性。
* 范围迅速缩小，反映了“所有”样品远低于最大值的概率呈指数衰减。
* 置信区间呈正偏态，因为N永远不可能低于样本最大值，但却可能比它任意大。
注意，m/k不能天真地用作（或者更确切地说，是(m + m/k − 1)/k）标准差SE的估计值，因为标准差的估计值基于“总体”最大值（一个参数），在这里用估计值来估计误差会造成循环论证。
在某些领域，尤其是在未来学中，以这种方式基于单个样本估计置信区间——考虑到它是一个随机取样的分位数（根据平庸原理）——称为哥白尼原则。这一点特别适用于基于目前的年龄来估计寿命，尤其是末日论将其用于估计人类的预期存活时间。
== 贝叶斯分析 ==
在德国坦克问题中，贝叶斯方法要考虑当观察到的坦克总数等于数、序列号最大值等于数时敌方坦克总数等于数的可信度
为了简便起见，以下将写成。
条件概率的法则会给出
表达式是当敌方坦克总数等于已知的、且观察到了辆敌方坦克时，所观察到的序列号最大值等于的条件概率。其为
其中二项式系数是从总数为的总体中取个样本的方法数。
表达式是在真正观测前，假设观察了k辆坦克后，最大序号等于m的概率。通过合并所有可能的，可以改写为其它形式。
表达式为当已观察到k辆坦克、但序列号尚未统计前坦克总数等于n的可信度。假定它是某种离散均匀分布
上限必须是有限的，因为该函数
的结果为:，而这不是一个概率质量函数。
因而
如果，那么不受欢迎的变量就能从表达式中消失。
当k ≥ 1时，敌方坦克数量分布的众数为m。
当k ≥ 2时，敌方坦克数量“等于”的可信度为
而敌方坦克数量“大于”的可信度为
当k ≥ 3时，的均值有限：
当k ≥ 4时，的标准差有限：
这些公式将在下面推导。
=== 求和公式 ===
下面的等式用二项式系数表示法来简化德国坦克问题中的级数。
这个求和公式有点类似于积分公式
这些公式在k > 1时适用。
=== 一辆坦克 ===
从n辆坦克的总体中随机观察一辆坦克，当m ≤ n时，其序列号为m的概率为1/n，而当m > n时概率是零。用艾弗森括号表示法可写成
这是的条件概率质量分布函数。
当m为定值时，这是一个n的似然函数。
最大似然估计的坦克总数为N0 = m。
总概率为无穷大，因为尾部为一个调和级数数列。
但
其中为调和数。
可信度质量分布函数依赖于先前的限制：
的均值为
=== 两辆坦克 ===
如果观察到了两辆坦克，而不是一辆，那么所观察到的两个序列号中较大值为m的概率为
当m为定值时，这是一个n的似然函数
总概率为
可信度质量分布函数为
中位数满足
所以
因而中位数为
但N的均值为无穷大
=== 多辆坦克 ===
==== 可信度质量分布函数 ====
在序列号{1,...,n}中观测到的最大值为k的条件概率m为
n的似然函数表达式与此相同
k ≥ 2的总概率为一个有限值：
可信度质量分布函数为
互补累积分布函数是N > x的可信度
累积分布函数是N ≤ x的可信度
==== 数量级 ====
敌方坦克数目的数量级为
==== 统计不确定度 ====
统计的不确定度用标准差σ表示，其满足等式
所以
及
方差均值比则为