Вы находитесь на странице: 1из 19

Лекция 12.03.2019.

2.4.Статистическое моделирование в пакете Stata


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

Моделирование случайных величин в пакете Stata начинается с команды:


set obs n

Моделирование равномерно распределенной с.в.

Моделирование базовой с.в., распределенной по равномерному закону с


параметрами: а=0, в=1.

gen varname=uniform()

Если мы хотим получить значения с.в. равномерно распределенной на


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

gen varname=a+(b-a)*uniform()

Пример 2.4.1. Проведите моделирование 1000 значений равномерно-


распределенной на отрезке [-1;3] с.в., используя следующую команду:

gen ravnom=-1+4*uniform()

1. Выведите описательную статистику смоделированной с.в. и проведите ее


анализ.

2. Вычислите математическое ожидание и дисперсию моделируемой с.в. а


затем, найдите ошибки оценки и для математического ожидания, и для
дисперсии, по формуле:

е = θ − θˆ

3. Постройте гистограмму и сравните ее с графиком плотности равномерно-


распределенной с.в.

4. Повторите алгоритм моделирования и проанализируйте точность оценок и


графики гистограмм в зависимости от объема выборки, получив 10 и 100, 100
000 значений этой с.в.

По результатам работы заполните следующую таблицу:


Теоретические и выборочные Значение Ошибка оценки математического Ошибка оценки
ожидания: е = θ − θˆ дисперсии:
числовые характеристики е = θ − θˆ

Математическое ожидание ϴ
Дисперсия ϴ
Выборочное среднее (оценка θˆ
математического ожидания)
n=10
n=100
n=1000
n=100 000
Выборочная дисперсия θˆ
n=10
n=100
n=1000
n=100 000

Моделирование нормально распределенной с.в.

Моделирование стандартного нормального закона распределения


происходит при помощи команды:

gen varname= invnorm(uniform())

Моделирование нормального закона распределения с параметрами m и σ


происходит при помощи команды

gen varname= m + σ* invnorm(uniform())

Или:

gen varname=rnormal(m, σ)

Пример 2.4.2. Проведите моделирование 100 значений нормально


распределенной с.в. с параметрами m=-3, σ=1 .

1. Выведите описательную статистику смоделированной с.в. и проведите ее


анализ.

2.Вычислите ошибку оценки и для математического ожидания, и для


дисперсии по формуле:

е = θ − θˆ
3. Постройте гистограмму и сравните ее с графиком плотности нормально-
распределенной с.в.

4. Повторите алгоритм моделирования и проанализируйте точность оценок и


графики гистограмм в зависимости от объема выборки, получив 10 и 10000
значений этой с.в.

По результатам работы заполните таблицу.


Теоретические и выборочные Значение Ошибка оценки математического Ошибка оценки
ожидания: е = θ − θˆ дисперсии:
числовые характеристики е = θ − θˆ
Математическое ожидание ϴ
Дисперсия ϴ
Выборочное среднее (оценка θˆ
математического ожидания)
n=10
n=100
n=1000
n=100 000
Выборочная дисперсия θˆ
n=10
n=100
n=1000
n=100 000

Моделирование показательно распределенной с.в.

Для моделирования показательно распределенной с.в. можем


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

gen varname=-(1/λ)ln(1-runiform())

Пример 2.4.3. Проведите моделирование 100 значений показательно


распределенной с.в. с параметром λ=2.

1. Выведите описательную статистику смоделированной с.в. и проведите ее


анализ.

2.Вычислите ошибку оценки и для математического ожидания, и для


дисперсии по формуле:
3.Постройте гистограмму и сравните ее с графиком плотности показательно-
распределенной с.в.

4. Повторите алгоритм моделирования и проанализируйте точность оценок и


графики гистограмм в зависимости от объема выборки, получив 10 и 10000
значений этой с.в.
Теоретические и выборочные Значение Ошибка оценки математического Ошибка оценки
ожидания: е = θ − θˆ дисперсии:
числовые характеристики е = θ − θˆ
Математическое ожидание ϴ
Дисперсия ϴ
Выборочное среднее (оценка θˆ
математического ожидания)
Выборочная дисперсия θˆ
n=10
n=100
n=1000
n=100 000

ДЗ. Проверьте, есть ли команда в Stata для моделирования показательно


распределенной с.в.

Моделирование с.в., распределенной по треугольному закону


распределения

Моделирование этого распределения основано на методе обратной


функции. Воспользуемся выражением (2.1.4)



a + u (b − a)(c − a) , если 0 ≤ u ≤ c − a
 b−a
