Статистическое моделирование. Метод Монте-Карло.

1

Постановка задачи статистического моделирования с помощью физической модели.

Ситуация: Далекая мишень.

Представьте, что вы бросаете дротики из набора дартса в удаленную мишень. Мишень - черная квадратная рамка со стороной 2 дм, напечатанная на стандартном листе бумаги А4. Ваша задача – просто попасть в мишень и промахи случаются гораздо чаще попаданий, ввиду значительного расстояния до мишени. Вы бросаете дротики до 100 попаданий в мишень. При попадании дротика в мишень в ней остаются маленькие отверстия от иглы, так что по завершении игры отлично видно, куда попадали дротики. В силу случайности попаданий отверстия расположены хаотично.

скрепка
  1. Сколько примерно попаданий будет в правый верхний квадрант (или любой другой квадрант на выбор), если общее количество отверстий от дротиков N равно 100? Почему?
    Можно ли записать общую формулу для вычисления числа попаданий?
  2. Будет ли реальное число попаданий в выбранный квадрант точно равно предвычисленному?
    Как сильно может отличаться от ожидаемого реальное число попаданий в выбранный квадрант?

2

Оценка ожидаемого числа событий и дисперсии числа событий при N испытаниях и вероятности наступления события p.

Ожидаемое число событий x = N * p
при этом ожидаемое количество попаданий в выбранный квадрант n = 100 * ¼ = 25
Дисперсия Dx = N * p * ( 1 - p )
или, если обозначить через q = 1 - p, то Dx = N * p * q
Тогда стандартное отклонение для числа событий: sx = (Dx )1/2 = ( N * p * q )1/2

Характерный разброс числа попаданий в заданный квадрант:
sn = корень ( 100 * ¼ * ¾ ) = 4,33
Если величина sx характеризует разброс или вариацию числа событий х, то какой разброс числа попаданий от ожидаемых 25-ти получится?

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

Поэтому оценку вероятности отклонения числа попаданий от предвычисленного на заданную величину нужно делать в предположении,
что число попаданий дротика в заданный квадрант есть нормально распределенная случайная величина со средним значением x = N * p
и стандартным отклонением sx = ( N * p * q )1/2.
1 / 3
2 / 3
3 / 3

 В 2 играх из 3 (68%) число попаданий в выбранный квадрант окажется от 20 до 30 (25±4,3)
В 19 играх из 20 (95%) будет 25±8,7 или примерно от 16 до 34
Только в 1 игре из 300 (100% - 99,7%) выйдет за пределы 25±13 или окажется меньше 12 или больше 38

Моделирование ситуации Далекая мишень

Как имитировать случайное попадание дротика в мишень? И вообще получить число случайно?

Алгоритм
построения модели Далекая мишень

Мишень
Установка границ
Два случайных числа
Результат попадания

Работающая модель

GO AND UPDATE YOUR BROWSER BEFORE YOU READ ON!

Число попаданиий в 1 квадрант:    0

Число попаданиий в 2 квадрант:    0

Число попаданиий в 3 квадрант:    0

Число попаданиий в 4 квадрант:    0

Моделирование ситуации Далекая мишень в рабочей книге MS Excel

Подготовленное место для моделирования на листе Excel

В Excel имеется функция без аргументов СЛЧИС(), которая при обновлении листа выдает очередное случайное число в интервале от 0 до 1. Вероятности появления любого числа из этого диапазона совершенно одинаковы, т.е. числа близкие к 0, к 0.5 или к 1 появляются с равной частотой. Функция использует специальный алгоритм для генерации длинной цепочки случайных чисел.
Если ввести функцию СЛЧИС() в любую ячейку листа Excel, получим случайное и у всех различное число. При нажатии на клавиатуре функциональной кнопки F9 произойдет принудительный пересчет всех формул книги Excel и значение случайного числа изменится.

Примерный код функции СЛЧИС()
(iseed – начальное значение генератора – произвольное, желательно большое, целое число, 4.6566128752458E-10 = 1/2147483647, 2147483647 = 231 - 1 )
a = 16807 * iseed
b = a - 2147483647 * Int(a * 4.6566128752458E-10)
iseed = b
СЛЧИС = b * 4.6566128752458E-10

Введем в ячейки I4 и J4 функцию СЛЧИС().

X= Y=
= СЛЧИС() = СЛЧИС()

Для моделирования попадания во всю площадь мишени нужно модифицировать розыгрыш координат точки попадания дротиков.
Во-первых, интервал вариации координат должен быть не единица, а два (размер квадрата мишени 2х2). Это сделать просто. Нужно случайное число ξ, изменяющееся от 0 до 1, умножить на двойку: 2 * ξ. При этом получится, очевидно, случайное число в интервале 0…2.
Во-вторых, на мишени координаты изменяются не от 0 до 2, а от -1 до +1, так что нужно из модифицированного случайного числа 2 * ξ вычесть 1: 2 * ξ - 1. Теперь координаты попадания будут моделироваться как
X = 2 * ξ - 1 и
Y = 2*ξ - 1 Запишем формулу = 2 * СЛЧИС() - 1 в ячейки I4 и J4. Теперь при обновлении значения генератора случайных чисел след от дротика может попасть в любое место мишени.

Для того чтобы смоделировать сразу N=100 попаданий распространим формулы из ячеек I4 и J4 на сто ячеек вниз до строки 103. Получим модель результата игры «Далекая мишень». Произведено 100 выстрелов

Подсчитаем количество попаданий в верхний правый квадрант. Условие попадания: X > 0 и Y > 0 Введем в ячейку К3 формулу = ЕСЛИ ( И (I4 > 0; J4 > 0); 1 ; 0 ) для того чтобы присвоить точкам, попавшим в этот квадрант 1.
В ячейку К2 формулу =СУММ (К3:К103). То есть сосчитаем точки, получившие значение 1.

Как проверить статистические выкладки?

Чтобы проверить статистические выкладки, сделанные по ситуации «Далекая мишень», нужно много раз повторить игру до 100 попаданий в мишень.
И чем больше наблюдений будет в нашем распоряжении, тем более точно мы сможем оценить величину
среднего значения числа попаданий <x> и стандартного отклонения sx .

Закон больших чисел
Закон больших чисел утверждает, что при бесконечном увеличении числа наблюдений ошибка в расчете среднего значения x любой характеристики случайной величины стремится к нулю. Причем с ростом числа испытаний N ошибка уменьшается по закону Δ x ~ 1 / N1/2.

Если речь идет о случайных величинах, являющихся суммой множества случайных факторов, то, в соответствии с центральной предельной теоремой, эти величины будут иметь нормальное распределение. И тогда ошибку можно определить более точно:
Δ x ~ 3 * sx / N 1/2
Это соотношение используется в статистическом моделировании для оценки ошибки расчетов или для оценки статистики N, необходимой для вычисления среднего значения выбранной величины с заданной точностью. Проверять правильность расчетов методом статистического моделирования удобнее всего с помощью специальных инструментов. Один из таких сильно упрощенных инструментов – надстройка «Моделирование Монте-Карло».

Применение надстройки Монте-Карло для статистического моделирования

Подключите надстройку "Моделирование Монте-Карло". Введите в поле Целевые ячейки ячейку K2. Применение надстройки Моделирование Монте-Карло и запустите ее. Надстройка проведет 10 тысяч испытаний и выдаст результат моделирования:

Результат моделирования