Собесов

zadachi_ds: German tank problem — оценка N по наблюдаемой выборке

Статистика и теорверТочечные оценкиСложнаяMiddle

Условие

Армия захватила несколько танков противника с серийными номерами 17, 53, 88, 142, 207. Серийники присваиваются последовательно от 1 до N (где N — общее число произведённых танков). Оцените N.

Сравните оценки:

  1. Метод моментов (N̂ = 2 · X̄ − 1).
  2. MLE (N̂ = max(X_i)).
  3. UMVUE (несмещённая с минимальной дисперсией): N̂ = max(X) · (k+1)/k - 1.

(k — размер выборки)

Решение

Постановка

X_i ~ DiscreteUniform(1, N) независимо. Цель — оценить N по выборке размера k = 5: (17, 53, 88, 142, 207).

1) Метод моментов

E[X] = (1 + N) / 2N = 2·E[X] − 1.

Подставляем :

X̄ = (17 + 53 + 88 + 142 + 207) / 5 = 507 / 5 = 101.4
N̂ = 2 · 101.4 − 1 = 201.8

Проблема: оценка может быть меньше наблюдаемого максимума 207 — невозможно. Метод моментов плох для данной задачи.

2) MLE

Функция правдоподобия:

L(N) = (1/N)^k    если N ≥ max(X)
       0          иначе

Максимум по N → минимальный допустимый N → N̂_MLE = max(X) = 207.

Но MLE смещена: E[max] ≈ N · k / (k+1), то есть систематически занижает.

3) UMVUE

Несмещённая оценка с минимальной дисперсией для дискретного uniform:

N̂ = max(X) · (k+1)/k − 1
  = 207 · 6/5 − 1
  = 207 · 1.2 − 1
  = 248.4 − 1
  = 247.4

Бизнес-ответ: ≈ 247 танков.

Доказательство несмещённости (через max)

Для дискретного uniform на {1, ..., N} распределение максимума:

P(max ≤ m) = (m/N)^k    (вероятность всех ≤ m)
P(max = m) = (m/N)^k − ((m-1)/N)^k
E[max] = N · k/(k+1) + O(1)

Откуда:

E[max · (k+1)/k - 1] = N · k/(k+1) · (k+1)/k - 1 = N − 1

Уточнение на «−1» делает оценку точно несмещённой при равномерной discrete distribution.

Доверительный интервал

Для верхнего значения N:

P(max < c · N) = c^k     при c < 1

P(N > max/c) = c^k.

95% CI: N ∈ [max(X), max(X) / α^(1/k)] где α = 0.05 для верхнего конца.

upper = 207 / 0.05^(1/5) = 207 / 0.55 ≈ 376
lower = 207

С 95% уверенностью N ∈ [207, 376].

Симуляция

import numpy as np
rng = np.random.default_rng(0)
 
def estimate_n(k, N_true, n_sim=10000):
    estimators = {'MoM': [], 'MLE': [], 'UMVUE': []}
    for _ in range(n_sim):
        x = rng.choice(np.arange(1, N_true+1), size=k, replace=False)
        estimators['MoM'].append(2*x.mean() - 1)
        estimators['MLE'].append(x.max())
        estimators['UMVUE'].append(x.max() * (k+1)/k - 1)
    for name, est in estimators.items():
        bias = np.mean(est) - N_true
        std  = np.std(est)
        print(f"{name:6}  bias = {bias:+.1f},  std = {std:.1f}")
 
estimate_n(k=5, N_true=250)
# MoM    bias ≈ 0      std ≈ 64
# MLE    bias ≈ -42    std ≈ 35
# UMVUE  bias ≈ 0      std ≈ 42

UMVUE — лучшая из несмещённых; MLE смещена, но иногда полезна.

Историческая справка

Во время WWII союзники по этой методике (с поправкой на немецкие SN-схемы) оценили месячное производство немецких танков в ~256 штук/месяц. Реальная цифра по архивам Третьего рейха = ~255. Разведка давала оценки в 1500-2000 — в 7-10 раз выше.

Подводные камни

  1. Метод моментов даёт N̂ < max(X) — патологически неверно. Метод неприменим к данной задаче.
  2. MLE смещена — почти всегда занижает.
  3. max(X) · (k+1)/k − 1 — корректная формула; -1 иногда забывают (для continuous uniform нет, для discrete есть).
  4. Допущение, что номера присваиваются последовательно с 1: если есть пропуски / non-uniform — формула неверна.
  5. Sampling without replacement: формула меняется, но для k ≪ N разница пренебрежима.
  6. Censoring: если кадры выбиваются с большей вероятностью при больших N (бой более активный) — sampling смещён.
  7. Дискретное vs непрерывное uniform — разные поправки. В continuous: N̂ = max(X) · (k+1)/k, без −1.

Эталонный ответ

UMVUE: N̂ = max(X) · (k+1)/k − 1 = 207 · 6/5 − 1 = 247.4 ≈ 247.

Метод моментов даёт 201.8 — невозможно (меньше max). MLE = 207 — смещена вниз. UMVUE — несмещённая, оптимальная.

95% CI: [207, 376].

Применение: оценка размера популяции по серийным номерам, дискретная uniform-задача. Реальный кейс — WWII (German tank problem), оценка немецкого военного производства по захваченным номерам.

Хочешь увидеть разбор?

Зарегистрируйся бесплатно — откроется развёрнутое решение этой задачи и ещё 4 на выбор.

Зарегистрироваться и увидеть разбор
Уже есть аккаунт? Войти