Javascript must be enabled in your browser to use this page.
Please enable Javascript under your Tools menu in your browser.
Once javascript is enabled Click here to go back to �нтеллектуальная Кобринщина

Perform a Bootstrap Analysis - Wolfram Mathematica

Выполнение бутстреп-анализа

Предположим, что имеется ограниченное количество данных, из которого нужно получить прогнозные статистические оценки для генеральной совокупности.  Выборочное распределение для таких оценок может быть получено приближенно, путем извлечения новых выборок из исходных данных с последующим вычислением статистических показателей для каждой выборки. Этот процесс называется "вытаскиванием" или бутстреппингом, и он может быть выполнен в Mathematica при помощи функции RandomChoice.

Начнем с набора данных:

In[12]:=

PerformABootstrapAnalysisRU_1.gif

Out[12]=

PerformABootstrapAnalysisRU_2.gif

Новая выборка может быть создана путем подстановки, при помощи функции  RandomChoice. Применив выражение Length[data] в качеств е второго аргумента функции RandomChoice, получаем новую выборку того же самого размера, что и исходный набор данных:

In[13]:=

PerformABootstrapAnalysisRU_3.gif

Out[13]=

PerformABootstrapAnalysisRU_4.gif

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

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

In[14]:=

PerformABootstrapAnalysisRU_5.gif

Out[14]=

PerformABootstrapAnalysisRU_6.gif

Рассчитаем асимметрию заново подобранных данных:

In[15]:=

PerformABootstrapAnalysisRU_7.gif

Out[15]=

PerformABootstrapAnalysisRU_8.gif

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

Здесь, функция Table использована для многократного вычисления показателей асимметрии 1000 подобранных наборов данных:

In[16]:=

PerformABootstrapAnalysisRU_9.gif

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

In[17]:=

PerformABootstrapAnalysisRU_10.gif

Out[17]=

PerformABootstrapAnalysisRU_11.gif

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

Рассчитаем стандартную ошибку в оценке асимметрии. Стандартное отклонение оценки является стандартной ошибкой:

In[18]:=

PerformABootstrapAnalysisRU_12.gif

Out[18]=

PerformABootstrapAnalysisRU_13.gif

Используем функцию Quantile для получения 95% доверительного интервала для выборочной асимметрии:

In[19]:=

PerformABootstrapAnalysisRU_14.gif

Out[19]=

PerformABootstrapAnalysisRU_15.gif

    

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

Сгенерируем некоторое количество точек из гамма-распределения и отобразим эти данные на гистограмме:

In[20]:=

PerformABootstrapAnalysisRU_16.gif

In[21]:=

PerformABootstrapAnalysisRU_17.gif

Out[21]=

PerformABootstrapAnalysisRU_18.gif

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

Можно получить логарифмическую функцию правдоподобия для всего набора данных, при помощи команды FindDistributionParameters:

In[22]:=

PerformABootstrapAnalysisRU_19.gif

Out[22]=

PerformABootstrapAnalysisRU_20.gif

Теперь, путем подбора значений на основе исходного набора данных, можно создавать новые статистические данные для оценки параметров. Это реализуется при помощи функций RandomChoice:

In[23]:=

PerformABootstrapAnalysisRU_21.gif

Out[23]=

PerformABootstrapAnalysisRU_22.gif

Присвоим этому вычислению имя params:

In[24]:=

PerformABootstrapAnalysisRU_23.gif

Можно многократно вычислять params для генерирования многочисленных оценок параметров ? и ?, создавая, таким образом, выборочное пространство параметр ов.

Воспользуемся функцией Table с аргументом params, чтобы сгенерировать 100 оценок для ? и ?:

In[25]:=

PerformABootstrapAnalysisRU_24.gif

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

In[26]:=

PerformABootstrapAnalysisRU_25.gif

Out[26]=

PerformABootstrapAnalysisRU_26.gif

Для определения зависимости между оценками ? и ?, можно вычислить корреляционную матрицу:

In[27]:=

PerformABootstrapAnalysisRU_27.gif

Out[27]//MatrixForm=

PerformABootstrapAnalysisRU_28.gif