Объяснение статистического моделирования

10

Я не статистика. Так что, пожалуйста, потерпите мои промахи, если таковые имеются.

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

любознательный
источник
11
Имитация что ?! :-)
chl
Точно придирчив, но иногда вопросы обескураживающие, и это один из таких случаев.
amit
1
@phaedrus Это комментарий к моему намерению? Если да, не могли бы вы объяснить, что вы поняли из приведенного выше вопроса?
ЧЛ

Ответы:

27

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

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

Симуляционные исследования должны быть разработаны с большой тщательностью. Бертон и соавт. (2006) дал очень хороший обзор в своей статье « Дизайн симуляционных исследований в медицинской статистике ». Имитационные исследования, проводимые в самых разных ситуациях, можно найти в ссылках.

Простой иллюстративный пример Рассмотрим линейную модель

Yзнак равноμ+β*Икс+ε

где - двоичная ковариата ( или ) и . Используя симуляции в R, давайте проверим, чтоИксИксзнак равно0Иксзнак равно1ε~N(0,σ2)

Е(β^)знак равноβ,
> #------settings------
> n <- 100            #sample size                          
> mu <- 5             #this is unknown in practice                         
> beta <- 2.7         #this is unknown in practice
> sigma <- 0.15       #this is unknown in practice
> #--------------------
> 
> #------set the seed so that this example can be replicated------
> set.seed(937)
> #---------------------------------------------------------------
>
> #------generate 1000 data sets and store betaHat------
> betaHat <- numeric(1000)
> for(i in 1:1000)
+ {
+     #generate the binary covariate --> n Bernoulli trials
+   x <- sample(x=c(0, 1), size=n, replace=TRUE, prob=c(0.5, 0.5))
+     #generate the errors
+   epsilon <- rnorm(n=n, mean=0, sd=sigma)
+     #form the response variable      
+   y <- mu + beta * x + epsilon 
+     #the ith generated data set
+   data_i <- data.frame(y=y, x=x)
+     #fit the model
+   mod <- lm(y~x, data=data_i)
+     #store the estimate of beta
+   betaHat[i] <- as.numeric(coef(mod)[2])     
+ }    
> #-----------------------------------------------------
> 
> #------E(betaHat) = beta?------
> mean(betaHat)
[1] 2.698609
> #------------------------------

Примечание : есть письмо в редакцию для упомянутой выше статьи.

ocram
источник
9

Прежде всего, есть много, много разных типов симуляции в статистике, и даже больше в смежных областях. Просто сказать «Моделирование» так же полезно, как сказать «Модель», то есть совсем немного.

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

Цель этого имеет тенденцию делиться на две категории:

Может ли мой метод обрабатывать X? По сути, вы моделируете серию из множества случайных групп населения с известным «правильным» ответом, чтобы увидеть, дает ли ваша новая техника верный ответ. В качестве базового примера предположим, что вы разработали новый способ измерения корреляции между двумя переменными, X и Y. Вы бы смоделировали две переменные, в которых значение Y зависит от значения X, а также какой-то случайный шум. Например, Y = 0,25x + шум. Затем вы создадите популяцию с некоторыми случайными значениями X, некоторыми значениями Y, которые были 0,25x + случайное число, вероятно, много-много тысяч раз, и затем покажете, что в среднем ваша новая техника выплевывает число, которое правильно показывает, что Y = 0,25x.

Что произойдет, если? Моделирование может быть выполнено как анализ чувствительности для существующего исследования. Скажем, например, я провел когортное исследование, но я знаю, что мое измерение экспозиции не очень хорошее. Это неправильно классифицирует 30% моих предметов как выставленные, когда они не должны быть, и классифицирует 10% моих предметов как незащищенные, когда они не должны быть. Проблема в том, что у меня нет лучшего теста, поэтому я не знаю, какой именно.

Я бы взял свое население и дал бы каждому выставленному субъекту 30% шанс переключения на неэкспонированный, а каждому неэкспонированному субъекту 10% шанс переключения на незащищенного. Затем я собираю тысячи новых групп населения, случайно определяю, какие субъекты переключаются, и повторно провожу свой анализ. Диапазон этих результатов даст мне хорошую оценку того, насколько сильно может измениться результат моего исследования, если бы я мог правильно классифицировать всех.

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

фомиты
источник
1. Итак, что вы объяснили в своем ответе, это симуляция Монте-Карло? 2. Существуют ли другие виды моделирования (кроме Монте-Карло), которые используются в статистике?
vasili111
5

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

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

Мишель
источник
Можете ли вы привести несколько примеров?
vasili111
Я не уверен, что вы подразумеваете под некоторыми примерами. Я привел несколько примеров в моем первом абзаце.
Мишель
2

Икс1,...,ИксN

Икс1,...,ИксN

F^N(Икс)знак равно1NΣязнак равно1NяИксяИкс
NFFЕF[час(Икс)]ψ(Икс1,...,ИксN)F^N
σ^N2(Икс1,...,ИксN)знак равно1N+1Σязнак равно1N(Икся-Икс¯)2
σ2знак равноварF(Икс)N Икс1*,...,ИксN*F^N
βзнак равноσ^N2(Икс1*,...,ИксN*)-σ^N2(Икс1,...,ИксN)
Сиань
источник
3
Я считаю, что полезно использовать две основные концепции метода начальной загрузки. Сам бутстрап следует рассматривать как способ изменения оценки для получения другой (возможно, лучшей) оценки. Это может быть вычислено теоретически, точно, и (иногда) в закрытой форме. Симуляция не является неотъемлемой частью начальной загрузки! Тем не менее, во многих случаях моделирование является естественным и простым способом аппроксимации оценки начальной загрузки. См. Введение и главу 1 в Холле, Bootstrap и Edgeworth Expansion.
whuber
1
Е[β | образец]знак равно-[2/(N+1)]σ^N2(Икс1,...,ИксN),