x= ,
b − (1 − u )(b − a)(b − c), если c − a < u ≤ 1 (2.1.4)
 b−a


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

gen U= uniform()
и формулы из выражения (2.1.4.)

generate float var=a+sqrt(U*(b-a)*(c-a)) if U<=(с-а)/(b-a)

replace var=b-sqrt((1-U)*(b-a)*(b-c)) if U>(с-а)/(b-a)

Пример 2.4.4. Разыграйте 10000 значений с.в., распределенной по


треугольному закону с параметрами а=0, с=1, в=3 и постройте гистограмму.

Замечание. В частном случае моделирование треугольного распределения


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

Рис. Графики плотности треугольного распределения

Таким образом, график плотности может быть равнобедренным или


разносторонним треугольником. В том случае, когда график плотности будет
являться равнобедренным треугольником, моделировать с.в. можно,
используя метод композиции.
Воспользуемся утверждением 2.1.1, для моделирования с.в.,
распределенной по треугольному закону (отрезок [а,b], вершина
треугольника в точке (а+ b)/2).

1. Сначала моделируют две независимые с.в., равномерно распределенные


на отрезке [а/2; b/2]. Последовательность команд следующая:

gen v1= а/2+(b/2 –a/2)*uniform()

gen v2= а/2+(b/2 –a/2)*uniform()

2. После этого моделируем c.в., распределенную по треугольному закону


(отрезок [а,b], вершина треугольника в точке (а+ b)/2):

gen v3=v1+v2
Пример 2.4.5. Проведите моделирование с.в., распределенной по
треугольному закону (отрезок [5.9;6.1]) и постройте гистограмму.

2.4.2. Моделирование нормально распределенного случайного вектора с


коррелированными с.в.

Говорят, что двумерный случайный вектор распределен по нормальному


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

f ( x, y ) =
1
×
2πσ 1σ 2 1 − ρ 2
 1  ( x − µ1 )2 2 ρ ( x − µ1 )( y − µ 2 ) ( y − µ 2 )2 
× exp −  − + 
 (
 2 ⋅ 1− ρ 2 )  σ2
 1 σ 1 ⋅ σ 2 σ 22 


График плотности двумерного случайного нормально распределенного


вектора приведен на рисунке ниже.

Рисунок заимствован с сайта http://statistica.ru/theory/normalnoe-raspredelenie/

Рассмотрим, как в Stata моделировать двумерный нормально


распределенный случайный вектор на следующем примере.

Пример 2.4.6. Требуется разыграть 200 значений нормально


распределенного случайного вектора с математическим ожиданием m=(2,3)
и корреляционной матрицей вида:

 1 0.5 
 
 0.5 1 
1. Пишем команду по созданию математического ожидания двумерного
вектора:

mat m=(2,3)

2. Пишем команду по созданию корреляционной матрицы двумерного


вектора:

mat sigma=[1,0.5\0.5,1]

3. Пишем команду по моделированию двумерного нормально-


распределенного случайного вектора:

drawnorm x y, n(200) means(m) cov(sigma)

. set obs 200


obs was 0, now 200

. mat m=(2,3)

. mat sigma=[1,0.5\0.5,1]

. drawnorm x y, n(200) means(m) cov(sigma)

. correl x y
(obs=200)

x y

x 1.0000
y 0.5053 1.0000

Замечание. Моделировать нормально распределенный случайный вектор с


некоррелированными с.в. можно так. Предположим, что корреляционная
матрица имеет вид:

1 0
 
0 1
Запишем последовательность шагов:

1. mat m=(2,3)

2. mat sigma=[1,0\0,1]

3. drawnorm x y, n(200) means(m) cov(sigma)


Метод Бокса-Мюллера

Первый случай. Пусть U1 и U2 две независимые базовые с.в. Тогда для


моделирования двух независимых стандартных нормально
распределенных с.в. можно воспользоваться следующими формулами:

х1 = − 2 ln(U1 ) × cos(2πU 2 )

х2 = − 2 ln(U1 ) × sin( 2πU 2 )

Второй случай. Пусть ξ1 и ξ2 — независимые случайные величины,


равномерно распределённые на отрезке [-1;1].
− 2 ln(ξ12 + ξ 22 )
х1 = × ξ1
ξ12 + ξ 22

− 2 ln(ξ12 + ξ 22 )
х2 = × ξ2
ξ12 + ξ 22

Если при реализации этого подхода выражение под знаком логарифма


будут больше 1 или равно 0, то смоделированные ξ1 и ξ2 просто не
используют.

2.5. Генерация случайных чисел средствами MS-Excel


(материал для домашнего чтения)

