viewof trialSigma = Inputs.range([0.35, 1.8], {
value: 0.75,
step: 0.01,
label: "Пробное значение σ"
})
viewof nEvents = Inputs.range([250, 4000], {
value: 1200,
step: 250,
label: "Число событий"
})
viewof regenerate = Inputs.button("Новые псевдоданные")
viewof showBest = Inputs.toggle({label: "Показать лучший фит", value: false})
viewof showTruth = Inputs.toggle({label: "Показать истинное σ", value: false})
function randnBook() {
const u = 1 - Math.random();
const v = Math.random();
return Math.sqrt(-2 * Math.log(u)) * Math.cos(2 * Math.PI * v);
}
centers = Array.from({length: 25}, (_, i) => -3 + 0.25 * i)
dxBook = 0.25
xMinBook = centers[0] - dxBook / 2
xMaxBook = centers[centers.length - 1] + dxBook / 2
edgesBook = Array.from({length: centers.length + 1}, (_, i) => xMinBook + i * dxBook)
curveXBook = Array.from({length: 401}, (_, i) => xMinBook + (xMaxBook - xMinBook) * i / 400)
sigmaTrueBook = {
regenerate;
return 0.55 + 0.75 * Math.random();
}
function generateGaussianCountsBook(sigma, total) {
const counts = Array(centers.length).fill(0);
let accepted = 0;
while (accepted < total) {
const value = sigma * randnBook();
if (value < xMinBook || value >= xMaxBook) continue;
const index = Math.floor((value - xMinBook) / dxBook);
counts[Math.max(0, Math.min(centers.length - 1, index))] += 1;
accepted += 1;
}
return counts;
}
countsBook = {
regenerate;
nEvents;
return generateGaussianCountsBook(sigmaTrueBook, nEvents);
}
totalBook = countsBook.reduce((sum, value) => sum + value, 0)
function erfBook(x) {
const sign = x < 0 ? -1 : 1;
const z = Math.abs(x);
const t = 1 / (1 + 0.3275911 * z);
const poly = (((((1.061405429 * t - 1.453152027) * t + 1.421413741) * t - 0.284496736) * t + 0.254829592) * t);
return sign * (1 - poly * Math.exp(-z * z));
}
normalCdfBook = (x, sigma) => 0.5 * (1 + erfBook(x / (Math.SQRT2 * sigma)))
function expectedCountsBook(sigma) {
const raw = centers.map((_, i) =>
normalCdfBook(edgesBook[i + 1], sigma) - normalCdfBook(edgesBook[i], sigma)
);
const norm = raw.reduce((sum, value) => sum + value, 0);
return raw.map((value) => totalBook * value / norm);
}
function devianceBook(sigma) {
const expected = expectedCountsBook(sigma);
return countsBook.reduce((sum, observed, i) => {
const mean = Math.max(expected[i], 1e-12);
return observed > 0
? sum + 2 * (mean - observed + observed * Math.log(observed / mean))
: sum + 2 * mean;
}, 0);
}
sigmaGridBook = Array.from({length: 291}, (_, i) => 0.35 + 0.005 * i)
profileBook = sigmaGridBook.map((sigma) => ({sigma, chi2: devianceBook(sigma)}))
bestBook = profileBook.reduce((a, b) => a.chi2 < b.chi2 ? a : b)
trialChi2Book = devianceBook(trialSigma)
function smoothCurveBook(sigma) {
const truncation = normalCdfBook(xMaxBook, sigma) - normalCdfBook(xMinBook, sigma);
const scale = totalBook * dxBook / (Math.sqrt(2 * Math.PI) * sigma * truncation);
return curveXBook.map((x) => ({
x,
y: scale * Math.exp(-(x * x) / (2 * sigma * sigma))
}));
}
fitPlotBook = Plot.plot({
width: 760,
height: 410,
marginLeft: 58,
x: {label: "x", grid: true},
y: {label: "число событий", grid: true},
marks: [
Plot.rectY(centers.map((x, i) => ({x, y: countsBook[i]})), {
x1: (d) => d.x - dxBook / 2,
x2: (d) => d.x + dxBook / 2,
y: "y",
fill: "#dce8ee",
stroke: "#486979"
}),
Plot.line(smoothCurveBook(trialSigma), {
x: "x", y: "y", stroke: "#c7472f", strokeWidth: 3
}),
...(showBest ? [Plot.line(smoothCurveBook(bestBook.sigma), {
x: "x", y: "y", stroke: "#147d64", strokeWidth: 3, strokeDasharray: "7,5"
})] : []),
...(showTruth ? [Plot.line(smoothCurveBook(sigmaTrueBook), {
x: "x", y: "y", stroke: "#2a5ea8", strokeWidth: 2.5
})] : [])
]
})
profilePlotBook = Plot.plot({
width: 560,
height: 410,
marginLeft: 58,
x: {label: "σ", grid: true},
y: {label: "χ²(σ)", grid: true},
marks: [
Plot.line(profileBook, {x: "sigma", y: "chi2", stroke: "#486979", strokeWidth: 2.5}),
Plot.dot([{sigma: trialSigma, chi2: trialChi2Book}], {
x: "sigma", y: "chi2", fill: "#c7472f", r: 6
}),
...(showBest ? [Plot.dot([bestBook], {
x: "sigma", y: "chi2", fill: "#147d64", r: 6
})] : [])
]
})
html`
<div class="book-fit-output">
<div class="book-fit-plots">
<figure>${fitPlotBook}<figcaption>Псевдоданные и пробная модель</figcaption></figure>
<figure>${profilePlotBook}<figcaption>Профиль функции χ²</figcaption></figure>
</div>
<div class="book-fit-readout">
<span><b>Ваш выбор</b> σ = ${trialSigma.toFixed(2)}, χ² = ${trialChi2Book.toFixed(1)}</span>
${showBest ? `<span class="fit-best"><b>Best fit</b> σ̂ = ${bestBook.sigma.toFixed(3)}</span>` : ``}
${showTruth ? `<span class="fit-truth"><b>Истина</b> σ = ${sigmaTrueBook.toFixed(3)}</span>` : ``}
</div>
</div>
`1 Зачем физику статистика
Статистика в экспериментальной физике нужна не после измерения, а на каждом его этапе. Она связывает теоретическое предсказание, устройство эксперимента, наблюдённые данные и формулировку результата.
Главная мысль
Эксперимент даёт не готовый ответ, а данные, подверженные случайным флуктуациям. Чтобы превратить их в физический вывод, нужна явно сформулированная статистическая модель.
После этой главы читатель сможет:
- различать теоретическое предсказание, наблюдение и статистический вывод;
- читать основные формулировки экспериментальных результатов;
- понимать разницу между частотной и байесовской интерпретациями вероятности;
- различать параметр модели и его оценку;
- проследить полный путь от псевдоданных до простейшего фита.
1.1 От физического вопроса к статье
Большинство экспериментальных исследований можно представить как четыре последовательных шага.
-
01
Теория
Формулирует эффект и предсказывает наблюдаемые величины t.
-
02
Эксперимент
Измеряет данные d, содержащие сигнал, фон и флуктуации.
-
03
Статистический анализ
Сравнивает модель с наблюдением и оценивает надёжность вывода.
-
04
Физический результат
Формулируется как измерение, открытие, исключение или ограничение.
Теоретическая модель редко предсказывает единственное число. Обычно она задаёт распределение возможных наблюдений, зависящее от параметров \(\boldsymbol{\theta}\):
\[ p(\mathbf d\mid \boldsymbol{\theta}). \]
Данные \(\mathbf d\) фиксируются после эксперимента. Задача анализа — выяснить, какие значения параметров согласуются с наблюдением и насколько убедителен сделанный вывод.
Важное различие. Данные не «подтверждают теорию» сами по себе. Они становятся аргументом только после того, как определены модель, статистическая процедура и критерий принятия решения.
1.2 Язык физических результатов
Фразы из экспериментальных статей коротки, но каждая из них скрывает статистическую конструкцию.
| Формулировка | Что за ней стоит |
|---|---|
| «Наблюдается избыток событий» | Данные выше фонового ожидания, но убедительность избытка ещё нужно оценить. |
| «Сигнал имеет значимость \(5\sigma\)» | При фоновой гипотезе столь сильное или более сильное отклонение крайне маловероятно. |
| «Область параметров исключена на уровне \(95\%\) C.L.» | Применена процедура построения ограничения с заданными частотными свойствами. |
| «Установлен верхний предел» | Данные не позволяют измерить положительный сигнал, но ограничивают его величину сверху. |
| «Доминирует систематическая неопределённость» | Точность результата ограничена моделью или калибровкой, а не размером выборки. |
| «Nuisance-параметры профилированы» | Неинтересующие параметры учтены при статистическом выводе о целевой величине. |
К концу книги эти формулировки должны восприниматься не как профессиональный жаргон, а как точные утверждения о данных и процедуре анализа.
1.3 Объекты и обозначения
Единая система обозначений помогает не путать модель, случайную величину и конкретное наблюдение.
| Объект | Обозначение | Смысл |
|---|---|---|
| Скаляр | \(x\), \(y\), \(\theta\) | Одно число |
| Вектор | \(\mathbf x=(x_1,\ldots,x_n)\) | Набор связанных величин |
| Матрица | \(\mathbf V\), \(\mathbf M\) | Например, ковариационная матрица |
| Случайная величина | \(X\), \(Y\) | Величина до наблюдения |
| Наблюдённое значение | \(x\), \(y\) | Реализованное значение случайной величины |
| Параметр модели | \(\theta\) | Неизвестная характеристика модели |
| Оценка параметра | \(\widehat{\theta}\) | Значение, вычисленное по данным |
Базовые характеристики случайной величины:
\[ \mathbb E[X] \]
\[ \mathrm{Var}(X) \]
\[ \sigma_X=\sqrt{\mathrm{Var}(X)} \]
\[ \mathrm{cov}(X,Y) \]
Именно переход от неизвестного параметра \(\theta\) к его оценке \(\widehat{\theta}(\mathbf d)\) является одной из центральных задач статистики.
1.4 Две интерпретации вероятности
1.4.1 Частотная вероятность
В частотном подходе вероятность связана с повторением одного и того же эксперимента. Для события \(A\)
\[ P(A)=\lim_{n\to\infty} \frac{\text{число наблюдений события }A}{n}. \]
Параметры модели при этом считаются фиксированными, хотя и неизвестными. Случайны данные, которые могли бы измениться при повторении эксперимента.
1.4.2 Байесовская вероятность
В байесовском подходе вероятность может характеризовать степень уверенности в утверждении. После наблюдения данных \(B\) вероятность гипотезы \(A\) обновляется по теореме Байеса:
\[ P(A\mid B)=\frac{P(B\mid A)P(A)}{P(B)}. \]
Здесь \(P(A)\) — априорная вероятность, \(P(B\mid A)\) — вероятность данных при условии гипотезы, а \(P(A\mid B)\) — апостериорная вероятность.
Обе части равенства \(P(A\mid B)P(B)=P(B\mid A)P(A)\) описывают одну и ту же область пересечения \(A\cap B\).
В этой книге основной акцент сделан на частотной статистике, однако байесовский язык будет использоваться там, где он проясняет задачу или даёт полезную альтернативу.
1.5 Как выглядят реальные результаты
1.5.1 Открытие бозона Хиггса
В поиске нового сигнала ключевым становится вопрос: насколько правдоподобно наблюдаемое отклонение, если сигнала на самом деле нет?


