Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
Разработка программного обеспечения

Inverse Chi-Squared Distribution Bayes Example

Boost , Math Toolkit 2.5.0 , Worked Examples

Boost C++ Libraries

...one of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu, C++ Coding Standards

PrevUpHomeNext

Масштабируемое инверсивно-чи-квадратное распределение представляет собой сопряженное предварительное распределение для дисперсии (σ2) параметра нормального распределения с известным ожиданием (μ). Как таковой он широко применяется в байесовской статистике:

ВБайесовском выводесила веры в определенные значения параметров описывается через распределение. Следовательно, параметры сами становятся смоделированными и интерпретируемыми как случайные переменные.

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

Для более общей информации о байесовском типе анализа см.:

  • Andrew Gelman, John B. Carlin, Hal E. Stern, Donald B. Rubin, Bayesian Data Analysis, 2003, ISBN 978-1439840955.
  • Jim Albert, Bayesian Compution with R, Springer, 2009, ISBN 978-0387922973.

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

Рассмотрим прецизионные машины, которые производят шары для высококачественного шарикоподшипника. В идеале каждый шар должен иметь диаметр ровно 3000 & #956;м (3 мм). Предположим, что машины обычно производят шары такого размера в среднем, но отдельные шары могут незначительно изменяться в любом направлении после нормального распределения. В зависимости от различных условий производства (например, сырье, используемое для шаров, температура и влажность на рабочем месте, частота обслуживания и качество) некоторые машины производят шары более плотно распределенные вокруг цели 3000 & #956;m, в то время как другие производят шары с более широким распределением. Поэтому параметр дисперсии нормального распределения размеров шара варьируется от машины к машине. Однако обширное исследование, проведенное производителем точного оборудования, показало, что большинство машин работают с дисперсией от 15 до 50 и около 25 & #956; м2в среднем.

