Проблема немецкого танка с компьютерным моделированием

Это Вторая мировая война, и вы специалист по обработке данных (или статистик, как их тогда называли) для союзных войск. Приближается день Д, и нужно прикинуть, сколько танков у немцев. Вы знаете, что у немцев есть последовательная система нумерации (1, 2,…, n), и вы знаете серийные коды небольшой выборки захваченных немецких танков. Завышение оценки означает, что ресурсы, потраченные на подготовку союзников к Дню «Д», не пойдут на сражения в других географических регионах, а занижение оценки может означать резню на берегах Нормандии. Крайне важно, чтобы вы правильно поняли это число. Как вы подойдете к решению этой проблемы?

Найдите минутку и подумайте - статистики во время Второй мировой войны не могли найти ответ!

В этой статье я расскажу:

  • Более глубокое погружение в исторический контекст немецкой танковой проблемы.
  • Как историческое решение работает с интуитивно понятными иллюстрациями.
  • Эксперименты по компьютерному моделированию и код для дальнейшего доказательства его эффективности.

Это увлекательный пример того, как статистика спасает жизни. Я умоляю читателя не торопиться и понять, как простые логические рассуждения смогли превзойти изощренные методы правительственной разведки. Особенно в то время, в котором мы живем, найдя момент, чтобы скрыть «отчеты разведки» от СМИ, и потратив немного больше времени на данные и некоторый здравый смысл, можно проложить более чистый, логически управляемый путь к истине.

Более глубокое погружение в историю проблемы

Во время Второй мировой войны союзники с готовностью признали, что немецкие танки по характеристикам намного превосходили их собственные. Единственный способ для союзников взять верх над немцами - это разведка и внезапность. Германия была известна своими мощными танками - именно их мощь помогла Германии захватить Европу. Количество танков, которые производила Германия, сыграло решающую роль в том, как союзники готовились к высадке в Нормандии.

Командование союзников считало, что танки Panzer V (Panther), которые были замечены в Италии, с их высокоскоростными длинноствольными 75-мм пушками / L70, были необычными тяжелыми танками и их можно будет увидеть только на севере Франции в небольшом количестве. Незадолго до дня «Д» ходили слухи, что использовалось большое количество танков Panzer V.

Чтобы определить достоверность слухов, союзные силы сначала пытались использовать обычные методы сбора разведданных, такие как слежка, перехват и расшифровка сообщений, а также допрос насильственно захваченных врагов.

Используя эти методы, союзники подсчитали, что Германия производила около 1400 танков каждый месяц с июня 1940 года по сентябрь 1942 года. Но что-то казалось неправильным ...

Силы Оси использовали 1200 танков в Сталинградской битве, которая длилась восемь месяцев и унесла жизни двух миллионов человек. Оценка в 1400 просто не казалась правильной, но все обычные разведывательные данные указывали на нее.

Скептически оценив оценку разведки, союзники заметили на трофейных немецких танках нечто ценное - серийные номера. При расследовании выяснилось, что серийные номера последовательные, без пробелов. Приказав солдатам на поле боя вернуть серийные номера танков, ученые-аналитики союзников смогли создать математическую оценку того, сколько танков производили немцы, и в период с лета 1940 по осень 1942 года они составили 255 танков в месяц. Во время войны, внутренние данные Германии оценили производство в 256 танков в месяц - всего на один больше, чем предполагалось.

Как они это делают?

Историческое решение

Для расчета количества танков у немцев союзники использовали следующую формулу:

n представляет количество резервуаров , m представляет наибольший серийный номер из образца (максимум образца), а k представляет количество серийных номеров в выборка (размер выборки).

Как мы пришли к этой формуле?

Пусть q представляет наименьшее значение в нашей выборке. Предполагая, что каждый из наших образцов между q и m равномерно распределен (производное от предположения, что серийные коды взяты из равномерного распределения), тогда n, количество немецких танков, должно быть примерно на таком же расстоянии от m, как m от ближайшего серийного номера под ним.