В пакете Excel для получения (генерации) значений случайной


величины традиционно, как и в других компьютерных пакетах, используется
программно реализованный датчик случайных чисел, то есть некоторая
программа или устройство, которая формирует последовательности
псевдослучайных чисел по заданному закону распределения. По своим
возможностям Excel уступает специализированным статистическим пакетам,
тем не менее, имеет в своем составе наиболее часто используемые
статистические процедуры. В случае необходимости получения
последовательности случайных чисел (моделировании значений случайной
величины с заданным законом распределения) Excel предлагает несколько
вариантов генерации таких последовательностей. В мастере функций Excel
имеется ряд специальных функций, предназначенных для статистического
моделирования и статистической обработки данных (категории
Статистические и Математические), кроме того, имеется набор более
мощных инструментов для углубленного анализа данных, называемый
Пакет анализа.
При использовании инструментов Excel совокупность ячеек содержащих
анализируемые данные называется входным диапазоном, соответственно,
ячейки таблицы, в которых предполагается увидеть результат анализа или
вычислений – выходным диапазоном.
Для удобства обращения с инструментами Excel диапазонам данных или
даются имена (меню Вставка – Имя), или они показываются маркировкой.
Таким образом, для статистического моделирования можно
воспользоваться функциями из категории Математические Мастера
функций:
• СЛЧИС () в результате выполнения будет получено значение
случайной величины равномерно распределенной на отрезке [0; 1]. Функция
не имеет входных параметров, это видно в примере на рис. 1.а).
Чтобы получить значение случайной величины равномерно
распределенной на отрезке [a,b], необходимо изменить обращение к
функции следующим образом:
Х=CЛЧИС()*(b-a)+a.

Основное неудобство работы с функцией СЛЧИС() заключается в


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

Рис. 1. Пример обращения к функции СЛЧИС():

а) без фиксирования результатов; б) фиксирование результатов F9.


• СЛУЧМЕЖДУ (нижняя граница; верхняя граница) эта функция
возвращает значение случайной непрерывной величины, равномерно
распределенной на отрезке между указанными нижней и верхней
границами (границами отрезка а и b). Каждый раз при пересчете формул
текущего листа Excel будет происходить генерация нового значения
случайной величины в указанных границах.
Еще одним вариантом получения выборки значений случайной
величины ξ (последовательности псевдослучайных чисел) является
применение инструментов Пакета анализа данных.

Инструменты Пакета анализа недоступны непосредственно из меню


Excel, Пакет анализа необходимо предварительно подключить.

Для подключения инструмента Анализ данных в среде Excel проделайте


следующие шаги:
• в меню Сервис выберите команду Надстройки;
• в появившемся списке установите флажок Пакет анализа (рис.2).

Рис. 2. Подключение Пакета анализа

Последовательность обработки данных

При использовании статистического пакета анализа данных


необходимо:
• открыть меню Сервис и выбрать Анализ данных;
• указать необходимую строку в открывшемся списке
Инструменты анализа;

• ввести входной и выходной диапазоны ячеек и установить


необходимые параметры.
Для получения значений дискретной или случайной непрерывной
величины можно воспользоваться процедурой Генерация случайных чисел,
которая является одним из инструментов Пакета анализа.
В случае использования процедуры Генерация случайных чисел
необходимо заполнить рабочие поля соответствующего диалогового окна,
как это показано на рис. 3.

Рис. 3. Пример заполнения окна Генерация случайных чисел

В поле Число переменных вводится число столбцов значений


(указывают, сколько случайных величин моделируют), которые необходимо
разместить в выходном диапазоне. Если это число не введено, то все
столбцы в выходном диапазоне будут заполнены.

В поле Число случайных чисел вводится число значений моделируемой


случайной величины, которое необходимо вывести для каждой переменной
(указывается объем выборки моделируемой случайной величины). Каждое
значение случайной величины ξ будет помещено в ячейке выходного
диапазона. Если число случайных чисел не будет введено, все ячейки
выходного диапазона будут заполнены.

В поле Распределение необходимо выбрать тип распределения, которое


следует использовать для генерации случайных переменных:

• Равномерное распределение на отрезке [a,b], характеризуется