Используя эту информацию, мы хотим смоделировать дисперсию машин. Разница строго положительная, и поэтому мы ищем статистическое распределение с поддержкой в положительной области реальных чисел. Учитывая ожидание нормального распределения шаров известно (3000 & #956;m), по причинам спряжения, это обычная практика в байесовской статистике, чтобы смоделировать дисперсию, чтобы быть масштабированным-обратно-чи-квадратно распределенным.

На первом этапе мы постараемся использовать информацию опроса для моделирования общих знаний о параметре дисперсии машин, измеренных производителем. Это даст нам общее предварительное распределение, которое применимо, если о конкретной машине не известно ничего более конкретного.

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

Step one: Using the survey information.

Используя результаты опроса, мы пытаемся найти набор параметров масштабируемого обратно-ци-квадратного распределения, чтобы свойства этого распределения соответствовали результатам. Используя математические свойства масштабируемого-обратного-чи-квадратного распределения в качестве ориентира, мы видим, что как среднее, так и мода масштабируемого-обратного-чи-квадратного распределения приблизительно задаются параметром (параметрами) масштаба распределения. Поскольку машины для обследования работали с дисперсией 25 & #956;m2в среднем, мы, следовательно, установили параметр шкалы (sдо) нашего предыдущего распределения, равный этому значению. Используя некоторые пробы и ошибки и призывы к глобальной функции квантиля, мы также находим, что значение 20 для степеней свободы (νпредшествующего) параметра достаточно, так что большая часть предшествующей массы распределения находится между 15 и 50 (см. рисунок ниже).

Сначала мы строим наше предварительное распределение, используя эти значения, а затем перечислим несколько квантилов:

double priorDF = 20.0;
double priorScale = 25.0;
inverse_chi_squared prior(priorDF, priorScale);
// Using an inverse_gamma distribution instead, we could equivalently write
// inverse_gamma prior(priorDF / 2.0, priorScale * priorDF / 2.0);
cout << "Prior distribution:" << endl << endl;
cout << "  2.5% quantile: " << quantile(prior, 0.025) << endl;
cout << "  50% quantile: " << quantile(prior, 0.5) << endl;
cout << "  97.5% quantile: " << quantile(prior, 0.975) << endl << endl;

Это приводит к такому результату:

Prior distribution:
2.5% quantile: 14.6
50% quantile: 25.9
97.5% quantile: 52.1

Основываясь на этом распределении, мы теперь можем вычислить вероятность того, что машина будет работать с необычной точностью работы при<= 15 или >50. Для этой задачи мы используем вызовы к<boost::math::>функциям<cdf>и<complement>соответственно и находим вероятность около 0,031 (3,1%) для каждого случая.

cout << "  probability variance <= 15: " << boost::math::cdf(prior, 15.0) << endl;
cout << "  probability variance <= 25: " << boost::math::cdf(prior, 25.0) << endl;
cout << "  probability variance > 50: "
  << boost::math::cdf(boost::math::complement(prior, 50.0))
<< endl << endl;

Это приводит к такому результату:

probability variance <= 15: 0.031
probability variance <= 25: 0.458
probability variance > 50: 0.0318

Поэтому только 3,1% всех точных машин производят шары с дисперсией 15 или менее (особенно точные машины), но также только 3,2% всех машин производят шары с дисперсией до 50 или более (особенно неточные машины). Более того, чуть более половины (1 - 0,458 = 54,2%) машин работают с дисперсией более 25.

Обратите внимание на различие междубайесовскиманализом ичастотныманализом: поскольку мы моделируем дисперсию как саму случайную величину, мы можем напрямую вычислять и прямо интерпретировать вероятности для заданных значений параметров, в то время как такой подход невозможен (и интерпретируемо строгийне должен-) в частотном мире.

Step 2: Investigate a single machine

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

Можно показать, что если предварительное распределение было выбрано для распределения в масштабе-обратный-чи-квадрат, то заднее распределение также в масштабе-обратный-чи-квадрат-распределено (предыдущее и заднее распределения, следовательно, сопряжены). Более подробную информацию о конъюгации и формуле для получения параметров, установленных для заднего распределения см.Конъюгат до.

Учитывая предварительные параметры распределения и данные выборки (размера n), задние параметры распределения приводятся двумя выражениями:

   νзаднее= νпредыдущее+ n

который находится ниже, и

   sзаднее= (νпредшествующееsпредшествующее+ Σni=1(xi- μ)2) / (νпредшествующее+ n)

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

Машиноспецифические данные состоят из 100 шаров, которые были точно измерены и показывают ожидаемое среднее значение 3000 & #956;m и дисперсию выборки 55 (рассчитывается для среднего значения выборки, определенного как 3000 точно). Из этих данных предварительная параметризация и отмечая, что термин Σni=1(xi- μ)2равен дисперсии выборки, умноженной на n - 1, следует, что заднее распределение параметра дисперсии шкалировано-обратно-чи-квадратное распределение со степенями свободы (νзаднее) = 120 и шкала (sзаднее) = 49,54.

int ballsSampleSize = 100;
cout <<"balls sample size: " << ballsSampleSize << endl;
double ballsSampleVariance = 55.0;
cout <<"balls sample variance: " << ballsSampleVariance << endl;
double posteriorDF = priorDF + ballsSampleSize;
cout << "prior degrees-of-freedom: " << priorDF << endl;
cout << "posterior degrees-of-freedom: " << posteriorDF << endl;
double posteriorScale =
  (priorDF * priorScale + (ballsSampleVariance * (ballsSampleSize - 1))) / posteriorDF;
cout << "prior scale: " << priorScale  << endl;
cout << "posterior scale: " << posteriorScale << endl;

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

Это приводит к такому результату:

balls sample size: 100
balls sample variance: 55
prior degrees-of-freedom: 20
posterior degrees-of-freedom: 120
prior scale: 25
posterior scale: 49.5

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

inverse_chi_squared posterior(posteriorDF, posteriorScale);
 cout << "Posterior distribution:" << endl << endl;
 cout << "  2.5% quantile: " << boost::math::quantile(posterior, 0.025) << endl;
 cout << "  50% quantile: " << boost::math::quantile(posterior, 0.5) << endl;
 cout << "  97.5% quantile: " << boost::math::quantile(posterior, 0.975) << endl << endl;
 cout << "  probability variance <= 15: " << boost::math::cdf(posterior, 15.0) << endl;
 cout << "  probability variance <= 25: " << boost::math::cdf(posterior, 25.0) << endl;
 cout << "  probability variance > 50: "
   << boost::math::cdf(boost::math::complement(posterior, 50.0)) << endl;

Это приводит к такому результату:

Posterior distribution:
   2.5% quantile: 39.1
   50% quantile: 49.8
   97.5% quantile: 64.9
   probability variance <= 15: 2.97e-031
   probability variance <= 25: 8.85e-010
   probability variance > 50: 0.489

Действительно, вероятность того, что машина работает с низкой дисперсией (<=15) практически равна нулю, и даже вероятность работы при средней или лучшей производительности ничтожно мала (менее одной миллионной доли пермиля). С другой стороны, с почти половиной вероятности (49%) машина работает в крайне высоком диапазоне дисперсий >50 характерно для плохо работающих машин.

На основании этой информации эксплуатация машины выведена из эксплуатации и обслуживается.

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

Полный объем выборки составляет:

 Inverse_chi_squared_distribution Bayes example:
   Prior distribution:
    2.5% quantile: 14.6
    50% quantile: 25.9
    97.5% quantile: 52.1
    probability variance <= 15: 0.031
    probability variance <= 25: 0.458
    probability variance > 50: 0.0318
  balls sample size: 100
  balls sample variance: 55
  prior degrees-of-freedom: 20
  posterior degrees-of-freedom: 120
  prior scale: 25
  posterior scale: 49.5
  Posterior distribution:
    2.5% quantile: 39.1
    50% quantile: 49.8
    97.5% quantile: 64.9
    probability variance <= 15: 2.97e-031
    probability variance <= 25: 8.85e-010
    probability variance > 50: 0.489

(См. также справочную документацию для) Обратное распределение в квадрате ци.

См. полный источник C++ этого примера по адресу../../example/inverse_chi_squared_bayes_eg.cpp


PrevUpHomeNext

Статья Inverse Chi-Squared Distribution Bayes Example раздела Math Toolkit 2.5.0 Worked Examples может быть полезна для разработчиков на c++ и boost.




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



:: Главная :: Worked Examples ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-08-30 11:47:00
2025-07-04 22:50:42/0.0087099075317383/0