За такими графиками стоят фоновая гипотеза, статистика теста, \(p\)-value, преобразование вероятности в число стандартных отклонений и учёт области поиска.
1.5.2 Измерение и исключение в Daya Bay
Один эксперимент может как измерять параметр, так и исключать область возможных значений.


В первом случае нужен best fit и неопределённость измерения. Во втором — процедура построения границы исключения. В обоих случаях одного визуального сравнения кривых с точками недостаточно.
1.6 Что скрыто в графиках
Практически любой законченный физический результат опирается на один и тот же набор идей:
- случайные флуктуации и распределения вероятности;
- функция правдоподобия или \(\chi^2\);
- оценка параметров и best fit;
- доверительные интервалы и контуры;
- статистическая значимость и \(p\)-value;
- систематические неопределённости и корреляции;
- nuisance-параметры и профилирование;
- верхние пределы и области исключения.
Далее эти понятия будут вводиться по одному. Но уже сейчас полезно увидеть весь процесс на простейшем примере.
1.7 Первый фит: ширина гауссианы
Предположим, что экспериментальные события описываются гауссовым распределением с известным центром \(x_0=0\) и неизвестной шириной \(\sigma\):
\[ f(x;\sigma) = \frac{1}{\sqrt{2\pi}\sigma} \exp\!\left(-\frac{x^2}{2\sigma^2}\right). \]
Сгенерируем псевдоданные при некотором скрытом значении \(\sigma_{\rm true}\). Затем переберём пробные значения \(\sigma\) и сравним ожидаемое число событий \(\mu_i(\sigma)\) с наблюдаемым \(n_i\) в каждом интервале.
Для сравнения используем пуассоновский deviance:
\[ \chi^2(\sigma) = 2\sum_i \left[ \mu_i(\sigma)-n_i +n_i\ln\frac{n_i}{\mu_i(\sigma)} \right], \]
где для пустого интервала вклад с логарифмом принимается равным нулю. Значение \(\widehat{\sigma}\), минимизирующее \(\chi^2(\sigma)\), является best fit.
1.7.1 Интерактив: найдите ширину распределения
Сначала меняйте только пробное значение \(\sigma\) и постарайтесь визуально совместить модель с данными. Затем включите лучший фит и истинное значение.
Интерактив показывает несколько общих принципов.
- Одни и те же данные допускают множество моделей, но согласуются с ними по-разному.
- Визуальное совпадение полезно, однако численный критерий делает сравнение воспроизводимым.
- Best fit не обязан совпадать с истинным параметром: оценка флуктуирует вместе с данными.
- При увеличении числа событий профиль становится уже — данные точнее ограничивают \(\sigma\).
1.8 Итоги главы
- Статистическая модель связывает теоретическое предсказание и наблюдаемые данные.
- Физический результат всегда зависит не только от данных, но и от выбранной процедуры анализа.
- Частотный и байесовский подходы по-разному интерпретируют вероятность.
- Параметр \(\theta\) и его оценка \(\widehat{\theta}\) — разные объекты.
- Даже простейший фит уже содержит данные, модель, функцию сравнения и процедуру оценки параметра.
1.9 Что дальше
Следующая глава вводит случайные величины, математическое ожидание и моменты — основные строительные блоки вероятностных моделей.