двумя параметрами: границами отрезка [a,b].
• Нормальное распределение с параметрами m и σ>0—
характеризуется математическим ожиданием m и среднеквадратическим
отклонением σ>0.
• Биномиальное распределение с параметрами р и n—
характеризуется вероятностью появления случайного события А в одном
испытании Р(А)= р и числом проведенных испытаний n.
• Дискретное распределение характеризуется значениями случайной
величины и соответствующим им интервалам вероятностей (аналогично
моделированию случайной дискретной величины при помощи базовой).
Поэтому диапазон должен состоять из двух столбцов: левого, содержащего
значения моделируемой случайной величины ξ, и правого, содержащего
вероятности с которыми случайная величина принимает эти значения. Сумма
вероятностей в правом столбце должна быть равна 1;
• распределение Бернулли характеризуется только одним параметром
-вероятностью появления случайного события А: Р(А)=р.
• распределение Пуассона характеризуется одним положительным
параметром λ (численно равным математическому ожиданию и дисперсии
этой случайной величины).
В поле Параметры вводятся параметры выбранного распределения.
В поле Случайное рассеивание вводится произвольное значение, для
которого необходимо генерировать случайные числа. Впоследствии можно
снова использовать это значение для получения тех же самых случайных
чисел.
В поле Выходной диапазон вводится ссылка на левую верхнюю ячейку
выходного диапазона. Размер выходного диапазона будет определен
автоматически, и на экран будет выведено сообщение в случае возможного
наложения выходного диапазона на исходные данные.
Выборка случайных чисел, полученная в результате работы процедуры
Генерации случайных чисел из Пакета анализа, не изменяется при пересчете
формул текущего листа Excel.

2.6. Статистическое моделирование средствами MS EXCEL

2.6.1. Статистическое моделирование непрерывных с.в. в EXCEL

В этом параграфе мы рассмотрим методы моделирования тех законов


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

2. 6.2. Моделирование равномерно распределенной


случайной величины средствами MS EXCEL

Использование Мастера функций

Для статистического моделирования базовой случайной величины можно


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

СЛЧИС() — в результате обращения к этой процедуре будет получено


значение случайной величины равномерно распределенной на отрезке [0;
1]. Функция не имеет входных параметров, это видно на рис.

Рис. Функция СЛЧИС()


Чтобы получить значение случайной величины равномерно
распределенной на отрезке [a,b], необходимо изменить обращение к
функции следующим образом:
Х=CЛЧИС()*(b-a)+a
Так, например, если нам необходимо моделировать значения случайной
величины, равномерно распределенной на отрезке
[-2;5], то мы будем использовать следующее выражение:

Х=CЛЧИС()*7-2
При использовании функции СЛЧИС() следует иметь ввиду, что происходит
генерация нового случайного числа каждый раз при пересчете рабочего
листа Excel.
Использование Пакета анализа

Еще одним вариантом получения выборки значений случайной величины ξ


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

Рис. Пример заполнения окна Генерация случайных чисел


В поле Число переменных вводится число столбцов (указывают, сколько
случайных величин моделируют), которые необходимо разместить в
выходном диапазоне. Если это число не введено, то все столбцы в выходном
диапазоне будут заполнены. В поле Число случайных чисел вводится число
значений моделируемой случайной величины, которое необходимо вывести
для каждой переменной (указывается объем выборки моделируемой
случайной величины). Каждое значение случайной величины ξ будет
помещено в ячейке выходного диапазона. Если число случайных чисел не
будет введено, все ячейки выходного диапазона будут заполнены. В поле
Распределение необходимо выбрать тип распределения, которое следует
использовать для генерации случайных переменных.

Рис. Результат моделирования базовой случайной величины


Равномерное распределение на отрезке [a,b], характеризуется двумя
параметрами: границами отрезка [a,b]. Пример заполнения диалогового
окна для равномерного распределения на отрезке [3,5].

Рис. Пример заполнения окна для равномерного распределения на отрезке [3,5]


В поле Параметры вводятся параметры выбранного распределения. В поле
Случайное рассеивание вводится произвольное значение, для которого
необходимо генерировать случайные числа. Впоследствии можно снова
использовать это значение для получения тех же самых случайных чисел.
Выходной диапазон вводится ссылка на левую верхнюю ячейку выходного
диапазона. Размер выходного диапазона будет определен автоматически, и
на экран будет выведено сообщение в случае возможного наложения
выходного диапазона на исходные данные.
Выборка случайных чисел, полученная в результате работы процедуры
Генерации случайных чисел из Пакета анализа, не изменяется при
пересчете формул текущего листа Excel.

Пример 2.6.1. Выполните следующие задания:

1) Смоделируйте 50 значений базовой с.в. и постройте гистограмму.

2) Смоделируйте 100 значений равномерно распределенной с.в с


параметрами [5.9; 6.1]. постройте гистограмму. Решение примера проведите
в файле ECXEL лист Пример 2.6.1. Для решения обоих заданий используйте и
процедуру СЛЧИС, и опцию Генерация случайных чисел Пакета анализа.