Над этой идеей стоит подумать.

В качестве примера предположим, что у нас есть пять серийных кодов: 1, 3, 4, 6 и 10. Кажется очень маловероятным, что все эти коды будут взяты из равномерного распределения диапазона 0 до оценки разведки в 1100 танков. Вместо этого, если бы эти серийные коды действительно были взяты из равномерного распределения, диапазон казался бы намного меньше.

Мы знаем, что у немцев не менее 10 танков. С помощью визуального представления вы можете понять, является ли верхняя граница разумной или нет.

Нет, верхняя граница не кажется 15 - было бы более вероятно, что серийные коды, которые мы получили, были бы более вкрапленными, и мы могли бы получить серийный код в диапазоне от 12 до 15.

11 кажется немного более разумным:

Откуда эта интуиция? Он исходит из идеи, что при равномерном распределении случайным образом выбранные числа должны выбираться по всему диапазону, поэтому не должно быть много наблюдений выше самой большой выборки или ниже самой низкой выборки в однородном распределении. Следуя этой идее, мы можем сделать вывод, что при равномерном распределении расстояние между последовательными точками примерно одинаково.

Тогда проблема просто сводится к следующему: «каково среднее расстояние между известными последовательными точками данных?» Это просто m, наибольший серийный код образца, деленный на k, количество серийных кодов в образце минус один. Минус здесь, потому что сами наблюдения не учитываются при вычислении разрыва между наблюдениями.

Есть и другие методы определения среднего расстояния, эта формула проще других. Важно то, что это свойство проявляется в однородных распределениях.

Давайте попробуем эту идею с серийными кодами 3, 46, 86, 119 и 142.

m / k - 142/5, или 28,4. Вычитание единицы дает 27,4. Добавляя этот промежуток к м, получаем 142 + 27,4 = 169,4, или 169 резервуаров.

Вот что и получили статистики союзников:

Поразительно, как простая формула смогла превзойти комбинированные разведывательные оценки из сложных расшифровок и собранных доказательств.

Компьютерное моделирование

Если вы такой же фанатик компьютерного моделирования, как я, вы никогда не будете в этом по-настоящему уверены, пока не проведете несколько компьютерных симуляций. Этот сценарий легко реализовать на Python.

В этом эксперименте истинное количество произведенных немецких танков, n, было установлено на уровне 122 (количество танков, указанных в немецких отчетах в июне 1940 года), а k значение установлено на 30 последовательных кодов, консервативная оценка размера выборки союзников.

Теперь результаты - через 1000 экспериментов с немецкими танками, в которых новый набор полученных серийных кодов длиной k был случайным образом сгенерирован для каждого, а историческая формула использовалась для расчета прогнозируемого количества немецких танков. выпускались танки. График ниже показывает абсолютную разницу между фактическим количеством немецких танков и прогнозируемым значением, среднее значение которого составляет 2,8.

Чтобы лучше понять формулу, мы можем наблюдать ее производительность как две инструментальные переменные - количество произведенных настоящих немецких танков (верхняя граница равномерного распределения, из которого берутся случайные значения) и количество полученных серийных кодов (размер выборки). . Значение каждой ячейки указывает среднюю абсолютную ошибку формулы в 1000 экспериментов с каждым из параметров x и y.

Результаты имеют смысл - по мере увеличения верхней границы требуется больше серийных кодов, чтобы получить более высокую точность.

Код Python для построения графиков и проведения экспериментов можно найти на Kaggle здесь.

Заключение

Проблема немецких танков представляет собой не только чрезвычайно важное историческое значение, но и реальный пример несостоятельности обычных разведывательных отчетов и способа осмысления данных. Он применим не только в военное время, но и в том, как вы ведете свое поведение, решения и мысли.

Когда вы сталкиваетесь с данными, подумайте: из какого дистрибутива они взяты? В зависимости от распределения, должны ли вы быть такими же напуганными, как полагает «обычный интеллект»?