在二战时期,军事情报的关键在于获取敌方装备的数量。当时盟国军队希望能够准确估计德军所使用的坦克的数量。
具体有两种不同的实现方法:第一种是使用传统的情报窃取。派遣情报人员利用各种渠道获取德军坦克数量情报。第二种是使用统计学的方法来进行估计。统计学的方法最后被证实比传统情报收集的方法要精确得多。在这里,传统情报手段与统计学的估计方法协同合作对德国坦克的数量进行了精确的估计。
统计学的方法不仅用在估计德国坦克的数量上,而且更多的帮助盟军了解了德国工业产量。其中包括:工厂的数量、工厂重要性的排序、供应链的长度、产量的变化和资源的使用与分布等等。比方天然橡胶的使用。
传统的盟军情报收集可以估计德国的坦克产量:从1940年6月份到1942年9月份,每月产出1400辆坦克左右。但是通过统计学方法估计的产量为平均256辆每月。战争结束后,从捕获的德国产量记录中可以看到每月产量的平均值为255。
下面的表格中提供了统计估计数量与盟军情报和德国产量记录之间的比较关系:
具体来讲,在战场上盟军缴获并击毁一部分的德国坦克,他们发现这些德国坦克是经过编号的,而且从大到小所有的编号是连续的。当然如果1 是战场上德国坦克的最小编号,所有的坦克进行逐一编号以后,最大的编号就应该是战场是德国坦克数量的总数。
比如说,一次战斗中随机的击毁了四辆坦克。这四辆坦克的编号分别为: 2, 6 ,7, 14。 我们可以用这4俩坦克的编号来估计起初在战场上德国坦克的总数。其估计值为16.5。 也就是用 14× 1+ −1=16.5 。
41
下面我们来看R 是如何进行以下的计算的: #German Tank Problem #N~m(1+1/k)-1
#captured tank id {2,6,7,14}
m=14
14 是观测到的最大的坦克编号。把它放在M 变量里面。 k=4
K 是观测到编号的总数。因为只有4辆坦克被击毁。盟军只清楚这4辆坦克编号的状况。 Nhat=m*(1+1/k)-1 Nhat
变量NHAT 就是我们估计的坦克总数。它是使用m*(1+1/k)-1 公式求出来的。
通过上面的结果可以看出估计的坦克数量是16.5,但是这个估计是有误差的。我们只能说真正的坦克总数应该是在16.5 左右,所以我们就要用置信区间的方式,把左右的变化度体现出来。通过置信区间我们可以结论,有百分之几信心,真正的坦克数量是出现在这个区间之中的。下面的R 命令计算出了坦克总数的95%的置信区间。 #95% Confidence Interval #[m,m/p^1/k] p=1-.95
因为是建立95%置信区间,上面P 变量的值就要使用1-0.95 计算出来。
upper=m/p^(1/k)
UPPER 变量代表了区间的上限,计算公式是:m/p^(1/k) ,与上面相同,M 代表的是观测到的最大编号,K 代表的是被击毁的坦克的数量。 lower=m
LOWER 变量代表了置信区间的下限,等于m,因为战场是最少有14量坦克。 cbind(lower,upper)
CBIND 命令把上限和下限捆绑在一起同时进行输出。
输出的置信区间是在14 和29.6 之间,也就是说战场上德国坦克的总数有95%的概率是出现在这个区间之中的。
读者会问,R 语句中使用的计算公式是从何处推导而来的 。答案是,产生以上公式的统计理论被称为‘一致最小变异不偏估计量’或‘无偏见最佳估计’ (UMVUE)。在这里就不具体介绍。
代码如下:
关于德国坦克问题,其重要性在于它体现了传统统计学理论与贝叶斯理论的区别。所以在将来对贝叶斯理论阐述的作品中我们会重新回顾德国坦克问题使用贝叶斯分析。
因篇幅问题不能全部显示,请点此查看更多更全内容