2.6.3. Моделирование случайной величины, распределенной


по треугольному закону, средствами MS EXCEL

Для моделирования треугольного распределения нет стандартных средств


MS EXCEL. Поэтому будем моделировать значения этой величины двумя
разными способами, в зависимости от того, какой график плотности
распределения: разносторонний или равнобедренный треугольник.
Предположим, что, а=0.5, с=0.55, b=0.65, тогда выражение для плотности
распределения примет вид:



0.5 + u (0.65 − 0.5)(0.55 − 0.5) , если 0 ≤ U ≤ 0.55 − 0.5
 0.65 − 0.5
x= ,
0.65 − (1 − u )(0.65 − 0.5)(0.65 − 0.55), если 0.55 − 0.5
<U ≤1
 0.65 − 0.5

Или, если провести все вычисления, получим такое выражение:

 1
0,5 + 0,0075U , если 0 ≤ U ≤ ;
 3
х= (2.6.2)
0,65 − 0,015(1 − U ) , если 1 < U ≤ 1.

 3

Пример 2.6.2. Смоделируйте 500 значений н.с.в., распределенной по


треугольному закону распределения с параметрами: а=0.5, с=0.55, b=0.65.
Используйте для этого обратную функцию, заданную формулой (2.6.2).

Замечание. Для того, чтобы справиться с этим заданием, нужно


использовать функцию ЕСЛИ (Рис. П23). Для этого в Мастере функций нужно
выбрать категорию Логические, в этой категории найти процедуру ЕСЛИ.

При работе с процедурой ЕСЛИ нужно последовательно в каждую строку


ввести следующие команды:

СЛЧИС()<(1/3)

0,5+(СЛЧИС()*0,0075)^(1/2)

0,65-((1-СЛЧИС())*0,15*0.1)^(1/2)
Пример заполнения диалогового окна представлен на рис.

Рис. Пример заполнения диалогового окна процедуры ЕСЛИ для моделирования заданного
треугольного распределения

В результате получим одно значение случайной величины с заданным


треугольным законом распределения.

Пример 2.6.3. Смоделируйте (разыграйте) 50 значений с.в.,


распределенной по треугольному закону с параметрами: а=5.9, с=6, в=6.1.
(лист пример 2.6.3)

Замечание. График плотности этого распределения этой с.в. является


симметричной функцией относительно прямой х=6 (график плотности –
равнобедренный треугольник).

12

10

0
5.85 5.9 5.95 6 6.05 6.1 6.15
-2

Поэтому для моделирования этой с.в. можно воспользоваться способом


моделирования, отличным от того, который был использован в примере
2.6.2. Он основан на свойстве, что для моделирования с.в., распределенной
по треугольному закону с параметрами: а=5.9, с=6, в=6.1, можно
использовать композицию двух равномерно-распределенных с.в., то есть
можно воспользоваться следующим выражением:

(2.95+(3.05 - 2.95)*слчис()) + (2.95+(3.05 - 2.95)*слчис()) (2.6..3)


Или:

(2,95+0,1*слчис()) + (2,95+0,1*слчис())

2.6.4. Моделирование нормально распределенной случайной


величины средствами MS EXCEL

Для моделирования можно воспользоваться процедурой Генерация


случайных чисел. Для этого нужно выбрать тип распределения Нормальный
и указать параметры распределения: окне «среднее» указать значение
параметра m=0, а в окне «стандартное отклонение» указать значение σ=1.

Метод композиции

Для моделирования случайной величины, распределенной по нормальному


закону, можно использовать метод композиции, в основе которого лежит
центральная предельная теорема. Значения случайной величины ξ,
распределенной по нормальному закону с параметрами m, σ получают по
формуле:

хi = m + (U1 + U2 + …+ U12 - 6)*σ. (2.6.4)

Из последней формулы следует, что для того, чтобы получить одно значение
нормально распределенной случайной величины ξ, необходимо
использовать двенадцать значений случайной базовой величины U.

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


с.в. с параметрами m=-3 и σ=5, то нужно воспользоваться следующей
формулой

хi = -3 + (U1 + U2 + …+ U12 - 6)*5.

В частности, если нужно разыграть значение случайной величины ξ,


распределенной по нормальному закону с параметрами m=0, σ=1 , то
используют формулу:

х= U1 + U2 + …+ U12 - 6.

Пример 2.6.4. Используя метод композиций и Генерацию случайных чисел


Пакета анализа, смоделируйте 100 значений н.с.в., которая имеет
нормальное распределение со средним значением (математическим
ожиданием) 802000 и стандартным отклонением 25000.

Вам также может понравиться